diff --git a/db/changes/10141-zoneDoCalc/00-ticket.sql b/db/changes/10141-zoneDoCalc/00-ticket.sql deleted file mode 100644 index fa091f111..000000000 --- a/db/changes/10141-zoneDoCalc/00-ticket.sql +++ /dev/null @@ -1,3 +0,0 @@ -ALTER TABLE `vn`.`ticket` -ADD COLUMN `zonePrice` DECIMAL(10,2) NULL DEFAULT NULL AFTER `collectionFk`, -ADD COLUMN `zoneBonus` DECIMAL(10,2) NULL DEFAULT NULL AFTER `zonePrice`; diff --git a/db/changes/10141-zoneDoCalc/01-ticketCreateWithUser.sql b/db/changes/10141-zoneDoCalc/01-ticketCreateWithUser.sql deleted file mode 100644 index 867cd1c0d..000000000 --- a/db/changes/10141-zoneDoCalc/01-ticketCreateWithUser.sql +++ /dev/null @@ -1,96 +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; - DECLARE vPrice DECIMAL(10,2); - DECLARE vBonus DECIMAL(10,2); - - 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, price, bonus INTO vZoneFk, vPrice, vBonus - 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 ticket ( - clientFk, - shipped, - addressFk, - agencyModeFk, - nickname, - warehouseFk, - routeFk, - companyFk, - landed, - zoneFk, - zonePrice, - zoneBonus - ) - SELECT - vClientId, - vShipped, - a.id, - vAgencyModeFk, - a.nickname, - vWarehouseFk, - IF(vRouteFk,vRouteFk,NULL), - vCompanyFk, - vlanded, - vZoneFk, - vPrice, - vBonus - 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/10141-zoneDoCalc/01-ticket_componentUpdate.sql b/db/changes/10141-zoneDoCalc/01-ticket_componentUpdate.sql deleted file mode 100644 index 14ff6f484..000000000 --- a/db/changes/10141-zoneDoCalc/01-ticket_componentUpdate.sql +++ /dev/null @@ -1,82 +0,0 @@ -USE `vn`; -DROP procedure IF EXISTS `ticket_componentUpdate`; - -DELIMITER $$ -USE `vn`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `ticket_componentUpdate`( - vTicketFk INT, - vClientFk INT, - vAgencyModeFk INT, - vAddressFk INT, - vZoneFk INT, - vWarehouseFk TINYINT, - vCompanyFk SMALLINT, - vShipped DATETIME, - vLanded DATE, - vIsDeleted BOOLEAN, - vHasToBeUnrouted BOOLEAN, - vOption INT) -BEGIN - DECLARE vPrice DECIMAL(10,2); - DECLARE vBonus DECIMAL(10,2); - DECLARE EXIT HANDLER FOR SQLEXCEPTION - BEGIN - ROLLBACK; - RESIGNAL; - END; - - START TRANSACTION; - - IF (SELECT addressFk FROM ticket WHERE id = vTicketFk) <> vAddressFk THEN - - UPDATE ticket t - JOIN address a ON a.id = vAddressFk - SET t.nickname = a.nickname - WHERE t.id = vTicketFk; - - END IF; - - CALL vn.zone_getShippedWarehouse(vlanded, vAddressFk, vAgencyModeFk); - - SELECT zoneFk, price, bonus INTO vZoneFk, vPrice, vBonus - FROM tmp.zoneGetShipped - WHERE shipped = vShipped AND warehouseFk = vWarehouseFk LIMIT 1; - - UPDATE ticket t - SET - t.clientFk = vClientFk, - t.agencyModeFk = vAgencyModeFk, - t.addressFk = vAddressFk, - t.zoneFk = vZoneFk, - t.zonePrice = vPrice, - t.zoneBonus = vBonus, - t.warehouseFk = vWarehouseFk, - t.companyFk = vCompanyFk, - t.landed = vLanded, - t.shipped = vShipped, - t.isDeleted = vIsDeleted - WHERE - t.id = vTicketFk; - - IF vHasToBeUnrouted THEN - UPDATE ticket t SET t.routeFk = NULL - WHERE t.id = vTicketFk; - END IF; - - IF vOption <> 8 THEN - DROP TEMPORARY TABLE IF EXISTS tmp.sale; - CREATE TEMPORARY TABLE tmp.sale - (PRIMARY KEY (saleFk)) - ENGINE = MEMORY - SELECT id AS saleFk, vWarehouseFk warehouseFk - FROM sale s WHERE s.ticketFk = vTicketFk; - - CALL ticketComponentUpdateSale (vOption); - - DROP TEMPORARY TABLE tmp.sale; - END IF; - COMMIT; -END$$ - -DELIMITER ; - diff --git a/db/changes/10141-zoneDoCalc/01-zoneClosure_recalc.sql b/db/changes/10141-zoneDoCalc/01-zoneClosure_recalc.sql deleted file mode 100644 index b7dbf675a..000000000 --- a/db/changes/10141-zoneDoCalc/01-zoneClosure_recalc.sql +++ /dev/null @@ -1,49 +0,0 @@ -USE `vn`; -DROP procedure IF EXISTS `zoneClosure_recalc`; - -DELIMITER $$ -USE `vn`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `zoneClosure_recalc`() -proc: BEGIN -/** - * Recalculates the delivery time (hour) for every zone in days + scope in future - */ - DECLARE vScope INT; - DECLARE vCounter INT DEFAULT 0; - DECLARE vShipped DATE DEFAULT CURDATE(); - - DECLARE CONTINUE HANDLER FOR SQLEXCEPTION - BEGIN - DO RELEASE_LOCK('vn.zoneClosure_recalc'); - RESIGNAL; - END; - - IF NOT GET_LOCK('vn.zoneClosure_recalc', 0) THEN - LEAVE proc; - END IF; - - SELECT scope INTO vScope - FROM zoneConfig; - - DROP TEMPORARY TABLE IF EXISTS tmp.zone; - CREATE TEMPORARY TABLE tmp.zone - (INDEX (id)) - ENGINE = MEMORY - SELECT id FROM zone; - - TRUNCATE TABLE zoneClosure; - - WHILE vCounter <= vScope DO - CALL zone_getOptionsForShipment(vShipped, TRUE); - INSERT INTO zoneClosure(zoneFk, dated, `hour`) - SELECT zoneFk, vShipped, `hour` FROM tmp.zoneOption; - - SET vCounter = vCounter + 1; - SET vShipped = TIMESTAMPADD(DAY, 1, vShipped); - END WHILE; - - DROP TEMPORARY TABLE tmp.zone; - DO RELEASE_LOCK('vn.zoneClosure_recalc'); -END$$ - -DELIMITER ; \ No newline at end of file diff --git a/db/changes/10141-zoneDoCalc/02-insertPastTickets.sql b/db/changes/10141-zoneDoCalc/02-insertPastTickets.sql deleted file mode 100644 index 864bf04c6..000000000 --- a/db/changes/10141-zoneDoCalc/02-insertPastTickets.sql +++ /dev/null @@ -1,62 +0,0 @@ -USE `vn`; -DROP procedure IF EXISTS `zone_doCalcInitialize`; - -DELIMITER $$ -USE `vn`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `zone_doCalcInitialize`() -proc: BEGIN -/** - * Initialize ticket - * si en 01-07-20 aun esta este proc, kkear - */ - DECLARE vDone BOOL; - DECLARE vTicketFk INT; - DECLARE vLanded DATE; - DECLARE vZoneFk INT; - - DECLARE cCur CURSOR FOR - SELECT t.id, t.landed, t.zoneFk - FROM ticket t - WHERE (zonePrice IS NULL OR zoneBonus IS NULL) - AND landed >= '2019-01-01' AND shipped >= '2019-01-01' - GROUP BY landed, zoneFk; - - DECLARE CONTINUE HANDLER FOR NOT FOUND - SET vDone = TRUE; - - OPEN cCur; - - myLoop: LOOP - SET vDone = FALSE; - FETCH cCur INTO vTicketFk, vLanded, vZoneFk; - - IF vDone THEN - LEAVE myLoop; - END IF; - - DROP TEMPORARY TABLE IF EXISTS tmp.zone; - CREATE TEMPORARY TABLE tmp.zone - (INDEX (id)) - ENGINE = MEMORY - SELECT vZoneFk id; - - CALL zone_getOptionsForLanding(vLanded, TRUE); - - UPDATE ticket t - LEFT JOIN tmp.zoneOption zo ON TRUE - SET zonePrice = zo.price, zoneBonus = zo.bonus - WHERE t.zoneFk = vZoneFk AND landed = vLanded; - - UPDATE ticket t - LEFT JOIN vn.zone z ON z.id = t.zoneFk - SET zonePrice = z.price, zoneBonus = z.bonus - WHERE t.zonePrice IS NULL AND z.id = vZoneFk - AND landed >= '2019-01-01' AND shipped >= '2019-01-01'; - - END LOOP; - - CLOSE cCur; - -END$$ - -DELIMITER ; \ No newline at end of file diff --git a/db/changes/10141-zoneDoCalc/02-procNoOverlap.sql b/db/changes/10141-zoneDoCalc/02-procNoOverlap.sql deleted file mode 100644 index 253264ce9..000000000 --- a/db/changes/10141-zoneDoCalc/02-procNoOverlap.sql +++ /dev/null @@ -1,30 +0,0 @@ -USE `util`; -DROP procedure IF EXISTS `procNoOverlap`; - -DELIMITER $$ -USE `util`$$ -CREATE PROCEDURE `procNoOverlap` (procName VARCHAR(255)) -SQL SECURITY INVOKER -proc: BEGIN -/** - * call procedure without overlap - */ - DECLARE vIsChanged BOOL; - - DECLARE CONTINUE HANDLER FOR SQLEXCEPTION - BEGIN - DO RELEASE_LOCK(procName); - RESIGNAL; - END; - - IF !GET_LOCK(procName, 0) THEN - LEAVE proc; - END IF; - - CALL exec(CONCAT('CALL ', procName)); - - DO RELEASE_LOCK(procName); -END$$ - -DELIMITER ; - diff --git a/db/changes/10141-zoneDoCalc/03-getOptionsForLanding.sql b/db/changes/10141-zoneDoCalc/03-getOptionsForLanding.sql deleted file mode 100644 index e0f5f9a48..000000000 --- a/db/changes/10141-zoneDoCalc/03-getOptionsForLanding.sql +++ /dev/null @@ -1,66 +0,0 @@ -USE `vn`; -DROP procedure IF EXISTS `zone_getOptionsForLanding`; - -DELIMITER $$ -USE `vn`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `zone_getOptionsForLanding`(vLanded DATE, vShowExpiredZones BOOLEAN) -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 - */ - DROP TEMPORARY TABLE IF EXISTS tmp.zoneOption; - CREATE TEMPORARY TABLE tmp.zoneOption - ENGINE = MEMORY - SELECT - zoneFk, - `hour`, - travelingDays, - price, - bonus, - TIMESTAMPADD(DAY, -travelingDays, vLanded) shipped - FROM ( - SELECT t.id zoneFk, - TIME(IFNULL(e.`hour`, z.`hour`)) `hour`, - IFNULL(e.travelingDays, z.travelingDays) travelingDays, - IFNULL(e.price, z.price) price, - IFNULL(e.bonus, z.bonus) bonus - 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`) - ) - ORDER BY - zoneFk, - CASE - WHEN e.`type` = 'day' - THEN 1 - WHEN e.`type` = 'range' - THEN 2 - ELSE 3 - END - ) t - GROUP BY zoneFk; - - DELETE t FROM tmp.zoneOption t - JOIN zoneExclusion e - ON e.zoneFk = t.zoneFk AND e.`dated` = vLanded; - - IF NOT vShowExpiredZones THEN - DELETE FROM tmp.zoneOption - WHERE shipped < CURDATE() - OR (shipped = CURDATE() AND CURTIME() > `hour`); - END IF; -END$$ - -DELIMITER ; \ No newline at end of file diff --git a/db/changes/10141-zoneDoCalc/03-rutasAnalyze.sql b/db/changes/10141-zoneDoCalc/03-rutasAnalyze.sql deleted file mode 100644 index 313f2f797..000000000 --- a/db/changes/10141-zoneDoCalc/03-rutasAnalyze.sql +++ /dev/null @@ -1,171 +0,0 @@ -USE `vn`; -DROP procedure IF EXISTS `rutasAnalyze`; - -DELIMITER $$ -USE `vn`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `rutasAnalyze`(vYear INT, vMonth INT) -BEGIN - -/* Analiza los costes de las rutas de reparto y lo almacena en la tabla Rutas_Master -* -* PAK 15/4/2019 -*/ - - DELETE FROM bi.rutasBoard - WHERE year = vYear AND month = vMonth; - - -- Rellenamos la tabla con los datos de las rutas VOLUMETRICAS, especialmente con los bultos "virtuales" - INSERT INTO bi.rutasBoard(year, - month, - warehouse_id, - Id_Ruta, - Id_Agencia, - km, - Dia, - Fecha, - Bultos, - Matricula, - Tipo, - Terceros) - SELECT YEAR(r.created), - MONTH(r.created), - GREATEST(1,a.warehouseFk), - r.id, - r.agencyModeFk, - r.kmEnd - r.kmStart, - DAYNAME(r.created), - r.created, - SUM(sv.volume / ebv.m3), - v.numberPlate, - IF(ISNULL(`r`.`cost`), 'P', 'A'), - r.cost - FROM vn.route r - JOIN vn.ticket t ON t.routeFk = r.id - LEFT JOIN vn.zone z ON z.id = t.zoneFk - LEFT JOIN vn.agencyMode am ON am.id = r.agencyModeFk - LEFT JOIN vn.agency a ON a.id = am.agencyFk - LEFT JOIN vn.vehicle v ON v.id = r.vehicleFk - JOIN vn.saleVolume sv ON sv.ticketFk = t.id - JOIN vn.expeditionBoxVol ebv ON ebv.boxFk = 71 - WHERE YEAR(r.created) = vYear AND MONTH(r.created) = vMonth - AND z.isVolumetric - GROUP BY r.id; - - -- Rellenamos la tabla con los datos de las rutas NO VOLUMETRICAS, especialmente con los bultos "virtuales" - INSERT INTO bi.rutasBoard(year, - month, - warehouse_id, - Id_Ruta, - Id_Agencia, - km, - Dia, - Fecha, - Bultos, - Matricula, - Tipo, - Terceros) - SELECT YEAR(r.created), - MONTH(r.created), - GREATEST(1,a.warehouseFk), - r.id, - r.agencyModeFk, - r.kmEnd - r.kmStart, - DAYNAME(r.created), - r.created, - SUM(t.packages), - v.numberPlate, - IF(ISNULL(`r`.`cost`), 'P', 'A'), - r.cost - FROM vn.route r - JOIN vn.ticket t ON t.routeFk = r.id - LEFT JOIN vn.zone z ON z.id = t.zoneFk - LEFT JOIN vn.agencyMode am ON am.id = r.agencyModeFk - LEFT JOIN vn.agency a ON a.id = am.agencyFk - LEFT JOIN vn.vehicle v ON v.id = r.vehicleFk - WHERE YEAR(r.created) = vYear AND MONTH(r.created) = vMonth - AND z.isVolumetric = FALSE - GROUP BY r.id - ON DUPLICATE KEY UPDATE Bultos = Bultos + VALUES(Bultos); - - -- Coste REAL de cada bulto "virtual", de acuerdo con el valor apuntado a mano en la ruta - UPDATE bi.rutasBoard r - INNER JOIN vn2008.Rutas_Master rm ON rm.año = r.year AND rm.mes = r.month AND rm.warehouse_id = r.warehouse_id - SET r.coste_bulto = IF(r.Tipo ='A', r.Terceros, r.km * rm.coste_km ) / r.Bultos - WHERE r.Bultos > 0 - AND rm.año = vYear - AND rm.mes = vMonth; - - -- Coste PRACTICO de cada bulto, de acuerdo con los componentes de tipo AGENCIA en cada linea de venta - UPDATE bi.rutasBoard r - JOIN ( - SELECT t.routeFk, sum(s.quantity * sc.value) practicoTotal - FROM vn.route r - JOIN vn.time tm ON tm.dated = r.created - JOIN vn.ticket t ON t.routeFk = r.id - JOIN vn.sale s ON s.ticketFk = t.id - JOIN vn.saleComponent sc ON sc.saleFk = s.id - JOIN vn.`component` c ON c.id = sc.componentFk - JOIN vn.componentType ct ON ct.id = c.typeFk - WHERE ct.type = 'agencia' - AND tm.year = vYear - AND tm.month = vMonth - GROUP BY r.id - ) sub ON sub.routeFk = r.Id_Ruta - SET r.practico = sub.practicoTotal / r.Bultos; - - -- Coste TEORICO de una caja "virtual" para cada ruta, teniendo en cuenta que hay carros, pallets, etc - UPDATE bi.rutasBoard r - JOIN ( - SELECT t.routeFk, - SUM(t.zonePrice/ ebv.ratio)/ count(*) AS BultoTeoricoMedio - FROM vn.ticket t - JOIN vn.route r ON r.id = t.routeFk - JOIN vn.time tm ON tm.dated = r.created - JOIN vn.expedition e ON e.ticketFk = t.id - JOIN vn.expeditionBoxVol ebv ON ebv.boxFk = e.isBox - JOIN vn.address ad ON ad.id = t.addressFk - JOIN vn.client c ON c.id = ad.clientFk - LEFT JOIN vn.zone z ON z.id = t.zoneFk - WHERE tm.year = vYear - AND tm.month = vMonth - AND z.isVolumetric = FALSE - GROUP BY t.routeFk) sub ON r.Id_Ruta = sub.routeFk - SET r.teorico = sub.BultoTeoricoMedio; - - -- Coste VOLUMETRICO TEORICO de una caja "virtual" para cada ruta - UPDATE bi.rutasBoard r - JOIN ( - SELECT t.routeFk, - SUM(freight) AS BultoTeoricoMedio - FROM vn.ticket t - JOIN vn.route r ON r.id = t.routeFk - JOIN vn.time tm ON tm.dated = r.created - JOIN vn.saleVolume sf ON sf.ticketFk = t.id - JOIN vn.client c ON c.id = t.clientFk - JOIN vn.zone z ON z.id = t.zoneFk - WHERE tm.year = vYear - AND tm.month = vMonth - AND z.isVolumetric != FALSE - GROUP BY t.routeFk) sub ON r.Id_Ruta = sub.routeFk - SET r.teorico = sub.BultoTeoricoMedio / r.Bultos; - - -- La diferencia entre el teorico y el practico se deberia de cobrar en greuges, cada noche - UPDATE bi.rutasBoard r - JOIN ( - SELECT t.routeFk, - Sum(g.amount) AS greuge - FROM vn.ticket t - JOIN vn.route r ON r.id = t.routeFk - JOIN vn.time tm ON tm.dated = r.created - JOIN vn.greuge g ON g.ticketFk = t.id - JOIN vn.greugeType gt ON gt.id = g.greugeTypeFk - WHERE tm.year = vYear - AND tm.month = vMonth - AND gt.name = 'Diferencia portes' - GROUP BY t.routeFk) sub ON r.Id_Ruta = sub.routeFk - SET r.greuge = sub.greuge / r.Bultos; - -END$$ - -DELIMITER ; - diff --git a/db/changes/10141-zoneDoCalc/03-saleVolume.sql b/db/changes/10141-zoneDoCalc/03-saleVolume.sql deleted file mode 100644 index 2ded49a8d..000000000 --- a/db/changes/10141-zoneDoCalc/03-saleVolume.sql +++ /dev/null @@ -1,26 +0,0 @@ -USE `vn`; -CREATE - OR REPLACE ALGORITHM = UNDEFINED - DEFINER = `root`@`%` - SQL SECURITY DEFINER -VIEW `saleVolume` AS - SELECT - `s`.`ticketFk` AS `ticketFk`, - `s`.`id` AS `saleFk`, - IFNULL(ROUND(((((`i`.`compression` * (GREATEST(`i`.`density`, 167) / 167)) * `ic`.`cm3`) * `s`.`quantity`) / 1000), - 2), - 0) AS `litros`, - `t`.`routeFk` AS `routeFk`, - `t`.`shipped` AS `shipped`, - (((`s`.`quantity` * `ic`.`cm3`) * `i`.`compression`) / 1000000) AS `volume`, - ((((`s`.`quantity` * `ic`.`cm3`) * `i`.`compression`) * (GREATEST(`i`.`density`, 167) / 167)) / 1000000) AS `physicalWeight`, - (((`s`.`quantity` * `ic`.`cm3`) * `i`.`density`) / 1000000) AS `weight`, - (((`s`.`quantity` * `ic`.`cm3`) * `i`.`compression`) / 1000000) AS `physicalVolume`, - ((((`s`.`quantity` * `ic`.`cm3`) * `t`.`zonePrice`) * `i`.`compression`) / `cb`.`volume`) AS `freight` - FROM - ((((`sale` `s` - JOIN `item` `i` ON ((`i`.`id` = `s`.`itemFk`))) - JOIN `ticket` `t` ON ((`t`.`id` = `s`.`ticketFk`))) - JOIN `packaging` `cb` ON ((`cb`.`id` = '94'))) - JOIN `itemCost` `ic` ON (((`ic`.`itemFk` = `s`.`itemFk`) - AND (`ic`.`warehouseFk` = `t`.`warehouseFk`)))); diff --git a/db/changes/10141-zoneDoCalc/03-viewSaleFreight__.sql b/db/changes/10141-zoneDoCalc/03-viewSaleFreight__.sql deleted file mode 100644 index 903c8b48a..000000000 --- a/db/changes/10141-zoneDoCalc/03-viewSaleFreight__.sql +++ /dev/null @@ -1,24 +0,0 @@ -DROP VIEW IF EXISTS `vn`.`saleFreight` ; -USE `vn`; -CREATE - OR REPLACE ALGORITHM = UNDEFINED - DEFINER = `root`@`%` - SQL SECURITY DEFINER -VIEW `saleFreight__` AS - SELECT - `s`.`ticketFk` AS `ticketFk`, - `t`.`clientFk` AS `clientFk`, - `t`.`routeFk` AS `routeFk`, - `s`.`id` AS `saleFk`, - `t`.`zoneFk` AS `zoneFk`, - `t`.`companyFk` AS `companyFk`, - `t`.`shipped` AS `shipped`, - `t`.`zonePrice` AS `price`, - ((((`s`.`quantity` * `r`.`cm3`) * `t`.`zonePrice`) * `i`.`compression`) / `cb`.`volume`) AS `freight` - FROM - ((((`vn`.`sale` `s` - JOIN `vn`.`item` `i` ON ((`i`.`id` = `s`.`itemFk`))) - JOIN `vn`.`ticket` `t` ON ((`t`.`id` = `s`.`ticketFk`))) - JOIN `vn`.`packaging` `cb` ON ((`cb`.`id` = '94'))) - JOIN `bi`.`rotacion` `r` ON (((`r`.`Id_Article` = `s`.`itemFk`) - AND (`r`.`warehouse_id` = `t`.`warehouseFk`)))); diff --git a/db/changes/10141-zoneDoCalc/03-zone_geShippedWarehouse.sql b/db/changes/10141-zoneDoCalc/03-zone_geShippedWarehouse.sql deleted file mode 100644 index b4605ec04..000000000 --- a/db/changes/10141-zoneDoCalc/03-zone_geShippedWarehouse.sql +++ /dev/null @@ -1,43 +0,0 @@ -USE `vn`; -DROP procedure IF EXISTS `zone_getShippedWarehouse`; - -DELIMITER $$ -USE `vn`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `zone_getShippedWarehouse`(vLanded DATE, vAddressFk INT, vAgencyModeFk INT) -BEGIN -/** - * Devuelve la mínima fecha de envío para cada warehouse - * - * @param vLanded La fecha de recepcion - * @param vAddressFk Id del consignatario - * @param vAgencyModeFk Id de la agencia - * @return tmp.zoneGetShipped - */ - - CALL zone_getFromGeo(address_getGeo(vAddressFk)); - CALL zone_getOptionsForLanding(vLanded,TRUE); - - DROP TEMPORARY TABLE IF EXISTS tmp.zoneGetShipped; - CREATE TEMPORARY TABLE tmp.zoneGetShipped - ENGINE = MEMORY - SELECT * FROM ( - SELECT zo.zoneFk, - TIMESTAMPADD(DAY,-zo.travelingDays, vLanded) shipped, - zo.`hour`, - zw.warehouseFk, - z.agencyModeFk, - zo.price, - zo.bonus - FROM tmp.zoneOption zo - JOIN zoneWarehouse zw ON zw.zoneFk = zo.zoneFk - JOIN zone z ON z.id = zo.zoneFk - WHERE z.agencyModeFk = vAgencyModeFk - ORDER BY shipped) t - GROUP BY warehouseFk; - - DROP TEMPORARY TABLE - tmp.zone, - tmp.zoneOption; -END$$ - -DELIMITER ; \ No newline at end of file diff --git a/db/changes/10141-zoneDoCalc/03-zone_getAgency.sql b/db/changes/10141-zoneDoCalc/03-zone_getAgency.sql deleted file mode 100644 index b2837d43c..000000000 --- a/db/changes/10141-zoneDoCalc/03-zone_getAgency.sql +++ /dev/null @@ -1,42 +0,0 @@ -USE `vn`; -DROP procedure IF EXISTS `zone_getAgency`; - -DELIMITER $$ -USE `vn`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `zone_getAgency`(vAddress INT, vLanded DATE) -BEGIN -/** - * Devuelve el listado de agencias disponibles para la fecha - * y dirección pasadas. - * - * @param vAddress Id de dirección de envío, %NULL si es recogida - * @param vLanded Fecha de recogida - * @select Listado de agencias disponibles - */ - - CALL zone_getFromGeo(address_getGeo(vAddress)); - CALL zone_getOptionsForLanding(vLanded, FALSE); - - DROP TEMPORARY TABLE IF EXISTS tmp.zoneGetAgency; - CREATE TEMPORARY TABLE tmp.zoneGetAgency - (INDEX (agencyModeFk)) ENGINE = MEMORY - SELECT am.name agencyMode, - am.description, - z.agencyModeFk, - am.deliveryMethodFk, - TIMESTAMPADD(DAY,-zo.travelingDays, vLanded) shipped, - TRUE isIncluded, - zo.zoneFk - FROM tmp.zoneOption zo - JOIN zone z ON z.id = zo.zoneFk - JOIN agencyMode am ON am.id = z.agencyModeFk - GROUP BY agencyModeFk; - - DROP TEMPORARY TABLE - tmp.zone, - tmp.zoneOption; - -END$$ - -DELIMITER ; - diff --git a/db/changes/10141-zoneDoCalc/03-zone_getAvailable.sql b/db/changes/10141-zoneDoCalc/03-zone_getAvailable.sql deleted file mode 100644 index 2ef1a1ae9..000000000 --- a/db/changes/10141-zoneDoCalc/03-zone_getAvailable.sql +++ /dev/null @@ -1,18 +0,0 @@ -USE `vn`; -DROP procedure IF EXISTS `zone_getAvailable`; - -DELIMITER $$ -USE `vn`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `zone_getAvailable`(vAddress INT, vLanded DATE) -BEGIN - CALL zone_getFromGeo(address_getGeo(vAddress)); - CALL zone_getOptionsForLanding(vLanded, FALSE); - - SELECT * FROM tmp.zoneOption; - - DROP TEMPORARY TABLE - tmp.zone, - tmp.zoneOption; -END$$ - -DELIMITER ; \ No newline at end of file diff --git a/db/changes/10141-zoneDoCalc/03-zone_getWarehouse.sql b/db/changes/10141-zoneDoCalc/03-zone_getWarehouse.sql deleted file mode 100644 index c1cea8b13..000000000 --- a/db/changes/10141-zoneDoCalc/03-zone_getWarehouse.sql +++ /dev/null @@ -1,41 +0,0 @@ -USE `vn`; -DROP procedure IF EXISTS `zone_getWarehouse`; - -DELIMITER $$ -USE `vn`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `zone_getWarehouse`(vAddress INT, vLanded DATE, vWarehouse INT) -BEGIN -/** - * Devuelve el listado de agencias disponibles para la fecha, - * dirección y almacén pasados. - * - * @param vAddress - * @param vWarehouse warehouse - * @param vLanded Fecha de recogida - * @select Listado de agencias disponibles - */ - - CALL zone_getFromGeo(address_getGeo(vAddress)); - CALL zone_getOptionsForLanding(vLanded, FALSE); - - SELECT am.id agencyModeFk, - am.name agencyMode, - am.description, - am.deliveryMethodFk, - TIMESTAMPADD(DAY, -zo.travelingDays, vLanded) shipped, - zw.warehouseFk, - z.id zoneFk - FROM tmp.zoneOption zo - JOIN zone z ON z.id = zo.zoneFk - JOIN agencyMode am ON am.id = z.agencyModeFk - JOIN zoneWarehouse zw ON zw.zoneFk = zo.zoneFk - WHERE zw.warehouseFk - GROUP BY z.agencyModeFk - ORDER BY agencyMode; - - DROP TEMPORARY TABLE - tmp.zone, - tmp.zoneOption; -END$$ - -DELIMITER ; \ No newline at end of file diff --git a/db/changes/10142-kings/00-ACL.sql b/db/changes/10142-kings/00-ACL.sql deleted file mode 100644 index 9a43990d0..000000000 --- a/db/changes/10142-kings/00-ACL.sql +++ /dev/null @@ -1 +0,0 @@ -REPLACE INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`) VALUES ('CustomsAgent', '*', '*', 'ALLOW', 'ROLE', 'employee'); diff --git a/db/changes/10142-kings/01-customsAgent.sql b/db/changes/10142-kings/01-customsAgent.sql deleted file mode 100644 index 34f77f20f..000000000 --- a/db/changes/10142-kings/01-customsAgent.sql +++ /dev/null @@ -1,11 +0,0 @@ -CREATE TABLE `vn`.`customsAgent` ( - `id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT, - `fiscalName` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL, - `street` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `nif` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL, - `phone` varchar(16) COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `email` varchar(150) COLLATE utf8mb4_unicode_ci DEFAULT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; - -ALTER TABLE `vn`.`customsAgent` - ADD UNIQUE KEY `nif_UNIQUE` (`nif`); \ No newline at end of file diff --git a/db/changes/10142-kings/02-incoterms.sql b/db/changes/10142-kings/02-incoterms.sql deleted file mode 100644 index 3e31b0c89..000000000 --- a/db/changes/10142-kings/02-incoterms.sql +++ /dev/null @@ -1,10 +0,0 @@ -CREATE TABLE `vn`.`incoterms` ( - `code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, - `name` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Internacional Commercial Terms'; - -ALTER TABLE `vn`.`incoterms` - ADD PRIMARY KEY (`code`); - -REPLACE INTO `vn`.`incoterms` (`code`, `name`) VALUES -('FAS', 'Free Alongside Ship'); diff --git a/db/changes/10142-kings/03-address.sql b/db/changes/10142-kings/03-address.sql deleted file mode 100644 index 042c2e17e..000000000 --- a/db/changes/10142-kings/03-address.sql +++ /dev/null @@ -1,26 +0,0 @@ -ALTER TABLE `vn`.`address` -ADD COLUMN `customsAgentFk` INT NULL DEFAULT NULL AFTER `isEqualizated`; - -ALTER TABLE `vn`.`address` -ADD COLUMN `incotermsFk` VARCHAR(3) NULL DEFAULT NULL AFTER `customsAgentFk`; - - -ALTER TABLE `vn`.`address` -ADD INDEX `address_customsAgentFk_idx` (`customsAgentFk` ASC); - -ALTER TABLE `vn`.`address` -ADD INDEX `address_incotermsFk_idx` (`incotermsFk` ASC); - -ALTER TABLE `vn`.`address` -ADD CONSTRAINT `address_customsAgentFk` - FOREIGN KEY (`customsAgentFk`) - REFERENCES `vn`.`customsAgent` (`id`) - ON DELETE RESTRICT - ON UPDATE CASCADE; - -ALTER TABLE `vn`.`address` -ADD CONSTRAINT `address_incotermsFk` - FOREIGN KEY (`incotermsFk`) - REFERENCES `vn`.`incoterms` (`code`) - ON DELETE RESTRICT - ON UPDATE CASCADE; \ No newline at end of file diff --git a/db/changes/10150-entry/00-ticketUpdateAction.sql b/db/changes/10150-entry/00-ticketUpdateAction.sql deleted file mode 100644 index a05c65d7a..000000000 --- a/db/changes/10150-entry/00-ticketUpdateAction.sql +++ /dev/null @@ -1,5 +0,0 @@ -ALTER TABLE `vn`.`ticketUpdateAction` -ADD COLUMN `code` VARCHAR(45) NOT NULL AFTER `description`; - -UPDATE `vn`.`ticketUpdateAction` SET `code`='changePrice' WHERE `id`='1'; -UPDATE `vn`.`ticketUpdateAction` SET `code`='turnInMana' WHERE `id`='3'; diff --git a/db/changes/10160-postValentineDay/00-ACL.sql b/db/changes/10160-postValentineDay/00-ACL.sql deleted file mode 100644 index 5b6301e3d..000000000 --- a/db/changes/10160-postValentineDay/00-ACL.sql +++ /dev/null @@ -1,2 +0,0 @@ -INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`) - VALUES ('Intrastat', '*', '*', 'ALLOW', 'ROLE', 'buyer'); diff --git a/db/changes/10160-postValentineDay/00-sample.sql b/db/changes/10160-postValentineDay/00-sample.sql deleted file mode 100644 index d34835888..000000000 --- a/db/changes/10160-postValentineDay/00-sample.sql +++ /dev/null @@ -1,6 +0,0 @@ -ALTER TABLE `vn`.`sample` -ADD COLUMN `hasPreview` TINYINT(1) UNSIGNED NOT NULL DEFAULT '1' AFTER `hasCompany`, -CHANGE COLUMN `isVisible` `isVisible` TINYINT(1) UNSIGNED NOT NULL DEFAULT '1' , -CHANGE COLUMN `hasCompany` `hasCompany` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' ; - -UPDATE `vn`.`sample` SET `hasPreview` = '0' WHERE (`id` = '14'); diff --git a/db/changes/10161-postValentineDay/00-ACL.sql b/db/changes/10161-postValentineDay/00-ACL.sql deleted file mode 100644 index a7ac79486..000000000 --- a/db/changes/10161-postValentineDay/00-ACL.sql +++ /dev/null @@ -1,2 +0,0 @@ -INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`) - VALUES ('EntryLog', '*', 'READ', 'ALLOW', 'ROLE', 'buyer'); diff --git a/db/changes/10161-postValentineDay/00-borrame.sql b/db/changes/10161-postValentineDay/00-borrame.sql deleted file mode 100644 index 22d1f5dec..000000000 --- a/db/changes/10161-postValentineDay/00-borrame.sql +++ /dev/null @@ -1,4 +0,0 @@ -ALTER TABLE `vn`.`workerDocument` -ADD COLUMN `isReadableByWorker` TINYINT(1) NOT NULL DEFAULT 0 AFTER `document`; - -UPDATE `vn`.`workerDocument` SET `isReadableByWorker` = '1' WHERE (`id` = '1'); diff --git a/db/changes/10161-postValentineDay/00-workerTimeControlCheck.sql b/db/changes/10161-postValentineDay/00-workerTimeControlCheck.sql deleted file mode 100644 index 31bc4922b..000000000 --- a/db/changes/10161-postValentineDay/00-workerTimeControlCheck.sql +++ /dev/null @@ -1,182 +0,0 @@ - -DROP procedure IF EXISTS `vn`.`workerTimeControl_check`; - -DELIMITER $$ -CREATE DEFINER=`root`@`%` PROCEDURE `vn`.`workerTimeControl_check`(vUserFk INT, vTabletFk VARCHAR(100), vTimed DATETIME) -BEGIN - -/** - * Verifica si el empleado puede fichar en el momento actual, si puede fichar llama a vn.workerTimeControlAdd - * @param vUserFk Identificador del trabajador - * @return Retorna si encuentra un problema 'odd','maxTimeWork','breakDay','breakWeek' ; - * En caso de tener algun problema retorna el primero que encuentra - */ - DECLARE vLastIn DATETIME ; - DECLARE vLastOut DATETIME ; - DECLARE vDayWorkMax INT; - DECLARE vDayBreak INT; - DECLARE vWeekBreak INT ; - DECLARE vWeekMaxBreak INT; - DECLARE vWeekScope INT; - DECLARE vWeekMaxScope INT; - DECLARE vDayStayMax INT; - DECLARE vAskInOut INT; - DECLARE vTimedWorked INT; - DECLARE vCalendarStateType VARCHAR(20) DEFAULT NULL; - DECLARE vDepartmentFk INT; - DECLARE vTo VARCHAR(50) DEFAULT NULL; - DECLARE vUserName VARCHAR(50) DEFAULT NULL; - DECLARE vBody VARCHAR(255) DEFAULT NULL; - - IF (vTimed IS NULL) THEN - SET vTimed = NOW(); - END IF; - - SELECT dayBreak, weekBreak, weekScope, dayWorkMax, dayStayMax, weekMaxBreak, weekMaxScope, askInOut - INTO vDayBreak, vWeekBreak, vWeekScope, vDayWorkMax, vDayStayMax, vWeekMaxBreak, vWeekMaxScope, vAskInOut - FROM vn.workerTimeControlParams; - - SELECT MAX(timed) INTO vLastIn - FROM vn.workerTimeControl - WHERE userFk = vUserFk AND - direction = 'in'; - - SELECT MAX(timed) INTO vLastOut - FROM vn.workerTimeControl - WHERE userFk = vUserFk AND - direction = 'out'; - - SELECT email INTO vTo - FROM vn.worker w - WHERE w.id = (SELECT bossFk FROM vn.worker WHERE id = vUserFk); - - SELECT CONCAT(firstName,' ',lastName) INTO vUserName - FROM vn.worker w - WHERE w.id = vUserFk; - - -- VERIFICAR CONTRATO EN VIGOR - IF (SELECT COUNT(*) - FROM postgresql.business b - JOIN postgresql.profile pr ON pr.profile_id = b.client_id - JOIN postgresql.person p ON p.person_id = pr.person_id - JOIN vn.worker w ON w.id = p.id_trabajador - WHERE w.userFk = vUserFk AND - b.date_start <= CURDATE() AND - IFNULL(b.date_end,CURDATE()) >= CURDATE() - ) = 0 THEN - -- ENVIAMOS CORREO AL BOSSFK - SELECT CONCAT(vUserName,' No ha podido fichar por el siguiente problema: ',"No hay un contrato en vigor") INTO vBody; - CALL vn.mail_insert(vTo,vTo,'error al fichar',vBody); - CALL util.throw("No hay un contrato en vigor"); - END IF; - - -- VERIFICAR DEPARTAMENTO - IF vTabletFk IS NOT NULL THEN - IF ( SELECT COUNT(*) - FROM vn.tabletDepartment td - JOIN vn.workerTimeControlUserInfo wtcu ON wtcu.departmentFk = td.departmentFk - WHERE td.tabletFk = vTabletFk AND wtcu.userFk = vUserFk - ) = 0 THEN - -- ENVIAMOS CORREO AL BOSSFK - SELECT CONCAT(vUserName,' No ha podido fichar por el siguiente problema: ',"No perteneces a este departamento.") INTO vBody; - CALL vn.mail_insert(vTo,vTo,'error al fichar',vBody); - CALL util.throw("No perteneces a este departamento."); - END IF; - END IF; - - SELECT IFNULL(dayBreak, vDayBreak) INTO vDayBreak - FROM postgresql.business b - JOIN postgresql.profile pr ON pr.profile_id = b.client_id - JOIN postgresql.person p ON p.person_id = pr.person_id - JOIN postgresql. business_labour bl ON b.business_id = bl.business_id - JOIN postgresql.professional_category pc ON bl.professional_category_id = pc.professional_category_id - WHERE p.id_trabajador = vUserFk AND - b.date_start <= DATE(vTimed) AND - IFNULL(b.date_end, DATE(vTimed)) >= DATE(vTimed); - -- VERIFICAR DESCANSO DIARIO - -- 12 / 9 horas dependiendo del valor de vDayBreak - IF UNIX_TIMESTAMP(vTimed) - UNIX_TIMESTAMP(vLastOut) < vDayBreak THEN - -- ENVIAMOS CORREO AL BOSSFK - SELECT CONCAT(vUserName,' No ha podido fichar por el siguiente problema: ',"Descansos ", FORMAT(vDayBreak/3600,0) ," h") INTO vBody; - CALL vn.mail_insert(vTo,vTo,'error al fichar',vBody); - CALL util.throw(CONCAT("Descansos ", FORMAT(vDayBreak/3600,0) ," h")); - END IF; - - -- VERIFICAR FICHADAS IMPARES DEL ÚLTIMO DÍA QUE SE FICHÓ - IF (SELECT MOD(COUNT(*),2) -- <>0 - FROM vn.workerTimeControl - WHERE userFk = vUserFk AND - timed >= vLastIn - ) THEN - -- ENVIAMOS CORREO AL BOSSFK - SELECT CONCAT(vUserName,' No ha podido fichar por el siguiente problema: ',"Dias con fichadas impares") INTO vBody; - CALL vn.mail_insert(vTo,vTo,'error al fichar',vBody); - CALL util.throw("Dias con fichadas impares"); - END IF; - -- VERIFICAR VACACIONES - SELECT cs.type INTO vCalendarStateType - FROM postgresql.calendar_employee ce - JOIN postgresql.business b USING(business_id) - JOIN postgresql.profile pr ON pr.profile_id = b.client_id - JOIN postgresql.person p ON p.person_id = pr.person_id - JOIN postgresql.calendar_state cs USING(calendar_state_id) - JOIN vn.worker w ON w.id = p.id_trabajador - WHERE ce.date = CURDATE() AND - cs.isAllowedToWork = FALSE AND - w.userFk = vUserFk - LIMIT 1; - - IF(LENGTH(vCalendarStateType)) THEN - -- ENVIAMOS CORREO AL BOSSFK - SELECT CONCAT(vUserName,' No ha podido fichar por el siguiente problema: ',"Vacaciones") INTO vBody; - CALL vn.mail_insert(vTo,vTo,'error al fichar',vBody); - CALL util.throw(vCalendarStateType); - END IF; - - -- VERIFICAR DESCANSO SEMANAL - SET @vHasBreakWeek:= FALSE; - SET @vLastTimed:= UNIX_TIMESTAMP((vTimed - INTERVAL vWeekScope SECOND)); - - DROP TEMPORARY TABLE IF EXISTS tmp.trash; - CREATE TEMPORARY TABLE tmp.trash - SELECT IF(vWeekBreak-(UNIX_TIMESTAMP(timed)-@vLastTimed) <= 0, @vHasBreakWeek:=TRUE, TRUE) alias, - @vLastTimed:= UNIX_TIMESTAMP(timed) - FROM workerTimeControl - WHERE timed>= (vTimed - INTERVAL vWeekScope SECOND) AND - userFk= vUserFk AND - direction IN ('in','out') - ORDER BY timed ASC; - - IF UNIX_TIMESTAMP(vTimed) - UNIX_TIMESTAMP(vLastOut) < vWeekBreak AND @vHasBreakWeek = FALSE THEN -- REVISA SI EL DESCANSO SE HA REALIZADO DESPUÉS DE LA ÚLTIMA FICHADA - SET @vHasBreakWeek:= FALSE; - SET @vLastTimed:= UNIX_TIMESTAMP((vTimed - INTERVAL vWeekMaxScope SECOND)); - DROP TEMPORARY TABLE tmp.trash; - CREATE TEMPORARY TABLE tmp.trash - SELECT IF(vWeekMaxBreak-(UNIX_TIMESTAMP(timed)-@vLastTimed) <= 0, @vHasBreakWeek:=TRUE, TRUE) alias, - @vLastTimed:= UNIX_TIMESTAMP(timed) - FROM workerTimeControl - WHERE timed>= (vTimed - INTERVAL vWeekMaxScope SECOND) AND - userFk= vUserFk AND - direction IN ('in','out') - ORDER BY timed ASC; - IF UNIX_TIMESTAMP(vTimed) - UNIX_TIMESTAMP(vLastOut) < vWeekMaxBreak AND @vHasBreakWeek = FALSE THEN -- REVISA SI EL DESCANSO SE HA REALIZADO DESPUÉS DE LA ÚLTIMA FICHADA - -- ENVIAMOS CORREO AL BOSSFK - SELECT CONCAT(vUserName,' No ha podido fichar por el siguiente problema: ',"Descansos ", FORMAT(vWeekMaxBreak/3600,0) ," h") INTO vBody; - CALL vn.mail_insert(vTo,vTo,'error al fichar',vBody); - CALL util.throw(CONCAT( "Descansos ", FORMAT(vWeekMaxBreak/3600,0) ," h")); - END IF; - -- ENVIAMOS CORREO AL BOSSFK - SELECT CONCAT(vUserName,' No ha podido fichar por el siguiente problema: ',"Descansos ", FORMAT(vWeekBreak/3600,0) ," h") INTO vBody; - CALL vn.mail_insert(vTo,vTo,'error al fichar',vBody); - CALL util.warn(CONCAT( "Descansos ", FORMAT(vWeekBreak/3600,0) ," h")); - END IF; - DROP TEMPORARY TABLE tmp.trash; - - -- Preguntar dirección de la fichada - IF UNIX_TIMESTAMP(vTimed) - UNIX_TIMESTAMP(vLastIn) >= vAskInOut AND (SELECT MOD(COUNT(*),2) - FROM vn.workerTimeControl WHERE userFk = vUserFk AND timed >= vLastIn) THEN - CALL util.warn("AskInOut"); - END IF ; -END$$ - -DELIMITER ; diff --git a/db/changes/10162-fallas/00-acl.sql b/db/changes/10162-fallas/00-acl.sql deleted file mode 100644 index 376788af1..000000000 --- a/db/changes/10162-fallas/00-acl.sql +++ /dev/null @@ -1 +0,0 @@ -INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`) VALUES ('WorkerLog', '*', 'READ', 'ALLOW', 'ROLE', 'hr'); diff --git a/db/changes/10162-fallas/00-workerLog.sql b/db/changes/10162-fallas/00-workerLog.sql deleted file mode 100644 index 730b60aa5..000000000 --- a/db/changes/10162-fallas/00-workerLog.sql +++ /dev/null @@ -1,6 +0,0 @@ -ALTER TABLE `vn`.`workerLog` - ADD COLUMN `changedModel` VARCHAR(45) NULL DEFAULT NULL AFTER `description`, - ADD COLUMN `oldInstance` text CHARACTER SET utf8 COLLATE utf8_unicode_ci, - ADD COLUMN `newInstance` text CHARACTER SET utf8 COLLATE utf8_unicode_ci, - ADD COLUMN `changedModelId` int(11) DEFAULT NULL, - ADD COLUMN `changedModelValue` varchar(45) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL; \ No newline at end of file diff --git a/db/changes/10162-postValentineDay/00-collectionPlacement_get.sql b/db/changes/10162-postValentineDay/00-collectionPlacement_get.sql deleted file mode 100644 index d89f6a801..000000000 --- a/db/changes/10162-postValentineDay/00-collectionPlacement_get.sql +++ /dev/null @@ -1,108 +0,0 @@ -DROP procedure IF EXISTS `vn`.`collectionPlacement_get`; - -DELIMITER $$ -CREATE DEFINER=`root`@`%` PROCEDURE `vn`.`collectionPlacement_get`(vCollectionFk INT) -BEGIN - - DECLARE vCalcFk INT; - DECLARE vWarehouseFk INT; - DECLARE vWarehouseAliasFk INT; - - SELECT t.warehouseFk, w.aliasFk - INTO vWarehouseFk, vWarehouseAliasFk - FROM vn.ticket t - JOIN vn.ticketCollection tc ON tc.ticketFk = t.id - JOIN vn.warehouse w ON w.id = t.warehouseFk - WHERE tc.collectionFk = vCollectionFk - LIMIT 1; - - CALL cache.visible_refresh(vCalcFk,FALSE,vWarehouseFk); - - DROP TEMPORARY TABLE IF EXISTS tmp.parked; - CREATE TEMPORARY TABLE tmp.parked - ENGINE MEMORY - SELECT s.itemFk, 0 as quantity - FROM vn.ticketCollection tc - JOIN vn.sale s ON s.ticketFk = tc.ticketFk - WHERE tc.collectionFk = vCollectionFk; - - UPDATE tmp.parked pk - JOIN ( SELECT itemFk, sum(visible) as visible - FROM vn.itemShelvingStock iss - JOIN vn.warehouse w ON w.id = iss.warehouseFk - WHERE w.aliasFk = vWarehouseAliasFk - GROUP BY iss.itemFk ) iss ON iss.itemFk = pk.itemFk - SET pk.quantity = iss.visible; - - DROP TEMPORARY TABLE IF EXISTS tmp.`grouping`; - CREATE TEMPORARY TABLE tmp.`grouping` - ENGINE MEMORY - SELECT itemFk, `grouping` - FROM ( - SELECT itemFk, - CASE groupingMode - WHEN 0 THEN 1 - WHEN 2 THEN packing - ELSE `grouping` - END AS `grouping` - FROM buy b - JOIN entry e ON e.id = b.entryFk - JOIN travel tr ON tr.id = e.travelFk - WHERE tr.warehouseInFk = vWarehouseFk - AND landed BETWEEN (SELECT inventoried FROM vn.config LIMIT 1) AND CURDATE() - AND b.isIgnored = FALSE - ORDER BY tr.landed DESC - ) sub - GROUP BY sub.itemFk ; - - DROP TEMPORARY TABLE IF EXISTS tmp.grouping2; - CREATE TEMPORARY TABLE tmp.grouping2 - ENGINE MEMORY - SELECT * FROM tmp.`grouping`; - - - SELECT s.id as saleFk, s.itemFk, - p.code COLLATE utf8_general_ci as placement , - sh.code COLLATE utf8_general_ci as shelving, - ish.created, - ish.visible, - 0 as `order`, - IF(sc.isPreviousPreparedByPacking, ish.packing, g.`grouping`) as `grouping` - FROM vn.ticketCollection tc - JOIN vn.sale s ON s.ticketFk = tc.ticketFk - JOIN vn.itemShelving ish ON ish.itemFk = s.itemFk - JOIN vn.shelving sh ON sh.code = ish.shelvingFk - JOIN vn.parking p ON p.id = sh.parkingFk - JOIN vn.sector sc ON sc.id = p.sectorFk - JOIN vn.warehouse w ON w.id = sc.warehouseFk - JOIN tmp.`grouping` g ON g.itemFk = s.itemFk - WHERE tc.collectionFk = vCollectionFk - AND w.aliasFk = vWarehouseAliasFk - AND ish.visible > 0 - UNION ALL - SELECT s.id as saleFk, s.itemFk, - ip.code COLLATE utf8_general_ci as placement, - '' COLLATE latin1_general_ci as shelving, - modificationDate as created, - v.visible - p.quantity as visible, - 0 as `order`, - g.`grouping` - FROM vn.ticketCollection tc - JOIN vn.sale s ON s.ticketFk = tc.ticketFk - JOIN vn.itemPlacement ip ON ip.itemFk = s.itemFk AND ip.warehouseFk = vWarehouseFk - JOIN tmp.parked p ON p.itemFk = s.itemFk - JOIN cache.visible v ON v.item_id = s.itemFk AND v.calc_id = vCalcFk - LEFT JOIN tmp.grouping2 g ON g.itemFk = s.itemFk - WHERE tc.collectionFk = vCollectionFk - AND v.visible - p.quantity > 0; - - DROP TEMPORARY TABLE - tmp.parked, - tmp.`grouping`, - tmp.grouping2; -END - - -$$ - -DELIMITER ; \ No newline at end of file diff --git a/db/changes/10162-postValentineDay/00-collection_faults.sql b/db/changes/10162-postValentineDay/00-collection_faults.sql deleted file mode 100644 index 5faa42ca4..000000000 --- a/db/changes/10162-postValentineDay/00-collection_faults.sql +++ /dev/null @@ -1,39 +0,0 @@ -DROP procedure IF EXISTS `vn`.`collection_faults`; - -DELIMITER $$ - -CREATE DEFINER=`root`@`%` PROCEDURE `vn`.`collection_faults`( - vShelvingFk VARCHAR(10), - vQuantity INT, - vItemFk INT) -BEGIN - DECLARE vQuantityTotal INT DEFAULT 0; - DECLARE vshelve VARCHAR(2); - DECLARE vdeep INT(11); - DECLARE vpriority INT(11); - DECLARE vgrouping SMALLINT(5); - DECLARE vpacking INT(11); - DECLARE vpackagingFk VARCHAR(10); - DECLARE vlevel VARCHAR(45); - DECLARE vuserFk INT(10); - - - SELECT SUM(quantity),shelve,deep,priority,`grouping`,packing,packagingFk,`level`,userFk - INTO vQuantityTotal,vshelve,vdeep,vpriority,vgrouping,vpacking,vpackagingFk,vlevel,vuserFk - FROM vn.itemShelving - WHERE shelvingFk = vShelvingFk COLLATE utf8mb4_unicode_ci AND itemFk = vItemFk - GROUP BY itemFk; - - SELECT vQuantityTotal - vQuantity INTO vQuantityTotal; - - DELETE FROM vn.itemShelving WHERE shelvingFk = vShelvingFk COLLATE utf8mb4_unicode_ci AND itemFk = vItemFk; - - INSERT INTO vn.itemShelving (itemFk, shelvingFk,shelve,deep,quantity,visible,available,priority,`grouping`,packing,packagingFk,`level`,userFk ) - VALUES (vItemFk,vShelvingFk,vshelve,vdeep,vQuantityTotal,vQuantityTotal,vQuantityTotal,vpriority,vgrouping,vpacking,vpackagingFk,vlevel,vuserFk ); - - SELECT * FROM vn.itemShelving - WHERE shelvingFk = vShelvingFk COLLATE utf8mb4_unicode_ci AND itemFk = vItemFk; - -END$$ - -DELIMITER ; \ No newline at end of file diff --git a/db/changes/10162-postValentineDay/00-collection_updateSale.sql b/db/changes/10162-postValentineDay/00-collection_updateSale.sql deleted file mode 100644 index cce8f4ff5..000000000 --- a/db/changes/10162-postValentineDay/00-collection_updateSale.sql +++ /dev/null @@ -1,42 +0,0 @@ -DROP procedure IF EXISTS `vn`.`collection_updateSale`; - - -DELIMITER $$ -CREATE DEFINER=`root`@`%` PROCEDURE `vn`.`collection_updateSale`( - vSaleFk INT, - vOriginalQuantity INT, - vWorkerFk INT, - vStateFk INT, - vTicketFk INT) -BEGIN - - DECLARE vNumPrepared INT; - DECLARE vNumTotal INT; - - REPLACE INTO vn.saleTracking(saleFk,isChecked, originalQuantity, workerFk, actionFk,stateFk) - VALUES(vSaleFk,1,vOriginalQuantity,vWorkerFk,vStateFk,vStateFk); - - UPDATE vn.sale SET isPicked = 1 - WHERE id = vSaleFk; - - SELECT COUNT(s.id) INTO vNumPrepared - FROM vn.sale s - WHERE s.ticketFk = vTicketFk AND s.isPicked = 1; - - SELECT COUNT(s.id) INTO vNumTotal - FROM vn.sale s - WHERE s.ticketFk = vTicketFk; - - IF vNumPrepared = vNumTotal THEN - - INSERT INTO vncontrol.inter - SET state_id = vStateFk, Id_Ticket = vTicketFk, Id_Trabajador = vWorkerFk; - - CALL vn.collection_update(vTicketFk); - - END IF; - - -END$$ - -DELIMITER ; \ No newline at end of file diff --git a/db/changes/10162-postValentineDay/00-coolerPathDetail.sql b/db/changes/10162-postValentineDay/00-coolerPathDetail.sql deleted file mode 100644 index 7d3006544..000000000 --- a/db/changes/10162-postValentineDay/00-coolerPathDetail.sql +++ /dev/null @@ -1,13 +0,0 @@ -/*DROP view IF EXISTS `vn`.`coolerPathDetail`; - -CREATE - ALGORITHM = UNDEFINED - DEFINER = `root`@`%` - SQL SECURITY DEFINER -VIEW `vn`.`coolerPathDetail` AS - SELECT - `c`.`cooler_path_detail_id` AS `id`, - `c`.`cooler_path_id` AS `coolerPathFk`, - `c`.`pasillo` AS `hallway` - FROM - `vn2008`.`cooler_path_detail` `c`*/ \ No newline at end of file diff --git a/db/changes/10162-postValentineDay/00-sale_updateOriginalQuantity.sql b/db/changes/10162-postValentineDay/00-sale_updateOriginalQuantity.sql deleted file mode 100644 index debdd3ac2..000000000 --- a/db/changes/10162-postValentineDay/00-sale_updateOriginalQuantity.sql +++ /dev/null @@ -1,15 +0,0 @@ -DROP procedure IF EXISTS `vn`.`sale_updateOriginalQuantity`; - -DELIMITER $$ - -CREATE DEFINER=`root`@`%` PROCEDURE `vn`.`sale_updateOriginalQuantity`(vSale INT, vQuantity INT) -proc: BEGIN - -UPDATE vn.sale SET originalQuantity = vQuantity -WHERE id = vSale; - -SELECT * FROM vn.sale WHERE id = vSale; - -END$$ - -DELIMITER ; \ No newline at end of file diff --git a/db/changes/10162-postValentineDay/00-sector_getWarehouse.sql b/db/changes/10162-postValentineDay/00-sector_getWarehouse.sql deleted file mode 100644 index 90611b559..000000000 --- a/db/changes/10162-postValentineDay/00-sector_getWarehouse.sql +++ /dev/null @@ -1,14 +0,0 @@ -DROP procedure IF EXISTS `vn`.`sector_getWarehouse`; - -DELIMITER $$ - -CREATE DEFINER=`root`@`%` PROCEDURE `vn`.`sector_getWarehouse`(vSectorFk INT) -BEGIN - - SELECT s.warehouseFk - FROM vn.sector s - WHERE s.id = vSectorFk; - -END$$ - -DELIMITER ; \ No newline at end of file diff --git a/modules/ticket/back/methods/ticket/summary.js b/modules/ticket/back/methods/ticket/summary.js index b0a612bf3..2035b4d31 100644 --- a/modules/ticket/back/methods/ticket/summary.js +++ b/modules/ticket/back/methods/ticket/summary.js @@ -69,8 +69,7 @@ module.exports = Self => { } } } - }, - { + }, { relation: 'address', scope: { fields: ['street', 'city', 'provinceFk', 'phone', 'mobile'], @@ -81,8 +80,7 @@ module.exports = Self => { } } } - }, - { + }, { relation: 'notes', scope: { fields: ['id', 'observationTypeFk', 'description'], @@ -91,8 +89,7 @@ module.exports = Self => { fields: ['description'] } } - }, - { + }, { relation: 'state', scope: { fields: ['stateFk'], @@ -101,6 +98,11 @@ module.exports = Self => { fields: ['name'] } } + }, { + relation: 'invoiceOut', + scope: { + fields: ['id'] + } } ], where: {id: ticketFk} diff --git a/modules/ticket/front/routes.json b/modules/ticket/front/routes.json index 6f54a8efd..cfb2d07c9 100644 --- a/modules/ticket/front/routes.json +++ b/modules/ticket/front/routes.json @@ -3,7 +3,7 @@ "name": "Tickets", "icon": "icon-ticket", "validations": true, - "dependencies": ["worker", "item", "client", "route"], + "dependencies": ["worker", "item", "client", "route", "invoiceOut"], "menus": { "main": [ {"state": "ticket.index", "icon": "icon-ticket"}, diff --git a/modules/ticket/front/summary/index.html b/modules/ticket/front/summary/index.html index 948fa9173..835e0965c 100644 --- a/modules/ticket/front/summary/index.html +++ b/modules/ticket/front/summary/index.html @@ -37,8 +37,12 @@ {{$ctrl.summary.routeFk}} - + + + {{$ctrl.summary.refFk | dashIfEmpty}} + @@ -235,3 +239,6 @@ vn-id="descriptor" quicklinks="$ctrl.quicklinks"> + + \ No newline at end of file diff --git a/modules/ticket/front/summary/index.js b/modules/ticket/front/summary/index.js index e240cdfc0..020d1b16d 100644 --- a/modules/ticket/front/summary/index.js +++ b/modules/ticket/front/summary/index.js @@ -44,6 +44,13 @@ class Controller extends Section { this.$.routeDescriptor.show(); } + showInvoiceOutDescriptor(event, refFk) { + if (!refFk) return; + this.$.invoiceOutDescriptor.invoiceOutId = this.summary.invoiceOut.id; + this.$.invoiceOutDescriptor.parent = event.target; + this.$.invoiceOutDescriptor.show(); + } + showDescriptor(event, sale) { this.quicklinks = { btnThree: {