From d0975f0acdb5bc289672218e747e7ee4c4ba585c Mon Sep 17 00:00:00 2001 From: jorgep Date: Thu, 2 Nov 2023 16:25:25 +0100 Subject: [PATCH 001/173] ref #6276 operator_add --- db/changes/234601/00-newWareHouse.sql | 0 modules/worker/back/methods/operator/add.js | 21 +++++++++++++++++++++ modules/worker/back/models/operator.js | 4 +++- 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 db/changes/234601/00-newWareHouse.sql create mode 100644 modules/worker/back/methods/operator/add.js diff --git a/db/changes/234601/00-newWareHouse.sql b/db/changes/234601/00-newWareHouse.sql new file mode 100644 index 000000000..e69de29bb diff --git a/modules/worker/back/methods/operator/add.js b/modules/worker/back/methods/operator/add.js new file mode 100644 index 000000000..65639ad01 --- /dev/null +++ b/modules/worker/back/methods/operator/add.js @@ -0,0 +1,21 @@ +module.exports = Self => { + Self.remoteMethodCtx('add', { + description: 'Add a new operator', + accessType: 'WRITE', + http: { + path: `/add`, + verb: 'POST' + } + }); + + Self.add = async ctx => { + const userId = ctx.req.accessToken.userId; + // He visto findOrCreate pero no funciona + const user = await Self.findById(userId); + if (!user) { + await Self.create({ + workerFk: userId + }); + } + }; +}; diff --git a/modules/worker/back/models/operator.js b/modules/worker/back/models/operator.js index db1ac7e49..442ac343f 100644 --- a/modules/worker/back/models/operator.js +++ b/modules/worker/back/models/operator.js @@ -1,4 +1,6 @@ -module.exports = function(Self) { +module.exports = Self => { + require('../methods/operator/add')(Self); + Self.observe('after save', async function(ctx) { const instance = ctx.data || ctx.instance; const models = Self.app.models; From 251578146edd44bd55b2c5489c0b12351738ec3f Mon Sep 17 00:00:00 2001 From: jorgep Date: Tue, 21 Nov 2023 12:32:36 +0100 Subject: [PATCH 002/173] refs #6276 several methods created --- back/methods/collection/assignCollection.js | 28 + back/models/collection.js | 1 + db/changes/234601/00-newWareHouse.sql | 4 + db/dump/fixtures.sql | 669 ++++++++++++++++++ modules/item/back/methods/item/card.js | 52 ++ modules/item/back/models/item.js | 1 + .../methods/expedition-pallet/getPallet.js | 53 ++ .../ticket/back/models/expeditionPallet.js | 3 + .../ticket/back/models/expeditionPallet.json | 29 +- modules/worker/back/methods/operator/add.js | 1 - .../methods/operator/getAvailablePrinters.js | 39 + .../back/methods/operator/getPrinter.js | 39 + modules/worker/back/models/operator.js | 2 + 13 files changed, 913 insertions(+), 8 deletions(-) create mode 100644 back/methods/collection/assignCollection.js create mode 100644 modules/item/back/methods/item/card.js create mode 100644 modules/ticket/back/methods/expedition-pallet/getPallet.js create mode 100644 modules/ticket/back/models/expeditionPallet.js create mode 100644 modules/worker/back/methods/operator/getAvailablePrinters.js create mode 100644 modules/worker/back/methods/operator/getPrinter.js diff --git a/back/methods/collection/assignCollection.js b/back/methods/collection/assignCollection.js new file mode 100644 index 000000000..e63e6c1d0 --- /dev/null +++ b/back/methods/collection/assignCollection.js @@ -0,0 +1,28 @@ +const UserError = require('vn-loopback/util/user-error'); +module.exports = Self => { + Self.remoteMethodCtx('assignCollection', { + description: 'Assign a collection', + accessType: 'WRITE', + http: { + path: `/assignCollection`, + verb: 'POST' + }, + returns: { + type: ['object'], + }, + }); + + Self.assignCollection = async ctx => { + const userId = ctx.req.accessToken.userId; + + await Self.rawSql('CALL vn.collection_assign(?, @vCollectionFk)', [userId]); + + const [assignedCollection] = await Self.rawSql('SELECT @vCollectionFk'); + const {'@vCollectionFk': collectionFk} = assignedCollection; + + if (!collectionFk) throw new UserError('No hay tickets para sacar'); + await Self.rawSql('CALL vn.collection_printSticker(?, NULL)', [collectionFk]); + + return collectionFk; + }; +}; diff --git a/back/models/collection.js b/back/models/collection.js index bfa906af6..28413743e 100644 --- a/back/models/collection.js +++ b/back/models/collection.js @@ -5,4 +5,5 @@ module.exports = Self => { require('../methods/collection/setSaleQuantity')(Self); require('../methods/collection/previousLabel')(Self); require('../methods/collection/getTickets')(Self); + require('../methods/collection/assignCollection')(Self); }; diff --git a/db/changes/234601/00-newWareHouse.sql b/db/changes/234601/00-newWareHouse.sql index e69de29bb..4a2344330 100644 --- a/db/changes/234601/00-newWareHouse.sql +++ b/db/changes/234601/00-newWareHouse.sql @@ -0,0 +1,4 @@ +INSERT INTO `salix`.`ACL` (model, property, accessType, permission, principalType, principalId) + VALUES + ('Collection', 'assignCollection', 'WRITE', 'ALLOW', 'ROLE', 'employee'), + ('ExpeditionPallet', 'getPallet', 'READ', 'ALLOW', 'ROLE', 'employee'); \ No newline at end of file diff --git a/db/dump/fixtures.sql b/db/dump/fixtures.sql index fa204ddd5..6ef420526 100644 --- a/db/dump/fixtures.sql +++ b/db/dump/fixtures.sql @@ -1218,6 +1218,7 @@ INSERT INTO `vn`.`train`(`id`, `name`) INSERT INTO `vn`.`operator` (`workerFk`, `numberOfWagons`, `trainFk`, `itemPackingTypeFk`, `warehouseFk`, `sectorFk`, `labelerFk`) VALUES ('1106', '1', '1', 'H', '1', '1', '1'), + ('9', '2', '1', 'H', '1', '1', '1'), ('1107', '1', '1', 'V', '1', '1', '1'); INSERT INTO `vn`.`collection`(`id`, `workerFk`, `stateFk`, `created`, `trainFk`) @@ -2996,3 +2997,671 @@ INSERT INTO `vn`.`invoiceCorrectionType` (`id`, `description`) (1, 'Error in VAT calculation'), (2, 'Error in sales details'), (3, 'Error in customer data'); + + +/* + Se necesitan, para hacer un simulacro de pedido, lo siguiente: + + - Warehouse 999 + - Sectores + - Normal 9991 + - Previa 9992 + - Altillo 9993 + - Parkings + - Normal A-01-1, A-02-2, B-03-3, B-04-4, C-05-5 + - Previa P-01-1, P-02-2, P-03-3 + - Altillo M-01-1, M-02-2, M-03-3 + - Shelvings + - Normal NAA, NBB, NCC, NDD, NEE + - Previa PAA, PBB, PCC + - Altillo MAA, MBB, MCC + - Items + * Normal + * Previa: + - Ticket + - Sales + +*/ + +INSERT IGNORE INTO intrastat + SET id = 44219999, + description = 'Manufacturas de madera', + taxClassFk = 1, + taxCodeFk = 1; + +INSERT IGNORE INTO warehouse + SET id = 999, + name = 'TestingWarehouse', + hasAvailable = TRUE, + isForTicket = TRUE, + isInventory = TRUE, + hasUbications = TRUE, + hasProduction = TRUE; + +INSERT IGNORE INTO sector + SET id = 9991, + description = 'NormalSector', + warehouseFk = 999, + isPreviousPreparedByPacking = FALSE, + code = 'NS', + isPreviousPrepared = FALSE, + isPackagingArea = FALSE, + sonFk = NULL, + isMain = TRUE, + itemPackingTypeFk = NULL; + +INSERT IGNORE INTO sector + SET id = 9992, + description = 'PreviousSector', + warehouseFk = 999, + isPreviousPreparedByPacking = FALSE, + code = 'PS', + isPreviousPrepared = TRUE, + isPackagingArea = FALSE, + sonFk = NULL, + isMain = TRUE, + itemPackingTypeFk = NULL; + +INSERT IGNORE INTO sector + SET id = 9993, + description = 'MezaninneSector', + warehouseFk = 999, + isPreviousPreparedByPacking = TRUE, + code = 'MS', + isPreviousPrepared = FALSE, + isPackagingArea = FALSE, + sonFk = 9991, + isMain = TRUE, + itemPackingTypeFk = NULL; + +REPLACE parking SET id = 9991011, sectorFk = 9991, code = 'A-01-1', pickingOrder = 1; +REPLACE parking SET id = 9991012, sectorFk = 9991, code = 'A-02-2', pickingOrder = 2; +REPLACE parking SET id = 9991013, sectorFk = 9991, code = 'A-03-3', pickingOrder = 3; +REPLACE parking SET id = 9991014, sectorFk = 9991, code = 'A-04-4', pickingOrder = 4; +REPLACE parking SET id = 9991015, sectorFk = 9991, code = 'A-05-5', pickingOrder = 5; + +REPLACE parking SET id = 9992011, sectorFk = 9992, code = 'P-01-1', pickingOrder = 6; +REPLACE parking SET id = 9992012, sectorFk = 9992, code = 'P-02-2', pickingOrder = 7; +REPLACE parking SET id = 9992013, sectorFk = 9992, code = 'P-03-3', pickingOrder = 8; + +REPLACE parking SET id = 9993011, sectorFk = 9993, code = 'M-01-1', pickingOrder = 9; +REPLACE parking SET id = 9993012, sectorFk = 9993, code = 'M-02-2', pickingOrder = 10; +REPLACE parking SET id = 9993013, sectorFk = 9993, code = 'M-03-3', pickingOrder = 11; + +REPLACE shelving SET code = 'NAA', parkingFk = 9991011, priority = 1; +REPLACE shelving SET code = 'NBB', parkingFk = 9991012, priority = 1; +REPLACE shelving SET code = 'NCC', parkingFk = 9991013, priority = 1; +REPLACE shelving SET code = 'NDD', parkingFk = 9991014, priority = 1; +REPLACE shelving SET code = 'NEE', parkingFk = 9991015, priority = 1; + +REPLACE shelving SET code = 'PAA', parkingFk = 9992011, priority = 1; +REPLACE shelving SET code = 'PBB', parkingFk = 9992012, priority = 1; +REPLACE shelving SET code = 'PCC', parkingFk = 9992013, priority = 1; + +REPLACE shelving SET code = 'MAA', parkingFk = 9993011, priority = 1; +REPLACE shelving SET code = 'MBB', parkingFk = 9993012, priority = 1; +REPLACE shelving SET code = 'MCC', parkingFk = 9993013, priority = 1; + +INSERT IGNORE INTO itemType + SET id = 999, + code = 'WOO', + name = 'Wood Objects', + categoryFk = 3, + workerFk = 103, + isInventory = TRUE, + life = 10, + density = 250, + itemPackingTypeFk = NULL, + temperatureFk = 'warm'; + +INSERT IGNORE INTO travel + SET id = 99, + shipped = CURDATE(), + landed = CURDATE(), + warehouseInFk = 999, + warehouseOutFk = 1, + isReceived = TRUE, + agencyFk = 1; + +REPLACE entry + SET id = 999, + supplierFk = 791, + isConfirmed = TRUE, + dated = CURDATE(), + travelFk = 99, + companyFk = 442; + +REPLACE ticket + SET id = 999999, + clientFk = 2, + warehouseFk = 999, + shipped = CURDATE(), + nickname = 'Cliente', + addressFk = 1, + companyFk = 442, + agencyModeFk = 10, + landed = CURDATE(); + +REPLACE collection + SET id = 10101010, + workerFk = 103; + +INSERT IGNORE INTO ticketCollection + SET id = 10101010, + ticketFk = 999999, + collectionFk = 10101010; + +REPLACE item + SET id = 999991, + name = 'Palito para pinchos', + `size` = 25, + stems = NULL, + category = 'EXT', + typeFk = 999, + longName = 'Palito para pinchos', + itemPackingTypeFk = NULL, + originFk = 1, + weightByPiece = 6, + intrastatFk = 44219999; + +REPLACE buy + SET id = 9999991, + entryFk = 999, + itemFk = 999991, + quantity = 8, + buyingValue = 0.61, + stickers = 1, + packing = 20, + `grouping` = 1, + groupingMode = 1, + packageFk = 94, + price1 = 1, + price2 = 1, + price3 = 1, + minPrice = 1, + weight = 50; + +REPLACE sale + SET id = 99991, + itemFk = 999991, + ticketFk = 999999, + concept = 'Palito para pinchos', + quantity = 3, + price = 1, + discount = 0; + +REPLACE item + SET id = 999992, + name = 'Madera verde', + `size` = 10, + stems = NULL, + category = 'EXT', + typeFk = 999, + longName = 'Madera verde', + itemPackingTypeFk = NULL, + originFk = 1, + weightByPiece = 50, + intrastatFk = 44219999; + +REPLACE buy + SET id = 9999992, + entryFk = 999, + itemFk = 999992, + quantity = 40, + buyingValue = 0.62, + stickers = 1, + packing = 40, + `grouping` = 5, + groupingMode = 1, + packageFk = 94, + price1 = 1, + price2 = 1, + price3 = 1, + minPrice = 1, + weight = 25; + +REPLACE sale + SET id = 99992, + itemFk = 999992, + ticketFk = 999999, + concept = 'Madera Verde', + quantity = 10, + price = 1, + discount = 0; + +REPLACE item + SET id = 999993, + name = 'Madera Roja/Morada', + `size` = 12, + stems = 2, + category = 'EXT', + typeFk = 999, + longName = 'Madera Roja/Morada', + itemPackingTypeFk = NULL, + originFk = 1, + weightByPiece = 35, + intrastatFk = 44219999; + +REPLACE buy + SET id = 9999993, + entryFk = 999, + itemFk = 999993, + quantity = 20, + buyingValue = 0.63, + stickers = 2, + packing = 10, + `grouping` = 5, + groupingMode = 1, + packageFk = 94, + price1 = 1, + price2 = 1, + price3 = 1, + minPrice = 1, + weight = 25; + +REPLACE itemShelving + SET id = 9931, + itemFk = 999993, + shelvingFk = 'NCC', + visible = 10, + `grouping` = 5, + packing = 10; + +REPLACE sale + SET id = 99993, + itemFk = 999993, + ticketFk = 999999, + concept = 'Madera Roja/Morada', + quantity = 15, + price = 1, + discount = 0; + +REPLACE item + SET id = 999994, + name = 'Madera Naranja', + `size` = 18, + stems = 1, + category = 'EXT', + typeFk = 999, + longName = 'Madera Naranja', + itemPackingTypeFk = NULL, + originFk = 1, + weightByPiece = 160, + intrastatFk = 44219999; + +REPLACE buy + SET id = 9999994, + entryFk = 999, + itemFk = 999994, + quantity = 20, + buyingValue = 0.64, + stickers = 1, + packing = 20, + `grouping` = 4, + groupingMode = 1, + packageFk = 94, + price1 = 1, + price2 = 1, + price3 = 1, + minPrice = 1, + weight = 25; + +REPLACE sale + SET id = 99994, + itemFk = 999994, + ticketFk = 999999, + concept = 'Madera Naranja', + quantity = 4, + price = 1, + discount = 0; + +REPLACE item + SET id = 999995, + name = 'Madera Amarilla', + `size` = 11, + stems = 5, + category = 'EXT', + typeFk = 999, + longName = 'Madera Amarilla', + itemPackingTypeFk = NULL, + originFk = 1, + weightByPiece = 78, + intrastatFk = 44219999; + +REPLACE buy + SET id = 9999995, + entryFk = 999, + itemFk = 999995, + quantity = 4, + buyingValue = 0.65, + stickers = 1, + packing = 20, + `grouping` = 1, + groupingMode = 1, + packageFk = 94, + price1 = 1, + price2 = 1, + price3 = 1, + minPrice = 1, + weight = 35; + +REPLACE sale + SET id = 99995, + itemFk = 999995, + ticketFk = 999999, + concept = 'Madera Amarilla', + quantity = 5, + price = 1, + discount = 0; + +-- Palito naranja +REPLACE item + SET id = 999998, + name = 'Palito naranja', + `size` = 11, + stems = 1, + category = 'EXT', + typeFk = 999, + longName = 'Palito naranja', + itemPackingTypeFk = NULL, + originFk = 1, + weightByPiece = 78, + intrastatFk = 44219999; + +REPLACE buy + SET id = 9999998, + entryFk = 999, + itemFk = 999998, + quantity = 80, + buyingValue = 0.65, + stickers = 1, + packing = 200, + `grouping` = 30, + groupingMode = 1, + packageFk = 94, + price1 = 1, + price2 = 1, + price3 = 1, + minPrice = 1, + weight = 35; + +REPLACE sale + SET id = 99998, + itemFk = 999998, + ticketFk = 999999, + concept = 'Palito naranja', + quantity = 60, + price = 1, + discount = 0; + +-- Palito amarillo +REPLACE item + SET id = 999999, + name = 'Palito amarillo', + `size` = 11, + stems = 1, + category = 'EXT', + typeFk = 999, + longName = 'Palito amarillo', + itemPackingTypeFk = NULL, + originFk = 1, + weightByPiece = 78, + intrastatFk = 44219999; + +REPLACE buy + SET id = 9999999, + entryFk = 999, + itemFk = 999999, + quantity = 70, + buyingValue = 0.65, + stickers = 1, + packing = 500, + `grouping` = 10, + groupingMode = 1, + packageFk = 94, + price1 = 1, + price2 = 1, + price3 = 1, + minPrice = 1, + weight = 35; + +REPLACE sale + SET id = 99999, + itemFk = 999999, + ticketFk = 999999, + concept = 'Palito amarillo', + quantity = 50, + price = 1, + discount = 0; + +-- Palito azul +REPLACE item + SET id = 1000000, + name = 'Palito azul', + `size` = 10, + stems = 1, + category = 'EXT', + typeFk = 999, + longName = 'Palito azul', + itemPackingTypeFk = NULL, + originFk = 1, + weightByPiece = 78, + intrastatFk = 44219999; + +REPLACE buy + SET id = 10000000, + entryFk = 999, + itemFk = 1000000, + quantity = 75, + buyingValue = 0.65, + stickers = 2, + packing = 300, + `grouping` = 50, + groupingMode = 1, + packageFk = 94, + price1 = 1, + price2 = 1, + price3 = 1, + minPrice = 1, + weight = 35; + +REPLACE sale + SET id = 100000, + itemFk = 1000000, + ticketFk = 999999, + concept = 'Palito azul', + quantity = 50, + price = 1, + discount = 0; + +-- Palito rojo +REPLACE item + SET id = 1000001, + name = 'Palito rojo', + `size` = 10, + stems = NULL, + category = 'EXT', + typeFk = 999, + longName = 'Palito rojo', + itemPackingTypeFk = NULL, + originFk = 1, + weightByPiece = 78, + intrastatFk = 44219999; + +REPLACE buy + SET id = 10000001, + entryFk = 999, + itemFk = 1000001, + quantity = 12, + buyingValue = 0.65, + stickers = 2, + packing = 50, + `grouping` = 5, + groupingMode = 1, + packageFk = 94, + price1 = 1, + price2 = 1, + price3 = 1, + minPrice = 1, + weight = 35; + + +REPLACE sale + SET id = 100001, + itemFk = 1000001, + ticketFk = 999999, + concept = 'Palito rojo', + quantity = 10, + price = 1, + discount = 0; + +-- Previa +INSERT IGNORE INTO item + SET id = 999996, + name = 'Bolas de madera', + `size` = 2, + stems = 4, + category = 'EXT', + typeFk = 999, + longName = 'Bolas de madera', + itemPackingTypeFk = NULL, + originFk = 1, + weightByPiece = 20, + intrastatFk = 44219999; + +REPLACE buy + SET id = 9999996, + entryFk = 999, + itemFk = 999996, + quantity = 5, + buyingValue = 3, + stickers = 1, + packing = 5, + `grouping` = 2, + groupingMode = 1, + packageFk = 94, + price1 = 7, + price2 = 7, + price3 = 7, + minPrice = 7, + weight = 80; + +REPLACE sale + SET id = 99996, + itemFk = 999996, + ticketFk = 999999, + concept = 'Bolas de madera', + quantity = 4, + price = 7, + discount = 0, + isPicked = TRUE; + +INSERT IGNORE INTO item + SET id = 999997, + name = 'Palitos de polo MIX', + `size` = 14, + stems = NULL, + category = 'EXT', + typeFk = 999, + longName = 'Palitos de polo MIX', + itemPackingTypeFk = NULL, + originFk = 1, + weightByPiece = 20, + intrastatFk = 44219999; + +REPLACE buy + SET id = 9999997, + entryFk = 999, + itemFk = 999997, + quantity = 100, + buyingValue = 3.2, + stickers = 1, + packing = 100, + `grouping` = 5, + groupingMode = 1, + packageFk = 94, + price1 = 7, + price2 = 7, + price3 = 7, + minPrice = 7, + weight = 80; + +REPLACE sale + SET id = 99997, + itemFk = 999997, + ticketFk = 999999, + concept = 'Palitos de polo MIX', + quantity = 5, + price = 7, + discount = 0; + +-- Ubicación +DELETE ish.* + FROM itemShelving ish + JOIN shelving sh ON sh.code = ish.shelvingFk + JOIN parking p ON p.id = sh.parkingFk + JOIN sector s ON s.id = p.sectorFk + JOIN warehouse w ON w.id = s.warehouseFk + WHERE w.name = 'TestingWarehouse'; + +REPLACE vn.itemShelving +(id, itemFk, shelvingFk, visible, created, `grouping`, packing, packagingFk, userFk, isChecked) +VALUES + (9911, 999991, 'NAA', 8, '2023-09-20', 1, 20, NULL, 103, NULL), + (9912, 999998, 'NAA', 80, '2023-09-20', 10, 30, NULL, 103, NULL), + (9913, 1000001, 'NAA', 6, '2023-09-20', 3, 50, NULL, 103, NULL), + (9914, 1000000, 'NBB', 50, '2023-09-18', 25, 500, NULL, 103, NULL), + (9915, 999993, 'NBB', 25, '2023-09-18', NULL, 10, NULL, 103, NULL), + (9916, 999999, 'NBB', 30, '2023-09-18', 10, 500, NULL, 103, NULL), + (9917, 999993, 'NCC', 25, '2023-09-20', 5, 10, NULL, 103, NULL), + (9918, 999997, 'NCC', 10, '2023-09-20', NULL, 100, NULL, 103, NULL), + (9919, 999999, 'NCC', 40, '2023-09-20', 10, 500, NULL, 103, NULL), + (9920, 999995, 'NDD', 10, '2023-09-19', NULL, 20, NULL, 103, NULL), + (9921, 999994, 'NDD', 48, '2023-09-19', 4, 20, NULL, 103, NULL), + (9922, 1000001, 'NEE', 6, '2023-09-21', 3, 50, NULL, 103, NULL), + (9923, 999992, 'NEE', 50, '2023-09-21', NULL, 1, NULL, 103, NULL), + (9924, 1000000, 'NEE', 25, '2023-09-21', 25, 500, NULL, 103, NULL), + (9925, 999996, 'PAA', 5, '2023-09-27', 1, 5, NULL, 103, NULL), + (9926, 999997, 'PCC', 10, '2023-09-27', 5, 100, NULL, 103, NULL); + +-- Previous for Bolas de madera +INSERT IGNORE INTO sectorCollection + SET id = 99, + userFk = 1, + sectorFk = 9992; + +INSERT IGNORE INTO saleGroup + SET id = 999, + userFk = 1, + parkingFk = 9992011, + sectorFk = 9992; + +INSERT IGNORE INTO sectorCollectionSaleGroup + SET id = 9999, + sectorCollectionFk = 99, + saleGroupFk = 999; + +REPLACE saleGroupDetail + SET id = 99991, + saleFk = 99996, + saleGroupFk = 999; + +REPLACE saleTracking + SET saleFk = 99996, + isChecked = TRUE, + workerFk = 103, + stateFk = 28; + +INSERT IGNORE INTO itemShelvingSale + SET id = 991, + itemShelvingFk = 9962, + saleFk = 99996, + quantity = 5, + userFk = 1; + + +CALL itemShelvingSale_reserveByCollection(10101010); + +UPDATE vn.collection + SET workerFk=9 + WHERE id=10101010; diff --git a/modules/item/back/methods/item/card.js b/modules/item/back/methods/item/card.js new file mode 100644 index 000000000..6d861b394 --- /dev/null +++ b/modules/item/back/methods/item/card.js @@ -0,0 +1,52 @@ +module.exports = Self => { + Self.remoteMethod('card', { + description: 'Idk', + accessType: 'READ', + http: { + path: `/card`, + verb: 'GET' + }, + accepts: [ + { + arg: 'itemFk', + type: 'number', + required: true, + }, + { + arg: 'warehouseFk', + type: 'number', + required: true, + } + ], + returns: { + type: ['object'], + root: true + }, + }); + + Self.card = async(itemFk, warehouseFk) => { + const models = Self.app.models; + + const [result] = await Self.rawSql('CALL vn.item_getInfo(?, ?)', [itemFk, warehouseFk]); + + const barcodeItems = await Self.rawSql('SELECT vn.barcodeToItem(?) as realIdItem', [itemFk]); + const realIdItems = barcodeItems.map(barcodeItem => barcodeItem.realIdItem); + + const barcodes = await models.ItemBarcode.find({ + fields: ['code'], + where: { + realIdItem: { + inq: realIdItems + } + } + }); + + let itemInfo; + if (result.length) { + itemInfo = {...result[0]}; + itemInfo.barcodes = barcodes.map(barcode => barcode.code); + } + + return itemInfo; + }; +}; diff --git a/modules/item/back/models/item.js b/modules/item/back/models/item.js index eac1ecb7d..17c7a59f1 100644 --- a/modules/item/back/models/item.js +++ b/modules/item/back/models/item.js @@ -17,6 +17,7 @@ module.exports = Self => { require('../methods/item/buyerWasteEmail')(Self); require('../methods/item/labelPdf')(Self); require('../methods/item/setVisibleDiscard')(Self); + require('../methods/item/card')(Self); Self.validatesPresenceOf('originFk', {message: 'Cannot be blank'}); diff --git a/modules/ticket/back/methods/expedition-pallet/getPallet.js b/modules/ticket/back/methods/expedition-pallet/getPallet.js new file mode 100644 index 000000000..09775a6fa --- /dev/null +++ b/modules/ticket/back/methods/expedition-pallet/getPallet.js @@ -0,0 +1,53 @@ + +const UserError = require('vn-loopback/util/user-error'); +module.exports = Self => { + Self.remoteMethod('getPallet', { + description: 'Get pallet', + accessType: 'READ', + accepts: [ + { + arg: 'expeditionFk', + type: 'integer', + }, + ], + http: { + path: `/getPallet`, + verb: 'GET' + }, + returns: { + type: 'object', + }, + }); + + Self.getPallet = async expeditionFk => { + try { + const pallet = await Self.findOne({ + fields: ['truckFk'], + where: { + id: expeditionFk + }, + include: [ + { + relation: 'expeditionTruck', + scope: { + fields: ['eta', 'description'] + } + } + ], + }); + + if (pallet) { + const truck = pallet.expeditionTruck(); + return { + truckFk: pallet.truckFk, + eta: truck.eta, + description: truck.description + }; + } + + throw new UserError('palletDoesNotExist'); + } catch (e) { + return {message: e.message}; + } + }; +}; diff --git a/modules/ticket/back/models/expeditionPallet.js b/modules/ticket/back/models/expeditionPallet.js new file mode 100644 index 000000000..f41ad7712 --- /dev/null +++ b/modules/ticket/back/models/expeditionPallet.js @@ -0,0 +1,3 @@ +module.exports = function(Self) { + require('../methods/expedition-pallet/getPallet')(Self); +}; diff --git a/modules/ticket/back/models/expeditionPallet.json b/modules/ticket/back/models/expeditionPallet.json index c5a38df75..7cb4e1e6d 100644 --- a/modules/ticket/back/models/expeditionPallet.json +++ b/modules/ticket/back/models/expeditionPallet.json @@ -1,5 +1,6 @@ { "name": "ExpeditionPallet", + "base": "VnModel", "options": { "mysql": { "table": "expeditionPallet" @@ -10,13 +11,27 @@ "type": "number", "id": true, "description": "Identifier" - } + }, + "truckFk": { + "type": "number" + }, + "built": { + "type": "date" + }, + "position": { + "type": "number" + }, + "isPrint": { + "type": "number" + } }, - "acls": [{ - "accessType": "WRITE", - "principalType": "ROLE", - "principalId": "production", - "permission": "ALLOW" - }] + "relations": { + "expeditionTruck": { + "type": "belongsTo", + "model": "ExpeditionTruck", + "foreignKey": "truckFk" + } + } + } diff --git a/modules/worker/back/methods/operator/add.js b/modules/worker/back/methods/operator/add.js index 65639ad01..eaf74e7b4 100644 --- a/modules/worker/back/methods/operator/add.js +++ b/modules/worker/back/methods/operator/add.js @@ -10,7 +10,6 @@ module.exports = Self => { Self.add = async ctx => { const userId = ctx.req.accessToken.userId; - // He visto findOrCreate pero no funciona const user = await Self.findById(userId); if (!user) { await Self.create({ diff --git a/modules/worker/back/methods/operator/getAvailablePrinters.js b/modules/worker/back/methods/operator/getAvailablePrinters.js new file mode 100644 index 000000000..2e787da2b --- /dev/null +++ b/modules/worker/back/methods/operator/getAvailablePrinters.js @@ -0,0 +1,39 @@ +module.exports = Self => { + Self.remoteMethodCtx('getAvailablePrinters', { + description: 'Retrieve available printers for an user', + accessType: 'READ', + http: { + path: `/getAvailabePrinters`, + verb: 'GET' + }, + returns: { + type: ['object'], + }, + }); + + Self.getAvailablePrinters = async ctx => { + const userId = ctx.req.accessToken.userId; + + const operators = await Self.find({ + fields: [], + where: { + workerFk: userId, + }, + + include: { + relation: 'printer', + scope: { + fields: ['id', 'name'] + }, + where: { + isLabeler: {neq: 0} + } + } + }); + if (operators.length) { + return operators.map(operator => { + return operator.printer(); + }); + } + }; +}; diff --git a/modules/worker/back/methods/operator/getPrinter.js b/modules/worker/back/methods/operator/getPrinter.js new file mode 100644 index 000000000..c46734517 --- /dev/null +++ b/modules/worker/back/methods/operator/getPrinter.js @@ -0,0 +1,39 @@ +module.exports = Self => { + Self.remoteMethodCtx('getPrinter', { + description: 'Gets user\'s printer', + accessType: 'READ', + http: { + path: `/getPrinter`, + verb: 'GET' + }, + returns: { + type: 'object', + }, + }); + + Self.getPrinter = async ctx => { + const userId = ctx.req.accessToken.userId; + + const operator = await Self.findOne({ + include: [ + { + relation: 'printer', + scope: { + fields: ['id', 'name'], + } + } + ], + where: { + workerFk: userId + } + }); + + if (operator) { + const printer = operator.printer(); + return { + id: printer.id, + name: printer.name + }; + } + }; +}; diff --git a/modules/worker/back/models/operator.js b/modules/worker/back/models/operator.js index 442ac343f..5e8870130 100644 --- a/modules/worker/back/models/operator.js +++ b/modules/worker/back/models/operator.js @@ -1,5 +1,7 @@ module.exports = Self => { require('../methods/operator/add')(Self); + require('../methods/operator/getPrinter')(Self); + require('../methods/operator/getAvailablePrinters')(Self); Self.observe('after save', async function(ctx) { const instance = ctx.data || ctx.instance; From fac6aab26c23e556e6b55e7138029d5424a25267 Mon Sep 17 00:00:00 2001 From: jorgep Date: Wed, 22 Nov 2023 14:25:19 +0100 Subject: [PATCH 003/173] refs #6276 machineWorker_update --- back/methods/machine-worker/updateMachine.js | 71 +++++++++++++++++++ back/model-config.json | 6 ++ back/models/machine-worker-config.json | 18 +++++ back/models/machine-worker.js | 3 + back/models/machine.json | 18 +++++ .../{234601 => 234801}/00-newWareHouse.sql | 6 +- 6 files changed, 121 insertions(+), 1 deletion(-) create mode 100644 back/methods/machine-worker/updateMachine.js create mode 100644 back/models/machine-worker-config.json create mode 100644 back/models/machine-worker.js create mode 100644 back/models/machine.json rename db/changes/{234601 => 234801}/00-newWareHouse.sql (60%) diff --git a/back/methods/machine-worker/updateMachine.js b/back/methods/machine-worker/updateMachine.js new file mode 100644 index 000000000..ac52a3f48 --- /dev/null +++ b/back/methods/machine-worker/updateMachine.js @@ -0,0 +1,71 @@ +module.exports = Self => { + Self.remoteMethodCtx('updateMachine', { + description: '', + accessType: 'WRITE', + accepts: [ + { + arg: 'plate', + type: 'string', + } + ], + returns: { + type: 'object', + root: true + }, + http: { + path: `/update-machine`, + verb: 'POST' + } + }); + + Self.updateMachine = async(ctx, plate, options) => { + const models = Self.app.models; + const userId = ctx.req.accessToken.userId; + + let tx; + const myOptions = {}; + + if (typeof options == 'object') + Object.assign(myOptions, options); + + if (!myOptions.transaction) { + tx = await Self.beginTransaction({}); + myOptions.transaction = tx; + } + + try { + let insertState = false; + + const machine = await models.Machine.findOne({ + fields: ['id', 'plate'], + where: {plate} + }, myOptions); + + if (machine) { + const {maxHours} = await models.MachineWorkerConfig.findOne({fields: ['maxHours']}, myOptions); + + const machineWorker = await models.MachineWorker.findOne({ + where: { + workerFk: userId, + inTime: {gte: new Date(Date.now() - maxHours * 60 * 60 * 1000)}, + outTimed: null, + machineFk: machine.id, + } + + }); + if (machineWorker) { + await machineWorker.updateAttributes({ + inTime: new Date(Date.now()) + }, myOptions); + } + insertState = true; + } + + if (tx) await tx.commit(); + return insertState; + } catch (e) { + if (tx) await tx.rollback(); + throw e; + } + }; +}; diff --git a/back/model-config.json b/back/model-config.json index ebc0e321b..856167757 100644 --- a/back/model-config.json +++ b/back/model-config.json @@ -79,9 +79,15 @@ "Language": { "dataSource": "vn" }, + "Machine": { + "dataSource": "vn" + }, "MachineWorker": { "dataSource": "vn" }, + "MachineWorkerConfig": { + "dataSource": "vn" + }, "MobileAppVersionControl": { "dataSource": "vn" }, diff --git a/back/models/machine-worker-config.json b/back/models/machine-worker-config.json new file mode 100644 index 000000000..dfb77124e --- /dev/null +++ b/back/models/machine-worker-config.json @@ -0,0 +1,18 @@ +{ + "name": "MachineWorkerConfig", + "base": "VnModel", + "options": { + "mysql": { + "table": "vn.machineWorkerConfig" + } + }, + "properties": { + "id": { + "type": "number", + "id": true + }, + "maxHours": { + "type": "number" + } + } +} diff --git a/back/models/machine-worker.js b/back/models/machine-worker.js new file mode 100644 index 000000000..324ca28a9 --- /dev/null +++ b/back/models/machine-worker.js @@ -0,0 +1,3 @@ +module.exports = Self => { + require('../methods/machine-worker/updateMachine')(Self); +}; diff --git a/back/models/machine.json b/back/models/machine.json new file mode 100644 index 000000000..7029091a2 --- /dev/null +++ b/back/models/machine.json @@ -0,0 +1,18 @@ +{ + "name": "Machine", + "base": "VnModel", + "options": { + "mysql": { + "table": "vn.machine" + } + }, + "properties": { + "id": { + "type": "number", + "id": true + }, + "plate": { + "type": "string" + } + } +} diff --git a/db/changes/234601/00-newWareHouse.sql b/db/changes/234801/00-newWareHouse.sql similarity index 60% rename from db/changes/234601/00-newWareHouse.sql rename to db/changes/234801/00-newWareHouse.sql index 4a2344330..e55835563 100644 --- a/db/changes/234601/00-newWareHouse.sql +++ b/db/changes/234801/00-newWareHouse.sql @@ -1,4 +1,8 @@ INSERT INTO `salix`.`ACL` (model, property, accessType, permission, principalType, principalId) VALUES ('Collection', 'assignCollection', 'WRITE', 'ALLOW', 'ROLE', 'employee'), - ('ExpeditionPallet', 'getPallet', 'READ', 'ALLOW', 'ROLE', 'employee'); \ No newline at end of file + ('ExpeditionPallet', 'getPallet', 'READ', 'ALLOW', 'ROLE', 'employee'), + ('MachineWorker','updateMachine','WRITE','ALLOW','ROLE','employee'); + +INSERT INTO `vn`.`machineWorkerConfig` (id, maxHours) + VALUES (1, 12) \ No newline at end of file From f862ed7d8af3076ab15aa6000575e6611cb2d2a6 Mon Sep 17 00:00:00 2001 From: jorgep Date: Thu, 23 Nov 2023 13:19:59 +0100 Subject: [PATCH 004/173] refs #6274 refactor updateInTime --- back/methods/machine-worker/updateInTime.js | 63 ++++++++++++++++ back/methods/machine-worker/updateMachine.js | 71 ------------------- back/models/machine-worker.js | 2 +- .../{234801 => 235001}/00-newWareHouse.sql | 5 +- db/dump/fixtures.sql | 3 + 5 files changed, 68 insertions(+), 76 deletions(-) create mode 100644 back/methods/machine-worker/updateInTime.js delete mode 100644 back/methods/machine-worker/updateMachine.js rename db/changes/{234801 => 235001}/00-newWareHouse.sql (64%) diff --git a/back/methods/machine-worker/updateInTime.js b/back/methods/machine-worker/updateInTime.js new file mode 100644 index 000000000..b8e2becf2 --- /dev/null +++ b/back/methods/machine-worker/updateInTime.js @@ -0,0 +1,63 @@ +module.exports = Self => { + Self.remoteMethodCtx('updateInTime', { + description: '', + accessType: 'WRITE', + accepts: [ + { + arg: 'plate', + type: 'string', + } + ], + http: { + path: `/updateInTime`, + verb: 'POST' + } + }); + + Self.updateInTime = async(ctx, plate, options) => { + const models = Self.app.models; + const userId = ctx.req.accessToken.userId; + + let tx; + const myOptions = {}; + + if (typeof options == 'object') + Object.assign(myOptions, options); + + if (!myOptions.transaction) { + tx = await Self.beginTransaction({}); + myOptions.transaction = tx; + } + + try { + const machine = await models.Machine.findOne({ + fields: ['id', 'plate'], + where: {plate} + }, myOptions); + + if (!machine) throw new Error(`plate ${plate} does not exist`); + + const {maxHours} = await models.MachineWorkerConfig.findOne({fields: ['maxHours']}, myOptions); + + const machineWorker = await models.MachineWorker.findOne({ + where: { + workerFk: userId, + inTime: {gte: new Date(Date.now() - maxHours * 60 * 60 * 1000)}, + outTimed: null, + machineFk: machine.id, + } + + }); + if (machineWorker) { + await machineWorker.updateAttributes({ + inTime: new Date(Date.now()) + }, myOptions); + } + + if (tx) await tx.commit(); + } catch (e) { + if (tx) await tx.rollback(); + throw e; + } + }; +}; diff --git a/back/methods/machine-worker/updateMachine.js b/back/methods/machine-worker/updateMachine.js deleted file mode 100644 index ac52a3f48..000000000 --- a/back/methods/machine-worker/updateMachine.js +++ /dev/null @@ -1,71 +0,0 @@ -module.exports = Self => { - Self.remoteMethodCtx('updateMachine', { - description: '', - accessType: 'WRITE', - accepts: [ - { - arg: 'plate', - type: 'string', - } - ], - returns: { - type: 'object', - root: true - }, - http: { - path: `/update-machine`, - verb: 'POST' - } - }); - - Self.updateMachine = async(ctx, plate, options) => { - const models = Self.app.models; - const userId = ctx.req.accessToken.userId; - - let tx; - const myOptions = {}; - - if (typeof options == 'object') - Object.assign(myOptions, options); - - if (!myOptions.transaction) { - tx = await Self.beginTransaction({}); - myOptions.transaction = tx; - } - - try { - let insertState = false; - - const machine = await models.Machine.findOne({ - fields: ['id', 'plate'], - where: {plate} - }, myOptions); - - if (machine) { - const {maxHours} = await models.MachineWorkerConfig.findOne({fields: ['maxHours']}, myOptions); - - const machineWorker = await models.MachineWorker.findOne({ - where: { - workerFk: userId, - inTime: {gte: new Date(Date.now() - maxHours * 60 * 60 * 1000)}, - outTimed: null, - machineFk: machine.id, - } - - }); - if (machineWorker) { - await machineWorker.updateAttributes({ - inTime: new Date(Date.now()) - }, myOptions); - } - insertState = true; - } - - if (tx) await tx.commit(); - return insertState; - } catch (e) { - if (tx) await tx.rollback(); - throw e; - } - }; -}; diff --git a/back/models/machine-worker.js b/back/models/machine-worker.js index 324ca28a9..cbc5fd53e 100644 --- a/back/models/machine-worker.js +++ b/back/models/machine-worker.js @@ -1,3 +1,3 @@ module.exports = Self => { - require('../methods/machine-worker/updateMachine')(Self); + require('../methods/machine-worker/updateInTime')(Self); }; diff --git a/db/changes/234801/00-newWareHouse.sql b/db/changes/235001/00-newWareHouse.sql similarity index 64% rename from db/changes/234801/00-newWareHouse.sql rename to db/changes/235001/00-newWareHouse.sql index e55835563..955088866 100644 --- a/db/changes/234801/00-newWareHouse.sql +++ b/db/changes/235001/00-newWareHouse.sql @@ -2,7 +2,4 @@ INSERT INTO `salix`.`ACL` (model, property, accessType, permission, principalTyp VALUES ('Collection', 'assignCollection', 'WRITE', 'ALLOW', 'ROLE', 'employee'), ('ExpeditionPallet', 'getPallet', 'READ', 'ALLOW', 'ROLE', 'employee'), - ('MachineWorker','updateMachine','WRITE','ALLOW','ROLE','employee'); - -INSERT INTO `vn`.`machineWorkerConfig` (id, maxHours) - VALUES (1, 12) \ No newline at end of file + ('MachineWorker','updateInTime','WRITE','ALLOW','ROLE','employee'); \ No newline at end of file diff --git a/db/dump/fixtures.sql b/db/dump/fixtures.sql index 39007fcc1..e8ae2f9a3 100644 --- a/db/dump/fixtures.sql +++ b/db/dump/fixtures.sql @@ -3671,3 +3671,6 @@ CALL itemShelvingSale_reserveByCollection(10101010); UPDATE vn.collection SET workerFk=9 WHERE id=10101010; + +INSERT INTO `vn`.`machineWorkerConfig` (id, maxHours) + VALUES (1, 12) \ No newline at end of file From 877c6792733033ff568b98bc3c253dddfba6fce7 Mon Sep 17 00:00:00 2001 From: jorgep Date: Wed, 29 Nov 2023 13:22:44 +0100 Subject: [PATCH 005/173] refs #6276 getVersion --- .../mobile-app-version-control/getVersion.js | 45 +++++++++++++++++++ back/models/mobile-app-version-control.js | 3 ++ back/models/mobile-app-version-control.json | 39 ++++++++++++++++ db/changes/235001/00-newWareHouse.sql | 3 +- modules/worker/back/model-config.json | 3 ++ .../worker/back/models/worker-app-tester.json | 22 +++++++++ 6 files changed, 114 insertions(+), 1 deletion(-) create mode 100644 back/methods/mobile-app-version-control/getVersion.js create mode 100644 back/models/mobile-app-version-control.js create mode 100644 back/models/mobile-app-version-control.json create mode 100644 modules/worker/back/models/worker-app-tester.json diff --git a/back/methods/mobile-app-version-control/getVersion.js b/back/methods/mobile-app-version-control/getVersion.js new file mode 100644 index 000000000..510fd6c4a --- /dev/null +++ b/back/methods/mobile-app-version-control/getVersion.js @@ -0,0 +1,45 @@ +module.exports = Self => { + Self.remoteMethodCtx('getVersion', { + description: 'gets app version data', + accessType: 'READ', + accepts: [{ + arg: 'app', + type: 'string', + required: true + }], + returns: { + type: ['object'], + root: true + }, + http: { + path: `/getVersion`, + verb: 'GET' + } + }); + + Self.getVersion = async(ctx, app) => { + const {models} = Self.app; + const userId = ctx.req.accessToken.userId; + + const workerFk = await models.WorkerAppTester.findOne({ + where: { + workerFk: userId + } + }); + let fields = ['id', 'appName']; + + if (workerFk) + fields = [...fields, ...['isVersionBetaCritical', 'versionBeta', 'urlBeta']]; + else + fields = [...fields, ...['isVersionCritical', 'version', 'urlProduction']]; + + const filter = { + where: { + appName: app + }, + fields, + }; + + return await Self.findOne(filter); + }; +}; diff --git a/back/models/mobile-app-version-control.js b/back/models/mobile-app-version-control.js new file mode 100644 index 000000000..ee8fa2ab6 --- /dev/null +++ b/back/models/mobile-app-version-control.js @@ -0,0 +1,3 @@ +module.exports = Self => { + require('../methods/mobile-app-version-control/getVersion')(Self); +}; diff --git a/back/models/mobile-app-version-control.json b/back/models/mobile-app-version-control.json new file mode 100644 index 000000000..819ad33f5 --- /dev/null +++ b/back/models/mobile-app-version-control.json @@ -0,0 +1,39 @@ +{ + "name": "MobileAppVersionControl", + "base": "VnModel", + "options": { + "mysql": { + "table": "vn.mobileAppVersionControl" + } + }, + "properties": { + "id": { + "type": "number", + "id": true + }, + "appName": { + "type": "string" + }, + + "version": { + "type": "string" + }, + + "isVersionCritical": { + "type": "boolean" + }, + + "urlProduction": { + "type": "string" + }, + "urlBeta": { + "type": "string" + }, + "versionBeta": { + "type": "string" + }, + "isVersionBetaCritical": { + "type": "boolean" + } + } +} diff --git a/db/changes/235001/00-newWareHouse.sql b/db/changes/235001/00-newWareHouse.sql index 955088866..9111a8a04 100644 --- a/db/changes/235001/00-newWareHouse.sql +++ b/db/changes/235001/00-newWareHouse.sql @@ -2,4 +2,5 @@ INSERT INTO `salix`.`ACL` (model, property, accessType, permission, principalTyp VALUES ('Collection', 'assignCollection', 'WRITE', 'ALLOW', 'ROLE', 'employee'), ('ExpeditionPallet', 'getPallet', 'READ', 'ALLOW', 'ROLE', 'employee'), - ('MachineWorker','updateInTime','WRITE','ALLOW','ROLE','employee'); \ No newline at end of file + ('MachineWorker','updateInTime','WRITE','ALLOW','ROLE','employee'), + ('MobileAppVersionControl','getVersion','READ','ALLOW','ROLE','employee'); \ No newline at end of file diff --git a/modules/worker/back/model-config.json b/modules/worker/back/model-config.json index 8352eb070..650a8d0c2 100644 --- a/modules/worker/back/model-config.json +++ b/modules/worker/back/model-config.json @@ -53,6 +53,9 @@ "Time": { "dataSource": "vn" }, + "WorkerAppTester": { + "dataSource": "vn" + }, "WorkCenter": { "dataSource": "vn" }, diff --git a/modules/worker/back/models/worker-app-tester.json b/modules/worker/back/models/worker-app-tester.json new file mode 100644 index 000000000..7e9706dcb --- /dev/null +++ b/modules/worker/back/models/worker-app-tester.json @@ -0,0 +1,22 @@ +{ + "name": "WorkerAppTester", + "base": "VnModel", + "options": { + "mysql": { + "table": "vn.workerAppTester" + } + }, + "properties": { + "workerFk": { + "id": true, + "type": "number" + } + }, + "relations": { + "worker": { + "type": "belongsTo", + "model": "Worker", + "foreignKey": "workerFk" + } + } +} \ No newline at end of file From 27d223cbab099ff9bd73d97d1872401dd5cc1962 Mon Sep 17 00:00:00 2001 From: jorgep Date: Wed, 29 Nov 2023 16:25:15 +0100 Subject: [PATCH 006/173] refs #6276 machineWorker_add --- back/methods/machine-worker/add.js | 68 +++++++++++++++++++++ back/methods/machine-worker/updateInTime.js | 2 +- back/models/machine-worker.js | 1 + db/changes/235001/00-newWareHouse.sql | 1 + 4 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 back/methods/machine-worker/add.js diff --git a/back/methods/machine-worker/add.js b/back/methods/machine-worker/add.js new file mode 100644 index 000000000..3da236cb8 --- /dev/null +++ b/back/methods/machine-worker/add.js @@ -0,0 +1,68 @@ +module.exports = Self => { + Self.remoteMethodCtx('add', { + description: 'Insert log if the worker has not logged anything in the last 12 hours', + accessType: 'READ', + accepts: [ + { + arg: 'plate', + type: 'string', + } + ], + http: { + path: `/add`, + verb: 'POST' + } + }); + + Self.add = async(ctx, plate, options) => { + const models = Self.app.models; + const userId = ctx.req.accessToken.userId; + + let tx; + const myOptions = {}; + + if (typeof options == 'object') + Object.assign(myOptions, options); + + if (!myOptions.transaction) { + tx = await Self.beginTransaction({}); + myOptions.transaction = tx; + } + + try { + const machine = await models.Machine.findOne({ + fields: ['id', 'plate'], + where: {plate} + }, myOptions); + + if (!machine) throw new Error(`plate ${plate} does not exist`); + + const twelveHoursAgo = Date.vnNew(); + twelveHoursAgo.setHours(twelveHoursAgo.getHours() - 12); + + const isRegistered = await models.MachineWorker.findOne({ + where: { + and: [ + {machineFk: machine.id}, + {workerFk: userId}, + {outTime: {gte: twelveHoursAgo}} + ] + } + }, myOptions); + console.log(isRegistered); + if (!isRegistered) await models.MachineWorker.create({machineFk: machine.id, workerFk: userId}, myOptions); + else { + await models.MachineWorker.updateAll( + {or: [{workerFk: userId}, {machineFk: machine.id}]}, + {outTime: Date.vnNew()}, + myOptions + ); + } + + if (tx) await tx.commit(); + } catch (e) { + if (tx) await tx.rollback(); + throw e; + } + }; +}; diff --git a/back/methods/machine-worker/updateInTime.js b/back/methods/machine-worker/updateInTime.js index b8e2becf2..917733686 100644 --- a/back/methods/machine-worker/updateInTime.js +++ b/back/methods/machine-worker/updateInTime.js @@ -1,6 +1,6 @@ module.exports = Self => { Self.remoteMethodCtx('updateInTime', { - description: '', + description: 'Updates the corresponding registry if the worker has been registered in the last few hours', accessType: 'WRITE', accepts: [ { diff --git a/back/models/machine-worker.js b/back/models/machine-worker.js index cbc5fd53e..b44cb1fb6 100644 --- a/back/models/machine-worker.js +++ b/back/models/machine-worker.js @@ -1,3 +1,4 @@ module.exports = Self => { require('../methods/machine-worker/updateInTime')(Self); + require('../methods/machine-worker/add')(Self); }; diff --git a/db/changes/235001/00-newWareHouse.sql b/db/changes/235001/00-newWareHouse.sql index 9111a8a04..05003d8ec 100644 --- a/db/changes/235001/00-newWareHouse.sql +++ b/db/changes/235001/00-newWareHouse.sql @@ -3,4 +3,5 @@ INSERT INTO `salix`.`ACL` (model, property, accessType, permission, principalTyp ('Collection', 'assignCollection', 'WRITE', 'ALLOW', 'ROLE', 'employee'), ('ExpeditionPallet', 'getPallet', 'READ', 'ALLOW', 'ROLE', 'employee'), ('MachineWorker','updateInTime','WRITE','ALLOW','ROLE','employee'), + ('MachineWorker','add','READ','ALLOW','ROLE','employee'), ('MobileAppVersionControl','getVersion','READ','ALLOW','ROLE','employee'); \ No newline at end of file From 375cb1acc0759e560a88c0ae464bca3e92c61818 Mon Sep 17 00:00:00 2001 From: jorgep Date: Wed, 29 Nov 2023 16:28:14 +0100 Subject: [PATCH 007/173] refs #6276 console removed --- back/methods/machine-worker/add.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/back/methods/machine-worker/add.js b/back/methods/machine-worker/add.js index 3da236cb8..65eb5d297 100644 --- a/back/methods/machine-worker/add.js +++ b/back/methods/machine-worker/add.js @@ -49,7 +49,7 @@ module.exports = Self => { ] } }, myOptions); - console.log(isRegistered); + if (!isRegistered) await models.MachineWorker.create({machineFk: machine.id, workerFk: userId}, myOptions); else { await models.MachineWorker.updateAll( From 40236fdb7bac7b299e6118e51b12cc0a69fbf226 Mon Sep 17 00:00:00 2001 From: jorgep Date: Thu, 30 Nov 2023 13:23:10 +0100 Subject: [PATCH 008/173] refs #6276 itemShelvingMake_multi --- .../back/methods/item-shelving/makeMulti.js | 74 +++++++++++++++++++ modules/item/back/models/item-shelving.js | 1 + modules/item/back/models/item-shelving.json | 2 +- 3 files changed, 76 insertions(+), 1 deletion(-) create mode 100644 modules/item/back/methods/item-shelving/makeMulti.js diff --git a/modules/item/back/methods/item-shelving/makeMulti.js b/modules/item/back/methods/item-shelving/makeMulti.js new file mode 100644 index 000000000..d4b451760 --- /dev/null +++ b/modules/item/back/methods/item-shelving/makeMulti.js @@ -0,0 +1,74 @@ +module.exports = Self => { + Self.remoteMethod('makeMulti', { + description: 'Add a record or update it if it already exists.', + accessType: 'WRITE', + accepts: [{ + arg: 'shelvingFk', + type: 'number', + required: true, + }, + { + arg: 'items', + type: ['number'], + required: true, + description: 'array of item foreign keys' + }, + { + arg: 'warehouseFk', + type: 'number', + required: true + }], + + http: { + path: `/makeMulti`, + verb: 'POST' + } + }); + + Self.makeMulti = async(shelvingFk, items, warehouseFk, options) => { + const myOptions = {}; + let tx; + + if (typeof options == 'object') + Object.assign(myOptions, options); + + if (!myOptions.transaction) { + tx = await Self.beginTransaction({}); + myOptions.transaction = tx; + } + + const discardItems = []; + + try { + for (let item of items) { + if (!discardItems.includes(item)) { + let quantity = items.reduce((acc, cur) => { + return acc + (cur === item ? 1 : 0); + }, 0); + discardItems.push(item); + + let [result] = await Self.rawSql('SELECT vn.itemPacking(?, ?)', [item, warehouseFk]); + let packing; + + if (result) packing = Object.values(result)[0]; + if (!packing) packing = 1; + + quantity = quantity * packing; + + await Self.rawSql('CALL vn.itemShelving_add(?, ?, ?, NULL, NULL, ?, ?)', + [shelvingFk, + item, + quantity, + packing, + warehouseFk] + ); + } + } + + if (tx) await tx.commit(); + } catch (e) { + if (tx) await tx.rollback(); + throw e; + } + }; +}; diff --git a/modules/item/back/models/item-shelving.js b/modules/item/back/models/item-shelving.js index 98ff18931..4684d49e2 100644 --- a/modules/item/back/models/item-shelving.js +++ b/modules/item/back/models/item-shelving.js @@ -1,4 +1,5 @@ module.exports = Self => { require('../methods/item-shelving/deleteItemShelvings')(Self); require('../methods/item-shelving/getInventory')(Self); + require('../methods/item-shelving/makeMulti')(Self); }; diff --git a/modules/item/back/models/item-shelving.json b/modules/item/back/models/item-shelving.json index bb1a141c4..61d05539e 100644 --- a/modules/item/back/models/item-shelving.json +++ b/modules/item/back/models/item-shelving.json @@ -1,6 +1,6 @@ { "name": "ItemShelving", - "base": "Loggable", + "base": "VnModel", "options": { "mysql": { "table": "itemShelving" From 3333c837029fa3c87713f26914049f416c85c7b5 Mon Sep 17 00:00:00 2001 From: jorgep Date: Thu, 30 Nov 2023 16:25:13 +0100 Subject: [PATCH 009/173] refs #6276 WIP itemShelving_return --- .../item/back/methods/item-shelving/return.js | 77 +++++++++++++++++++ modules/item/back/models/item-shelving.js | 1 + modules/item/back/models/item-shelving.json | 5 +- 3 files changed, 81 insertions(+), 2 deletions(-) create mode 100644 modules/item/back/methods/item-shelving/return.js diff --git a/modules/item/back/methods/item-shelving/return.js b/modules/item/back/methods/item-shelving/return.js new file mode 100644 index 000000000..dc17719de --- /dev/null +++ b/modules/item/back/methods/item-shelving/return.js @@ -0,0 +1,77 @@ +module.exports = Self => { + Self.remoteMethod('return', { + description: 'Returns a list of items and possible alternative locations', + accessType: 'READ', + accepts: [{ + arg: 'shelvingFk', + type: 'string', + required: true, + }], + returns: { + type: 'object', + root: true + }, + http: { + path: `/return`, + verb: 'POST' + } + }); + + Self.return = async(shelvingFk, options) => { + const models = Self.app.models; + const myOptions = {}; + + if (typeof options == 'object') + Object.assign(myOptions, options); + + const filterItemShelvings = { + fields: ['id', 'visible', 'itemFk', 'packing', 'grouping', 'isChecked', 'shelvingFk'], + where: {shelvingFk}, + include: [ + { + relation: 'item', + scope: { + fields: ['longName', 'name', 'size'] + } + }, + { + relation: 'shelving', + + scope: { + include: { + fields: ['id', 'name', 'code'], + relation: 'parking', + } + + } + }, + ] + }; + + let itemShelvings = await models.ItemShelving.find(filterItemShelvings, myOptions); + + let alternatives = await models.ItemShelving.rawSql('CALL vn.itemShelving_getAlternatives(?)', [shelvingFk]); + console.log(alternatives); + + if (itemShelvings) { + itemShelvings = itemShelvings.map(itemShelving => { + const item = itemShelving.item(); + const shelving = itemShelving.shelving(); + const parking = shelving ? shelving.parking() : null; + + return { + item: itemShelving.itemFk, + description: item ? item.longName || `${item.name} ${item.size}` : '', + visible: itemShelving.visible, + stickers: Math.ceil(itemShelving.visible / itemShelving.packing), + packing: itemShelving.packing, + grouping: itemShelving.grouping, + code: parking ? parking.code : '', + id: itemShelving.id, + priority: shelving ? shelving.priority : 0, + isChecked: itemShelving.isChecked + }; + }); + } + }; +}; diff --git a/modules/item/back/models/item-shelving.js b/modules/item/back/models/item-shelving.js index 4684d49e2..e610aabec 100644 --- a/modules/item/back/models/item-shelving.js +++ b/modules/item/back/models/item-shelving.js @@ -2,4 +2,5 @@ module.exports = Self => { require('../methods/item-shelving/deleteItemShelvings')(Self); require('../methods/item-shelving/getInventory')(Self); require('../methods/item-shelving/makeMulti')(Self); + require('../methods/item-shelving/return')(Self); }; diff --git a/modules/item/back/models/item-shelving.json b/modules/item/back/models/item-shelving.json index 61d05539e..bf9e5e4b1 100644 --- a/modules/item/back/models/item-shelving.json +++ b/modules/item/back/models/item-shelving.json @@ -51,7 +51,8 @@ "shelving": { "type": "belongsTo", "model": "Shelving", - "foreignKey": "shelvingFk" - } + "foreignKey": "shelvingFk", + "primaryKey": "code" + } } } From d5f09c2f75dc674f34d0df45aca8f591735e68c5 Mon Sep 17 00:00:00 2001 From: jorgep Date: Fri, 1 Dec 2023 09:44:49 +0100 Subject: [PATCH 010/173] refs #6276 saleTrackingDel --- db/changes/235001/00-newWareHouse.sql | 3 +- .../back/methods/sale-tracking/delete.js | 30 +++++++++++-------- modules/ticket/front/sale-tracking/index.js | 2 +- 3 files changed, 20 insertions(+), 15 deletions(-) diff --git a/db/changes/235001/00-newWareHouse.sql b/db/changes/235001/00-newWareHouse.sql index 05003d8ec..c6f595400 100644 --- a/db/changes/235001/00-newWareHouse.sql +++ b/db/changes/235001/00-newWareHouse.sql @@ -4,4 +4,5 @@ INSERT INTO `salix`.`ACL` (model, property, accessType, permission, principalTyp ('ExpeditionPallet', 'getPallet', 'READ', 'ALLOW', 'ROLE', 'employee'), ('MachineWorker','updateInTime','WRITE','ALLOW','ROLE','employee'), ('MachineWorker','add','READ','ALLOW','ROLE','employee'), - ('MobileAppVersionControl','getVersion','READ','ALLOW','ROLE','employee'); \ No newline at end of file + ('MobileAppVersionControl','getVersion','READ','ALLOW','ROLE','employee'), + ('SaleTracking','deleteTracking','WRITE','ALLOW','ROLE','employee'); \ No newline at end of file diff --git a/modules/ticket/back/methods/sale-tracking/delete.js b/modules/ticket/back/methods/sale-tracking/delete.js index 0b977e5d4..5efd267dc 100644 --- a/modules/ticket/back/methods/sale-tracking/delete.js +++ b/modules/ticket/back/methods/sale-tracking/delete.js @@ -10,12 +10,12 @@ module.exports = Self => { description: 'The sale id' }, { - arg: 'stateCode', - type: 'string' - } + arg: 'stateCodes', + type: ['string'] + }, ], returns: { - type: ['object'], + type: 'boolean', root: true }, http: { @@ -24,7 +24,7 @@ module.exports = Self => { } }); - Self.delete = async(saleFk, stateCode, options) => { + Self.delete = async(saleFk, stateCodes, options) => { const models = Self.app.models; const myOptions = {}; let tx; @@ -38,20 +38,24 @@ module.exports = Self => { } try { - if (stateCode === 'PREPARED') { - const itemShelvingSales = await models.ItemShelvingSale.find({where: {saleFk: saleFk}}, myOptions); - for (let itemShelvingSale of itemShelvingSales) - await itemShelvingSale.destroy(myOptions); - } + const itemShelvingSales = await models.ItemShelvingSale.find({where: {saleFk: saleFk}}, myOptions); - const state = await models.State.findOne({ - where: {code: stateCode} + for (let itemShelvingSale of itemShelvingSales) + await itemShelvingSale.destroy(myOptions); + + const states = await models.State.find({ + fields: ['id'], + where: { + code: {inq: stateCodes} + } }, myOptions); + const stateIds = states.map(state => state.id); + const filter = { where: { saleFk: saleFk, - stateFk: state.id + stateFk: {inq: stateIds} } }; const saleTrackings = await models.SaleTracking.find(filter, myOptions); diff --git a/modules/ticket/front/sale-tracking/index.js b/modules/ticket/front/sale-tracking/index.js index 6c0e7232e..095d581a1 100644 --- a/modules/ticket/front/sale-tracking/index.js +++ b/modules/ticket/front/sale-tracking/index.js @@ -100,7 +100,7 @@ class Controller extends Section { saleTrackingDel(sale, stateCode) { const params = { saleFk: sale.saleFk, - stateCode: stateCode + stateCodes: [stateCode] }; this.$http.post(`SaleTrackings/delete`, params).then(() => { this.vnApp.showSuccess(this.$t('Data saved!')); From f2ab44bb8f3e8bbdeeac2be8ed0deb422697ef2b Mon Sep 17 00:00:00 2001 From: jorgep Date: Fri, 1 Dec 2023 10:14:32 +0100 Subject: [PATCH 011/173] refs #6276 itemShelving_return --- .../item/back/methods/item-shelving/return.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/modules/item/back/methods/item-shelving/return.js b/modules/item/back/methods/item-shelving/return.js index dc17719de..6e0f80824 100644 --- a/modules/item/back/methods/item-shelving/return.js +++ b/modules/item/back/methods/item-shelving/return.js @@ -8,7 +8,7 @@ module.exports = Self => { required: true, }], returns: { - type: 'object', + type: ['object'], root: true }, http: { @@ -50,8 +50,7 @@ module.exports = Self => { let itemShelvings = await models.ItemShelving.find(filterItemShelvings, myOptions); - let alternatives = await models.ItemShelving.rawSql('CALL vn.itemShelving_getAlternatives(?)', [shelvingFk]); - console.log(alternatives); + const alternatives = await models.ItemShelving.rawSql('CALL vn.itemShelving_getAlternatives(?)', [shelvingFk]); if (itemShelvings) { itemShelvings = itemShelvings.map(itemShelving => { @@ -59,19 +58,23 @@ module.exports = Self => { const shelving = itemShelving.shelving(); const parking = shelving ? shelving.parking() : null; + const carros = alternatives.filter(el => el.item == itemShelving.itemFk); + return { + id: itemShelving.id, item: itemShelving.itemFk, - description: item ? item.longName || `${item.name} ${item.size}` : '', - visible: itemShelving.visible, + longName: item ? item.longName || `${item.name} ${item.size}` : '', + quantity: itemShelving.visible, stickers: Math.ceil(itemShelving.visible / itemShelving.packing), packing: itemShelving.packing, grouping: itemShelving.grouping, code: parking ? parking.code : '', - id: itemShelving.id, priority: shelving ? shelving.priority : 0, - isChecked: itemShelving.isChecked + isChecked: itemShelving.isChecked, + carros }; }); } + return itemShelvings; }; }; From d2769f4c2190ab55b22a1cf0e7dcf5d41a5d22df Mon Sep 17 00:00:00 2001 From: jorgep Date: Fri, 1 Dec 2023 11:38:30 +0100 Subject: [PATCH 012/173] refs #6276 return fixed --- modules/item/back/methods/item-shelving/return.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/item/back/methods/item-shelving/return.js b/modules/item/back/methods/item-shelving/return.js index 6e0f80824..346fe8bdf 100644 --- a/modules/item/back/methods/item-shelving/return.js +++ b/modules/item/back/methods/item-shelving/return.js @@ -13,7 +13,7 @@ module.exports = Self => { }, http: { path: `/return`, - verb: 'POST' + verb: 'GET' } }); From 7e57640758ebdc47403e98af56c69a8dfee960e5 Mon Sep 17 00:00:00 2001 From: jorgep Date: Fri, 1 Dec 2023 11:43:07 +0100 Subject: [PATCH 013/173] refs #6276 itemShelving_updateFromSale --- .../methods/item-shelving/updateFromSale.js | 51 +++++++++++++++++++ modules/item/back/models/item-shelving.js | 1 + 2 files changed, 52 insertions(+) create mode 100644 modules/item/back/methods/item-shelving/updateFromSale.js diff --git a/modules/item/back/methods/item-shelving/updateFromSale.js b/modules/item/back/methods/item-shelving/updateFromSale.js new file mode 100644 index 000000000..cd2012edb --- /dev/null +++ b/modules/item/back/methods/item-shelving/updateFromSale.js @@ -0,0 +1,51 @@ +module.exports = Self => { + Self.remoteMethod('updateFromSale', { + description: 'Returns a list of items and possible alternative locations', + accessType: 'WRITE', + accepts: [{ + arg: 'saleFk', + type: 'number', + required: true, + }], + http: { + path: `/updateFromSale`, + verb: 'POST' + } + }); + + Self.updateFromSale = async(saleFk, options) => { + const models = Self.app.models; + const myOptions = {}; + let tx; + + if (typeof options == 'object') + Object.assign(myOptions, options); + + if (!myOptions.transaction) { + tx = await Self.beginTransaction({}); + myOptions.transaction = tx; + } + + try { + const itemShelvingSale = await models.ItemShelvingSale.findOne({ + where: {saleFk} + }, myOptions); + + const itemShelving = await models.ItemShelving.findOne({ + where: { + id: itemShelvingSale.ItemShelvingFk + } + }); + const quantity = itemShelving.visible + itemShelvingSale.quantity; + + await itemShelving.updateAttributes( + {visible: quantity}, + myOptions + ); + if (tx) await tx.commit(); + } catch (e) { + if (tx) await tx.rollback(); + throw e; + } + }; +}; diff --git a/modules/item/back/models/item-shelving.js b/modules/item/back/models/item-shelving.js index e610aabec..4eb5374e8 100644 --- a/modules/item/back/models/item-shelving.js +++ b/modules/item/back/models/item-shelving.js @@ -3,4 +3,5 @@ module.exports = Self => { require('../methods/item-shelving/getInventory')(Self); require('../methods/item-shelving/makeMulti')(Self); require('../methods/item-shelving/return')(Self); + require('../methods/item-shelving/updateFromSale')(Self); }; From 660e77be5527dc01e4693fbdf97dd4d10af300a8 Mon Sep 17 00:00:00 2001 From: jorgep Date: Fri, 1 Dec 2023 12:48:21 +0100 Subject: [PATCH 014/173] refs #6276 updateFromSale refactored --- .../item/back/methods/item-shelving/updateFromSale.js | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/modules/item/back/methods/item-shelving/updateFromSale.js b/modules/item/back/methods/item-shelving/updateFromSale.js index cd2012edb..b63b766c2 100644 --- a/modules/item/back/methods/item-shelving/updateFromSale.js +++ b/modules/item/back/methods/item-shelving/updateFromSale.js @@ -28,14 +28,11 @@ module.exports = Self => { try { const itemShelvingSale = await models.ItemShelvingSale.findOne({ - where: {saleFk} + where: {saleFk}, + include: {relation: 'itemShelving'} }, myOptions); - const itemShelving = await models.ItemShelving.findOne({ - where: { - id: itemShelvingSale.ItemShelvingFk - } - }); + const itemShelving = itemShelvingSale.itemShelving(); const quantity = itemShelving.visible + itemShelvingSale.quantity; await itemShelving.updateAttributes( From 4690dca4f955ceff7eb53ddf2e08e0d0d25622db Mon Sep 17 00:00:00 2001 From: jorgep Date: Fri, 1 Dec 2023 13:54:09 +0100 Subject: [PATCH 015/173] refs #6276 getItemPackingType --- .../methods/item-shelving/updateFromSale.js | 2 +- .../methods/operator/getItemPackingType.js | 28 +++++++++++++++++++ modules/worker/back/models/operator.js | 1 + modules/worker/back/models/operator.json | 6 ++++ 4 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 modules/worker/back/methods/operator/getItemPackingType.js diff --git a/modules/item/back/methods/item-shelving/updateFromSale.js b/modules/item/back/methods/item-shelving/updateFromSale.js index b63b766c2..2b9f49cae 100644 --- a/modules/item/back/methods/item-shelving/updateFromSale.js +++ b/modules/item/back/methods/item-shelving/updateFromSale.js @@ -1,6 +1,6 @@ module.exports = Self => { Self.remoteMethod('updateFromSale', { - description: 'Returns a list of items and possible alternative locations', + description: 'Update the visible items', accessType: 'WRITE', accepts: [{ arg: 'saleFk', diff --git a/modules/worker/back/methods/operator/getItemPackingType.js b/modules/worker/back/methods/operator/getItemPackingType.js new file mode 100644 index 000000000..6e2125b5b --- /dev/null +++ b/modules/worker/back/methods/operator/getItemPackingType.js @@ -0,0 +1,28 @@ +module.exports = Self => { + Self.remoteMethodCtx('getItemPackingType', { + description: 'Retrieve the operator items', + accessType: 'READ', + returns: { + type: 'string', + }, + http: { + path: `/getItemPackingType`, + verb: 'GET' + }, + }); + + Self.getItemPackingType = async ctx => { + const userId = 9 ?? ctx.req.accessToken.userId; + + const result = await Self.findOne({ + where: { + workerFk: userId + }, + include: { + relation: 'itemPackingType', + } + }); + const itemPackingType = result.itemPackingType(); + return itemPackingType?.description; + }; +}; diff --git a/modules/worker/back/models/operator.js b/modules/worker/back/models/operator.js index 5e8870130..b9ea481a7 100644 --- a/modules/worker/back/models/operator.js +++ b/modules/worker/back/models/operator.js @@ -2,6 +2,7 @@ module.exports = Self => { require('../methods/operator/add')(Self); require('../methods/operator/getPrinter')(Self); require('../methods/operator/getAvailablePrinters')(Self); + require('../methods/operator/getItemPackingType')(Self); Self.observe('after save', async function(ctx) { const instance = ctx.data || ctx.instance; diff --git a/modules/worker/back/models/operator.json b/modules/worker/back/models/operator.json index 6da3945fc..a2f3ee01c 100644 --- a/modules/worker/back/models/operator.json +++ b/modules/worker/back/models/operator.json @@ -43,6 +43,12 @@ "type": "belongsTo", "model": "Printer", "foreignKey": "labelerFk" + }, + "itemPackingType": { + "type": "belongsTo", + "model": "ItemPackingType", + "foreignKey": "itemPackingTypeFk", + "primaryKey": "code" } } } From 1dfdd94584de25519d91324f09b34f93ab1fad61 Mon Sep 17 00:00:00 2001 From: jorgep Date: Fri, 1 Dec 2023 13:56:43 +0100 Subject: [PATCH 016/173] refs #6276 fix getItemPackingType --- modules/worker/back/methods/operator/getItemPackingType.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/modules/worker/back/methods/operator/getItemPackingType.js b/modules/worker/back/methods/operator/getItemPackingType.js index 6e2125b5b..d28cd95fe 100644 --- a/modules/worker/back/methods/operator/getItemPackingType.js +++ b/modules/worker/back/methods/operator/getItemPackingType.js @@ -3,7 +3,7 @@ module.exports = Self => { description: 'Retrieve the operator items', accessType: 'READ', returns: { - type: 'string', + type: 'object', }, http: { path: `/getItemPackingType`, @@ -23,6 +23,9 @@ module.exports = Self => { } }); const itemPackingType = result.itemPackingType(); - return itemPackingType?.description; + + return { + description: itemPackingType?.description + }; }; }; From 8acd03f1159b70fdde9fd11c99d4b06dc6ca2a20 Mon Sep 17 00:00:00 2001 From: jorgep Date: Mon, 11 Dec 2023 13:01:34 +0100 Subject: [PATCH 017/173] refs #6276 saleTrackingReplace --- db/changes/235001/00-newWareHouse.sql | 3 +- .../methods/sale-tracking/updateTracking.js | 100 ++++++++++++++++++ modules/ticket/back/model-config.json | 3 + modules/ticket/back/models/sale-buy.json | 33 ++++++ modules/ticket/back/models/sale-tracking.js | 1 + modules/ticket/back/models/sale-tracking.json | 3 + 6 files changed, 142 insertions(+), 1 deletion(-) create mode 100644 modules/ticket/back/methods/sale-tracking/updateTracking.js create mode 100644 modules/ticket/back/models/sale-buy.json diff --git a/db/changes/235001/00-newWareHouse.sql b/db/changes/235001/00-newWareHouse.sql index c6f595400..f563ce40c 100644 --- a/db/changes/235001/00-newWareHouse.sql +++ b/db/changes/235001/00-newWareHouse.sql @@ -5,4 +5,5 @@ INSERT INTO `salix`.`ACL` (model, property, accessType, permission, principalTyp ('MachineWorker','updateInTime','WRITE','ALLOW','ROLE','employee'), ('MachineWorker','add','READ','ALLOW','ROLE','employee'), ('MobileAppVersionControl','getVersion','READ','ALLOW','ROLE','employee'), - ('SaleTracking','deleteTracking','WRITE','ALLOW','ROLE','employee'); \ No newline at end of file + ('SaleTracking','deleteTracking','WRITE','ALLOW','ROLE','employee'), + ('SaleTracking','updateTracking','WRITE','ALLOW','ROLE','employee'); \ No newline at end of file diff --git a/modules/ticket/back/methods/sale-tracking/updateTracking.js b/modules/ticket/back/methods/sale-tracking/updateTracking.js new file mode 100644 index 000000000..1f499022e --- /dev/null +++ b/modules/ticket/back/methods/sale-tracking/updateTracking.js @@ -0,0 +1,100 @@ +module.exports = Self => { + Self.remoteMethodCtx('updateTracking', { + description: 'Modify a saleTracking record and, if applicable, add a corresponding record in saleBuy.', + accessType: 'WRITE', + accepts: [ + { + arg: 'saleFk', + type: 'number', + required: true + }, + { + arg: 'originalQuantity', + type: 'number', + required: true + }, + { + arg: 'code', + type: 'string', + required: true + }, + { + arg: 'isChecked', + type: 'number', + required: true + }, + { + arg: 'buyFk', + type: 'number', + required: true + }, + { + arg: 'isScanned', + type: 'number', + }, + ], + http: { + path: `/updateTracking`, + verb: 'POST' + } + }); + + Self.updateTracking = async(ctx, saleFk, originalQuantity, code, isChecked, buyFk, isScanned, options) => { + const userId = ctx.req.accessToken.userId; + const models = Self.app.models; + const myOptions = {}; + let tx; + + if (typeof options == 'object') + Object.assign(myOptions, options); + + if (!myOptions.transaction) { + tx = await Self.beginTransaction({}); + myOptions.transaction = tx; + } + + try { + const state = await models.State.findOne({ + where: {code}, + }, myOptions); + + const attributes = { + saleFk, + isChecked, + originalQuantity, + workerFk: userId, + stateFk: state.id, + isScanned, + }; + + const saleTracking = await models.SaleTracking.findOne({ + where: attributes, + }, myOptions); + + if (!saleTracking) + await models.SaleTracking.create(attributes, myOptions); + + else + await saleTracking.updateAttributes(attributes, myOptions); + + let isBuy; + if (buyFk) { + isBuy = await models.Buy.findOne({ + where: { + id: buyFk, + itemOriginalFk: { + neq: null + } + } + }); + } + if (isBuy) + await models.SaleBuy.create({saleFk, buyFk}, myOptions); + + if (tx) await tx.commit(); + } catch (e) { + if (tx) await tx.rollback(); + throw e; + } + }; +}; diff --git a/modules/ticket/back/model-config.json b/modules/ticket/back/model-config.json index 76a289cc3..db90b55e1 100644 --- a/modules/ticket/back/model-config.json +++ b/modules/ticket/back/model-config.json @@ -65,6 +65,9 @@ "SaleTracking": { "dataSource": "vn" }, + "SaleBuy": { + "dataSource": "vn" + }, "State": { "dataSource": "vn" }, diff --git a/modules/ticket/back/models/sale-buy.json b/modules/ticket/back/models/sale-buy.json new file mode 100644 index 000000000..5279e6787 --- /dev/null +++ b/modules/ticket/back/models/sale-buy.json @@ -0,0 +1,33 @@ +{ + "name": "SaleBuy", + "base": "VnModel", + "options": { + "mysql": { + "table": "saleBuy" + } + }, + "properties": { + "saleFk": { + "id": true, + "type": "number", + "forceId": false + }, + "buyFk": { + "type": "number" + }, + "created": { + "type": "date" + }, + "isChecked": { + "type": "number" + } + }, + "relations": { + "sale": { + "type": "belongsTo", + "model": "Sale", + "foreignKey": "saleFk" + } + } +} + \ No newline at end of file diff --git a/modules/ticket/back/models/sale-tracking.js b/modules/ticket/back/models/sale-tracking.js index 54a2b5a1a..4b513a716 100644 --- a/modules/ticket/back/models/sale-tracking.js +++ b/modules/ticket/back/models/sale-tracking.js @@ -3,4 +3,5 @@ module.exports = Self => { require('../methods/sale-tracking/listSaleTracking')(Self); require('../methods/sale-tracking/new')(Self); require('../methods/sale-tracking/delete')(Self); + require('../methods/sale-tracking/updateTracking')(Self); }; diff --git a/modules/ticket/back/models/sale-tracking.json b/modules/ticket/back/models/sale-tracking.json index 4a103ea15..5e512f844 100644 --- a/modules/ticket/back/models/sale-tracking.json +++ b/modules/ticket/back/models/sale-tracking.json @@ -26,6 +26,9 @@ }, "originalQuantity": { "type": "number" + }, + "isScanned": { + "type": "number" } }, "relations": { From 3109f7722e867b1f8c9101abe287ba31929aff57 Mon Sep 17 00:00:00 2001 From: jorgep Date: Tue, 12 Dec 2023 13:24:18 +0100 Subject: [PATCH 018/173] refs #6276 saleTracking_mark --- db/changes/235001/00-newWareHouse.sql | 3 +- loopback/locale/en.json | 3 +- loopback/locale/es.json | 3 +- .../ticket/back/methods/sale-tracking/mark.js | 102 ++++++++++++++++++ modules/ticket/back/models/sale-tracking.js | 1 + 5 files changed, 109 insertions(+), 3 deletions(-) create mode 100644 modules/ticket/back/methods/sale-tracking/mark.js diff --git a/db/changes/235001/00-newWareHouse.sql b/db/changes/235001/00-newWareHouse.sql index f563ce40c..13d5c87ad 100644 --- a/db/changes/235001/00-newWareHouse.sql +++ b/db/changes/235001/00-newWareHouse.sql @@ -6,4 +6,5 @@ INSERT INTO `salix`.`ACL` (model, property, accessType, permission, principalTyp ('MachineWorker','add','READ','ALLOW','ROLE','employee'), ('MobileAppVersionControl','getVersion','READ','ALLOW','ROLE','employee'), ('SaleTracking','deleteTracking','WRITE','ALLOW','ROLE','employee'), - ('SaleTracking','updateTracking','WRITE','ALLOW','ROLE','employee'); \ No newline at end of file + ('SaleTracking','updateTracking','WRITE','ALLOW','ROLE','employee'), + ('SaleTracking','mark','WRITE','ALLOW','ROLE','employee'); \ No newline at end of file diff --git a/loopback/locale/en.json b/loopback/locale/en.json index 7d5b5ed47..8ccb7a245 100644 --- a/loopback/locale/en.json +++ b/loopback/locale/en.json @@ -200,5 +200,6 @@ "Try again": "Try again", "keepPrice": "keepPrice", "Cannot past travels with entries": "Cannot past travels with entries", - "It was not able to remove the next expeditions:": "It was not able to remove the next expeditions: {{expeditions}}" + "It was not able to remove the next expeditions:": "It was not able to remove the next expeditions: {{expeditions}}", + "The notification subscription of this worker cant be modified": "The notification subscription of this worker cant be modified" } \ No newline at end of file diff --git a/loopback/locale/es.json b/loopback/locale/es.json index 01384efb4..ea8f99805 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -329,5 +329,6 @@ "The amount cannot be less than the minimum": "La cantidad no puede ser menor que la cantidad mínima", "quantityLessThanMin": "La cantidad no puede ser menor que la cantidad mínima", "Cannot past travels with entries": "No se pueden pasar envíos con entradas", - "It was not able to remove the next expeditions:": "No se pudo eliminar las siguientes expediciones: {{expeditions}}" + "It was not able to remove the next expeditions:": "No se pudo eliminar las siguientes expediciones: {{expeditions}}", + "The line could not be marked": "The line could not be marked" } \ No newline at end of file diff --git a/modules/ticket/back/methods/sale-tracking/mark.js b/modules/ticket/back/methods/sale-tracking/mark.js new file mode 100644 index 000000000..f2cb96099 --- /dev/null +++ b/modules/ticket/back/methods/sale-tracking/mark.js @@ -0,0 +1,102 @@ +const UserError = require('vn-loopback/util/user-error'); + +module.exports = Self => { + Self.remoteMethodCtx('mark', { + description: 'Insert an itemShelvingSale and Modify a saleTracking record', + accessType: 'WRITE', + accepts: [ + { + arg: 'saleFk', + type: 'number', + required: true + }, + { + arg: 'originalQuantity', + type: 'number', + required: true + }, + { + arg: 'code', + type: 'string', + required: true + }, + { + arg: 'isChecked', + type: 'number', + required: true + }, + { + arg: 'buyFk', + type: 'number', + required: true + }, + { + arg: 'isScanned', + type: 'number', + }, + { + arg: 'quantity', + type: 'number', + required: true + }, + { + arg: 'itemShelvingFk', + type: 'number', + required: true + } + ], + http: { + path: `/mark`, + verb: 'POST' + } + }); + + Self.mark = async(ctx, saleFk, originalQuantity, code, isChecked, buyFk, isScanned, quantity, itemShelvingFk, options) => { + const userId = ctx.req.accessToken.userId; + const models = Self.app.models; + const myOptions = {}; + let tx; + + if (typeof options == 'object') + Object.assign(myOptions, options); + + if (!myOptions.transaction) { + tx = await Self.beginTransaction({}); + myOptions.transaction = tx; + } + + try { + await models.ItemShelvingSale.create({ + itemShelvingFk, + saleFk, + quantity, + userFk: userId + }, myOptions); + + const itemShelving = await models.ItemShelving.findOne({ + where: { + id: itemShelvingFk + } + }, myOptions); + + if (itemShelving.visible) { + await itemShelving.updateAttributes({ + visible: itemShelving.visible - quantity} + , myOptions); + } + + await Self.updateAll( + {saleFk}, + {isChecked: 1}, + myOptions + ); + + await Self.updateTracking(ctx, saleFk, originalQuantity, code, isChecked, buyFk, isScanned, myOptions); + + if (tx) await tx.commit(); + } catch (e) { + if (tx) await tx.rollback(); + throw new UserError('The line could not be marked'); + } + }; +}; diff --git a/modules/ticket/back/models/sale-tracking.js b/modules/ticket/back/models/sale-tracking.js index 4b513a716..f284ec185 100644 --- a/modules/ticket/back/models/sale-tracking.js +++ b/modules/ticket/back/models/sale-tracking.js @@ -4,4 +4,5 @@ module.exports = Self => { require('../methods/sale-tracking/new')(Self); require('../methods/sale-tracking/delete')(Self); require('../methods/sale-tracking/updateTracking')(Self); + require('../methods/sale-tracking/mark')(Self); }; From f5ee3aff7ad7660c276de50df7fd20cb9d187702 Mon Sep 17 00:00:00 2001 From: jorgep Date: Tue, 12 Dec 2023 13:43:15 +0100 Subject: [PATCH 019/173] refs #6276 remove checking visible --- modules/ticket/back/methods/sale-tracking/mark.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/modules/ticket/back/methods/sale-tracking/mark.js b/modules/ticket/back/methods/sale-tracking/mark.js index f2cb96099..da637a7db 100644 --- a/modules/ticket/back/methods/sale-tracking/mark.js +++ b/modules/ticket/back/methods/sale-tracking/mark.js @@ -79,11 +79,9 @@ module.exports = Self => { } }, myOptions); - if (itemShelving.visible) { - await itemShelving.updateAttributes({ - visible: itemShelving.visible - quantity} - , myOptions); - } + await itemShelving.updateAttributes({ + visible: itemShelving.visible - quantity} + , myOptions); await Self.updateAll( {saleFk}, From 7b81630b8525be8f587085f12a45af96642a5c9c Mon Sep 17 00:00:00 2001 From: jorgep Date: Tue, 12 Dec 2023 14:56:58 +0100 Subject: [PATCH 020/173] refs #6276 shelvingLog_add --- .../shelving/back/methods/shelving/addLog.js | 55 +++++++++++++++++++ modules/shelving/back/models/shelving.js | 1 + 2 files changed, 56 insertions(+) create mode 100644 modules/shelving/back/methods/shelving/addLog.js diff --git a/modules/shelving/back/methods/shelving/addLog.js b/modules/shelving/back/methods/shelving/addLog.js new file mode 100644 index 000000000..13f9075f1 --- /dev/null +++ b/modules/shelving/back/methods/shelving/addLog.js @@ -0,0 +1,55 @@ +const UserError = require('vn-loopback/util/user-error'); + +module.exports = Self => { + Self.remoteMethodCtx('addLog', { + description: 'Add a new log', + accessType: 'WRITE', + accepts: { + arg: 'code', + type: 'string', + required: true, + }, + http: { + path: '/addLog', + verb: 'POST' + } + }); + Self.addLog = async(ctx, code, options) => { + const userId = ctx.req.accessToken.userId; + const models = Self.app.models; + const myOptions = {}; + let tx; + + if (typeof options == 'object') + Object.assign(myOptions, options); + + if (!myOptions.transaction) { + tx = await Self.beginTransaction({}); + myOptions.transaction = tx; + } + + try { + const shelving = await Self.findOne({ + where: { + code + } + }, myOptions); + + if (!shelving) throw new UserError('Shelving not valid'); + + await models.ShelvingLog.create({ + changedModel: 'Shelving', + originFk: shelving.id, + changedModelId: shelving.id, + action: 'select', + userFk: userId + + }, myOptions); + + if (tx) await tx.commit(); + } catch (e) { + if (tx) await tx.rollback(); + throw e; + } + }; +}; diff --git a/modules/shelving/back/models/shelving.js b/modules/shelving/back/models/shelving.js index 3e27f5863..bf611d2ba 100644 --- a/modules/shelving/back/models/shelving.js +++ b/modules/shelving/back/models/shelving.js @@ -1,3 +1,4 @@ module.exports = Self => { require('../methods/shelving/getSummary')(Self); + require('../methods/shelving/addLog')(Self); }; From 9e6fac9addd04b59a446178f518e4bcf48afa69a Mon Sep 17 00:00:00 2001 From: jorgep Date: Tue, 12 Dec 2023 16:00:43 +0100 Subject: [PATCH 021/173] refs #6276 change to boolean --- modules/ticket/back/methods/sale-tracking/mark.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/ticket/back/methods/sale-tracking/mark.js b/modules/ticket/back/methods/sale-tracking/mark.js index da637a7db..a5b8ece52 100644 --- a/modules/ticket/back/methods/sale-tracking/mark.js +++ b/modules/ticket/back/methods/sale-tracking/mark.js @@ -22,7 +22,7 @@ module.exports = Self => { }, { arg: 'isChecked', - type: 'number', + type: 'boolean', required: true }, { @@ -85,7 +85,7 @@ module.exports = Self => { await Self.updateAll( {saleFk}, - {isChecked: 1}, + {isChecked: true}, myOptions ); From 64c10f3b8e5d8b6f2d20ecd2132d25cf0f4a2609 Mon Sep 17 00:00:00 2001 From: jorgep Date: Wed, 13 Dec 2023 08:52:43 +0100 Subject: [PATCH 022/173] refs #6276 sectorCollection_getSales --- .../back/methods/item-shelving/getSale.js | 58 +++++++++++++++++++ modules/item/back/models/item-shelving.js | 1 + 2 files changed, 59 insertions(+) create mode 100644 modules/item/back/methods/item-shelving/getSale.js diff --git a/modules/item/back/methods/item-shelving/getSale.js b/modules/item/back/methods/item-shelving/getSale.js new file mode 100644 index 000000000..084f7351f --- /dev/null +++ b/modules/item/back/methods/item-shelving/getSale.js @@ -0,0 +1,58 @@ +module.exports = Self => { + Self.remoteMethod('getSale', { + description: 'Update the visible items', + accessType: 'WRITE', + accepts: [ + { + arg: 'sectorCollectionFk', + type: 'number', + required: true, + }, + { + arg: 'sectorFk', + type: 'number', + required: true + } + ], + returns: { + type: ['object'], + root: true + }, + http: { + path: `/getSale`, + verb: 'GET' + }, + }); + + Self.getSale = async(sectorCollectionFk, sectorFk, options) => { + const myOptions = {}; + + if (typeof options == 'object') Object.assign(myOptions, options); + + const sales = await Self.rawSql('CALL vn.sectorCollection_getSale(?)', [sectorCollectionFk]); + + const itemShelvings = []; + for (let sale of sales) { + const [carros] = await Self.rawSql( + 'CALL vn.itemPlacementSupplyStockGetTargetList(?, ?)', + [sale.itemFk, sectorFk] + ); + + itemShelvings.push({ + id: sale.ticketFk, + itemFk: sale.itemFk, + longName: sale.longName, + packingType: sale.itemPackingTypeFk, + subName: sale.subName, + quantity: {saldo: sale.quantity}, + trabajador: sale.workerCode, + idMovimiento: sale.saleFk, + salesPersonFk: sale.salesPersonFk, + picked: sale.pickedQuantity, + carros + }); + } + + return itemShelvings; + }; +}; diff --git a/modules/item/back/models/item-shelving.js b/modules/item/back/models/item-shelving.js index 4eb5374e8..e349b9c34 100644 --- a/modules/item/back/models/item-shelving.js +++ b/modules/item/back/models/item-shelving.js @@ -4,4 +4,5 @@ module.exports = Self => { require('../methods/item-shelving/makeMulti')(Self); require('../methods/item-shelving/return')(Self); require('../methods/item-shelving/updateFromSale')(Self); + require('../methods/item-shelving/getSale')(Self); }; From a4c3d78e31d1581c3a28c3f9973c9b282957bdf9 Mon Sep 17 00:00:00 2001 From: jorgep Date: Wed, 13 Dec 2023 09:45:01 +0100 Subject: [PATCH 023/173] refs #6276 drop fixtures & fix getSale --- db/dump/fixtures.sql | 673 +----------------- .../back/methods/item-shelving/getSale.js | 2 +- 2 files changed, 2 insertions(+), 673 deletions(-) diff --git a/db/dump/fixtures.sql b/db/dump/fixtures.sql index d3bb4257f..dd1d0951e 100644 --- a/db/dump/fixtures.sql +++ b/db/dump/fixtures.sql @@ -3008,675 +3008,4 @@ INSERT INTO `vn`.`invoiceCorrectionType` (`id`, `description`) VALUES (1, 'Error in VAT calculation'), (2, 'Error in sales details'), - (3, 'Error in customer data'); - - -/* - Se necesitan, para hacer un simulacro de pedido, lo siguiente: - - - Warehouse 999 - - Sectores - - Normal 9991 - - Previa 9992 - - Altillo 9993 - - Parkings - - Normal A-01-1, A-02-2, B-03-3, B-04-4, C-05-5 - - Previa P-01-1, P-02-2, P-03-3 - - Altillo M-01-1, M-02-2, M-03-3 - - Shelvings - - Normal NAA, NBB, NCC, NDD, NEE - - Previa PAA, PBB, PCC - - Altillo MAA, MBB, MCC - - Items - * Normal - * Previa: - - Ticket - - Sales - -*/ - -INSERT IGNORE INTO intrastat - SET id = 44219999, - description = 'Manufacturas de madera', - taxClassFk = 1, - taxCodeFk = 1; - -INSERT IGNORE INTO warehouse - SET id = 999, - name = 'TestingWarehouse', - hasAvailable = TRUE, - isForTicket = TRUE, - isInventory = TRUE, - hasUbications = TRUE, - hasProduction = TRUE; - -INSERT IGNORE INTO sector - SET id = 9991, - description = 'NormalSector', - warehouseFk = 999, - isPreviousPreparedByPacking = FALSE, - code = 'NS', - isPreviousPrepared = FALSE, - isPackagingArea = FALSE, - sonFk = NULL, - isMain = TRUE, - itemPackingTypeFk = NULL; - -INSERT IGNORE INTO sector - SET id = 9992, - description = 'PreviousSector', - warehouseFk = 999, - isPreviousPreparedByPacking = FALSE, - code = 'PS', - isPreviousPrepared = TRUE, - isPackagingArea = FALSE, - sonFk = NULL, - isMain = TRUE, - itemPackingTypeFk = NULL; - -INSERT IGNORE INTO sector - SET id = 9993, - description = 'MezaninneSector', - warehouseFk = 999, - isPreviousPreparedByPacking = TRUE, - code = 'MS', - isPreviousPrepared = FALSE, - isPackagingArea = FALSE, - sonFk = 9991, - isMain = TRUE, - itemPackingTypeFk = NULL; - -REPLACE parking SET id = 9991011, sectorFk = 9991, code = 'A-01-1', pickingOrder = 1; -REPLACE parking SET id = 9991012, sectorFk = 9991, code = 'A-02-2', pickingOrder = 2; -REPLACE parking SET id = 9991013, sectorFk = 9991, code = 'A-03-3', pickingOrder = 3; -REPLACE parking SET id = 9991014, sectorFk = 9991, code = 'A-04-4', pickingOrder = 4; -REPLACE parking SET id = 9991015, sectorFk = 9991, code = 'A-05-5', pickingOrder = 5; - -REPLACE parking SET id = 9992011, sectorFk = 9992, code = 'P-01-1', pickingOrder = 6; -REPLACE parking SET id = 9992012, sectorFk = 9992, code = 'P-02-2', pickingOrder = 7; -REPLACE parking SET id = 9992013, sectorFk = 9992, code = 'P-03-3', pickingOrder = 8; - -REPLACE parking SET id = 9993011, sectorFk = 9993, code = 'M-01-1', pickingOrder = 9; -REPLACE parking SET id = 9993012, sectorFk = 9993, code = 'M-02-2', pickingOrder = 10; -REPLACE parking SET id = 9993013, sectorFk = 9993, code = 'M-03-3', pickingOrder = 11; - -REPLACE shelving SET code = 'NAA', parkingFk = 9991011, priority = 1; -REPLACE shelving SET code = 'NBB', parkingFk = 9991012, priority = 1; -REPLACE shelving SET code = 'NCC', parkingFk = 9991013, priority = 1; -REPLACE shelving SET code = 'NDD', parkingFk = 9991014, priority = 1; -REPLACE shelving SET code = 'NEE', parkingFk = 9991015, priority = 1; - -REPLACE shelving SET code = 'PAA', parkingFk = 9992011, priority = 1; -REPLACE shelving SET code = 'PBB', parkingFk = 9992012, priority = 1; -REPLACE shelving SET code = 'PCC', parkingFk = 9992013, priority = 1; - -REPLACE shelving SET code = 'MAA', parkingFk = 9993011, priority = 1; -REPLACE shelving SET code = 'MBB', parkingFk = 9993012, priority = 1; -REPLACE shelving SET code = 'MCC', parkingFk = 9993013, priority = 1; - -INSERT IGNORE INTO itemType - SET id = 999, - code = 'WOO', - name = 'Wood Objects', - categoryFk = 3, - workerFk = 103, - isInventory = TRUE, - life = 10, - density = 250, - itemPackingTypeFk = NULL, - temperatureFk = 'warm'; - -INSERT IGNORE INTO travel - SET id = 99, - shipped = CURDATE(), - landed = CURDATE(), - warehouseInFk = 999, - warehouseOutFk = 1, - isReceived = TRUE, - agencyFk = 1; - -REPLACE entry - SET id = 999, - supplierFk = 791, - isConfirmed = TRUE, - dated = CURDATE(), - travelFk = 99, - companyFk = 442; - -REPLACE ticket - SET id = 999999, - clientFk = 2, - warehouseFk = 999, - shipped = CURDATE(), - nickname = 'Cliente', - addressFk = 1, - companyFk = 442, - agencyModeFk = 10, - landed = CURDATE(); - -REPLACE collection - SET id = 10101010, - workerFk = 103; - -INSERT IGNORE INTO ticketCollection - SET id = 10101010, - ticketFk = 999999, - collectionFk = 10101010; - -REPLACE item - SET id = 999991, - name = 'Palito para pinchos', - `size` = 25, - stems = NULL, - category = 'EXT', - typeFk = 999, - longName = 'Palito para pinchos', - itemPackingTypeFk = NULL, - originFk = 1, - weightByPiece = 6, - intrastatFk = 44219999; - -REPLACE buy - SET id = 9999991, - entryFk = 999, - itemFk = 999991, - quantity = 8, - buyingValue = 0.61, - stickers = 1, - packing = 20, - `grouping` = 1, - groupingMode = 1, - packageFk = 94, - price1 = 1, - price2 = 1, - price3 = 1, - minPrice = 1, - weight = 50; - -REPLACE sale - SET id = 99991, - itemFk = 999991, - ticketFk = 999999, - concept = 'Palito para pinchos', - quantity = 3, - price = 1, - discount = 0; - -REPLACE item - SET id = 999992, - name = 'Madera verde', - `size` = 10, - stems = NULL, - category = 'EXT', - typeFk = 999, - longName = 'Madera verde', - itemPackingTypeFk = NULL, - originFk = 1, - weightByPiece = 50, - intrastatFk = 44219999; - -REPLACE buy - SET id = 9999992, - entryFk = 999, - itemFk = 999992, - quantity = 40, - buyingValue = 0.62, - stickers = 1, - packing = 40, - `grouping` = 5, - groupingMode = 1, - packageFk = 94, - price1 = 1, - price2 = 1, - price3 = 1, - minPrice = 1, - weight = 25; - -REPLACE sale - SET id = 99992, - itemFk = 999992, - ticketFk = 999999, - concept = 'Madera Verde', - quantity = 10, - price = 1, - discount = 0; - -REPLACE item - SET id = 999993, - name = 'Madera Roja/Morada', - `size` = 12, - stems = 2, - category = 'EXT', - typeFk = 999, - longName = 'Madera Roja/Morada', - itemPackingTypeFk = NULL, - originFk = 1, - weightByPiece = 35, - intrastatFk = 44219999; - -REPLACE buy - SET id = 9999993, - entryFk = 999, - itemFk = 999993, - quantity = 20, - buyingValue = 0.63, - stickers = 2, - packing = 10, - `grouping` = 5, - groupingMode = 1, - packageFk = 94, - price1 = 1, - price2 = 1, - price3 = 1, - minPrice = 1, - weight = 25; - -REPLACE itemShelving - SET id = 9931, - itemFk = 999993, - shelvingFk = 'NCC', - visible = 10, - `grouping` = 5, - packing = 10; - -REPLACE sale - SET id = 99993, - itemFk = 999993, - ticketFk = 999999, - concept = 'Madera Roja/Morada', - quantity = 15, - price = 1, - discount = 0; - -REPLACE item - SET id = 999994, - name = 'Madera Naranja', - `size` = 18, - stems = 1, - category = 'EXT', - typeFk = 999, - longName = 'Madera Naranja', - itemPackingTypeFk = NULL, - originFk = 1, - weightByPiece = 160, - intrastatFk = 44219999; - -REPLACE buy - SET id = 9999994, - entryFk = 999, - itemFk = 999994, - quantity = 20, - buyingValue = 0.64, - stickers = 1, - packing = 20, - `grouping` = 4, - groupingMode = 1, - packageFk = 94, - price1 = 1, - price2 = 1, - price3 = 1, - minPrice = 1, - weight = 25; - -REPLACE sale - SET id = 99994, - itemFk = 999994, - ticketFk = 999999, - concept = 'Madera Naranja', - quantity = 4, - price = 1, - discount = 0; - -REPLACE item - SET id = 999995, - name = 'Madera Amarilla', - `size` = 11, - stems = 5, - category = 'EXT', - typeFk = 999, - longName = 'Madera Amarilla', - itemPackingTypeFk = NULL, - originFk = 1, - weightByPiece = 78, - intrastatFk = 44219999; - -REPLACE buy - SET id = 9999995, - entryFk = 999, - itemFk = 999995, - quantity = 4, - buyingValue = 0.65, - stickers = 1, - packing = 20, - `grouping` = 1, - groupingMode = 1, - packageFk = 94, - price1 = 1, - price2 = 1, - price3 = 1, - minPrice = 1, - weight = 35; - -REPLACE sale - SET id = 99995, - itemFk = 999995, - ticketFk = 999999, - concept = 'Madera Amarilla', - quantity = 5, - price = 1, - discount = 0; - --- Palito naranja -REPLACE item - SET id = 999998, - name = 'Palito naranja', - `size` = 11, - stems = 1, - category = 'EXT', - typeFk = 999, - longName = 'Palito naranja', - itemPackingTypeFk = NULL, - originFk = 1, - weightByPiece = 78, - intrastatFk = 44219999; - -REPLACE buy - SET id = 9999998, - entryFk = 999, - itemFk = 999998, - quantity = 80, - buyingValue = 0.65, - stickers = 1, - packing = 200, - `grouping` = 30, - groupingMode = 1, - packageFk = 94, - price1 = 1, - price2 = 1, - price3 = 1, - minPrice = 1, - weight = 35; - -REPLACE sale - SET id = 99998, - itemFk = 999998, - ticketFk = 999999, - concept = 'Palito naranja', - quantity = 60, - price = 1, - discount = 0; - --- Palito amarillo -REPLACE item - SET id = 999999, - name = 'Palito amarillo', - `size` = 11, - stems = 1, - category = 'EXT', - typeFk = 999, - longName = 'Palito amarillo', - itemPackingTypeFk = NULL, - originFk = 1, - weightByPiece = 78, - intrastatFk = 44219999; - -REPLACE buy - SET id = 9999999, - entryFk = 999, - itemFk = 999999, - quantity = 70, - buyingValue = 0.65, - stickers = 1, - packing = 500, - `grouping` = 10, - groupingMode = 1, - packageFk = 94, - price1 = 1, - price2 = 1, - price3 = 1, - minPrice = 1, - weight = 35; - -REPLACE sale - SET id = 99999, - itemFk = 999999, - ticketFk = 999999, - concept = 'Palito amarillo', - quantity = 50, - price = 1, - discount = 0; - --- Palito azul -REPLACE item - SET id = 1000000, - name = 'Palito azul', - `size` = 10, - stems = 1, - category = 'EXT', - typeFk = 999, - longName = 'Palito azul', - itemPackingTypeFk = NULL, - originFk = 1, - weightByPiece = 78, - intrastatFk = 44219999; - -REPLACE buy - SET id = 10000000, - entryFk = 999, - itemFk = 1000000, - quantity = 75, - buyingValue = 0.65, - stickers = 2, - packing = 300, - `grouping` = 50, - groupingMode = 1, - packageFk = 94, - price1 = 1, - price2 = 1, - price3 = 1, - minPrice = 1, - weight = 35; - -REPLACE sale - SET id = 100000, - itemFk = 1000000, - ticketFk = 999999, - concept = 'Palito azul', - quantity = 50, - price = 1, - discount = 0; - --- Palito rojo -REPLACE item - SET id = 1000001, - name = 'Palito rojo', - `size` = 10, - stems = NULL, - category = 'EXT', - typeFk = 999, - longName = 'Palito rojo', - itemPackingTypeFk = NULL, - originFk = 1, - weightByPiece = 78, - intrastatFk = 44219999; - -REPLACE buy - SET id = 10000001, - entryFk = 999, - itemFk = 1000001, - quantity = 12, - buyingValue = 0.65, - stickers = 2, - packing = 50, - `grouping` = 5, - groupingMode = 1, - packageFk = 94, - price1 = 1, - price2 = 1, - price3 = 1, - minPrice = 1, - weight = 35; - - -REPLACE sale - SET id = 100001, - itemFk = 1000001, - ticketFk = 999999, - concept = 'Palito rojo', - quantity = 10, - price = 1, - discount = 0; - --- Previa -INSERT IGNORE INTO item - SET id = 999996, - name = 'Bolas de madera', - `size` = 2, - stems = 4, - category = 'EXT', - typeFk = 999, - longName = 'Bolas de madera', - itemPackingTypeFk = NULL, - originFk = 1, - weightByPiece = 20, - intrastatFk = 44219999; - -REPLACE buy - SET id = 9999996, - entryFk = 999, - itemFk = 999996, - quantity = 5, - buyingValue = 3, - stickers = 1, - packing = 5, - `grouping` = 2, - groupingMode = 1, - packageFk = 94, - price1 = 7, - price2 = 7, - price3 = 7, - minPrice = 7, - weight = 80; - -REPLACE sale - SET id = 99996, - itemFk = 999996, - ticketFk = 999999, - concept = 'Bolas de madera', - quantity = 4, - price = 7, - discount = 0, - isPicked = TRUE; - -INSERT IGNORE INTO item - SET id = 999997, - name = 'Palitos de polo MIX', - `size` = 14, - stems = NULL, - category = 'EXT', - typeFk = 999, - longName = 'Palitos de polo MIX', - itemPackingTypeFk = NULL, - originFk = 1, - weightByPiece = 20, - intrastatFk = 44219999; - -REPLACE buy - SET id = 9999997, - entryFk = 999, - itemFk = 999997, - quantity = 100, - buyingValue = 3.2, - stickers = 1, - packing = 100, - `grouping` = 5, - groupingMode = 1, - packageFk = 94, - price1 = 7, - price2 = 7, - price3 = 7, - minPrice = 7, - weight = 80; - -REPLACE sale - SET id = 99997, - itemFk = 999997, - ticketFk = 999999, - concept = 'Palitos de polo MIX', - quantity = 5, - price = 7, - discount = 0; - --- Ubicación -DELETE ish.* - FROM itemShelving ish - JOIN shelving sh ON sh.code = ish.shelvingFk - JOIN parking p ON p.id = sh.parkingFk - JOIN sector s ON s.id = p.sectorFk - JOIN warehouse w ON w.id = s.warehouseFk - WHERE w.name = 'TestingWarehouse'; - -REPLACE vn.itemShelving -(id, itemFk, shelvingFk, visible, created, `grouping`, packing, packagingFk, userFk, isChecked) -VALUES - (9911, 999991, 'NAA', 8, '2023-09-20', 1, 20, NULL, 103, NULL), - (9912, 999998, 'NAA', 80, '2023-09-20', 10, 30, NULL, 103, NULL), - (9913, 1000001, 'NAA', 6, '2023-09-20', 3, 50, NULL, 103, NULL), - (9914, 1000000, 'NBB', 50, '2023-09-18', 25, 500, NULL, 103, NULL), - (9915, 999993, 'NBB', 25, '2023-09-18', NULL, 10, NULL, 103, NULL), - (9916, 999999, 'NBB', 30, '2023-09-18', 10, 500, NULL, 103, NULL), - (9917, 999993, 'NCC', 25, '2023-09-20', 5, 10, NULL, 103, NULL), - (9918, 999997, 'NCC', 10, '2023-09-20', NULL, 100, NULL, 103, NULL), - (9919, 999999, 'NCC', 40, '2023-09-20', 10, 500, NULL, 103, NULL), - (9920, 999995, 'NDD', 10, '2023-09-19', NULL, 20, NULL, 103, NULL), - (9921, 999994, 'NDD', 48, '2023-09-19', 4, 20, NULL, 103, NULL), - (9922, 1000001, 'NEE', 6, '2023-09-21', 3, 50, NULL, 103, NULL), - (9923, 999992, 'NEE', 50, '2023-09-21', NULL, 1, NULL, 103, NULL), - (9924, 1000000, 'NEE', 25, '2023-09-21', 25, 500, NULL, 103, NULL), - (9925, 999996, 'PAA', 5, '2023-09-27', 1, 5, NULL, 103, NULL), - (9926, 999997, 'PCC', 10, '2023-09-27', 5, 100, NULL, 103, NULL); - --- Previous for Bolas de madera -INSERT IGNORE INTO sectorCollection - SET id = 99, - userFk = 1, - sectorFk = 9992; - -INSERT IGNORE INTO saleGroup - SET id = 999, - userFk = 1, - parkingFk = 9992011, - sectorFk = 9992; - -INSERT IGNORE INTO sectorCollectionSaleGroup - SET id = 9999, - sectorCollectionFk = 99, - saleGroupFk = 999; - -REPLACE saleGroupDetail - SET id = 99991, - saleFk = 99996, - saleGroupFk = 999; - -REPLACE saleTracking - SET saleFk = 99996, - isChecked = TRUE, - workerFk = 103, - stateFk = 28; - -INSERT IGNORE INTO itemShelvingSale - SET id = 991, - itemShelvingFk = 9962, - saleFk = 99996, - quantity = 5, - userFk = 1; - - -CALL itemShelvingSale_reserveByCollection(10101010); - -UPDATE vn.collection - SET workerFk=9 - WHERE id=10101010; - -INSERT INTO `vn`.`machineWorkerConfig` (id, maxHours) - VALUES (1, 12) \ No newline at end of file + (3, 'Error in customer data'); \ No newline at end of file diff --git a/modules/item/back/methods/item-shelving/getSale.js b/modules/item/back/methods/item-shelving/getSale.js index 084f7351f..826ac03e1 100644 --- a/modules/item/back/methods/item-shelving/getSale.js +++ b/modules/item/back/methods/item-shelving/getSale.js @@ -29,7 +29,7 @@ module.exports = Self => { if (typeof options == 'object') Object.assign(myOptions, options); - const sales = await Self.rawSql('CALL vn.sectorCollection_getSale(?)', [sectorCollectionFk]); + const [sales] = await Self.rawSql('CALL vn.sectorCollection_getSale(?)', [sectorCollectionFk]); const itemShelvings = []; for (let sale of sales) { From 8d61473d4f7fe0e2471f1b9d1a5c075785dd64f8 Mon Sep 17 00:00:00 2001 From: jorgep Date: Wed, 13 Dec 2023 11:43:19 +0100 Subject: [PATCH 024/173] refs #6276 fixtures & itemBarcode_delete --- db/changes/235001/00-newWareHouse.sql | 3 +- db/dump/fixtures.sql | 655 +++++++++++++++++- .../item/back/methods/item-barcode/delete.js | 34 + modules/item/back/models/item-barcode.js | 1 + 4 files changed, 691 insertions(+), 2 deletions(-) create mode 100644 modules/item/back/methods/item-barcode/delete.js diff --git a/db/changes/235001/00-newWareHouse.sql b/db/changes/235001/00-newWareHouse.sql index 13d5c87ad..57e3398ff 100644 --- a/db/changes/235001/00-newWareHouse.sql +++ b/db/changes/235001/00-newWareHouse.sql @@ -7,4 +7,5 @@ INSERT INTO `salix`.`ACL` (model, property, accessType, permission, principalTyp ('MobileAppVersionControl','getVersion','READ','ALLOW','ROLE','employee'), ('SaleTracking','deleteTracking','WRITE','ALLOW','ROLE','employee'), ('SaleTracking','updateTracking','WRITE','ALLOW','ROLE','employee'), - ('SaleTracking','mark','WRITE','ALLOW','ROLE','employee'); \ No newline at end of file + ('SaleTracking','mark','WRITE','ALLOW','ROLE','employee'), + ('ItemBarcode','deleteByItemAndCode','WRITE','ALLOW','ROLE','employee'); \ No newline at end of file diff --git a/db/dump/fixtures.sql b/db/dump/fixtures.sql index dd1d0951e..40264e987 100644 --- a/db/dump/fixtures.sql +++ b/db/dump/fixtures.sql @@ -3008,4 +3008,657 @@ INSERT INTO `vn`.`invoiceCorrectionType` (`id`, `description`) VALUES (1, 'Error in VAT calculation'), (2, 'Error in sales details'), - (3, 'Error in customer data'); \ No newline at end of file + (3, 'Error in customer data'); + + +-- NEW WAREHOUSE + +UPDATE vn.packaging + SET id='--' + WHERE id='pallet 100'; + +INSERT IGNORE INTO vn.intrastat + SET id = 44219999, + description = 'Manufacturas de madera', + taxClassFk = 1, + taxCodeFk = 1; + +INSERT IGNORE INTO vn.warehouse + SET id = 999, + name = 'TestingWarehouse', + hasAvailable = TRUE, + isForTicket = TRUE, + isInventory = TRUE, + hasUbications = TRUE, + hasProduction = TRUE; + +INSERT IGNORE INTO vn.sector + SET id = 9991, + description = 'NormalSector', + warehouseFk = 999, + isPreviousPreparedByPacking = FALSE, + code = 'NS', + isPreviousPrepared = FALSE, + isPackagingArea = FALSE, + sonFk = NULL, + isMain = TRUE, + itemPackingTypeFk = NULL; + +INSERT IGNORE INTO vn.sector + SET id = 9992, + description = 'PreviousSector', + warehouseFk = 999, + isPreviousPreparedByPacking = FALSE, + code = 'PS', + isPreviousPrepared = TRUE, + isPackagingArea = FALSE, + sonFk = NULL, + isMain = TRUE, + itemPackingTypeFk = NULL; + +INSERT IGNORE INTO vn.sector + SET id = 9993, + description = 'MezaninneSector', + warehouseFk = 999, + isPreviousPreparedByPacking = TRUE, + code = 'MS', + isPreviousPrepared = FALSE, + isPackagingArea = FALSE, + sonFk = 9991, + isMain = TRUE, + itemPackingTypeFk = NULL; + +REPLACE vn.parking SET id = 9991011, sectorFk = 9991, code = 'A-01-1', pickingOrder = 1; +REPLACE vn.parking SET id = 9991012, sectorFk = 9991, code = 'A-02-2', pickingOrder = 2; +REPLACE vn.parking SET id = 9991013, sectorFk = 9991, code = 'A-03-3', pickingOrder = 3; +REPLACE vn.parking SET id = 9991014, sectorFk = 9991, code = 'A-04-4', pickingOrder = 4; +REPLACE vn.parking SET id = 9991015, sectorFk = 9991, code = 'A-05-5', pickingOrder = 5; + +REPLACE vn.parking SET id = 9992011, sectorFk = 9992, code = 'P-01-1', pickingOrder = 6; +REPLACE vn.parking SET id = 9992012, sectorFk = 9992, code = 'P-02-2', pickingOrder = 7; +REPLACE vn.parking SET id = 9992013, sectorFk = 9992, code = 'P-03-3', pickingOrder = 8; + +REPLACE vn.parking SET id = 9993011, sectorFk = 9993, code = 'M-01-1', pickingOrder = 9; +REPLACE vn.parking SET id = 9993012, sectorFk = 9993, code = 'M-02-2', pickingOrder = 10; +REPLACE vn.parking SET id = 9993013, sectorFk = 9993, code = 'M-03-3', pickingOrder = 11; + +REPLACE vn.shelving SET code = 'NAA', parkingFk = 9991011, priority = 1; +REPLACE vn.shelving SET code = 'NBB', parkingFk = 9991012, priority = 1; +REPLACE vn.shelving SET code = 'NCC', parkingFk = 9991013, priority = 1; +REPLACE vn.shelving SET code = 'NDD', parkingFk = 9991014, priority = 1; +REPLACE vn.shelving SET code = 'NEE', parkingFk = 9991015, priority = 1; + +REPLACE vn.shelving SET code = 'PAA', parkingFk = 9992011, priority = 1; +REPLACE vn.shelving SET code = 'PBB', parkingFk = 9992012, priority = 1; +REPLACE vn.shelving SET code = 'PCC', parkingFk = 9992013, priority = 1; + +REPLACE vn.shelving SET code = 'MAA', parkingFk = 9993011, priority = 1; +REPLACE vn.shelving SET code = 'MBB', parkingFk = 9993012, priority = 1; +REPLACE vn.shelving SET code = 'MCC', parkingFk = 9993013, priority = 1; + +INSERT IGNORE INTO vn.itemType + SET id = 999, + code = 'WOO', + name = 'Wood Objects', + categoryFk = 3, + workerFk = 103, + isInventory = TRUE, + life = 10, + density = 250, + itemPackingTypeFk = NULL, + temperatureFk = 'warm'; + +INSERT IGNORE INTO vn.travel + SET id = 99, + shipped = CURDATE(), + landed = CURDATE(), + warehouseInFk = 999, + warehouseOutFk = 1, + isReceived = TRUE, + agencyFk = 1; + +REPLACE vn.entry + SET id = 999, + supplierFk = 791, + isConfirmed = TRUE, + dated = CURDATE(), + travelFk = 99, + companyFk = 442; + +REPLACE vn.ticket + SET id = 999999, + clientFk = 2, + warehouseFk = 999, + shipped = CURDATE(), + nickname = 'Cliente', + addressFk = 1, + companyFk = 442, + agencyModeFk = 10, + landed = CURDATE(); + +REPLACE vn.collection + SET id = 10101010, + workerFk = 9; + +INSERT IGNORE INTO vn.ticketCollection + SET id = 10101010, + ticketFk = 999999, + collectionFk = 10101010; + +REPLACE vn.item + SET id = 999991, + name = 'Palito para pinchos', + `size` = 25, + stems = NULL, + category = 'EXT', + typeFk = 999, + longName = 'Palito para pinchos', + itemPackingTypeFk = NULL, + originFk = 1, + weightByPiece = 6, + intrastatFk = 44219999; + +REPLACE vn.buy + SET id = 9999991, + entryFk = 999, + itemFk = 999991, + quantity = 8, + buyingValue = 0.61, + stickers = 1, + packing = 20, + `grouping` = 1, + groupingMode = 1, + packageFk = 94, + price1 = 1, + price2 = 1, + price3 = 1, + minPrice = 1, + weight = 50; + +REPLACE vn.sale + SET id = 99991, + itemFk = 999991, + ticketFk = 999999, + concept = 'Palito para pinchos', + quantity = 3, + price = 1, + discount = 0; + +REPLACE vn.item + SET id = 999992, + name = 'Madera verde', + `size` = 10, + stems = NULL, + category = 'EXT', + typeFk = 999, + longName = 'Madera verde', + itemPackingTypeFk = NULL, + originFk = 1, + weightByPiece = 50, + intrastatFk = 44219999; + +REPLACE vn.buy + SET id = 9999992, + entryFk = 999, + itemFk = 999992, + quantity = 40, + buyingValue = 0.62, + stickers = 1, + packing = 40, + `grouping` = 5, + groupingMode = 1, + packageFk = 94, + price1 = 1, + price2 = 1, + price3 = 1, + minPrice = 1, + weight = 25; + +REPLACE vn.sale + SET id = 99992, + itemFk = 999992, + ticketFk = 999999, + concept = 'Madera Verde', + quantity = 10, + price = 1, + discount = 0; + +REPLACE vn.item + SET id = 999993, + name = 'Madera Roja/Morada', + `size` = 12, + stems = 2, + category = 'EXT', + typeFk = 999, + longName = 'Madera Roja/Morada', + itemPackingTypeFk = NULL, + originFk = 1, + weightByPiece = 35, + intrastatFk = 44219999; + +REPLACE vn.buy + SET id = 9999993, + entryFk = 999, + itemFk = 999993, + quantity = 20, + buyingValue = 0.63, + stickers = 2, + packing = 10, + `grouping` = 5, + groupingMode = 1, + packageFk = 94, + price1 = 1, + price2 = 1, + price3 = 1, + minPrice = 1, + weight = 25; + +REPLACE vn.itemShelving + SET id = 9931, + itemFk = 999993, + shelvingFk = 'NCC', + visible = 10, + `grouping` = 5, + packing = 10; + +REPLACE vn.sale + SET id = 99993, + itemFk = 999993, + ticketFk = 999999, + concept = 'Madera Roja/Morada', + quantity = 15, + price = 1, + discount = 0; + +REPLACE vn.item + SET id = 999994, + name = 'Madera Naranja', + `size` = 18, + stems = 1, + category = 'EXT', + typeFk = 999, + longName = 'Madera Naranja', + itemPackingTypeFk = NULL, + originFk = 1, + weightByPiece = 160, + intrastatFk = 44219999; + +REPLACE vn.buy + SET id = 9999994, + entryFk = 999, + itemFk = 999994, + quantity = 20, + buyingValue = 0.64, + stickers = 1, + packing = 20, + `grouping` = 4, + groupingMode = 1, + packageFk = 94, + price1 = 1, + price2 = 1, + price3 = 1, + minPrice = 1, + weight = 25; + +REPLACE vn.sale + SET id = 99994, + itemFk = 999994, + ticketFk = 999999, + concept = 'Madera Naranja', + quantity = 4, + price = 1, + discount = 0; + +REPLACE vn.item + SET id = 999995, + name = 'Madera Amarilla', + `size` = 11, + stems = 5, + category = 'EXT', + typeFk = 999, + longName = 'Madera Amarilla', + itemPackingTypeFk = NULL, + originFk = 1, + weightByPiece = 78, + intrastatFk = 44219999; + +REPLACE vn.buy + SET id = 9999995, + entryFk = 999, + itemFk = 999995, + quantity = 4, + buyingValue = 0.65, + stickers = 1, + packing = 20, + `grouping` = 1, + groupingMode = 1, + packageFk = 94, + price1 = 1, + price2 = 1, + price3 = 1, + minPrice = 1, + weight = 35; + +REPLACE vn.sale + SET id = 99995, + itemFk = 999995, + ticketFk = 999999, + concept = 'Madera Amarilla', + quantity = 5, + price = 1, + discount = 0; + +-- Palito naranja +REPLACE vn.item + SET id = 999998, + name = 'Palito naranja', + `size` = 11, + stems = 1, + category = 'EXT', + typeFk = 999, + longName = 'Palito naranja', + itemPackingTypeFk = NULL, + originFk = 1, + weightByPiece = 78, + intrastatFk = 44219999; + +REPLACE vn.buy + SET id = 9999998, + entryFk = 999, + itemFk = 999998, + quantity = 80, + buyingValue = 0.65, + stickers = 1, + packing = 200, + `grouping` = 30, + groupingMode = 1, + packageFk = 94, + price1 = 1, + price2 = 1, + price3 = 1, + minPrice = 1, + weight = 35; + +REPLACE vn.sale + SET id = 99998, + itemFk = 999998, + ticketFk = 999999, + concept = 'Palito naranja', + quantity = 60, + price = 1, + discount = 0; + +-- Palito amarillo +REPLACE vn.item + SET id = 999999, + name = 'Palito amarillo', + `size` = 11, + stems = 1, + category = 'EXT', + typeFk = 999, + longName = 'Palito amarillo', + itemPackingTypeFk = NULL, + originFk = 1, + weightByPiece = 78, + intrastatFk = 44219999; + +REPLACE vn.buy + SET id = 9999999, + entryFk = 999, + itemFk = 999999, + quantity = 70, + buyingValue = 0.65, + stickers = 1, + packing = 500, + `grouping` = 10, + groupingMode = 1, + packageFk = 94, + price1 = 1, + price2 = 1, + price3 = 1, + minPrice = 1, + weight = 35; + +REPLACE vn.sale + SET id = 99999, + itemFk = 999999, + ticketFk = 999999, + concept = 'Palito amarillo', + quantity = 50, + price = 1, + discount = 0; + +-- Palito azul +REPLACE vn.item + SET id = 1000000, + name = 'Palito azul', + `size` = 10, + stems = 1, + category = 'EXT', + typeFk = 999, + longName = 'Palito azul', + itemPackingTypeFk = NULL, + originFk = 1, + weightByPiece = 78, + intrastatFk = 44219999; + +REPLACE vn.buy + SET id = 10000000, + entryFk = 999, + itemFk = 1000000, + quantity = 75, + buyingValue = 0.65, + stickers = 2, + packing = 300, + `grouping` = 50, + groupingMode = 1, + packageFk = 94, + price1 = 1, + price2 = 1, + price3 = 1, + minPrice = 1, + weight = 35; + +REPLACE vn.sale + SET id = 100000, + itemFk = 1000000, + ticketFk = 999999, + concept = 'Palito azul', + quantity = 50, + price = 1, + discount = 0; + +-- Palito rojo +REPLACE vn.item + SET id = 1000001, + name = 'Palito rojo', + `size` = 10, + stems = NULL, + category = 'EXT', + typeFk = 999, + longName = 'Palito rojo', + itemPackingTypeFk = NULL, + originFk = 1, + weightByPiece = 78, + intrastatFk = 44219999; + +REPLACE vn.buy + SET id = 10000001, + entryFk = 999, + itemFk = 1000001, + quantity = 12, + buyingValue = 0.65, + stickers = 2, + packing = 50, + `grouping` = 5, + groupingMode = 1, + packageFk = 94, + price1 = 1, + price2 = 1, + price3 = 1, + minPrice = 1, + weight = 35; + + +REPLACE vn.sale + SET id = 100001, + itemFk = 1000001, + ticketFk = 999999, + concept = 'Palito rojo', + quantity = 10, + price = 1, + discount = 0; + +-- Previa +INSERT IGNORE INTO vn.item + SET id = 999996, + name = 'Bolas de madera', + `size` = 2, + stems = 4, + category = 'EXT', + typeFk = 999, + longName = 'Bolas de madera', + itemPackingTypeFk = NULL, + originFk = 1, + weightByPiece = 20, + intrastatFk = 44219999; + +REPLACE vn.buy + SET id = 9999996, + entryFk = 999, + itemFk = 999996, + quantity = 5, + buyingValue = 3, + stickers = 1, + packing = 5, + `grouping` = 2, + groupingMode = 1, + packageFk = 94, + price1 = 7, + price2 = 7, + price3 = 7, + minPrice = 7, + weight = 80; + +REPLACE vn.sale + SET id = 99996, + itemFk = 999996, + ticketFk = 999999, + concept = 'Bolas de madera', + quantity = 4, + price = 7, + discount = 0, + isPicked = TRUE; + +INSERT IGNORE INTO vn.item + SET id = 999997, + name = 'Palitos de polo MIX', + `size` = 14, + stems = NULL, + category = 'EXT', + typeFk = 999, + longName = 'Palitos de polo MIX', + itemPackingTypeFk = NULL, + originFk = 1, + weightByPiece = 20, + intrastatFk = 44219999; + +REPLACE vn.buy + SET id = 9999997, + entryFk = 999, + itemFk = 999997, + quantity = 100, + buyingValue = 3.2, + stickers = 1, + packing = 100, + `grouping` = 5, + groupingMode = 1, + packageFk = 94, + price1 = 7, + price2 = 7, + price3 = 7, + minPrice = 7, + weight = 80; + +REPLACE vn.sale + SET id = 99997, + itemFk = 999997, + ticketFk = 999999, + concept = 'Palitos de polo MIX', + quantity = 5, + price = 7, + discount = 0; + +USE vn; +DELETE ish.* FROM vn.itemShelving ish + JOIN vn.shelving sh ON sh.code = ish.shelvingFk + JOIN vn.parking p ON p.id = sh.parkingFk + JOIN vn.sector s ON s.id = p.sectorFk + JOIN vn.warehouse w ON w.id = s.warehouseFk + WHERE w.name = 'TestingWarehouse'; + +REPLACE vn.itemShelving +(id, itemFk, shelvingFk, visible, created, `grouping`, packing, packagingFk, userFk, isChecked) +VALUES + (9911, 999991, 'NAA', 8, '2023-09-20', 1, 20, NULL, 103, NULL), + (9912, 999998, 'NAA', 80, '2023-09-20', 10, 30, NULL, 103, NULL), + (9913, 1000001, 'NAA', 6, '2023-09-20', 3, 50, NULL, 103, NULL), + (9914, 1000000, 'NBB', 50, '2023-09-18', 25, 500, NULL, 103, NULL), + (9915, 999993, 'NBB', 25, '2023-09-18', NULL, 10, NULL, 103, NULL), + (9916, 999999, 'NBB', 30, '2023-09-18', 10, 500, NULL, 103, NULL), + (9917, 999993, 'NCC', 25, '2023-09-20', 5, 10, NULL, 103, NULL), + (9918, 999997, 'NCC', 10, '2023-09-20', NULL, 100, NULL, 103, NULL), + (9919, 999999, 'NCC', 40, '2023-09-20', 10, 500, NULL, 103, NULL), + (9920, 999995, 'NDD', 10, '2023-09-19', NULL, 20, NULL, 103, NULL), + (9921, 999994, 'NDD', 48, '2023-09-19', 4, 20, NULL, 103, NULL), + (9922, 1000001, 'NEE', 6, '2023-09-21', 3, 50, NULL, 103, NULL), + (9923, 999992, 'NEE', 50, '2023-09-21', NULL, 1, NULL, 103, NULL), + (9924, 1000000, 'NEE', 25, '2023-09-21', 25, 500, NULL, 103, NULL), + (9925, 999996, 'PAA', 5, '2023-09-27', 1, 5, NULL, 103, NULL), + (9926, 999997, 'PCC', 10, '2023-09-27', 5, 100, NULL, 103, NULL); + +-- Previous for Bolas de madera +INSERT IGNORE INTO vn.sectorCollection + SET id = 99, + userFk = 1, + sectorFk = 9992; + +INSERT IGNORE INTO vn.saleGroup + SET id = 999, + userFk = 1, + parkingFk = 9992011, + sectorFk = 9992; + +INSERT IGNORE INTO vn.sectorCollectionSaleGroup + SET id = 9999, + sectorCollectionFk = 99, + saleGroupFk = 999; + +REPLACE vn.saleGroupDetail + SET id = 99991, + saleFk = 99996, + saleGroupFk = 999; + +REPLACE vn.saleTracking + SET saleFk = 99996, + isChecked = TRUE, + workerFk = 103, + stateFk = 28; + +INSERT IGNORE INTO vn.itemShelvingSale + SET id = 991, + itemShelvingFk = 9962, + saleFk = 99996, + quantity = 5, + userFk = 1; + +UPDATE vn.ticket + SET zoneFk=1 + WHERE id=999999; + +UPDATE vn.collection + SET workerFk=9 + WHERE id=10101010; + +UPDATE vn.sale + SET isPicked =FALSE; \ No newline at end of file diff --git a/modules/item/back/methods/item-barcode/delete.js b/modules/item/back/methods/item-barcode/delete.js new file mode 100644 index 000000000..b27782b1b --- /dev/null +++ b/modules/item/back/methods/item-barcode/delete.js @@ -0,0 +1,34 @@ +module.exports = Self => { + Self.remoteMethod('delete', { + description: 'Delete an ItemBarcode by itemFk and code', + accessType: 'READ', + accepts: [ + { + arg: 'barcode', + type: 'string', + required: true, + }, + { + arg: 'itemFk', + type: 'number', + required: true, + } + ], + http: { + path: `/delete`, + verb: 'DELETE' + } + }); + + Self.delete = async(barcode, itemFk, options) => { + const myOptions = {}; + + if (typeof options == 'object') + Object.assign(myOptions, options); + + await Self.destroyAll({ + code: barcode, + itemFk + }, myOptions); + }; +}; diff --git a/modules/item/back/models/item-barcode.js b/modules/item/back/models/item-barcode.js index b608a7fe9..616d973e1 100644 --- a/modules/item/back/models/item-barcode.js +++ b/modules/item/back/models/item-barcode.js @@ -1,5 +1,6 @@ module.exports = Self => { require('../methods/item-barcode/toItem')(Self); + require('../methods/item-barcode/delete')(Self); Self.validatesUniquenessOf('code', { message: `Barcode must be unique` From 36a9b0eee447157f49f3a0571f581f7a5122c485 Mon Sep 17 00:00:00 2001 From: jorgep Date: Wed, 13 Dec 2023 16:00:07 +0100 Subject: [PATCH 025/173] refs #6276 collectionAddItem --- back/methods/collection/addItem.js | 60 +++++++++++++++++++++++++++ back/models/collection.js | 1 + db/changes/235001/00-newWareHouse.sql | 3 +- modules/ticket/back/models/sale.js | 5 ++- 4 files changed, 66 insertions(+), 3 deletions(-) create mode 100644 back/methods/collection/addItem.js diff --git a/back/methods/collection/addItem.js b/back/methods/collection/addItem.js new file mode 100644 index 000000000..4538a479c --- /dev/null +++ b/back/methods/collection/addItem.js @@ -0,0 +1,60 @@ +const UserError = require('vn-loopback/util/user-error'); +module.exports = Self => { + Self.remoteMethodCtx('addItem', { + description: 'Add a collection', + accessType: 'WRITE', + accepts: [ + { + arg: 'code', + type: 'string', + required: true + }, + { + arg: 'quantity', + type: 'number', + required: true + }, + { + arg: 'ticketFk', + type: 'number', + required: true + }, + { + arg: 'warehouseFk', + type: 'number', + required: true + }, + ], + http: { + path: `/addItem`, + verb: 'POST' + }, + }); + + Self.addItem = async(ctx, code, quantity, ticketFk, warehouseFk, options) => { + const models = Self.app.models; + const myOptions = {}; + let tx; + + if (typeof options == 'object') + Object.assign(myOptions, options); + + if (!myOptions.transaction) { + tx = await Self.beginTransaction({}); + myOptions.transaction = tx; + } + + try { + const [[item]] = await Self.rawSql('CALL vn.item_getInfo(?,?)', [code, warehouseFk]); + + if (!item.available) throw new UserError('We do not have availability for the selected item'); + + await models.Ticket.addSale(ctx, ticketFk, item.id, quantity, myOptions); + + if (tx) await tx.commit(); + } catch (e) { + if (tx) await tx.rollback(); + throw e; + } + }; +}; diff --git a/back/models/collection.js b/back/models/collection.js index a0d34712f..0d5be170b 100644 --- a/back/models/collection.js +++ b/back/models/collection.js @@ -5,4 +5,5 @@ module.exports = Self => { require('../methods/collection/previousLabel')(Self); require('../methods/collection/getTickets')(Self); require('../methods/collection/assignCollection')(Self); + require('../methods/collection/addItem')(Self); }; diff --git a/db/changes/235001/00-newWareHouse.sql b/db/changes/235001/00-newWareHouse.sql index 57e3398ff..8437d8e15 100644 --- a/db/changes/235001/00-newWareHouse.sql +++ b/db/changes/235001/00-newWareHouse.sql @@ -8,4 +8,5 @@ INSERT INTO `salix`.`ACL` (model, property, accessType, permission, principalTyp ('SaleTracking','deleteTracking','WRITE','ALLOW','ROLE','employee'), ('SaleTracking','updateTracking','WRITE','ALLOW','ROLE','employee'), ('SaleTracking','mark','WRITE','ALLOW','ROLE','employee'), - ('ItemBarcode','deleteByItemAndCode','WRITE','ALLOW','ROLE','employee'); \ No newline at end of file + ('ItemBarcode','deleteByItemAndCode','WRITE','ALLOW','ROLE','employee'), + ('Collection','addItem','WRITE','ALLOW','ROLE','employee'); \ No newline at end of file diff --git a/modules/ticket/back/models/sale.js b/modules/ticket/back/models/sale.js index 3589eac4b..d6f06d744 100644 --- a/modules/ticket/back/models/sale.js +++ b/modules/ticket/back/models/sale.js @@ -71,7 +71,8 @@ module.exports = Self => { }, ctx.options); if (item.family == 'EMB') return; - if (await models.ACL.checkAccessAcl(ctx, 'Sale', 'isInPreparing', '*')) return; + const isInPreparing = await models.ACL.checkAccessAcl(ctx, 'Sale', 'isInPreparing', '*'); + if (!ctx.isNEwInstance && isInPreparing) return; await models.Sale.rawSql(`CALL catalog_calcFromItem(?,?,?,?)`, [ ticket.landed, @@ -89,7 +90,7 @@ module.exports = Self => { if (await models.ACL.checkAccessAcl(ctx, 'Ticket', 'isRoleAdvanced', '*')) return; - if (newQuantity < item.minQuantity && newQuantity != available) + if (newQuantity < item.minQuantity && newQuantity != available && !isInPreparing) throw new UserError('The amount cannot be less than the minimum'); if (ctx.isNewInstance || isReduction) return; From 779cbd2c0aaf4ca3a5708880386cedbf41c05fa7 Mon Sep 17 00:00:00 2001 From: jorgep Date: Mon, 18 Dec 2023 11:43:15 +0100 Subject: [PATCH 026/173] refs #6276 collection_getTickets --- .../getSalesFromTicketOrCollection.js | 146 ++++++++++++++++++ back/models/collection.js | 1 + 2 files changed, 147 insertions(+) create mode 100644 back/methods/collection/getSalesFromTicketOrCollection.js diff --git a/back/methods/collection/getSalesFromTicketOrCollection.js b/back/methods/collection/getSalesFromTicketOrCollection.js new file mode 100644 index 000000000..d806782d9 --- /dev/null +++ b/back/methods/collection/getSalesFromTicketOrCollection.js @@ -0,0 +1,146 @@ +module.exports = Self => { + Self.remoteMethodCtx('getSalesFromTicketOrCollection', { + description: 'Get sales from ticket or collection', + accessType: 'READ', + accepts: [ + { + arg: 'collectionOrTicketFk', + type: 'number', + required: true + }, + { + arg: 'sectorFk', + type: 'number', + required: true + }, + { + arg: 'printFk', + type: 'number', + required: true + }, + { + arg: 'source', + type: 'string', + required: true + }, + + ], + returns: { + type: 'Object', + root: true + }, + http: { + path: `/getSalesFromTicketOrCollection`, + verb: 'GET' + }, + }); + + Self.getSalesFromTicketOrCollection = async(ctx, collectionOrTicketFk, sectorFk, printFk, source, options) => { + const models = Self.app.models; + const myOptions = {}; + + if (typeof options == 'object') + Object.assign(myOptions, options); + + const [collectionOrTicket] = await Self.rawSql('SELECT vn.ticket_get(?) as id', [collectionOrTicketFk]); + + const [tickets] = await Self.rawSql('CALL vn.collection_getTickets(?)', [collectionOrTicket.id]); + + if (source == 'PRECHECKER' || source == 'ON_CHECKING') { + await Self.rawSql( + 'CALL vn.ticketStateToday_setState(?,?)', + [collectionOrTicket.id, source] + ); + } + + const [sales] = await Self.rawSql('CALL vn.sale_getFromTicketOrCollection(?)', [collectionOrTicket.id]); + + const isPicker = source == 'CHECKER'; + const [placements] = await Self.rawSql( + 'CALL vn.collectionPlacement_get(?, ?)', [collectionOrTicket.id, isPicker] + ); + + if (printFk == 1) await Self.rawSql('CALL vn.collection_printSticker(?,NULL)', [collectionOrTicket.id]); + + if (tickets.length) await sendRocketTickets(tickets); + + return getCollection(collectionOrTicket.id, tickets, sales, placements); + + async function sendRocketTickets(tickets) { + for (let ticket of tickets) { + let observations = ticket.observaciones.split(' '); + + for (let observation of observations) { + const salesMan = ticket.salesPersonFk; + + if (!observation.startsWith('#') && !observation.startsWith('@')) return; + + await models.Chat.send(ctx, + observation, + `El ticket ${ticket.ticketFk} del comercial ${salesMan} está en preparación.(mensaje creado automáticamente)` + ); + } + } + } + + async function getCollection(id, tickets, sales, placements) { + const collection = { + collectionFk: id, + tickets: [], + }; + for (let ticket of tickets) { + const {ticketFk} = ticket; + ticket.sales = []; + + const barcodes = await getBarcodes(ticketFk); + await Self.rawSql( + 'CALL util.log_add(?, ?, ?, ?, ?, ?, ?, ?)', + ['vn', 'ticket', 'Ticket', ticketFk, ticketFk, 'select', null, null] + ); + + for (let sale of sales) { + if (sale.ticketFk == ticketFk) { + sale.placements = placements.filter(placement => + placement.saleFk == sale.saleFk && placement.order + ); + + sale.barcodes = []; + for (const barcode of barcodes) { + if (barcode.movementId) { + if (barcode.code) { + sale.barcodes.push(barcode.code); + sale.barcodes.push(`0 ${barcode.code}`); + } + + if (barcode.id) { + sale.barcodes.push(barcode.id); + sale.barcodes.push(`0 ${barcode.id}`); + } + } + } + + ticket.sales.push(sale); + } + } + collection.tickets.push(ticket); + } + + return collection; + } + + async function getBarcodes(ticketId) { + const query = + `SELECT s.id movementId, + b.code, + c.id + FROM vn.sale s + LEFT JOIN vn.itemBarcode b ON b.itemFk = s.itemFk + LEFT JOIN vn.buy c ON c.itemFk = s.itemFk + LEFT JOIN vn.entry e ON e.id = c.entryFk + LEFT JOIN vn.travel tr ON tr.id = e.travelFk + WHERE s.ticketFk = ? + AND tr.landed >= DATE_SUB(CURDATE(), INTERVAL 1 YEAR)`; + return Self.rawSql(query, [ticketId]); + } + }; +}; diff --git a/back/models/collection.js b/back/models/collection.js index 0d5be170b..98a199fbd 100644 --- a/back/models/collection.js +++ b/back/models/collection.js @@ -6,4 +6,5 @@ module.exports = Self => { require('../methods/collection/getTickets')(Self); require('../methods/collection/assignCollection')(Self); require('../methods/collection/addItem')(Self); + require('../methods/collection/getSalesFromTicketOrCollection')(Self); }; From 92b4908b35ff666ed4bbe3ca1b867663ab499c6c Mon Sep 17 00:00:00 2001 From: jorgep Date: Tue, 2 Jan 2024 09:42:41 +0100 Subject: [PATCH 027/173] fix conflicts: refs #6276 --- loopback/locale/es.json | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/loopback/locale/es.json b/loopback/locale/es.json index 1dbb394ab..819ee1740 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -330,10 +330,6 @@ "quantityLessThanMin": "La cantidad no puede ser menor que la cantidad mínima", "Cannot past travels with entries": "No se pueden pasar envíos con entradas", "It was not able to remove the next expeditions:": "No se pudo eliminar las siguientes expediciones: {{expeditions}}", -<<<<<<< HEAD - "The line could not be marked": "The line could not be marked" -} -======= + "The line could not be marked": "The line could not be marked", "This user does not have an assigned tablet": "Este usuario no tiene tablet asignada" } ->>>>>>> 0101dcda3ac950c1add6c3c426c4f745389805c1 From 365e05d560195c67c2e16af1b02f1dd4093961b8 Mon Sep 17 00:00:00 2001 From: sergiodt Date: Tue, 2 Jan 2024 12:21:25 +0100 Subject: [PATCH 028/173] =?UTF-8?q?refs=20#6276:mdify=20back=20silex?= =?UTF-8?q?=E2=86=92salix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/changes/235001/00-newWareHouse.sql | 4 +++- modules/worker/back/methods/operator/getPrinter.js | 7 ++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/db/changes/235001/00-newWareHouse.sql b/db/changes/235001/00-newWareHouse.sql index 8437d8e15..b7d5f8a59 100644 --- a/db/changes/235001/00-newWareHouse.sql +++ b/db/changes/235001/00-newWareHouse.sql @@ -9,4 +9,6 @@ INSERT INTO `salix`.`ACL` (model, property, accessType, permission, principalTyp ('SaleTracking','updateTracking','WRITE','ALLOW','ROLE','employee'), ('SaleTracking','mark','WRITE','ALLOW','ROLE','employee'), ('ItemBarcode','deleteByItemAndCode','WRITE','ALLOW','ROLE','employee'), - ('Collection','addItem','WRITE','ALLOW','ROLE','employee'); \ No newline at end of file + ('Collection','addItem','WRITE','ALLOW','ROLE','employee'); + ('ExpeditionPallet', '*', 'READ', 'ALLOW', 'ROLE', 'production'); + \ No newline at end of file diff --git a/modules/worker/back/methods/operator/getPrinter.js b/modules/worker/back/methods/operator/getPrinter.js index c46734517..31fbff7b5 100644 --- a/modules/worker/back/methods/operator/getPrinter.js +++ b/modules/worker/back/methods/operator/getPrinter.js @@ -7,7 +7,7 @@ module.exports = Self => { verb: 'GET' }, returns: { - type: 'object', + type: ['object'], }, }); @@ -30,10 +30,11 @@ module.exports = Self => { if (operator) { const printer = operator.printer(); - return { + console.log({ id: printer.id, name: printer.name - }; + }); + return Array.isArray(printer) ? printer : [printer]; } }; }; From 924fe12a9344641db09792fa546fc18a005b63ac Mon Sep 17 00:00:00 2001 From: jorgep Date: Tue, 2 Jan 2024 12:44:12 +0100 Subject: [PATCH 029/173] add root: refs #6276 --- modules/worker/back/methods/operator/getPrinter.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/modules/worker/back/methods/operator/getPrinter.js b/modules/worker/back/methods/operator/getPrinter.js index 31fbff7b5..88e7d8090 100644 --- a/modules/worker/back/methods/operator/getPrinter.js +++ b/modules/worker/back/methods/operator/getPrinter.js @@ -8,6 +8,7 @@ module.exports = Self => { }, returns: { type: ['object'], + root: true }, }); @@ -30,11 +31,8 @@ module.exports = Self => { if (operator) { const printer = operator.printer(); - console.log({ - id: printer.id, - name: printer.name - }); return Array.isArray(printer) ? printer : [printer]; } + return []; }; }; From bce8feb552b19e93aeb6541ff0db24f11cf44aa8 Mon Sep 17 00:00:00 2001 From: jorgep Date: Wed, 3 Jan 2024 10:41:44 +0100 Subject: [PATCH 030/173] refs #6276 add maxHours --- db/dump/fixtures.sql | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/db/dump/fixtures.sql b/db/dump/fixtures.sql index 08225213c..96bde7e83 100644 --- a/db/dump/fixtures.sql +++ b/db/dump/fixtures.sql @@ -3666,4 +3666,7 @@ UPDATE vn.collection WHERE id=10101010; UPDATE vn.sale - SET isPicked =FALSE; \ No newline at end of file + SET isPicked =FALSE; + +INSERT INTO machineWorkerConfig(maxHours) + VALUES(12); \ No newline at end of file From 0b5ffcc81cb95691bf89bc8298705ff5b295e3c4 Mon Sep 17 00:00:00 2001 From: sergiodt Date: Wed, 3 Jan 2024 12:50:53 +0100 Subject: [PATCH 031/173] =?UTF-8?q?refs=20#6276:modify=20back=20silex?= =?UTF-8?q?=E2=86=92salix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- back/methods/collection/addItem.js | 2 +- back/methods/machine-worker/updateInTime.js | 2 +- db/changes/235001/00-newWareHouse.sql | 8 ++++++-- loopback/locale/es.json | 6 ++++-- modules/item/back/methods/item-shelving/makeMulti.js | 2 +- modules/item/back/methods/item-shelving/return.js | 2 +- modules/item/back/methods/item/card.js | 2 +- .../ticket/back/methods/expedition-pallet/getPallet.js | 1 + 8 files changed, 16 insertions(+), 9 deletions(-) diff --git a/back/methods/collection/addItem.js b/back/methods/collection/addItem.js index 4538a479c..d3afbd71b 100644 --- a/back/methods/collection/addItem.js +++ b/back/methods/collection/addItem.js @@ -6,7 +6,7 @@ module.exports = Self => { accepts: [ { arg: 'code', - type: 'string', + type: 'number', required: true }, { diff --git a/back/methods/machine-worker/updateInTime.js b/back/methods/machine-worker/updateInTime.js index 917733686..3fdb484dd 100644 --- a/back/methods/machine-worker/updateInTime.js +++ b/back/methods/machine-worker/updateInTime.js @@ -50,7 +50,7 @@ module.exports = Self => { }); if (machineWorker) { await machineWorker.updateAttributes({ - inTime: new Date(Date.now()) + outTime: new Date(Date.now()) }, myOptions); } diff --git a/db/changes/235001/00-newWareHouse.sql b/db/changes/235001/00-newWareHouse.sql index b7d5f8a59..c088a8730 100644 --- a/db/changes/235001/00-newWareHouse.sql +++ b/db/changes/235001/00-newWareHouse.sql @@ -9,6 +9,10 @@ INSERT INTO `salix`.`ACL` (model, property, accessType, permission, principalTyp ('SaleTracking','updateTracking','WRITE','ALLOW','ROLE','employee'), ('SaleTracking','mark','WRITE','ALLOW','ROLE','employee'), ('ItemBarcode','deleteByItemAndCode','WRITE','ALLOW','ROLE','employee'), - ('Collection','addItem','WRITE','ALLOW','ROLE','employee'); - ('ExpeditionPallet', '*', 'READ', 'ALLOW', 'ROLE', 'production'); + ('Collection','addItem','WRITE','ALLOW','ROLE','employee'), + ('ExpeditionPallet', '*', 'READ', 'ALLOW', 'ROLE', 'production'), + ('MobileAppVersionControl', '*', 'READ', 'ALLOW', 'ROLE', 'production'), + ('Collection', 'assignCollection', 'WRITE', 'ALLOW', 'ROLE', 'production'), + ('Collection', 'addItem', 'WRITE', 'ALLOW', 'ROLE', 'production'), + ('MachineWorker', 'updateInTime', 'WRITE', 'ALLOW', 'ROLE', 'production');; \ No newline at end of file diff --git a/loopback/locale/es.json b/loopback/locale/es.json index 819ee1740..fb3335eb2 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -331,5 +331,7 @@ "Cannot past travels with entries": "No se pueden pasar envíos con entradas", "It was not able to remove the next expeditions:": "No se pudo eliminar las siguientes expediciones: {{expeditions}}", "The line could not be marked": "The line could not be marked", - "This user does not have an assigned tablet": "Este usuario no tiene tablet asignada" -} + "This user does not have an assigned tablet": "Este usuario no tiene tablet asignada", + "No hay tickets para sacar": "No hay tickets para sacar", + "There is no zone for these parameters 999999": "There is no zone for these parameters 999999" +} \ No newline at end of file diff --git a/modules/item/back/methods/item-shelving/makeMulti.js b/modules/item/back/methods/item-shelving/makeMulti.js index d4b451760..e4393e4de 100644 --- a/modules/item/back/methods/item-shelving/makeMulti.js +++ b/modules/item/back/methods/item-shelving/makeMulti.js @@ -4,7 +4,7 @@ module.exports = Self => { accessType: 'WRITE', accepts: [{ arg: 'shelvingFk', - type: 'number', + type: 'string', required: true, }, { diff --git a/modules/item/back/methods/item-shelving/return.js b/modules/item/back/methods/item-shelving/return.js index 346fe8bdf..27bc39a50 100644 --- a/modules/item/back/methods/item-shelving/return.js +++ b/modules/item/back/methods/item-shelving/return.js @@ -62,7 +62,7 @@ module.exports = Self => { return { id: itemShelving.id, - item: itemShelving.itemFk, + itemFk: itemShelving.itemFk, longName: item ? item.longName || `${item.name} ${item.size}` : '', quantity: itemShelving.visible, stickers: Math.ceil(itemShelving.visible / itemShelving.packing), diff --git a/modules/item/back/methods/item/card.js b/modules/item/back/methods/item/card.js index 6d861b394..41d134f3b 100644 --- a/modules/item/back/methods/item/card.js +++ b/modules/item/back/methods/item/card.js @@ -44,7 +44,7 @@ module.exports = Self => { let itemInfo; if (result.length) { itemInfo = {...result[0]}; - itemInfo.barcodes = barcodes.map(barcode => barcode.code); + itemInfo.barcodes = barcodes; } return itemInfo; diff --git a/modules/ticket/back/methods/expedition-pallet/getPallet.js b/modules/ticket/back/methods/expedition-pallet/getPallet.js index 09775a6fa..22cbbc210 100644 --- a/modules/ticket/back/methods/expedition-pallet/getPallet.js +++ b/modules/ticket/back/methods/expedition-pallet/getPallet.js @@ -16,6 +16,7 @@ module.exports = Self => { }, returns: { type: 'object', + root: true }, }); From e354de4ff5c8625fe8463fe64e124f4de0703e11 Mon Sep 17 00:00:00 2001 From: jorgep Date: Thu, 4 Jan 2024 10:09:41 +0100 Subject: [PATCH 032/173] fix: updateInTime refs #6276 --- back/methods/machine-worker/updateInTime.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/back/methods/machine-worker/updateInTime.js b/back/methods/machine-worker/updateInTime.js index 3fdb484dd..278d1d08d 100644 --- a/back/methods/machine-worker/updateInTime.js +++ b/back/methods/machine-worker/updateInTime.js @@ -42,7 +42,7 @@ module.exports = Self => { const machineWorker = await models.MachineWorker.findOne({ where: { workerFk: userId, - inTime: {gte: new Date(Date.now() - maxHours * 60 * 60 * 1000)}, + inTime: {gte: Date.vnNew() - (maxHours * 60 * 60 * 1000)}, outTimed: null, machineFk: machine.id, } @@ -50,7 +50,7 @@ module.exports = Self => { }); if (machineWorker) { await machineWorker.updateAttributes({ - outTime: new Date(Date.now()) + outTime: Date.now() }, myOptions); } From 384d9ec803c7c038570f6fe076a14761fecd9bf1 Mon Sep 17 00:00:00 2001 From: jorgep Date: Thu, 4 Jan 2024 12:27:02 +0100 Subject: [PATCH 033/173] fix: updateTracking refs #6276 --- modules/ticket/back/methods/sale-tracking/updateTracking.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ticket/back/methods/sale-tracking/updateTracking.js b/modules/ticket/back/methods/sale-tracking/updateTracking.js index 1f499022e..c6f051f9a 100644 --- a/modules/ticket/back/methods/sale-tracking/updateTracking.js +++ b/modules/ticket/back/methods/sale-tracking/updateTracking.js @@ -20,7 +20,7 @@ module.exports = Self => { }, { arg: 'isChecked', - type: 'number', + type: 'boolean', required: true }, { From da8057e4c7196dd0dfefbe08962944fe1443a8e7 Mon Sep 17 00:00:00 2001 From: jorgep Date: Thu, 4 Jan 2024 12:35:00 +0100 Subject: [PATCH 034/173] fix: updateTracking refs #6276 --- modules/ticket/back/methods/sale-tracking/updateTracking.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/ticket/back/methods/sale-tracking/updateTracking.js b/modules/ticket/back/methods/sale-tracking/updateTracking.js index c6f051f9a..453b0b0c6 100644 --- a/modules/ticket/back/methods/sale-tracking/updateTracking.js +++ b/modules/ticket/back/methods/sale-tracking/updateTracking.js @@ -30,7 +30,7 @@ module.exports = Self => { }, { arg: 'isScanned', - type: 'number', + type: 'boolean', }, ], http: { @@ -64,7 +64,7 @@ module.exports = Self => { originalQuantity, workerFk: userId, stateFk: state.id, - isScanned, + isScanned: isScanned === undefined ? null : isScanned, }; const saleTracking = await models.SaleTracking.findOne({ From 3ebf0a30a9c3561ac25fff794eed142ebb47dceb Mon Sep 17 00:00:00 2001 From: jorgep Date: Thu, 4 Jan 2024 12:44:44 +0100 Subject: [PATCH 035/173] refactor: drop getItemPackingType refs #6276 --- .../methods/operator/getItemPackingType.js | 31 ------------------- 1 file changed, 31 deletions(-) delete mode 100644 modules/worker/back/methods/operator/getItemPackingType.js diff --git a/modules/worker/back/methods/operator/getItemPackingType.js b/modules/worker/back/methods/operator/getItemPackingType.js deleted file mode 100644 index d28cd95fe..000000000 --- a/modules/worker/back/methods/operator/getItemPackingType.js +++ /dev/null @@ -1,31 +0,0 @@ -module.exports = Self => { - Self.remoteMethodCtx('getItemPackingType', { - description: 'Retrieve the operator items', - accessType: 'READ', - returns: { - type: 'object', - }, - http: { - path: `/getItemPackingType`, - verb: 'GET' - }, - }); - - Self.getItemPackingType = async ctx => { - const userId = 9 ?? ctx.req.accessToken.userId; - - const result = await Self.findOne({ - where: { - workerFk: userId - }, - include: { - relation: 'itemPackingType', - } - }); - const itemPackingType = result.itemPackingType(); - - return { - description: itemPackingType?.description - }; - }; -}; From 2eca02d74f2a202c5c331fa881956413e7ab727f Mon Sep 17 00:00:00 2001 From: jorgep Date: Thu, 4 Jan 2024 12:57:46 +0100 Subject: [PATCH 036/173] refactor: drop getItemPackingType refs #6276 --- modules/worker/back/models/operator.js | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/worker/back/models/operator.js b/modules/worker/back/models/operator.js index b9ea481a7..5e8870130 100644 --- a/modules/worker/back/models/operator.js +++ b/modules/worker/back/models/operator.js @@ -2,7 +2,6 @@ module.exports = Self => { require('../methods/operator/add')(Self); require('../methods/operator/getPrinter')(Self); require('../methods/operator/getAvailablePrinters')(Self); - require('../methods/operator/getItemPackingType')(Self); Self.observe('after save', async function(ctx) { const instance = ctx.data || ctx.instance; From ad89363db5d707a5d1903a11aa7ba43bc04a49ad Mon Sep 17 00:00:00 2001 From: jorgep Date: Thu, 4 Jan 2024 13:11:39 +0100 Subject: [PATCH 037/173] fix: mark refs #6276 --- modules/ticket/back/methods/sale-tracking/mark.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ticket/back/methods/sale-tracking/mark.js b/modules/ticket/back/methods/sale-tracking/mark.js index a5b8ece52..327421673 100644 --- a/modules/ticket/back/methods/sale-tracking/mark.js +++ b/modules/ticket/back/methods/sale-tracking/mark.js @@ -32,7 +32,7 @@ module.exports = Self => { }, { arg: 'isScanned', - type: 'number', + type: 'boolean', }, { arg: 'quantity', From 8a5da43503f774c26b26817e45388679cec38dd7 Mon Sep 17 00:00:00 2001 From: jorgep Date: Thu, 4 Jan 2024 16:00:25 +0100 Subject: [PATCH 038/173] refactor: sectorCollection_getSale refs #6276 --- db/changes/235001/00-newWareHouse.sql | 3 ++- modules/item/back/models/item-shelving.js | 1 - .../back/methods/sale/getFromSectorCollection.js} | 10 +++++----- modules/ticket/back/models/sale.js | 1 + 4 files changed, 8 insertions(+), 7 deletions(-) rename modules/{item/back/methods/item-shelving/getSale.js => ticket/back/methods/sale/getFromSectorCollection.js} (84%) diff --git a/db/changes/235001/00-newWareHouse.sql b/db/changes/235001/00-newWareHouse.sql index c088a8730..60d2658b0 100644 --- a/db/changes/235001/00-newWareHouse.sql +++ b/db/changes/235001/00-newWareHouse.sql @@ -14,5 +14,6 @@ INSERT INTO `salix`.`ACL` (model, property, accessType, permission, principalTyp ('MobileAppVersionControl', '*', 'READ', 'ALLOW', 'ROLE', 'production'), ('Collection', 'assignCollection', 'WRITE', 'ALLOW', 'ROLE', 'production'), ('Collection', 'addItem', 'WRITE', 'ALLOW', 'ROLE', 'production'), - ('MachineWorker', 'updateInTime', 'WRITE', 'ALLOW', 'ROLE', 'production');; + ('Sale', 'getFromSectorCollection', 'READ', 'ALLOW', 'ROLE', 'employee'), + ('Collection', 'addItem', 'WRITE', 'ALLOW', 'ROLE', 'production'); \ No newline at end of file diff --git a/modules/item/back/models/item-shelving.js b/modules/item/back/models/item-shelving.js index e349b9c34..4eb5374e8 100644 --- a/modules/item/back/models/item-shelving.js +++ b/modules/item/back/models/item-shelving.js @@ -4,5 +4,4 @@ module.exports = Self => { require('../methods/item-shelving/makeMulti')(Self); require('../methods/item-shelving/return')(Self); require('../methods/item-shelving/updateFromSale')(Self); - require('../methods/item-shelving/getSale')(Self); }; diff --git a/modules/item/back/methods/item-shelving/getSale.js b/modules/ticket/back/methods/sale/getFromSectorCollection.js similarity index 84% rename from modules/item/back/methods/item-shelving/getSale.js rename to modules/ticket/back/methods/sale/getFromSectorCollection.js index 826ac03e1..9e4f24fbb 100644 --- a/modules/item/back/methods/item-shelving/getSale.js +++ b/modules/ticket/back/methods/sale/getFromSectorCollection.js @@ -1,7 +1,7 @@ module.exports = Self => { - Self.remoteMethod('getSale', { - description: 'Update the visible items', - accessType: 'WRITE', + Self.remoteMethod('getFromSectorCollection', { + description: 'Get sales from sector collection', + accessType: 'READ', accepts: [ { arg: 'sectorCollectionFk', @@ -19,12 +19,12 @@ module.exports = Self => { root: true }, http: { - path: `/getSale`, + path: `/getFromSectorCollection`, verb: 'GET' }, }); - Self.getSale = async(sectorCollectionFk, sectorFk, options) => { + Self.getFromSectorCollection = async(sectorCollectionFk, sectorFk, options) => { const myOptions = {}; if (typeof options == 'object') Object.assign(myOptions, options); diff --git a/modules/ticket/back/models/sale.js b/modules/ticket/back/models/sale.js index d6f06d744..7cac50a13 100644 --- a/modules/ticket/back/models/sale.js +++ b/modules/ticket/back/models/sale.js @@ -13,6 +13,7 @@ module.exports = Self => { require('../methods/sale/canEdit')(Self); require('../methods/sale/usesMana')(Self); require('../methods/sale/clone')(Self); + require('../methods/sale/getFromSectorCollection')(Self); Self.validatesPresenceOf('concept', { message: `Concept cannot be blank` From 9afc3840c76886dc5dd3645343703f892e07fa80 Mon Sep 17 00:00:00 2001 From: jorgep Date: Tue, 9 Jan 2024 11:22:11 +0100 Subject: [PATCH 039/173] fix: refs #6276 machineWorker_add --- back/methods/machine-worker/add.js | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/back/methods/machine-worker/add.js b/back/methods/machine-worker/add.js index 65eb5d297..92d0df78e 100644 --- a/back/methods/machine-worker/add.js +++ b/back/methods/machine-worker/add.js @@ -37,27 +37,16 @@ module.exports = Self => { if (!machine) throw new Error(`plate ${plate} does not exist`); - const twelveHoursAgo = Date.vnNew(); - twelveHoursAgo.setHours(twelveHoursAgo.getHours() - 12); - - const isRegistered = await models.MachineWorker.findOne({ - where: { - and: [ - {machineFk: machine.id}, - {workerFk: userId}, - {outTime: {gte: twelveHoursAgo}} - ] - } - }, myOptions); - - if (!isRegistered) await models.MachineWorker.create({machineFk: machine.id, workerFk: userId}, myOptions); - else { await models.MachineWorker.updateAll( - {or: [{workerFk: userId}, {machineFk: machine.id}]}, + { + or: [{workerFk: userId}, {machineFk: machine.id}], + and: [{outTime: null }] + }, {outTime: Date.vnNew()}, myOptions ); - } + + await models.MachineWorker.create({machineFk: machine.id, workerFk: userId}, myOptions); if (tx) await tx.commit(); } catch (e) { From 7a9f2bd79cea197dc60bf6d192f503e65fa666d5 Mon Sep 17 00:00:00 2001 From: jorgep Date: Tue, 9 Jan 2024 11:23:54 +0100 Subject: [PATCH 040/173] refactor: refs #6276 align rows --- back/methods/machine-worker/add.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/back/methods/machine-worker/add.js b/back/methods/machine-worker/add.js index 92d0df78e..c6fdd620e 100644 --- a/back/methods/machine-worker/add.js +++ b/back/methods/machine-worker/add.js @@ -37,14 +37,14 @@ module.exports = Self => { if (!machine) throw new Error(`plate ${plate} does not exist`); - await models.MachineWorker.updateAll( - { - or: [{workerFk: userId}, {machineFk: machine.id}], - and: [{outTime: null }] - }, - {outTime: Date.vnNew()}, - myOptions - ); + await models.MachineWorker.updateAll( + { + or: [{workerFk: userId}, {machineFk: machine.id}], + and: [{outTime: null }] + }, + {outTime: Date.vnNew()}, + myOptions + ); await models.MachineWorker.create({machineFk: machine.id, workerFk: userId}, myOptions); From fafc25ed1943e2a0880182c82e651bd783f3ec19 Mon Sep 17 00:00:00 2001 From: jorgep Date: Tue, 16 Jan 2024 14:50:09 +0100 Subject: [PATCH 041/173] refactor: refs #6276 sectorCollection_getSale --- .../methods/sale/getFromSectorCollection.js | 29 +++++++++++++++++-- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/modules/ticket/back/methods/sale/getFromSectorCollection.js b/modules/ticket/back/methods/sale/getFromSectorCollection.js index 9e4f24fbb..9a1b52ed8 100644 --- a/modules/ticket/back/methods/sale/getFromSectorCollection.js +++ b/modules/ticket/back/methods/sale/getFromSectorCollection.js @@ -1,5 +1,5 @@ module.exports = Self => { - Self.remoteMethod('getFromSectorCollection', { + Self.remoteMethodCtx('getFromSectorCollection', { description: 'Get sales from sector collection', accessType: 'READ', accepts: [ @@ -24,12 +24,35 @@ module.exports = Self => { }, }); - Self.getFromSectorCollection = async(sectorCollectionFk, sectorFk, options) => { + Self.getFromSectorCollection = async(ctx, sectorCollectionFk, sectorFk, options) => { const myOptions = {}; + const userId = ctx.req.accessToken.userId; if (typeof options == 'object') Object.assign(myOptions, options); - const [sales] = await Self.rawSql('CALL vn.sectorCollection_getSale(?)', [sectorCollectionFk]); + const sales = await Self.rawSql( + `SELECT s.ticketFk, + s.itemFk, + i.longName, + itemPackingTypeFk, + subName, + s.quantity, + w.code workerCode, + sgd.saleFk, + iss.quantity pickedQuantity, + c.salesPersonFk + FROM vn.sale s + JOIN item i ON i.id = s.itemFk + JOIN saleGroupDetail sgd ON sgd.saleFk = s.id + JOIN sectorCollectionSaleGroup scsg ON scsg.saleGroupFk = sgd.saleGroupFk + JOIN saleTracking st ON st.saleFk = s.id + JOIN state stt ON stt.id = st.stateFk AND stt.code = 'PREVIOUS_PREPARATION' + JOIN worker w ON w.id = st.workerFk + JOIN ticket t ON t.id= s.ticketFk + JOIN client c ON c.id=t.clientFk + LEFT JOIN itemShelvingSaleSum iss ON iss.saleFk = s.id + WHERE scsg.sectorCollectionFk = ? + AND st.workerFk = ?;`, [sectorCollectionFk, userId]); const itemShelvings = []; for (let sale of sales) { From 2fbea6f9dd0525891ca31e83d4f83535df5a1b2b Mon Sep 17 00:00:00 2001 From: jorgep Date: Tue, 16 Jan 2024 15:43:34 +0100 Subject: [PATCH 042/173] feat: refs #6276 wip machineWorke_update --- back/methods/machine-worker/updateInTime.js | 23 +++++++++++++-------- loopback/locale/es.json | 7 ++++--- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/back/methods/machine-worker/updateInTime.js b/back/methods/machine-worker/updateInTime.js index 278d1d08d..0ae968b83 100644 --- a/back/methods/machine-worker/updateInTime.js +++ b/back/methods/machine-worker/updateInTime.js @@ -1,3 +1,4 @@ +const UserError = require('vn-loopback/util/user-error'); module.exports = Self => { Self.remoteMethodCtx('updateInTime', { description: 'Updates the corresponding registry if the worker has been registered in the last few hours', @@ -34,25 +35,29 @@ module.exports = Self => { fields: ['id', 'plate'], where: {plate} }, myOptions); - if (!machine) throw new Error(`plate ${plate} does not exist`); const {maxHours} = await models.MachineWorkerConfig.findOne({fields: ['maxHours']}, myOptions); - - const machineWorker = await models.MachineWorker.findOne({ + const machineWorker = await Self.findOne({ where: { - workerFk: userId, - inTime: {gte: Date.vnNew() - (maxHours * 60 * 60 * 1000)}, - outTimed: null, machineFk: machine.id, + outTime: null, } + }, myOptions); - }); if (machineWorker) { + const hoursDifference = (Date.vnNew() - machineWorker.inTime) / (60 * 60 * 1000); + const isHimSelf = userId == machineWorker.workerFk; + + if (maxHours > hoursDifference && !isHimSelf) throw new UserError('Esta máquina ya está en uso.'); + await machineWorker.updateAttributes({ - outTime: Date.now() + outTime: Date.vnNew() }, myOptions); - } + + if (!isHimSelf) await models.MachineWorker.create({machineFk: machine.id, workerFk: userId}, myOptions); + } else + await models.MachineWorker.create({machineFk: machine.id, workerFk: userId}, myOptions); if (tx) await tx.commit(); } catch (e) { diff --git a/loopback/locale/es.json b/loopback/locale/es.json index 698303a26..5d57b1968 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -72,7 +72,7 @@ "The secret can't be blank": "La contraseña no puede estar en blanco", "We weren't able to send this SMS": "No hemos podido enviar el SMS", "This client can't be invoiced": "Este cliente no puede ser facturado", - "You must provide the correction information to generate a corrective invoice": "Debes informar la información de corrección para generar una factura rectificativa", + "You must provide the correction information to generate a corrective invoice": "Debes informar la información de corrección para generar una factura rectificativa", "This ticket can't be invoiced": "Este ticket no puede ser facturado", "You cannot add or modify services to an invoiced ticket": "No puedes añadir o modificar servicios a un ticket facturado", "This ticket can not be modified": "Este ticket no puede ser modificado", @@ -339,5 +339,6 @@ "The alias cant be modified": "Este alias de correo no puede ser modificado", "No tickets to invoice": "No hay tickets para facturar", "No hay tickets para sacar": "No hay tickets para sacar", - "There is no zone for these parameters 999999": "There is no zone for these parameters 999999" -} + "There is no zone for these parameters 999999": "There is no zone for these parameters 999999", + "Esta máquina ya está en uso.": "Esta máquina ya está en uso." +} \ No newline at end of file From 53a10dda58698f72539aa351cc638470fa5e8c9b Mon Sep 17 00:00:00 2001 From: jorgep Date: Wed, 17 Jan 2024 08:17:55 +0100 Subject: [PATCH 043/173] feat: refs #6276 machineWorke_update --- back/methods/machine-worker/add.js | 57 --------------------- back/methods/machine-worker/updateInTime.js | 8 +-- back/models/machine-worker.js | 1 - db/changes/235001/00-newWareHouse.sql | 1 - 4 files changed, 4 insertions(+), 63 deletions(-) delete mode 100644 back/methods/machine-worker/add.js diff --git a/back/methods/machine-worker/add.js b/back/methods/machine-worker/add.js deleted file mode 100644 index c6fdd620e..000000000 --- a/back/methods/machine-worker/add.js +++ /dev/null @@ -1,57 +0,0 @@ -module.exports = Self => { - Self.remoteMethodCtx('add', { - description: 'Insert log if the worker has not logged anything in the last 12 hours', - accessType: 'READ', - accepts: [ - { - arg: 'plate', - type: 'string', - } - ], - http: { - path: `/add`, - verb: 'POST' - } - }); - - Self.add = async(ctx, plate, options) => { - const models = Self.app.models; - const userId = ctx.req.accessToken.userId; - - let tx; - const myOptions = {}; - - if (typeof options == 'object') - Object.assign(myOptions, options); - - if (!myOptions.transaction) { - tx = await Self.beginTransaction({}); - myOptions.transaction = tx; - } - - try { - const machine = await models.Machine.findOne({ - fields: ['id', 'plate'], - where: {plate} - }, myOptions); - - if (!machine) throw new Error(`plate ${plate} does not exist`); - - await models.MachineWorker.updateAll( - { - or: [{workerFk: userId}, {machineFk: machine.id}], - and: [{outTime: null }] - }, - {outTime: Date.vnNew()}, - myOptions - ); - - await models.MachineWorker.create({machineFk: machine.id, workerFk: userId}, myOptions); - - if (tx) await tx.commit(); - } catch (e) { - if (tx) await tx.rollback(); - throw e; - } - }; -}; diff --git a/back/methods/machine-worker/updateInTime.js b/back/methods/machine-worker/updateInTime.js index 0ae968b83..5065373a2 100644 --- a/back/methods/machine-worker/updateInTime.js +++ b/back/methods/machine-worker/updateInTime.js @@ -35,9 +35,8 @@ module.exports = Self => { fields: ['id', 'plate'], where: {plate} }, myOptions); - if (!machine) throw new Error(`plate ${plate} does not exist`); + if (!machine) throw new Error(`plate ${plate} does not exist.`); - const {maxHours} = await models.MachineWorkerConfig.findOne({fields: ['maxHours']}, myOptions); const machineWorker = await Self.findOne({ where: { machineFk: machine.id, @@ -46,10 +45,11 @@ module.exports = Self => { }, myOptions); if (machineWorker) { - const hoursDifference = (Date.vnNew() - machineWorker.inTime) / (60 * 60 * 1000); + const {maxHours} = await models.MachineWorkerConfig.findOne({fields: ['maxHours']}, myOptions); + const hoursDifference = (Date.vnNow() - machineWorker.inTime.getTime()) / (60 * 60 * 1000); const isHimSelf = userId == machineWorker.workerFk; - if (maxHours > hoursDifference && !isHimSelf) throw new UserError('Esta máquina ya está en uso.'); + if (maxHours > hoursDifference && !isHimSelf) throw new UserError('This machine is already in use.'); await machineWorker.updateAttributes({ outTime: Date.vnNew() diff --git a/back/models/machine-worker.js b/back/models/machine-worker.js index b44cb1fb6..cbc5fd53e 100644 --- a/back/models/machine-worker.js +++ b/back/models/machine-worker.js @@ -1,4 +1,3 @@ module.exports = Self => { require('../methods/machine-worker/updateInTime')(Self); - require('../methods/machine-worker/add')(Self); }; diff --git a/db/changes/235001/00-newWareHouse.sql b/db/changes/235001/00-newWareHouse.sql index 60d2658b0..1b1ec263f 100644 --- a/db/changes/235001/00-newWareHouse.sql +++ b/db/changes/235001/00-newWareHouse.sql @@ -3,7 +3,6 @@ INSERT INTO `salix`.`ACL` (model, property, accessType, permission, principalTyp ('Collection', 'assignCollection', 'WRITE', 'ALLOW', 'ROLE', 'employee'), ('ExpeditionPallet', 'getPallet', 'READ', 'ALLOW', 'ROLE', 'employee'), ('MachineWorker','updateInTime','WRITE','ALLOW','ROLE','employee'), - ('MachineWorker','add','READ','ALLOW','ROLE','employee'), ('MobileAppVersionControl','getVersion','READ','ALLOW','ROLE','employee'), ('SaleTracking','deleteTracking','WRITE','ALLOW','ROLE','employee'), ('SaleTracking','updateTracking','WRITE','ALLOW','ROLE','employee'), From 6a78123fca12c382651327d2e74226260735b315 Mon Sep 17 00:00:00 2001 From: jorgep Date: Wed, 17 Jan 2024 09:01:48 +0100 Subject: [PATCH 044/173] fix: refs #6276 machineWorke_update --- back/methods/machine-worker/updateInTime.js | 3 ++- loopback/locale/es.json | 3 ++- modules/ticket/back/methods/ticket/specs/setDeleted.spec.js | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/back/methods/machine-worker/updateInTime.js b/back/methods/machine-worker/updateInTime.js index 5065373a2..705bcdd92 100644 --- a/back/methods/machine-worker/updateInTime.js +++ b/back/methods/machine-worker/updateInTime.js @@ -55,7 +55,8 @@ module.exports = Self => { outTime: Date.vnNew() }, myOptions); - if (!isHimSelf) await models.MachineWorker.create({machineFk: machine.id, workerFk: userId}, myOptions); + if (maxHours <= hoursDifference) + await models.MachineWorker.create({machineFk: machine.id, workerFk: userId}, myOptions); } else await models.MachineWorker.create({machineFk: machine.id, workerFk: userId}, myOptions); diff --git a/loopback/locale/es.json b/loopback/locale/es.json index 5d57b1968..babb4bd2a 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -340,5 +340,6 @@ "No tickets to invoice": "No hay tickets para facturar", "No hay tickets para sacar": "No hay tickets para sacar", "There is no zone for these parameters 999999": "There is no zone for these parameters 999999", - "Esta máquina ya está en uso.": "Esta máquina ya está en uso." + "Esta máquina ya está en uso.": "Esta máquina ya está en uso.", + "This machine is already in use.": "This machine is already in use." } \ No newline at end of file diff --git a/modules/ticket/back/methods/ticket/specs/setDeleted.spec.js b/modules/ticket/back/methods/ticket/specs/setDeleted.spec.js index 43bc2c2d9..0dcd2762c 100644 --- a/modules/ticket/back/methods/ticket/specs/setDeleted.spec.js +++ b/modules/ticket/back/methods/ticket/specs/setDeleted.spec.js @@ -57,7 +57,7 @@ describe('ticket setDeleted()', () => { `SELECT COUNT(*) numberRows FROM vn.sectorCollection`, [], options); - expect(sectorCollection.numberRows).toEqual(0); + expect(sectorCollection.numberRows).toEqual(1); await tx.rollback(); } catch (e) { From 90b1e8d664b58c17cc2345adb6ba6ceb531e4aac Mon Sep 17 00:00:00 2001 From: jorgep Date: Wed, 17 Jan 2024 10:18:13 +0100 Subject: [PATCH 045/173] fix: refs #6276 backend tests --- db/dump/fixtures.sql | 7 +++++-- modules/entry/back/methods/entry/specs/filter.spec.js | 4 ++-- .../ticket/back/methods/sale-tracking/specs/delete.spec.js | 2 +- .../back/methods/travel/specs/extraCommunityFilter.spec.js | 2 +- modules/travel/back/methods/travel/specs/filter.spec.js | 2 +- 5 files changed, 10 insertions(+), 7 deletions(-) diff --git a/db/dump/fixtures.sql b/db/dump/fixtures.sql index 50168ccea..2b04327cf 100644 --- a/db/dump/fixtures.sql +++ b/db/dump/fixtures.sql @@ -3047,9 +3047,12 @@ INSERT INTO `vn`.`clientSms` (`id`, `clientFk`, `smsFk`, `ticketFk`) -- NEW WAREHOUSE -UPDATE vn.packaging +/* UPDATE vn.packaging SET id='--' - WHERE id='pallet 100'; + WHERE id='pallet 100'; */ +INSERT INTO vn.packaging + VALUES('--', 2745600.00, 100.00, 120.00, 220.00, 0.00, 1, '2001-01-01 00:00:00.000', NULL, NULL, NULL, 0.00, 16, 0.00, 0, NULL, 0.00, NULL, NULL, 0, NULL, 0, 0); + INSERT IGNORE INTO vn.intrastat SET id = 44219999, diff --git a/modules/entry/back/methods/entry/specs/filter.spec.js b/modules/entry/back/methods/entry/specs/filter.spec.js index dcad13320..28763bc81 100644 --- a/modules/entry/back/methods/entry/specs/filter.spec.js +++ b/modules/entry/back/methods/entry/specs/filter.spec.js @@ -37,7 +37,7 @@ describe('Entry filter()', () => { const result = await models.Entry.filter(ctx, options); - expect(result.length).toEqual(8); + expect(result.length).toEqual(9); await tx.rollback(); } catch (e) { @@ -81,7 +81,7 @@ describe('Entry filter()', () => { const result = await models.Entry.filter(ctx, options); - expect(result.length).toEqual(7); + expect(result.length).toEqual(8); await tx.rollback(); } catch (e) { diff --git a/modules/ticket/back/methods/sale-tracking/specs/delete.spec.js b/modules/ticket/back/methods/sale-tracking/specs/delete.spec.js index a8bcf5692..e23c12a61 100644 --- a/modules/ticket/back/methods/sale-tracking/specs/delete.spec.js +++ b/modules/ticket/back/methods/sale-tracking/specs/delete.spec.js @@ -11,7 +11,7 @@ describe('sale-tracking delete()', () => { const saleTrackingsBefore = await models.SaleTracking.find(null, options); const saleFk = 1; - const stateCode = 'PREPARED'; + const stateCode = ['PREPARED']; const result = await models.SaleTracking.delete(saleFk, stateCode, options); const itemShelvingsAfter = await models.ItemShelvingSale.find(null, options); diff --git a/modules/travel/back/methods/travel/specs/extraCommunityFilter.spec.js b/modules/travel/back/methods/travel/specs/extraCommunityFilter.spec.js index 599851b55..1ce55cc91 100644 --- a/modules/travel/back/methods/travel/specs/extraCommunityFilter.spec.js +++ b/modules/travel/back/methods/travel/specs/extraCommunityFilter.spec.js @@ -79,7 +79,7 @@ describe('Travel extraCommunityFilter()', () => { const result = await app.models.Travel.extraCommunityFilter(ctx, filter); - expect(result.length).toEqual(8); + expect(result.length).toEqual(9); }); it('should return the travel matching "cargoSupplierFk"', async() => { diff --git a/modules/travel/back/methods/travel/specs/filter.spec.js b/modules/travel/back/methods/travel/specs/filter.spec.js index 1a6ee895c..6cb366938 100644 --- a/modules/travel/back/methods/travel/specs/filter.spec.js +++ b/modules/travel/back/methods/travel/specs/filter.spec.js @@ -80,6 +80,6 @@ describe('Travel filter()', () => { const result = await app.models.Travel.filter(ctx); - expect(result.length).toEqual(5); + expect(result.length).toEqual(6); }); }); From e69ec2c8561ae508e037a25585da5430ae2a067d Mon Sep 17 00:00:00 2001 From: jorgep Date: Wed, 17 Jan 2024 12:07:22 +0100 Subject: [PATCH 046/173] feat: refs #6276 test expeditionPallet_get --- loopback/locale/en.json | 3 +- loopback/locale/es.json | 4 +-- .../methods/expedition-pallet/getPallet.js | 14 ++++++--- .../expedition-pallet/specs/getPallet.spec.js | 31 +++++++++++++++++++ 4 files changed, 45 insertions(+), 7 deletions(-) create mode 100644 modules/ticket/back/methods/expedition-pallet/specs/getPallet.spec.js diff --git a/loopback/locale/en.json b/loopback/locale/en.json index ba9acecae..391034126 100644 --- a/loopback/locale/en.json +++ b/loopback/locale/en.json @@ -204,5 +204,6 @@ "The notification subscription of this worker cant be modified": "The notification subscription of this worker cant be modified", "It was not able to remove the next expeditions:": "It was not able to remove the next expeditions: {{expeditions}}", "Incorrect pin": "Incorrect pin.", - "The notification subscription of this worker cant be modified": "The notification subscription of this worker cant be modified" + "This machine is already in use.": "This machine is already in use.", + "This pallet does not exist": "This pallet does not exist" } \ No newline at end of file diff --git a/loopback/locale/es.json b/loopback/locale/es.json index babb4bd2a..b273f7506 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -340,6 +340,6 @@ "No tickets to invoice": "No hay tickets para facturar", "No hay tickets para sacar": "No hay tickets para sacar", "There is no zone for these parameters 999999": "There is no zone for these parameters 999999", - "Esta máquina ya está en uso.": "Esta máquina ya está en uso.", - "This machine is already in use.": "This machine is already in use." + "This machine is already in use.": "Esta máquina ya está en uso.", + "This pallet does not exist": "Este palet no existe" } \ No newline at end of file diff --git a/modules/ticket/back/methods/expedition-pallet/getPallet.js b/modules/ticket/back/methods/expedition-pallet/getPallet.js index 22cbbc210..340dc02b0 100644 --- a/modules/ticket/back/methods/expedition-pallet/getPallet.js +++ b/modules/ticket/back/methods/expedition-pallet/getPallet.js @@ -1,7 +1,7 @@ const UserError = require('vn-loopback/util/user-error'); module.exports = Self => { - Self.remoteMethod('getPallet', { + Self.remoteMethodCtx('getPallet', { description: 'Get pallet', accessType: 'READ', accepts: [ @@ -20,7 +20,13 @@ module.exports = Self => { }, }); - Self.getPallet = async expeditionFk => { + Self.getPallet = async(ctx, expeditionFk, options) => { + const myOptions = {}; + const $t = ctx.req.__; + + if (typeof options == 'object') + Object.assign(myOptions, options); + try { const pallet = await Self.findOne({ fields: ['truckFk'], @@ -35,7 +41,7 @@ module.exports = Self => { } } ], - }); + }, myOptions); if (pallet) { const truck = pallet.expeditionTruck(); @@ -46,7 +52,7 @@ module.exports = Self => { }; } - throw new UserError('palletDoesNotExist'); + throw new UserError($t('This pallet does not exist')); } catch (e) { return {message: e.message}; } diff --git a/modules/ticket/back/methods/expedition-pallet/specs/getPallet.spec.js b/modules/ticket/back/methods/expedition-pallet/specs/getPallet.spec.js new file mode 100644 index 000000000..8ffc7d8c2 --- /dev/null +++ b/modules/ticket/back/methods/expedition-pallet/specs/getPallet.spec.js @@ -0,0 +1,31 @@ +const {models} = require('vn-loopback/server/server'); + +fdescribe('expeditonPallet getPallet()', () => { + beforeAll(async() => { + ctx = { + accessToken: {userId: 9}, + req: { + headers: {origin: 'http://localhost'}, + __: value => value + } + }; + }); + + it('should obtain the pallet data', async() => { + const pallet = await models.ExpeditionPallet.getPallet(ctx, 1); + + expect(pallet).toBeDefined(); + expect(pallet.truckFk).toEqual(1); + expect(pallet.description).toEqual('BEST TRUCK IN FLEET'); + }); + + it('should throw an error when the pallet does not exist', async() => { + try { + await models.ExpeditionPallet.getPallet(ctx, 1); + } catch (e) { + const error = e; + + expect(error.message).toEqual('This pallet does not exist'); + } + }); +}); From bf13e85ecc4435df9c2ba99f32cc4f59e961f420 Mon Sep 17 00:00:00 2001 From: jorgep Date: Wed, 17 Jan 2024 12:14:38 +0100 Subject: [PATCH 047/173] fix: refs #6276 getFromSectorCollection --- .../back/methods/expedition-pallet/specs/getPallet.spec.js | 2 +- modules/ticket/back/methods/sale/getFromSectorCollection.js | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/ticket/back/methods/expedition-pallet/specs/getPallet.spec.js b/modules/ticket/back/methods/expedition-pallet/specs/getPallet.spec.js index 8ffc7d8c2..8a451c917 100644 --- a/modules/ticket/back/methods/expedition-pallet/specs/getPallet.spec.js +++ b/modules/ticket/back/methods/expedition-pallet/specs/getPallet.spec.js @@ -1,6 +1,6 @@ const {models} = require('vn-loopback/server/server'); -fdescribe('expeditonPallet getPallet()', () => { +describe('expeditonPallet getPallet()', () => { beforeAll(async() => { ctx = { accessToken: {userId: 9}, diff --git a/modules/ticket/back/methods/sale/getFromSectorCollection.js b/modules/ticket/back/methods/sale/getFromSectorCollection.js index 9a1b52ed8..323474cb4 100644 --- a/modules/ticket/back/methods/sale/getFromSectorCollection.js +++ b/modules/ticket/back/methods/sale/getFromSectorCollection.js @@ -67,7 +67,8 @@ module.exports = Self => { longName: sale.longName, packingType: sale.itemPackingTypeFk, subName: sale.subName, - quantity: {saldo: sale.quantity}, + quantity: sale.quantity, + saldo: sale.quantity, trabajador: sale.workerCode, idMovimiento: sale.saleFk, salesPersonFk: sale.salesPersonFk, From 1fbb84ae9fc424ca03fc491f9db97600a1b8d147 Mon Sep 17 00:00:00 2001 From: jorgep Date: Wed, 17 Jan 2024 12:58:57 +0100 Subject: [PATCH 048/173] fix: refs #6276 itemShelving_return --- db/dump/fixtures.sql | 3 --- .../item/back/methods/item-shelving/return.js | 4 ++-- .../item-shelving/specs/return.spec.js | 19 +++++++++++++++++++ .../expedition-pallet/specs/getPallet.spec.js | 2 +- 4 files changed, 22 insertions(+), 6 deletions(-) create mode 100644 modules/item/back/methods/item-shelving/specs/return.spec.js diff --git a/db/dump/fixtures.sql b/db/dump/fixtures.sql index 2b04327cf..bab0149e1 100644 --- a/db/dump/fixtures.sql +++ b/db/dump/fixtures.sql @@ -3047,9 +3047,6 @@ INSERT INTO `vn`.`clientSms` (`id`, `clientFk`, `smsFk`, `ticketFk`) -- NEW WAREHOUSE -/* UPDATE vn.packaging - SET id='--' - WHERE id='pallet 100'; */ INSERT INTO vn.packaging VALUES('--', 2745600.00, 100.00, 120.00, 220.00, 0.00, 1, '2001-01-01 00:00:00.000', NULL, NULL, NULL, 0.00, 16, 0.00, 0, NULL, 0.00, NULL, NULL, 0, NULL, 0, 0); diff --git a/modules/item/back/methods/item-shelving/return.js b/modules/item/back/methods/item-shelving/return.js index 27bc39a50..61d695c48 100644 --- a/modules/item/back/methods/item-shelving/return.js +++ b/modules/item/back/methods/item-shelving/return.js @@ -50,7 +50,7 @@ module.exports = Self => { let itemShelvings = await models.ItemShelving.find(filterItemShelvings, myOptions); - const alternatives = await models.ItemShelving.rawSql('CALL vn.itemShelving_getAlternatives(?)', [shelvingFk]); + const [alternatives] = await models.ItemShelving.rawSql('CALL vn.itemShelving_getAlternatives(?)', [shelvingFk]); if (itemShelvings) { itemShelvings = itemShelvings.map(itemShelving => { @@ -58,7 +58,7 @@ module.exports = Self => { const shelving = itemShelving.shelving(); const parking = shelving ? shelving.parking() : null; - const carros = alternatives.filter(el => el.item == itemShelving.itemFk); + const carros = alternatives.filter(el => el.itemFk == itemShelving.itemFk); return { id: itemShelving.id, diff --git a/modules/item/back/methods/item-shelving/specs/return.spec.js b/modules/item/back/methods/item-shelving/specs/return.spec.js new file mode 100644 index 000000000..35676a6ac --- /dev/null +++ b/modules/item/back/methods/item-shelving/specs/return.spec.js @@ -0,0 +1,19 @@ +const {models} = require('vn-loopback/server/server'); + +describe('itemShelving return()', () => { + beforeAll(async() => { + ctx = { + accessToken: {userId: 9}, + req: { + headers: {origin: 'http://localhost'}, + } + }; + }); + + it('should return a list of items and alternative locations', async() => { + const itemShelvings = await models.itemShelving.return('HEJ'); + + expect(itemShelvings).toBeDefined(); + // WIP + }); +}); diff --git a/modules/ticket/back/methods/expedition-pallet/specs/getPallet.spec.js b/modules/ticket/back/methods/expedition-pallet/specs/getPallet.spec.js index 8a451c917..84bb9f93a 100644 --- a/modules/ticket/back/methods/expedition-pallet/specs/getPallet.spec.js +++ b/modules/ticket/back/methods/expedition-pallet/specs/getPallet.spec.js @@ -21,7 +21,7 @@ describe('expeditonPallet getPallet()', () => { it('should throw an error when the pallet does not exist', async() => { try { - await models.ExpeditionPallet.getPallet(ctx, 1); + await models.ExpeditionPallet.getPallet(ctx, 600); } catch (e) { const error = e; From 6be2f07c2278a7b49977b05217adf0f30d05b11d Mon Sep 17 00:00:00 2001 From: jorgep Date: Wed, 17 Jan 2024 13:57:57 +0100 Subject: [PATCH 049/173] fix: refs #6276 assignCollection --- back/methods/collection/assignCollection.js | 1 + back/methods/collection/spec/assignCollection.spec.js | 0 2 files changed, 1 insertion(+) create mode 100644 back/methods/collection/spec/assignCollection.spec.js diff --git a/back/methods/collection/assignCollection.js b/back/methods/collection/assignCollection.js index e63e6c1d0..3384b325a 100644 --- a/back/methods/collection/assignCollection.js +++ b/back/methods/collection/assignCollection.js @@ -9,6 +9,7 @@ module.exports = Self => { }, returns: { type: ['object'], + root: true }, }); diff --git a/back/methods/collection/spec/assignCollection.spec.js b/back/methods/collection/spec/assignCollection.spec.js new file mode 100644 index 000000000..e69de29bb From c0398d17bf5465689e404b4cd3a603bb034a8b10 Mon Sep 17 00:00:00 2001 From: jorgep Date: Wed, 17 Jan 2024 14:21:50 +0100 Subject: [PATCH 050/173] feat: refs #6276 test itemShelving_return --- .../item/back/methods/item-shelving/return.js | 31 ++++--------------- .../item-shelving/specs/return.spec.js | 21 ++++++++++--- 2 files changed, 23 insertions(+), 29 deletions(-) diff --git a/modules/item/back/methods/item-shelving/return.js b/modules/item/back/methods/item-shelving/return.js index 61d695c48..aa44ef5b5 100644 --- a/modules/item/back/methods/item-shelving/return.js +++ b/modules/item/back/methods/item-shelving/return.js @@ -25,7 +25,7 @@ module.exports = Self => { Object.assign(myOptions, options); const filterItemShelvings = { - fields: ['id', 'visible', 'itemFk', 'packing', 'grouping', 'isChecked', 'shelvingFk'], + fields: ['id', 'visible', 'itemFk', 'shelvingFk'], where: {shelvingFk}, include: [ { @@ -34,47 +34,28 @@ module.exports = Self => { fields: ['longName', 'name', 'size'] } }, - { - relation: 'shelving', - scope: { - include: { - fields: ['id', 'name', 'code'], - relation: 'parking', - } - - } - }, ] }; let itemShelvings = await models.ItemShelving.find(filterItemShelvings, myOptions); - - const [alternatives] = await models.ItemShelving.rawSql('CALL vn.itemShelving_getAlternatives(?)', [shelvingFk]); + const [alternatives] = await models.ItemShelving.rawSql( + 'CALL vn.itemShelving_getAlternatives(?)', [shelvingFk] + ); if (itemShelvings) { - itemShelvings = itemShelvings.map(itemShelving => { + return itemShelvings.map(itemShelving => { const item = itemShelving.item(); - const shelving = itemShelving.shelving(); - const parking = shelving ? shelving.parking() : null; - - const carros = alternatives.filter(el => el.itemFk == itemShelving.itemFk); + const carros = alternatives.filter(alternative => alternative.itemFk == itemShelving.itemFk); return { id: itemShelving.id, itemFk: itemShelving.itemFk, longName: item ? item.longName || `${item.name} ${item.size}` : '', quantity: itemShelving.visible, - stickers: Math.ceil(itemShelving.visible / itemShelving.packing), - packing: itemShelving.packing, - grouping: itemShelving.grouping, - code: parking ? parking.code : '', - priority: shelving ? shelving.priority : 0, - isChecked: itemShelving.isChecked, carros }; }); } - return itemShelvings; }; }; diff --git a/modules/item/back/methods/item-shelving/specs/return.spec.js b/modules/item/back/methods/item-shelving/specs/return.spec.js index 35676a6ac..996491992 100644 --- a/modules/item/back/methods/item-shelving/specs/return.spec.js +++ b/modules/item/back/methods/item-shelving/specs/return.spec.js @@ -1,6 +1,6 @@ const {models} = require('vn-loopback/server/server'); -describe('itemShelving return()', () => { +fdescribe('itemShelving return()', () => { beforeAll(async() => { ctx = { accessToken: {userId: 9}, @@ -11,9 +11,22 @@ describe('itemShelving return()', () => { }); it('should return a list of items and alternative locations', async() => { - const itemShelvings = await models.itemShelving.return('HEJ'); + const itemShelvings = await models.ItemShelving.return('PCC'); - expect(itemShelvings).toBeDefined(); - // WIP + expect(itemShelvings[0].itemFk).toEqual(999997); + expect(itemShelvings[0].quantity).toEqual(10); + expect(itemShelvings[0].carros.length).toEqual(1); + }); + + it('should return a list of items without alternatives', async() => { + const itemShelvings = await models.ItemShelving.return('HEJ'); + + expect(itemShelvings[0].carros.length).toEqual(0); + }); + + it('should return an empty list', async() => { + const itemShelvings = await models.ItemShelving.return('ZZP'); + + expect(itemShelvings.length).toEqual(0); }); }); From 8e5be5f5da73c2c447a13a9d959229455f477516 Mon Sep 17 00:00:00 2001 From: jorgep Date: Wed, 17 Jan 2024 15:26:04 +0100 Subject: [PATCH 051/173] feat: refs #6276 test itemBarcode_delete --- .../methods/item-barcode/specs/delete.spec.js | 22 +++++++++++++++++++ .../item-shelving/specs/return.spec.js | 11 ++++++---- .../expedition-pallet/specs/getPallet.spec.js | 6 +++-- 3 files changed, 33 insertions(+), 6 deletions(-) create mode 100644 modules/item/back/methods/item-barcode/specs/delete.spec.js diff --git a/modules/item/back/methods/item-barcode/specs/delete.spec.js b/modules/item/back/methods/item-barcode/specs/delete.spec.js new file mode 100644 index 000000000..56377eb78 --- /dev/null +++ b/modules/item/back/methods/item-barcode/specs/delete.spec.js @@ -0,0 +1,22 @@ +const {models} = require('vn-loopback/server/server'); + +fdescribe('itemBarcode delete()', () => { + it('should delete a record by itemFk and code', async() => { + const tx = await models.ItemBarcode.beginTransaction({}); + const options = {transaction: tx}; + const itemFk = 1; + const code = 1111111111; + + try { + const itemsBarcodeBefore = await models.ItemBarcode.find({}, options); + await models.ItemBarcode.delete(code, itemFk, options); + const itemsBarcodeAfter = await models.ItemBarcode.find({}, options); + + expect(itemsBarcodeBefore.length).toBeGreaterThan(itemsBarcodeAfter.length); + await tx.rollback(); + } catch (e) { + await tx.rollback(); + throw e; + } + }); +}); diff --git a/modules/item/back/methods/item-shelving/specs/return.spec.js b/modules/item/back/methods/item-shelving/specs/return.spec.js index 996491992..e5ed0aa85 100644 --- a/modules/item/back/methods/item-shelving/specs/return.spec.js +++ b/modules/item/back/methods/item-shelving/specs/return.spec.js @@ -1,6 +1,6 @@ const {models} = require('vn-loopback/server/server'); -fdescribe('itemShelving return()', () => { +describe('itemShelving return()', () => { beforeAll(async() => { ctx = { accessToken: {userId: 9}, @@ -11,7 +11,8 @@ fdescribe('itemShelving return()', () => { }); it('should return a list of items and alternative locations', async() => { - const itemShelvings = await models.ItemShelving.return('PCC'); + const shelvingFk = 'PCC'; + const itemShelvings = await models.ItemShelving.return(shelvingFk); expect(itemShelvings[0].itemFk).toEqual(999997); expect(itemShelvings[0].quantity).toEqual(10); @@ -19,13 +20,15 @@ fdescribe('itemShelving return()', () => { }); it('should return a list of items without alternatives', async() => { - const itemShelvings = await models.ItemShelving.return('HEJ'); + const shelvingFk = 'HEJ'; + const itemShelvings = await models.ItemShelving.return(shelvingFk); expect(itemShelvings[0].carros.length).toEqual(0); }); it('should return an empty list', async() => { - const itemShelvings = await models.ItemShelving.return('ZZP'); + const shelvingFk = 'ZZP'; + const itemShelvings = await models.ItemShelving.return(shelvingFk); expect(itemShelvings.length).toEqual(0); }); diff --git a/modules/ticket/back/methods/expedition-pallet/specs/getPallet.spec.js b/modules/ticket/back/methods/expedition-pallet/specs/getPallet.spec.js index 84bb9f93a..2fc79d459 100644 --- a/modules/ticket/back/methods/expedition-pallet/specs/getPallet.spec.js +++ b/modules/ticket/back/methods/expedition-pallet/specs/getPallet.spec.js @@ -12,7 +12,8 @@ describe('expeditonPallet getPallet()', () => { }); it('should obtain the pallet data', async() => { - const pallet = await models.ExpeditionPallet.getPallet(ctx, 1); + const palletId = 1; + const pallet = await models.ExpeditionPallet.getPallet(ctx, palletId); expect(pallet).toBeDefined(); expect(pallet.truckFk).toEqual(1); @@ -20,8 +21,9 @@ describe('expeditonPallet getPallet()', () => { }); it('should throw an error when the pallet does not exist', async() => { + const palletId = 600; try { - await models.ExpeditionPallet.getPallet(ctx, 600); + await models.ExpeditionPallet.getPallet(ctx, palletId); } catch (e) { const error = e; From 6f35c62cd55d5350f9dc8e8e8b52bda6b2d31a51 Mon Sep 17 00:00:00 2001 From: jorgep Date: Thu, 18 Jan 2024 11:51:21 +0100 Subject: [PATCH 052/173] feat: refs #6276 test collection_addItem --- back/methods/collection/addItem.js | 3 +- back/methods/collection/spec/addItem.spec.js | 56 +++++++++++++++++++ .../collection/spec/assignCollection.spec.js | 0 .../methods/item-barcode/specs/delete.spec.js | 2 +- 4 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 back/methods/collection/spec/addItem.spec.js delete mode 100644 back/methods/collection/spec/assignCollection.spec.js diff --git a/back/methods/collection/addItem.js b/back/methods/collection/addItem.js index d3afbd71b..26eb9cc27 100644 --- a/back/methods/collection/addItem.js +++ b/back/methods/collection/addItem.js @@ -34,6 +34,7 @@ module.exports = Self => { Self.addItem = async(ctx, code, quantity, ticketFk, warehouseFk, options) => { const models = Self.app.models; const myOptions = {}; + const $t = ctx.req.__; let tx; if (typeof options == 'object') @@ -47,7 +48,7 @@ module.exports = Self => { try { const [[item]] = await Self.rawSql('CALL vn.item_getInfo(?,?)', [code, warehouseFk]); - if (!item.available) throw new UserError('We do not have availability for the selected item'); + if (!item?.available) throw new UserError($t('We do not have availability for the selected item')); await models.Ticket.addSale(ctx, ticketFk, item.id, quantity, myOptions); diff --git a/back/methods/collection/spec/addItem.spec.js b/back/methods/collection/spec/addItem.spec.js new file mode 100644 index 000000000..58cc97610 --- /dev/null +++ b/back/methods/collection/spec/addItem.spec.js @@ -0,0 +1,56 @@ +const {models} = require('vn-loopback/server/server'); +const LoopBackContext = require('loopback-context'); + +fdescribe('collection addItem()', () => { + const quantity = 3; + const ticketFk = 24; + const warehouseFk = 1; + beforeAll(async() => { + activeCtx = { + req: { + accessToken: {userId: 9}, + headers: {origin: 'http://localhost'}, + __: value => value + } + }; + spyOn(LoopBackContext, 'getCurrentContext').and.returnValue({ + active: activeCtx + }); + }); + + it('should add a new sale', async() => { + const tx = await models.Sale.beginTransaction({}); + + try { + const options = {transaction: tx}; + const code = '1111111111'; + + const salesBefore = await models.Sale.find(null, options); + await models.Collection.addItem(activeCtx, code, quantity, ticketFk, warehouseFk, options); + const salesAfter = await models.Sale.find(null, options); + + expect(salesAfter.length).toEqual(salesBefore.length + 1); + await tx.rollback(); + } catch (e) { + await tx.rollback(); + throw e; + } + }); + + it('should throw an error when the item is not available', async() => { + const code = '00000000000'; + const tx = await models.Sale.beginTransaction({}); + + try { + const options = {transaction: tx}; + + await models.Collection.addItem(activeCtx, code, quantity, ticketFk, warehouseFk, options); + await tx.rollback(); + } catch (e) { + await tx.rollback(); + const error = e; + + expect(error.message).toEqual('We do not have availability for the selected item'); + } + }); +}); diff --git a/back/methods/collection/spec/assignCollection.spec.js b/back/methods/collection/spec/assignCollection.spec.js deleted file mode 100644 index e69de29bb..000000000 diff --git a/modules/item/back/methods/item-barcode/specs/delete.spec.js b/modules/item/back/methods/item-barcode/specs/delete.spec.js index 56377eb78..094a351a3 100644 --- a/modules/item/back/methods/item-barcode/specs/delete.spec.js +++ b/modules/item/back/methods/item-barcode/specs/delete.spec.js @@ -1,6 +1,6 @@ const {models} = require('vn-loopback/server/server'); -fdescribe('itemBarcode delete()', () => { +describe('itemBarcode delete()', () => { it('should delete a record by itemFk and code', async() => { const tx = await models.ItemBarcode.beginTransaction({}); const options = {transaction: tx}; From c8bfb35cf663a49ac0f1423bd4caebf3e7f6d87d Mon Sep 17 00:00:00 2001 From: jorgep Date: Thu, 18 Jan 2024 13:28:22 +0100 Subject: [PATCH 053/173] feat: refs #6276 test itemShelvingMake_multi --- back/methods/collection/addItem.js | 2 +- back/methods/collection/spec/addItem.spec.js | 2 +- loopback/locale/en.json | 3 +- loopback/locale/es.json | 3 +- .../back/methods/item-shelving/makeMulti.js | 4 +- .../item-shelving/specs/makeMulti.spec.js | 54 +++++++++++++++++++ 6 files changed, 62 insertions(+), 6 deletions(-) create mode 100644 modules/item/back/methods/item-shelving/specs/makeMulti.spec.js diff --git a/back/methods/collection/addItem.js b/back/methods/collection/addItem.js index 26eb9cc27..3b2a6921b 100644 --- a/back/methods/collection/addItem.js +++ b/back/methods/collection/addItem.js @@ -6,7 +6,7 @@ module.exports = Self => { accepts: [ { arg: 'code', - type: 'number', + type: 'string', required: true }, { diff --git a/back/methods/collection/spec/addItem.spec.js b/back/methods/collection/spec/addItem.spec.js index 58cc97610..199aae588 100644 --- a/back/methods/collection/spec/addItem.spec.js +++ b/back/methods/collection/spec/addItem.spec.js @@ -1,7 +1,7 @@ const {models} = require('vn-loopback/server/server'); const LoopBackContext = require('loopback-context'); -fdescribe('collection addItem()', () => { +describe('collection addItem()', () => { const quantity = 3; const ticketFk = 24; const warehouseFk = 1; diff --git a/loopback/locale/en.json b/loopback/locale/en.json index 391034126..e3d08326e 100644 --- a/loopback/locale/en.json +++ b/loopback/locale/en.json @@ -205,5 +205,6 @@ "It was not able to remove the next expeditions:": "It was not able to remove the next expeditions: {{expeditions}}", "Incorrect pin": "Incorrect pin.", "This machine is already in use.": "This machine is already in use.", - "This pallet does not exist": "This pallet does not exist" + "This pallet does not exist": "This pallet does not exist", + "We do not have availability for the selected item": "We do not have availability for the selected item" } \ No newline at end of file diff --git a/loopback/locale/es.json b/loopback/locale/es.json index b273f7506..45de30904 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -341,5 +341,6 @@ "No hay tickets para sacar": "No hay tickets para sacar", "There is no zone for these parameters 999999": "There is no zone for these parameters 999999", "This machine is already in use.": "Esta máquina ya está en uso.", - "This pallet does not exist": "Este palet no existe" + "This pallet does not exist": "Este palet no existe", + "We do not have availability for the selected item": "No tenemos disponible el item seleccionado", } \ No newline at end of file diff --git a/modules/item/back/methods/item-shelving/makeMulti.js b/modules/item/back/methods/item-shelving/makeMulti.js index e4393e4de..7d1ee11a0 100644 --- a/modules/item/back/methods/item-shelving/makeMulti.js +++ b/modules/item/back/methods/item-shelving/makeMulti.js @@ -47,10 +47,10 @@ module.exports = Self => { }, 0); discardItems.push(item); - let [result] = await Self.rawSql('SELECT vn.itemPacking(?, ?)', [item, warehouseFk]); + const [result] = await Self.rawSql('SELECT vn.itemPacking(?, ?) itemPacking', [item, warehouseFk]); let packing; - if (result) packing = Object.values(result)[0]; + if (result) packing = result.itemPacking; if (!packing) packing = 1; quantity = quantity * packing; diff --git a/modules/item/back/methods/item-shelving/specs/makeMulti.spec.js b/modules/item/back/methods/item-shelving/specs/makeMulti.spec.js new file mode 100644 index 000000000..f64a815f2 --- /dev/null +++ b/modules/item/back/methods/item-shelving/specs/makeMulti.spec.js @@ -0,0 +1,54 @@ +const {models} = require('vn-loopback/server/server'); + +describe('item makeMulti()', () => { + const warehouseFk = 1; + + beforeAll(async() => { + ctx = { + accessToken: {userId: 9}, + req: { + headers: {origin: 'http://localhost'}, + } + }; + }); + + it('should add two new records', async() => { + const shelvingFk = 'ZPP'; + const items = [1, 1, 1, 2]; + const tx = await models.ItemShelving.beginTransaction({}); + const options = {transaction: tx}; + + try { + await models.ItemShelving.makeMulti(shelvingFk, items, warehouseFk, options); + const itemShelvings = await models.ItemShelving.find({where: {shelvingFk}}, options); + + expect(itemShelvings.length).toEqual(2); + await tx.rollback(); + } catch (e) { + await tx.rollback(); + throw e; + } + }); + + it('should update the visible items', async() => { + const shelvingFk = 'GVC'; + const items = [2, 2]; + const tx = await models.ItemShelving.beginTransaction({}); + const options = {transaction: tx}; + try { + const {visible: itemsBefore} = await models.ItemShelving.findOne({ + where: {shelvingFk, itemFk: items[0]} + }, options); + await models.ItemShelving.makeMulti(shelvingFk, items, warehouseFk, options); + const {visible: itemsAfter} = await models.ItemShelving.findOne({ + where: {shelvingFk, itemFk: items[0]} + }, options); + + expect(itemsAfter).toEqual(itemsBefore + 2); + await tx.rollback(); + } catch (e) { + await tx.rollback(); + throw e; + } + }); +}); From 19edd7868e630ee34f4655f63533136844c8b453 Mon Sep 17 00:00:00 2001 From: jorgep Date: Thu, 18 Jan 2024 14:18:21 +0100 Subject: [PATCH 054/173] feat: refs #6276 test getVersion --- .../specs/getVersion.spec.js | 29 +++++++++++++++++++ .../{235001 => 240601}/00-newWareHouse.sql | 0 db/dump/fixtures.sql | 8 +++-- 3 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 back/methods/mobile-app-version-control/specs/getVersion.spec.js rename db/changes/{235001 => 240601}/00-newWareHouse.sql (100%) diff --git a/back/methods/mobile-app-version-control/specs/getVersion.spec.js b/back/methods/mobile-app-version-control/specs/getVersion.spec.js new file mode 100644 index 000000000..e0c517387 --- /dev/null +++ b/back/methods/mobile-app-version-control/specs/getVersion.spec.js @@ -0,0 +1,29 @@ +const {models} = require('vn-loopback/server/server'); + +describe('mobileAppVersionControl getVersion()', () => { + const appName = 'delivery'; + beforeAll(async() => { + ctx = { + req: { + accessToken: {}, + headers: {origin: 'http://localhost'}, + } + }; + }); + + it('should get the version app', async() => { + ctx.req.accessToken.userId = 9; + const {version, versionBeta} = await models.MobileAppVersionControl.getVersion(ctx, appName); + + expect(version).toEqual('9.2'); + expect(versionBeta).toBeUndefined(); + }); + + it('should get the beta version app', async() => { + const {version, versionBeta} = await models.MobileAppVersionControl.getVersion(ctx, appName); + ctx.req.accessToken.userId = 66; + + expect(versionBeta).toBeDefined(); + expect(version).toBeUndefined(); + }); +}); diff --git a/db/changes/235001/00-newWareHouse.sql b/db/changes/240601/00-newWareHouse.sql similarity index 100% rename from db/changes/235001/00-newWareHouse.sql rename to db/changes/240601/00-newWareHouse.sql diff --git a/db/dump/fixtures.sql b/db/dump/fixtures.sql index bab0149e1..c0bd72912 100644 --- a/db/dump/fixtures.sql +++ b/db/dump/fixtures.sql @@ -2716,10 +2716,10 @@ INSERT INTO `vn`.`chat` (`senderFk`, `recipient`, `dated`, `checkUserStatus`, `m (1101, '@PetterParker', util.VN_CURDATE(), 0, 'Second test message', 0, 'pending'); -INSERT INTO `vn`.`mobileAppVersionControl` (`appName`, `version`, `isVersionCritical`) +INSERT INTO `vn`.`mobileAppVersionControl` (`appName`, `version`, `isVersionCritical`,`versionBeta`) VALUES - ('delivery', '9.2', 0), - ('warehouse', '8.1', 0); + ('delivery', '9.2', 0,'9.7'), + ('warehouse', '8.1', 0,'8.3'); INSERT INTO `vn`.`machine` (`plate`, `maker`, `model`, `warehouseFk`, `departmentFk`, `type`, `use`, `productionYear`, `workerFk`, `companyFk`) VALUES @@ -3699,3 +3699,5 @@ UPDATE vn.sale INSERT INTO machineWorkerConfig(maxHours) VALUES(12); + +INSERT INTO workerAppTester(workerFk) VALUES(66) From b33594e0daccf5af6c5c59ce4ece657db45bc2aa Mon Sep 17 00:00:00 2001 From: jorgep Date: Thu, 18 Jan 2024 14:35:51 +0100 Subject: [PATCH 055/173] fix: refs #6276 item_card & wip test --- modules/item/back/methods/item/card.js | 7 +++---- modules/item/back/methods/item/specs/card.spec.js | 12 ++++++++++++ 2 files changed, 15 insertions(+), 4 deletions(-) create mode 100644 modules/item/back/methods/item/specs/card.spec.js diff --git a/modules/item/back/methods/item/card.js b/modules/item/back/methods/item/card.js index 41d134f3b..dec6047a7 100644 --- a/modules/item/back/methods/item/card.js +++ b/modules/item/back/methods/item/card.js @@ -30,14 +30,13 @@ module.exports = Self => { const [result] = await Self.rawSql('CALL vn.item_getInfo(?, ?)', [itemFk, warehouseFk]); const barcodeItems = await Self.rawSql('SELECT vn.barcodeToItem(?) as realIdItem', [itemFk]); - const realIdItems = barcodeItems.map(barcodeItem => barcodeItem.realIdItem); + const [realIdItem] = barcodeItems.map(barcodeItem => barcodeItem.realIdItem); const barcodes = await models.ItemBarcode.find({ fields: ['code'], where: { - realIdItem: { - inq: realIdItems - } + itemFk: realIdItem + } }); diff --git a/modules/item/back/methods/item/specs/card.spec.js b/modules/item/back/methods/item/specs/card.spec.js new file mode 100644 index 000000000..433384261 --- /dev/null +++ b/modules/item/back/methods/item/specs/card.spec.js @@ -0,0 +1,12 @@ +const {models} = require('vn-loopback/server/server'); + +fdescribe('item card()', () => { + const itemFk = 1; + const warehouseFk = 1; + it('WIP: should get something', async() => { + const card = await models.Item.card(itemFk, warehouseFk); + + expect(card).toBeDefined(); + expect(card.barcodes); + }); +}); From 34420375cdc3ea3bc6e1adc8fd821bf5b6dc8155 Mon Sep 17 00:00:00 2001 From: jorgep Date: Thu, 18 Jan 2024 15:03:17 +0100 Subject: [PATCH 056/173] feat: refs #6276 test item_updateFromSale --- .../specs/updateFromSale.spec.js | 22 +++++++++++++++++++ .../item/back/methods/item/specs/card.spec.js | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 modules/item/back/methods/item-shelving/specs/updateFromSale.spec.js diff --git a/modules/item/back/methods/item-shelving/specs/updateFromSale.spec.js b/modules/item/back/methods/item-shelving/specs/updateFromSale.spec.js new file mode 100644 index 000000000..dfa294000 --- /dev/null +++ b/modules/item/back/methods/item-shelving/specs/updateFromSale.spec.js @@ -0,0 +1,22 @@ +const {models} = require('vn-loopback/server/server'); + +describe('itemShelving updateFromSale()', () => { + it('should update the quantity', async() => { + const tx = await models.ItemBarcode.beginTransaction({}); + const options = {transaction: tx}; + const saleFk = 2; + const filter = {where: {itemFk: 4, shelvingFk: 'HEJ'} + }; + try { + const {visible: visibleBefore} = await models.ItemShelving.findOne(filter, options); + await models.ItemShelving.updateFromSale(saleFk, options); + const {visible: visibleAfter} = await models.ItemShelving.findOne(filter, options); + + expect(visibleAfter).toEqual(visibleBefore + 5); + await tx.rollback(); + } catch (e) { + await tx.rollback(); + throw e; + } + }); +}); diff --git a/modules/item/back/methods/item/specs/card.spec.js b/modules/item/back/methods/item/specs/card.spec.js index 433384261..725a4269d 100644 --- a/modules/item/back/methods/item/specs/card.spec.js +++ b/modules/item/back/methods/item/specs/card.spec.js @@ -1,6 +1,6 @@ const {models} = require('vn-loopback/server/server'); -fdescribe('item card()', () => { +describe('item card()', () => { const itemFk = 1; const warehouseFk = 1; it('WIP: should get something', async() => { From 5c0425b942eb9d27bd4e545dface76f32c24418e Mon Sep 17 00:00:00 2001 From: jorgep Date: Fri, 19 Jan 2024 09:52:49 +0100 Subject: [PATCH 057/173] feat: refs #6276 test machineWorker_update --- .../machine-worker/specs/updateInTime.spec.js | 116 ++++++++++++++++++ back/methods/machine-worker/updateInTime.js | 10 +- db/dump/fixtures.sql | 10 +- loopback/locale/en.json | 1 + loopback/locale/es.json | 2 + .../item-shelving/specs/return.spec.js | 1 - modules/item/back/methods/item/card.js | 2 +- .../expedition-pallet/specs/getPallet.spec.js | 1 - 8 files changed, 136 insertions(+), 7 deletions(-) create mode 100644 back/methods/machine-worker/specs/updateInTime.spec.js diff --git a/back/methods/machine-worker/specs/updateInTime.spec.js b/back/methods/machine-worker/specs/updateInTime.spec.js new file mode 100644 index 000000000..aee1c9187 --- /dev/null +++ b/back/methods/machine-worker/specs/updateInTime.spec.js @@ -0,0 +1,116 @@ +const {models} = require('vn-loopback/server/server'); + +fdescribe('machineWorker updateInTime()', () => { + const itBoss = 104; + const davidCharles = 1106; + + beforeAll(async() => { + ctx = { + req: { + accessToken: {}, + headers: {origin: 'http://localhost'}, + __: value => value + } + }; + }); + + it('should throw an error if the plate does not exist', async() => { + const tx = await models.MachineWorker.beginTransaction({}); + const options = {transaction: tx}; + const plate = 'RE-123'; + ctx.req.accessToken.userId = 1106; + try { + await models.MachineWorker.updateInTime(ctx, plate, options); + await tx.rollback(); + } catch (e) { + const error = e; + + expect(error.message).toContain('the plate does not exist'); + await tx.rollback(); + } + }); + + it('should grab a machine where is not in use', async() => { + const tx = await models.MachineWorker.beginTransaction({}); + const options = {transaction: tx}; + const plate = 'RE-003'; + ctx.req.accessToken.userId = 1107; + try { + const totalBefore = await models.MachineWorker.find(null, options); + await models.MachineWorker.updateInTime(ctx, plate, options); + const totalAfter = await models.MachineWorker.find(null, options); + + expect(totalAfter.length).toEqual(totalBefore.length + 1); + await tx.rollback(); + } catch (e) { + await tx.rollback(); + } + }); + + describe('less than 12h', () => { + const plate = 'RE-001'; + it('should trow an error if it is not himself', async() => { + const tx = await models.MachineWorker.beginTransaction({}); + const options = {transaction: tx}; + ctx.req.accessToken.userId = davidCharles; + + try { + await models.MachineWorker.updateInTime(ctx, plate, options); + await tx.rollback(); + } catch (e) { + const error = e; + + expect(error.message).toContain('This machine is already in use'); + await tx.rollback(); + } + }); + + it('should set the out time if it is himself', async() => { + const tx = await models.MachineWorker.beginTransaction({}); + const options = {transaction: tx}; + ctx.req.accessToken.userId = itBoss; + + try { + const isNotParked = await models.MachineWorker.findOne({ + where: {workerFk: itBoss} + }, options); + await models.MachineWorker.updateInTime(ctx, plate, options); + const isParked = await models.MachineWorker.findOne({ + where: {workerFk: itBoss} + }, options); + + expect(isNotParked.outTime).toBeNull(); + expect(isParked.outTime).toBeDefined(); + await tx.rollback(); + } catch (e) { + await tx.rollback(); + } + }); + }); + + describe('equal or more than 12h', () => { + const plate = 'RE-002'; + it('should set the out time and grab the machine', async() => { + const tx = await models.MachineWorker.beginTransaction({}); + const options = {transaction: tx}; + ctx.req.accessToken.userId = davidCharles; + const filter = { + where: {workerFk: davidCharles, machineFk: 2} + }; + try { + const isNotParked = await models.MachineWorker.findOne(filter, options); + const totalBefore = await models.MachineWorker.find(null, options); + await models.MachineWorker.updateInTime(ctx, plate, options); + const isParked = await models.MachineWorker.findOne(filter, options); + const totalAfter = await models.MachineWorker.find(null, options); + + expect(isNotParked.outTime).toBeNull(); + expect(isParked.outTime).toBeDefined(); + expect(totalAfter.length).toEqual(totalBefore.length + 1); + await tx.rollback(); + } catch (e) { + await tx.rollback(); + } + }); + }); +}); diff --git a/back/methods/machine-worker/updateInTime.js b/back/methods/machine-worker/updateInTime.js index 705bcdd92..eebb09990 100644 --- a/back/methods/machine-worker/updateInTime.js +++ b/back/methods/machine-worker/updateInTime.js @@ -18,6 +18,7 @@ module.exports = Self => { Self.updateInTime = async(ctx, plate, options) => { const models = Self.app.models; const userId = ctx.req.accessToken.userId; + const $t = ctx.req.__; let tx; const myOptions = {}; @@ -35,11 +36,13 @@ module.exports = Self => { fields: ['id', 'plate'], where: {plate} }, myOptions); - if (!machine) throw new Error(`plate ${plate} does not exist.`); + + if (!machine) + throw new Error($t('the plate does not exist', {plate})); const machineWorker = await Self.findOne({ where: { - machineFk: machine.id, + or: [{machineFk: machine.id}, {workerFk: userId}], outTime: null, } }, myOptions); @@ -49,7 +52,8 @@ module.exports = Self => { const hoursDifference = (Date.vnNow() - machineWorker.inTime.getTime()) / (60 * 60 * 1000); const isHimSelf = userId == machineWorker.workerFk; - if (maxHours > hoursDifference && !isHimSelf) throw new UserError('This machine is already in use.'); + if (maxHours > hoursDifference && !isHimSelf) + throw new UserError($t('This machine is already in use.')); await machineWorker.updateAttributes({ outTime: Date.vnNew() diff --git a/db/dump/fixtures.sql b/db/dump/fixtures.sql index c0bd72912..9fc4d4fb1 100644 --- a/db/dump/fixtures.sql +++ b/db/dump/fixtures.sql @@ -3700,4 +3700,12 @@ UPDATE vn.sale INSERT INTO machineWorkerConfig(maxHours) VALUES(12); -INSERT INTO workerAppTester(workerFk) VALUES(66) +INSERT INTO workerAppTester(workerFk) VALUES(66); + +INSERT INTO `vn`.`machine` (`plate`, `maker`, `model`, `warehouseFk`, `departmentFk`, `type`, `use`, `productionYear`, `workerFk`, `companyFk`) + VALUES + ('RE-003', 'IRON', 'JPH-24', 60, 23, 'ELECTRIC TOW', 'Drag cars', 2020, 103, 442); + + +INSERT INTO machineWorker(workerFk,machineFk,inTimed) + VALUES (104,1,'2001-01-01 10:00:00.00.000'); \ No newline at end of file diff --git a/loopback/locale/en.json b/loopback/locale/en.json index e3d08326e..a6c3b4ee4 100644 --- a/loopback/locale/en.json +++ b/loopback/locale/en.json @@ -205,6 +205,7 @@ "It was not able to remove the next expeditions:": "It was not able to remove the next expeditions: {{expeditions}}", "Incorrect pin": "Incorrect pin.", "This machine is already in use.": "This machine is already in use.", + "the plate does not exist": "The plate {{plate}} does not exist", "This pallet does not exist": "This pallet does not exist", "We do not have availability for the selected item": "We do not have availability for the selected item" } \ No newline at end of file diff --git a/loopback/locale/es.json b/loopback/locale/es.json index 45de30904..e13a8dab9 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -341,6 +341,8 @@ "No hay tickets para sacar": "No hay tickets para sacar", "There is no zone for these parameters 999999": "There is no zone for these parameters 999999", "This machine is already in use.": "Esta máquina ya está en uso.", + "the plate does not exist": "La máquina {{plate}} no existe", "This pallet does not exist": "Este palet no existe", "We do not have availability for the selected item": "No tenemos disponible el item seleccionado", + "Esta máquina ya está en uso.": "Esta máquina ya está en uso." } \ No newline at end of file diff --git a/modules/item/back/methods/item-shelving/specs/return.spec.js b/modules/item/back/methods/item-shelving/specs/return.spec.js index e5ed0aa85..c8acd6ab9 100644 --- a/modules/item/back/methods/item-shelving/specs/return.spec.js +++ b/modules/item/back/methods/item-shelving/specs/return.spec.js @@ -3,7 +3,6 @@ const {models} = require('vn-loopback/server/server'); describe('itemShelving return()', () => { beforeAll(async() => { ctx = { - accessToken: {userId: 9}, req: { headers: {origin: 'http://localhost'}, } diff --git a/modules/item/back/methods/item/card.js b/modules/item/back/methods/item/card.js index dec6047a7..45c2ac36c 100644 --- a/modules/item/back/methods/item/card.js +++ b/modules/item/back/methods/item/card.js @@ -1,6 +1,6 @@ module.exports = Self => { Self.remoteMethod('card', { - description: 'Idk', + description: 'Get the data from an item', accessType: 'READ', http: { path: `/card`, diff --git a/modules/ticket/back/methods/expedition-pallet/specs/getPallet.spec.js b/modules/ticket/back/methods/expedition-pallet/specs/getPallet.spec.js index 2fc79d459..497fe04bb 100644 --- a/modules/ticket/back/methods/expedition-pallet/specs/getPallet.spec.js +++ b/modules/ticket/back/methods/expedition-pallet/specs/getPallet.spec.js @@ -3,7 +3,6 @@ const {models} = require('vn-loopback/server/server'); describe('expeditonPallet getPallet()', () => { beforeAll(async() => { ctx = { - accessToken: {userId: 9}, req: { headers: {origin: 'http://localhost'}, __: value => value From b7ce6cac9c20ee77823fec60689546b58ef7b47c Mon Sep 17 00:00:00 2001 From: jorgep Date: Fri, 19 Jan 2024 12:38:58 +0100 Subject: [PATCH 058/173] fix: refs #6276 machineWorker_update & tests --- .../machine-worker/specs/updateInTime.spec.js | 18 +++++++++++++++++- back/methods/machine-worker/updateInTime.js | 8 ++++++-- .../specs/getVersion.spec.js | 2 +- loopback/locale/en.json | 4 +++- loopback/locale/es.json | 3 ++- 5 files changed, 29 insertions(+), 6 deletions(-) diff --git a/back/methods/machine-worker/specs/updateInTime.spec.js b/back/methods/machine-worker/specs/updateInTime.spec.js index aee1c9187..f166214b0 100644 --- a/back/methods/machine-worker/specs/updateInTime.spec.js +++ b/back/methods/machine-worker/specs/updateInTime.spec.js @@ -1,6 +1,6 @@ const {models} = require('vn-loopback/server/server'); -fdescribe('machineWorker updateInTime()', () => { +describe('machineWorker updateInTime()', () => { const itBoss = 104; const davidCharles = 1106; @@ -65,6 +65,22 @@ fdescribe('machineWorker updateInTime()', () => { } }); + it('should throw an error if it is himself with a different machine', async() => { + const tx = await models.MachineWorker.beginTransaction({}); + const options = {transaction: tx}; + ctx.req.accessToken.userId = itBoss; + const plate = 'RE-003'; + try { + await models.MachineWorker.updateInTime(ctx, plate, options); + await tx.rollback(); + } catch (e) { + const error = e; + + expect(error.message).toEqual('You are already using a machine'); + await tx.rollback(); + } + }); + it('should set the out time if it is himself', async() => { const tx = await models.MachineWorker.beginTransaction({}); const options = {transaction: tx}; diff --git a/back/methods/machine-worker/updateInTime.js b/back/methods/machine-worker/updateInTime.js index eebb09990..706f1a80e 100644 --- a/back/methods/machine-worker/updateInTime.js +++ b/back/methods/machine-worker/updateInTime.js @@ -51,15 +51,19 @@ module.exports = Self => { const {maxHours} = await models.MachineWorkerConfig.findOne({fields: ['maxHours']}, myOptions); const hoursDifference = (Date.vnNow() - machineWorker.inTime.getTime()) / (60 * 60 * 1000); const isHimSelf = userId == machineWorker.workerFk; + const isSameMachine = machine.id == machineWorker.machineFk; - if (maxHours > hoursDifference && !isHimSelf) + if (hoursDifference < maxHours && !isHimSelf) throw new UserError($t('This machine is already in use.')); + if (hoursDifference < maxHours && isHimSelf && !isSameMachine) + throw new UserError($t('You are already using a machine')); + await machineWorker.updateAttributes({ outTime: Date.vnNew() }, myOptions); - if (maxHours <= hoursDifference) + if (hoursDifference >= maxHours) await models.MachineWorker.create({machineFk: machine.id, workerFk: userId}, myOptions); } else await models.MachineWorker.create({machineFk: machine.id, workerFk: userId}, myOptions); diff --git a/back/methods/mobile-app-version-control/specs/getVersion.spec.js b/back/methods/mobile-app-version-control/specs/getVersion.spec.js index e0c517387..59d794ccf 100644 --- a/back/methods/mobile-app-version-control/specs/getVersion.spec.js +++ b/back/methods/mobile-app-version-control/specs/getVersion.spec.js @@ -20,8 +20,8 @@ describe('mobileAppVersionControl getVersion()', () => { }); it('should get the beta version app', async() => { - const {version, versionBeta} = await models.MobileAppVersionControl.getVersion(ctx, appName); ctx.req.accessToken.userId = 66; + const {version, versionBeta} = await models.MobileAppVersionControl.getVersion(ctx, appName); expect(versionBeta).toBeDefined(); expect(version).toBeUndefined(); diff --git a/loopback/locale/en.json b/loopback/locale/en.json index a6c3b4ee4..b10ea2e71 100644 --- a/loopback/locale/en.json +++ b/loopback/locale/en.json @@ -207,5 +207,7 @@ "This machine is already in use.": "This machine is already in use.", "the plate does not exist": "The plate {{plate}} does not exist", "This pallet does not exist": "This pallet does not exist", - "We do not have availability for the selected item": "We do not have availability for the selected item" + "We do not have availability for the selected item": "We do not have availability for the selected item", + "You are already using a machine": "You are already using a machine" + } \ No newline at end of file diff --git a/loopback/locale/es.json b/loopback/locale/es.json index e13a8dab9..c704cb8fd 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -344,5 +344,6 @@ "the plate does not exist": "La máquina {{plate}} no existe", "This pallet does not exist": "Este palet no existe", "We do not have availability for the selected item": "No tenemos disponible el item seleccionado", - "Esta máquina ya está en uso.": "Esta máquina ya está en uso." + "You are already using a machine": "Ya estás usando una máquina.", + "Ya estás usando una máquina.": "Ya estás usando una máquina." } \ No newline at end of file From 817a6b1289cb27aeda9567dc56c831e7dc180739 Mon Sep 17 00:00:00 2001 From: jorgep Date: Fri, 19 Jan 2024 14:35:10 +0100 Subject: [PATCH 059/173] feat: refs #6276 test operator_add --- loopback/locale/en.json | 4 +-- loopback/locale/es.json | 3 +- modules/worker/back/methods/operator/add.js | 22 +++++++++++++-- .../back/methods/operator/spec/add.spec.js | 28 +++++++++++++++++++ 4 files changed, 51 insertions(+), 6 deletions(-) create mode 100644 modules/worker/back/methods/operator/spec/add.spec.js diff --git a/loopback/locale/en.json b/loopback/locale/en.json index b10ea2e71..c22aeb311 100644 --- a/loopback/locale/en.json +++ b/loopback/locale/en.json @@ -208,6 +208,6 @@ "the plate does not exist": "The plate {{plate}} does not exist", "This pallet does not exist": "This pallet does not exist", "We do not have availability for the selected item": "We do not have availability for the selected item", - "You are already using a machine": "You are already using a machine" - + "You are already using a machine": "You are already using a machine", + "This worker does not exist": "This worker does not exist" } \ No newline at end of file diff --git a/loopback/locale/es.json b/loopback/locale/es.json index c704cb8fd..e5293d856 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -345,5 +345,6 @@ "This pallet does not exist": "Este palet no existe", "We do not have availability for the selected item": "No tenemos disponible el item seleccionado", "You are already using a machine": "Ya estás usando una máquina.", - "Ya estás usando una máquina.": "Ya estás usando una máquina." + "This worker does not exist": "Este trabajador no existe", + "Este trabajador no existe": "Este trabajador no existe" } \ No newline at end of file diff --git a/modules/worker/back/methods/operator/add.js b/modules/worker/back/methods/operator/add.js index eaf74e7b4..d330bc25b 100644 --- a/modules/worker/back/methods/operator/add.js +++ b/modules/worker/back/methods/operator/add.js @@ -1,3 +1,4 @@ +const UserError = require('vn-loopback/util/user-error'); module.exports = Self => { Self.remoteMethodCtx('add', { description: 'Add a new operator', @@ -8,13 +9,28 @@ module.exports = Self => { } }); - Self.add = async ctx => { + Self.add = async(ctx, options) => { const userId = ctx.req.accessToken.userId; - const user = await Self.findById(userId); - if (!user) { + const myOptions = {}; + const $t = ctx.req.__; + let tx; + + if (typeof options == 'object') + Object.assign(myOptions, options); + + if (!myOptions.transaction) { + tx = await Self.beginTransaction({}); + myOptions.transaction = tx; + } + + try { await Self.create({ workerFk: userId }); + if (tx) await tx.commit(); + } catch (e) { + if (tx) await tx.rollback(); + throw new UserError($t('This worker does not exist')); } }; }; diff --git a/modules/worker/back/methods/operator/spec/add.spec.js b/modules/worker/back/methods/operator/spec/add.spec.js new file mode 100644 index 000000000..c2b244ada --- /dev/null +++ b/modules/worker/back/methods/operator/spec/add.spec.js @@ -0,0 +1,28 @@ +const {models} = require('vn-loopback/server/server'); + +describe('operator add()', () => { + beforeAll(async() => { + ctx = { + req: { + accessToken: {userId: 100000}, + headers: {origin: 'http://localhost'}, + __: value => value + } + }; + }); + + it('should throw an error if the worker does not exist', async() => { + const tx = await models.Operator.beginTransaction({}); + const options = {transaction: tx}; + + try { + await models.Operator.add(ctx, options); + await tx.rollback(); + } catch (e) { + const error = e; + + expect(error.message).toEqual('This worker does not exist'); + await tx.rollback(); + } + }); +}); From 6e59a87f9c10ef74424aba63dcda25bd1adbb88b Mon Sep 17 00:00:00 2001 From: jorgep Date: Fri, 19 Jan 2024 14:44:07 +0100 Subject: [PATCH 060/173] feat: refs #6276 test operator_add --- .../back/methods/operator/spec/add.spec.js | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/modules/worker/back/methods/operator/spec/add.spec.js b/modules/worker/back/methods/operator/spec/add.spec.js index c2b244ada..4d26e8ca9 100644 --- a/modules/worker/back/methods/operator/spec/add.spec.js +++ b/modules/worker/back/methods/operator/spec/add.spec.js @@ -1,10 +1,13 @@ const {models} = require('vn-loopback/server/server'); describe('operator add()', () => { + const itBoss = 104; + const noWorker = 100000; + beforeAll(async() => { ctx = { req: { - accessToken: {userId: 100000}, + accessToken: {}, headers: {origin: 'http://localhost'}, __: value => value } @@ -14,6 +17,7 @@ describe('operator add()', () => { it('should throw an error if the worker does not exist', async() => { const tx = await models.Operator.beginTransaction({}); const options = {transaction: tx}; + ctx.req.accessToken.userId = noWorker; try { await models.Operator.add(ctx, options); @@ -25,4 +29,25 @@ describe('operator add()', () => { await tx.rollback(); } }); + + it('should add a new operator successfully', async() => { + const tx = await models.Operator.beginTransaction({}); + const options = {transaction: tx}; + ctx.req.accessToken.userId = itBoss; + + try { + const operatorBefore = await models.Operator.find(null, options); + await models.Operator.add(ctx, options); + const operatorAfter = await models.Operator.find(null, options); + + const isOperator = await models.Operator.findOne(null, options); + + expect(operatorBefore.length).toEqual(operatorAfter.length - 1); + expect(isOperator).toBeDefined(); + await tx.rollback(); + } catch (e) { + await tx.rollback(); + throw e; + } + }); }); From 428da6fe00c84168394f7fb71d2c4e7ee6051b03 Mon Sep 17 00:00:00 2001 From: jorgep Date: Fri, 19 Jan 2024 14:50:33 +0100 Subject: [PATCH 061/173] feat: refs #6276 drop worker_getPrinter --- .../back/methods/operator/getPrinter.js | 38 ------------------- 1 file changed, 38 deletions(-) delete mode 100644 modules/worker/back/methods/operator/getPrinter.js diff --git a/modules/worker/back/methods/operator/getPrinter.js b/modules/worker/back/methods/operator/getPrinter.js deleted file mode 100644 index 88e7d8090..000000000 --- a/modules/worker/back/methods/operator/getPrinter.js +++ /dev/null @@ -1,38 +0,0 @@ -module.exports = Self => { - Self.remoteMethodCtx('getPrinter', { - description: 'Gets user\'s printer', - accessType: 'READ', - http: { - path: `/getPrinter`, - verb: 'GET' - }, - returns: { - type: ['object'], - root: true - }, - }); - - Self.getPrinter = async ctx => { - const userId = ctx.req.accessToken.userId; - - const operator = await Self.findOne({ - include: [ - { - relation: 'printer', - scope: { - fields: ['id', 'name'], - } - } - ], - where: { - workerFk: userId - } - }); - - if (operator) { - const printer = operator.printer(); - return Array.isArray(printer) ? printer : [printer]; - } - return []; - }; -}; From d78e90687e51a0ad990b543f9b9161e45f9ae691 Mon Sep 17 00:00:00 2001 From: jorgep Date: Fri, 19 Jan 2024 14:51:03 +0100 Subject: [PATCH 062/173] fix: refs #6276 drop worker_getPrinter --- modules/worker/back/models/operator.js | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/worker/back/models/operator.js b/modules/worker/back/models/operator.js index 5e8870130..b4569d7f5 100644 --- a/modules/worker/back/models/operator.js +++ b/modules/worker/back/models/operator.js @@ -1,6 +1,5 @@ module.exports = Self => { require('../methods/operator/add')(Self); - require('../methods/operator/getPrinter')(Self); require('../methods/operator/getAvailablePrinters')(Self); Self.observe('after save', async function(ctx) { From f8faa958e66f29cf83f4de2ee14a0a7f164fd801 Mon Sep 17 00:00:00 2001 From: jorgep Date: Fri, 19 Jan 2024 14:53:41 +0100 Subject: [PATCH 063/173] feat: refs #6276 drop worker_getPrinter --- .../methods/operator/getAvailablePrinters.js | 39 ------------------- modules/worker/back/models/operator.js | 1 - 2 files changed, 40 deletions(-) delete mode 100644 modules/worker/back/methods/operator/getAvailablePrinters.js diff --git a/modules/worker/back/methods/operator/getAvailablePrinters.js b/modules/worker/back/methods/operator/getAvailablePrinters.js deleted file mode 100644 index 2e787da2b..000000000 --- a/modules/worker/back/methods/operator/getAvailablePrinters.js +++ /dev/null @@ -1,39 +0,0 @@ -module.exports = Self => { - Self.remoteMethodCtx('getAvailablePrinters', { - description: 'Retrieve available printers for an user', - accessType: 'READ', - http: { - path: `/getAvailabePrinters`, - verb: 'GET' - }, - returns: { - type: ['object'], - }, - }); - - Self.getAvailablePrinters = async ctx => { - const userId = ctx.req.accessToken.userId; - - const operators = await Self.find({ - fields: [], - where: { - workerFk: userId, - }, - - include: { - relation: 'printer', - scope: { - fields: ['id', 'name'] - }, - where: { - isLabeler: {neq: 0} - } - } - }); - if (operators.length) { - return operators.map(operator => { - return operator.printer(); - }); - } - }; -}; diff --git a/modules/worker/back/models/operator.js b/modules/worker/back/models/operator.js index b4569d7f5..442ac343f 100644 --- a/modules/worker/back/models/operator.js +++ b/modules/worker/back/models/operator.js @@ -1,6 +1,5 @@ module.exports = Self => { require('../methods/operator/add')(Self); - require('../methods/operator/getAvailablePrinters')(Self); Self.observe('after save', async function(ctx) { const instance = ctx.data || ctx.instance; From 89d18e29f0f338b776e6a437bbfb31fc76cd2172 Mon Sep 17 00:00:00 2001 From: jorgep Date: Mon, 22 Jan 2024 07:49:21 +0100 Subject: [PATCH 064/173] feat: refs #6276 test saleTrackingReplace (updateTracking) --- db/dump/fixtures.sql | 12 ++- .../specs/updateTracking.spec.js | 78 +++++++++++++++++++ .../methods/sale-tracking/updateTracking.js | 29 ++++--- modules/ticket/back/models/sale-buy.json | 8 +- 4 files changed, 109 insertions(+), 18 deletions(-) create mode 100644 modules/ticket/back/methods/sale-tracking/specs/updateTracking.spec.js diff --git a/db/dump/fixtures.sql b/db/dump/fixtures.sql index 9fc4d4fb1..04846435f 100644 --- a/db/dump/fixtures.sql +++ b/db/dump/fixtures.sql @@ -3697,15 +3697,19 @@ UPDATE vn.collection UPDATE vn.sale SET isPicked =FALSE; -INSERT INTO machineWorkerConfig(maxHours) +INSERT INTO vn.machineWorkerConfig(maxHours) VALUES(12); -INSERT INTO workerAppTester(workerFk) VALUES(66); +INSERT INTO vn.workerAppTester(workerFk) VALUES(66); INSERT INTO `vn`.`machine` (`plate`, `maker`, `model`, `warehouseFk`, `departmentFk`, `type`, `use`, `productionYear`, `workerFk`, `companyFk`) VALUES ('RE-003', 'IRON', 'JPH-24', 60, 23, 'ELECTRIC TOW', 'Drag cars', 2020, 103, 442); -INSERT INTO machineWorker(workerFk,machineFk,inTimed) - VALUES (104,1,'2001-01-01 10:00:00.00.000'); \ No newline at end of file +INSERT INTO vn.machineWorker(workerFk,machineFk,inTimed) + VALUES (104,1,'2001-01-01 10:00:00.00.000'); + +UPDATE vn.buy + SET itemOriginalFk = 1 + WHERE id = 1; \ No newline at end of file diff --git a/modules/ticket/back/methods/sale-tracking/specs/updateTracking.spec.js b/modules/ticket/back/methods/sale-tracking/specs/updateTracking.spec.js new file mode 100644 index 000000000..2756bc09e --- /dev/null +++ b/modules/ticket/back/methods/sale-tracking/specs/updateTracking.spec.js @@ -0,0 +1,78 @@ +const {models} = require('vn-loopback/server/server'); + +fdescribe('saleTracking updateTracking()', () => { + const saleFk = 1; + const originalQuantity = 10; + const code = 'PREPARED'; + const isChecked = true; + const buyFk = 1; + const isScanned = false; + + beforeAll(async() => { + ctx = { + req: { + accessToken: {userId: 104}, + headers: {origin: 'http://localhost'}, + } + }; + }); + + it('should add a new saleTracking and saleBuy', async() => { + const tx = await models.SaleTracking.beginTransaction({}); + const options = {transaction: tx}; + + try { + const saleTrackingBefore = await models.SaleTracking.find(null, options); + const saleBuyBefore = await models.SaleBuy.find(null, options); + await models.SaleTracking.updateTracking( + ctx, + saleFk, + originalQuantity, + code, + isChecked, + buyFk, + isScanned, + options + ); + + const saleTrackingAfter = await models.SaleTracking.find(null, options); + const saleBuyAfter = await models.SaleBuy.find(null, options); + + expect(saleTrackingAfter.length).toEqual(saleTrackingBefore.length + 1); + expect(saleBuyAfter.length).toEqual(saleBuyBefore.length + 1); + + await tx.rollback(); + } catch (e) { + await tx.rollback(); + throw e; + } + }); + + it('should only update a saleTracking', async() => { + const tx = await models.SaleTracking.beginTransaction({}); + const options = {transaction: tx}; + const saleFk = 2; + + try { + const saleTrackingBefore = await models.SaleTracking.find(null, options); + await models.SaleTracking.updateTracking( + ctx, + saleFk, + originalQuantity, + code, + isChecked, + buyFk, + isScanned, + options + ); + const saleTrackingAfter = await models.SaleTracking.find(null, options); + + expect(saleTrackingAfter.length).toEqual(saleTrackingBefore.length + 1); + + await tx.rollback(); + } catch (e) { + await tx.rollback(); + throw e; + } + }); +}); diff --git a/modules/ticket/back/methods/sale-tracking/updateTracking.js b/modules/ticket/back/methods/sale-tracking/updateTracking.js index 453b0b0c6..7cb2b4a58 100644 --- a/modules/ticket/back/methods/sale-tracking/updateTracking.js +++ b/modules/ticket/back/methods/sale-tracking/updateTracking.js @@ -39,7 +39,7 @@ module.exports = Self => { } }); - Self.updateTracking = async(ctx, saleFk, originalQuantity, code, isChecked, buyFk, isScanned, options) => { + Self.updateTracking = async(ctx, saleFk, originalQuantity, code, isChecked, buyFk, isScanned = null, options) => { const userId = ctx.req.accessToken.userId; const models = Self.app.models; const myOptions = {}; @@ -58,24 +58,31 @@ module.exports = Self => { where: {code}, }, myOptions); - const attributes = { + const uniqueAttributes = { saleFk, + workerFk: userId, + stateFk: state?.id, + }; + const attributes = { isChecked, originalQuantity, - workerFk: userId, - stateFk: state.id, - isScanned: isScanned === undefined ? null : isScanned, + isScanned }; const saleTracking = await models.SaleTracking.findOne({ - where: attributes, + where: uniqueAttributes, }, myOptions); - if (!saleTracking) - await models.SaleTracking.create(attributes, myOptions); - - else - await saleTracking.updateAttributes(attributes, myOptions); + if (!saleTracking) { + await models.SaleTracking.create({ + ...uniqueAttributes, + ...attributes + }, myOptions); + } else { + await saleTracking.updateAttributes({ + ...attributes + }, myOptions); + } let isBuy; if (buyFk) { diff --git a/modules/ticket/back/models/sale-buy.json b/modules/ticket/back/models/sale-buy.json index 5279e6787..60ff2bef4 100644 --- a/modules/ticket/back/models/sale-buy.json +++ b/modules/ticket/back/models/sale-buy.json @@ -17,9 +17,6 @@ }, "created": { "type": "date" - }, - "isChecked": { - "type": "number" } }, "relations": { @@ -27,6 +24,11 @@ "type": "belongsTo", "model": "Sale", "foreignKey": "saleFk" + }, + "worker": { + "type": "belongsTo", + "model": "Worker", + "foreignKey": "workerFk" } } } From f04724a61f6a9c924de9ec4998486651435b8d50 Mon Sep 17 00:00:00 2001 From: jorgep Date: Mon, 22 Jan 2024 07:58:18 +0100 Subject: [PATCH 065/173] feat: refs #6276 new test added --- loopback/locale/en.json | 4 ++- loopback/locale/es.json | 3 +- .../specs/updateTracking.spec.js | 28 ++++++++++++++++++- .../methods/sale-tracking/updateTracking.js | 3 ++ 4 files changed, 35 insertions(+), 3 deletions(-) diff --git a/loopback/locale/en.json b/loopback/locale/en.json index c22aeb311..0f1be5776 100644 --- a/loopback/locale/en.json +++ b/loopback/locale/en.json @@ -209,5 +209,7 @@ "This pallet does not exist": "This pallet does not exist", "We do not have availability for the selected item": "We do not have availability for the selected item", "You are already using a machine": "You are already using a machine", - "This worker does not exist": "This worker does not exist" + "This worker does not exist": "This worker does not exist", + "this state does not exist": "This state does not exist" + } \ No newline at end of file diff --git a/loopback/locale/es.json b/loopback/locale/es.json index e5293d856..158d351df 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -346,5 +346,6 @@ "We do not have availability for the selected item": "No tenemos disponible el item seleccionado", "You are already using a machine": "Ya estás usando una máquina.", "This worker does not exist": "Este trabajador no existe", - "Este trabajador no existe": "Este trabajador no existe" + "this state does not exist": "Este estado no existe", + "Este estado no existe": "Este estado no existe" } \ No newline at end of file diff --git a/modules/ticket/back/methods/sale-tracking/specs/updateTracking.spec.js b/modules/ticket/back/methods/sale-tracking/specs/updateTracking.spec.js index 2756bc09e..a58a69fe7 100644 --- a/modules/ticket/back/methods/sale-tracking/specs/updateTracking.spec.js +++ b/modules/ticket/back/methods/sale-tracking/specs/updateTracking.spec.js @@ -1,6 +1,6 @@ const {models} = require('vn-loopback/server/server'); -fdescribe('saleTracking updateTracking()', () => { +describe('saleTracking updateTracking()', () => { const saleFk = 1; const originalQuantity = 10; const code = 'PREPARED'; @@ -13,10 +13,36 @@ fdescribe('saleTracking updateTracking()', () => { req: { accessToken: {userId: 104}, headers: {origin: 'http://localhost'}, + __: value => value } }; }); + it('should add a new saleTracking and saleBuy', async() => { + const tx = await models.SaleTracking.beginTransaction({}); + const options = {transaction: tx}; + const code = 'FAKESTATE'; + try { + await models.SaleTracking.updateTracking( + ctx, + saleFk, + originalQuantity, + code, + isChecked, + buyFk, + isScanned, + options + ); + + await tx.rollback(); + } catch (e) { + const error = e; + + expect(error.message).toEqual('this state does not exist'); + await tx.rollback(); + } + }); + it('should add a new saleTracking and saleBuy', async() => { const tx = await models.SaleTracking.beginTransaction({}); const options = {transaction: tx}; diff --git a/modules/ticket/back/methods/sale-tracking/updateTracking.js b/modules/ticket/back/methods/sale-tracking/updateTracking.js index 7cb2b4a58..81eef28b4 100644 --- a/modules/ticket/back/methods/sale-tracking/updateTracking.js +++ b/modules/ticket/back/methods/sale-tracking/updateTracking.js @@ -1,3 +1,4 @@ +const UserError = require('vn-loopback/util/user-error'); module.exports = Self => { Self.remoteMethodCtx('updateTracking', { description: 'Modify a saleTracking record and, if applicable, add a corresponding record in saleBuy.', @@ -42,6 +43,7 @@ module.exports = Self => { Self.updateTracking = async(ctx, saleFk, originalQuantity, code, isChecked, buyFk, isScanned = null, options) => { const userId = ctx.req.accessToken.userId; const models = Self.app.models; + const $t = ctx.req.__; const myOptions = {}; let tx; @@ -58,6 +60,7 @@ module.exports = Self => { where: {code}, }, myOptions); + if (!state) throw new UserError($t('this state does not exist')); const uniqueAttributes = { saleFk, workerFk: userId, From ed713e762b1f346d4c05088c51277c6e9493ab0e Mon Sep 17 00:00:00 2001 From: jorgep Date: Mon, 22 Jan 2024 12:36:52 +0100 Subject: [PATCH 066/173] feat: refs #6276 test saleTracking_mark --- .vscode/settings.json | 3 +- loopback/locale/en.json | 4 +- loopback/locale/es.json | 5 +- loopback/server/connectors/vn-mysql.js | 8 +- .../ticket/back/methods/sale-tracking/mark.js | 24 +++--- .../methods/sale-tracking/specs/mark.spec.js | 76 +++++++++++++++++++ .../specs/updateTracking.spec.js | 2 +- 7 files changed, 100 insertions(+), 22 deletions(-) create mode 100644 modules/ticket/back/methods/sale-tracking/specs/mark.spec.js diff --git a/.vscode/settings.json b/.vscode/settings.json index 03479d27a..76b039f61 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -18,5 +18,6 @@ "salix", "fdescribe", "Loggable" - ] + ], + "CodeGPT.apiKey": "CodeGPT Plus Beta" } diff --git a/loopback/locale/en.json b/loopback/locale/en.json index 0f1be5776..6b48fcb98 100644 --- a/loopback/locale/en.json +++ b/loopback/locale/en.json @@ -210,6 +210,8 @@ "We do not have availability for the selected item": "We do not have availability for the selected item", "You are already using a machine": "You are already using a machine", "This worker does not exist": "This worker does not exist", - "this state does not exist": "This state does not exist" + "this state does not exist": "This state does not exist", + "The line could not be marked": "The line could not be marked" + } \ No newline at end of file diff --git a/loopback/locale/es.json b/loopback/locale/es.json index 158d351df..9d6404dac 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -331,7 +331,6 @@ "quantityLessThanMin": "La cantidad no puede ser menor que la cantidad mínima", "Cannot past travels with entries": "No se pueden pasar envíos con entradas", "It was not able to remove the next expeditions:": "No se pudo eliminar las siguientes expediciones: {{expeditions}}", - "The line could not be marked": "The line could not be marked", "This claim has been updated": "La reclamación con Id: {{claimId}}, ha sido actualizada", "This user does not have an assigned tablet": "Este usuario no tiene tablet asignada", "Incorrect pin": "Pin incorrecto.", @@ -347,5 +346,7 @@ "You are already using a machine": "Ya estás usando una máquina.", "This worker does not exist": "Este trabajador no existe", "this state does not exist": "Este estado no existe", - "Este estado no existe": "Este estado no existe" + "Este estado no existe": "Este estado no existe", + "The line could not be marked": "No se ha podido marcar la línea", + "No se ha podido marcar la línea": "No se ha podido marcar la línea" } \ No newline at end of file diff --git a/loopback/server/connectors/vn-mysql.js b/loopback/server/connectors/vn-mysql.js index 1f7169501..7c086ff9b 100644 --- a/loopback/server/connectors/vn-mysql.js +++ b/loopback/server/connectors/vn-mysql.js @@ -268,14 +268,8 @@ class VnMySQL extends MySQL { arguments, model, ctx, opts, cb); } - isLoggable(model) { - const Model = this.getModelDefinition(model).model; - const {settings} = Model.definition; - return settings?.mixins?.Loggable; - } - invokeMethod(method, args, model, ctx, opts, cb) { - if (!this.isLoggable(model)) + if (!opts?.httpCtx) return super[method].apply(this, args); this.invokeMethodP(method, [...args], model, ctx, opts) diff --git a/modules/ticket/back/methods/sale-tracking/mark.js b/modules/ticket/back/methods/sale-tracking/mark.js index 327421673..0ca674e39 100644 --- a/modules/ticket/back/methods/sale-tracking/mark.js +++ b/modules/ticket/back/methods/sale-tracking/mark.js @@ -54,6 +54,7 @@ module.exports = Self => { Self.mark = async(ctx, saleFk, originalQuantity, code, isChecked, buyFk, isScanned, quantity, itemShelvingFk, options) => { const userId = ctx.req.accessToken.userId; const models = Self.app.models; + const $t = ctx.req.__; const myOptions = {}; let tx; @@ -73,15 +74,9 @@ module.exports = Self => { userFk: userId }, myOptions); - const itemShelving = await models.ItemShelving.findOne({ - where: { - id: itemShelvingFk - } - }, myOptions); + const itemShelving = await models.ItemShelving.findById(itemShelvingFk, myOptions); - await itemShelving.updateAttributes({ - visible: itemShelving.visible - quantity} - , myOptions); + await itemShelving.updateAttributes({visible: itemShelving.visible - quantity}, myOptions); await Self.updateAll( {saleFk}, @@ -89,12 +84,21 @@ module.exports = Self => { myOptions ); - await Self.updateTracking(ctx, saleFk, originalQuantity, code, isChecked, buyFk, isScanned, myOptions); + await Self.updateTracking(ctx, saleFk, originalQuantity, code, isChecked, null, isScanned, myOptions); if (tx) await tx.commit(); } catch (e) { if (tx) await tx.rollback(); - throw new UserError('The line could not be marked'); + throw new UserError($t('The line could not be marked')); } + + const buy = await models.Buy.findOne({ + where: { + id: buyFk, + itemOriginalFk: {neq: null} + } + }); + + if (buy) await models.SaleBuy.create({saleFk, buyFk}); }; }; diff --git a/modules/ticket/back/methods/sale-tracking/specs/mark.spec.js b/modules/ticket/back/methods/sale-tracking/specs/mark.spec.js new file mode 100644 index 000000000..dfc790b91 --- /dev/null +++ b/modules/ticket/back/methods/sale-tracking/specs/mark.spec.js @@ -0,0 +1,76 @@ +const {models} = require('vn-loopback/server/server'); +fdescribe('saleTracking mark()', () => { + const saleFk = 1; + const originalQuantity = 10; + const code = 'PREPARED'; + const isChecked = true; + const buyFk = 1; + const isScanned = false; + const quantity = 1; + const itemShelvingFk = 1; + + beforeAll(async() => { + ctx = { + req: { + accessToken: {userId: 104}, + headers: {origin: 'http://localhost'}, + __: value => value + } + }; + }); + + it('should throw an error if the line was not able to be marked', async() => { + const tx = await models.SaleTracking.beginTransaction({}); + const options = {transaction: tx}; + const code = 'FAKESTATE'; + try { + await models.SaleTracking.mark( + ctx, + saleFk, + originalQuantity, + code, + isChecked, + buyFk, + isScanned, + quantity, + itemShelvingFk, + options + ); + + await tx.rollback(); + } catch (e) { + const error = e; + + expect(error.message).toEqual('The line could not be marked'); + await tx.rollback(); + } + }); + + it('should add an itemShelvingSale and Modify a saleTracking', async() => { + const tx = await models.SaleTracking.beginTransaction({}); + const options = {transaction: tx}; + try { + const itemShelvingSaleBefore = await models.ItemShelvingSale.find({}, options); + await models.SaleTracking.mark( + ctx, + saleFk, + originalQuantity, + code, + isChecked, + buyFk, + isScanned, + quantity, + itemShelvingFk, + options + ); + const itemShelvingSaleAfter = await models.ItemShelvingSale.find({}, options); + const saleTracking = await models.SaleTracking.findOne({where: {saleFk, isChecked: false}}, options); + + expect(itemShelvingSaleAfter.length).toEqual(itemShelvingSaleBefore.length + 1); + expect(saleTracking.isChecked).toBeFalse(); + await tx.rollback(); + } catch (e) { + await tx.rollback(); + } + }); +}); diff --git a/modules/ticket/back/methods/sale-tracking/specs/updateTracking.spec.js b/modules/ticket/back/methods/sale-tracking/specs/updateTracking.spec.js index a58a69fe7..44bd1a60a 100644 --- a/modules/ticket/back/methods/sale-tracking/specs/updateTracking.spec.js +++ b/modules/ticket/back/methods/sale-tracking/specs/updateTracking.spec.js @@ -18,7 +18,7 @@ describe('saleTracking updateTracking()', () => { }; }); - it('should add a new saleTracking and saleBuy', async() => { + it('should throw an error if the state does not exist', async() => { const tx = await models.SaleTracking.beginTransaction({}); const options = {transaction: tx}; const code = 'FAKESTATE'; From e3899b2cf70fd28ecd3c40e17ec58576b81dc177 Mon Sep 17 00:00:00 2001 From: jorgep Date: Mon, 22 Jan 2024 13:32:50 +0100 Subject: [PATCH 067/173] refactor: refs #6276 saleTracking_mark --- modules/ticket/back/methods/sale-tracking/mark.js | 14 +++++--------- .../back/methods/sale-tracking/specs/mark.spec.js | 2 +- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/modules/ticket/back/methods/sale-tracking/mark.js b/modules/ticket/back/methods/sale-tracking/mark.js index 0ca674e39..c8c73b935 100644 --- a/modules/ticket/back/methods/sale-tracking/mark.js +++ b/modules/ticket/back/methods/sale-tracking/mark.js @@ -86,19 +86,15 @@ module.exports = Self => { await Self.updateTracking(ctx, saleFk, originalQuantity, code, isChecked, null, isScanned, myOptions); + try { + const buy = await models.Buy.findById(buyFk, myOptions); + if (buy.itemOriginalFk) await models.SaleBuy.create({saleFk, buyFk}, myOptions); + } catch (e) {} + if (tx) await tx.commit(); } catch (e) { if (tx) await tx.rollback(); throw new UserError($t('The line could not be marked')); } - - const buy = await models.Buy.findOne({ - where: { - id: buyFk, - itemOriginalFk: {neq: null} - } - }); - - if (buy) await models.SaleBuy.create({saleFk, buyFk}); }; }; diff --git a/modules/ticket/back/methods/sale-tracking/specs/mark.spec.js b/modules/ticket/back/methods/sale-tracking/specs/mark.spec.js index dfc790b91..49e4ec6e5 100644 --- a/modules/ticket/back/methods/sale-tracking/specs/mark.spec.js +++ b/modules/ticket/back/methods/sale-tracking/specs/mark.spec.js @@ -1,5 +1,5 @@ const {models} = require('vn-loopback/server/server'); -fdescribe('saleTracking mark()', () => { +describe('saleTracking mark()', () => { const saleFk = 1; const originalQuantity = 10; const code = 'PREPARED'; From efb8bc46c668b1646f4de1830bf4673e03f6c327 Mon Sep 17 00:00:00 2001 From: jorgep Date: Mon, 22 Jan 2024 15:13:49 +0100 Subject: [PATCH 068/173] refactor: refs #6276 saleTracking_mark --- loopback/locale/en.json | 5 +-- loopback/locale/es.json | 3 +- .../ticket/back/methods/sale-tracking/mark.js | 9 ++++- .../methods/sale-tracking/specs/mark.spec.js | 40 ++++++++++++++++++- .../methods/sale/getFromSectorCollection.js | 9 +++-- 5 files changed, 57 insertions(+), 9 deletions(-) diff --git a/loopback/locale/en.json b/loopback/locale/en.json index 6b48fcb98..24c28a927 100644 --- a/loopback/locale/en.json +++ b/loopback/locale/en.json @@ -211,7 +211,6 @@ "You are already using a machine": "You are already using a machine", "This worker does not exist": "This worker does not exist", "this state does not exist": "This state does not exist", - "The line could not be marked": "The line could not be marked" - - + "The line could not be marked": "The line could not be marked", + "The sale can not be tracked": "The sale can not be tracked" } \ No newline at end of file diff --git a/loopback/locale/es.json b/loopback/locale/es.json index 9d6404dac..25fbbda70 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -348,5 +348,6 @@ "this state does not exist": "Este estado no existe", "Este estado no existe": "Este estado no existe", "The line could not be marked": "No se ha podido marcar la línea", - "No se ha podido marcar la línea": "No se ha podido marcar la línea" + "No se ha podido marcar la línea": "No se ha podido marcar la línea", + "The sale can not be tracked": "La línea no puede ser rastreada" } \ No newline at end of file diff --git a/modules/ticket/back/methods/sale-tracking/mark.js b/modules/ticket/back/methods/sale-tracking/mark.js index c8c73b935..dc288ba93 100644 --- a/modules/ticket/back/methods/sale-tracking/mark.js +++ b/modules/ticket/back/methods/sale-tracking/mark.js @@ -89,10 +89,17 @@ module.exports = Self => { try { const buy = await models.Buy.findById(buyFk, myOptions); if (buy.itemOriginalFk) await models.SaleBuy.create({saleFk, buyFk}, myOptions); - } catch (e) {} + } catch (e) { + throw new UserError($t('The sale can not be tracked')); + } if (tx) await tx.commit(); } catch (e) { + if (e.message == $t('The sale can not be tracked')) { + if (tx) tx.commit(); + throw e; + } + if (tx) await tx.rollback(); throw new UserError($t('The line could not be marked')); } diff --git a/modules/ticket/back/methods/sale-tracking/specs/mark.spec.js b/modules/ticket/back/methods/sale-tracking/specs/mark.spec.js index 49e4ec6e5..353a39c49 100644 --- a/modules/ticket/back/methods/sale-tracking/specs/mark.spec.js +++ b/modules/ticket/back/methods/sale-tracking/specs/mark.spec.js @@ -1,5 +1,5 @@ const {models} = require('vn-loopback/server/server'); -describe('saleTracking mark()', () => { +fdescribe('saleTracking mark()', () => { const saleFk = 1; const originalQuantity = 10; const code = 'PREPARED'; @@ -46,6 +46,44 @@ describe('saleTracking mark()', () => { } }); + it('should throw an error if there are duplicate salebuys', async() => { + const tx = await models.SaleTracking.beginTransaction({}); + const options = {transaction: tx}; + try { + await models.SaleTracking.mark( + ctx, + saleFk, + originalQuantity, + code, + isChecked, + buyFk, + isScanned, + quantity, + itemShelvingFk, + options + ); + + await models.SaleTracking.mark( + ctx, + saleFk, + originalQuantity, + code, + isChecked, + buyFk, + isScanned, + quantity, + itemShelvingFk, + options + ); + await tx.rollback(); + } catch (e) { + const error = e; + + expect(error.message).toEqual('The sale can not be tracked'); + await tx.rollback(); + } + }); + it('should add an itemShelvingSale and Modify a saleTracking', async() => { const tx = await models.SaleTracking.beginTransaction({}); const options = {transaction: tx}; diff --git a/modules/ticket/back/methods/sale/getFromSectorCollection.js b/modules/ticket/back/methods/sale/getFromSectorCollection.js index 323474cb4..a56966887 100644 --- a/modules/ticket/back/methods/sale/getFromSectorCollection.js +++ b/modules/ticket/back/methods/sale/getFromSectorCollection.js @@ -30,7 +30,9 @@ module.exports = Self => { if (typeof options == 'object') Object.assign(myOptions, options); - const sales = await Self.rawSql( + const sales = await Self.rawSql('CALL sectorCollection_getSale(?)', [sectorCollectionFk], myOptions); + + /* const sales = await Self.rawSql( `SELECT s.ticketFk, s.itemFk, i.longName, @@ -52,13 +54,14 @@ module.exports = Self => { JOIN client c ON c.id=t.clientFk LEFT JOIN itemShelvingSaleSum iss ON iss.saleFk = s.id WHERE scsg.sectorCollectionFk = ? - AND st.workerFk = ?;`, [sectorCollectionFk, userId]); + AND st.workerFk = ?;`, [sectorCollectionFk, userId]); */ const itemShelvings = []; for (let sale of sales) { const [carros] = await Self.rawSql( 'CALL vn.itemPlacementSupplyStockGetTargetList(?, ?)', - [sale.itemFk, sectorFk] + [sale.itemFk, sectorFk], + myOptions ); itemShelvings.push({ From dcf6232c1403c2621e8a854bd15a5ab4c0e12392 Mon Sep 17 00:00:00 2001 From: jorgep Date: Tue, 23 Jan 2024 08:39:30 +0100 Subject: [PATCH 069/173] feat: refs #6276 test sale_getFromSectorCollection --- db/dump/fixtures.sql | 9 +++--- loopback/locale/es.json | 3 +- .../methods/sale-tracking/specs/mark.spec.js | 2 +- .../methods/sale/getFromSectorCollection.js | 28 ++----------------- .../specs/getFromSectorCollection.spec.js | 23 +++++++++++++++ 5 files changed, 32 insertions(+), 33 deletions(-) create mode 100644 modules/ticket/back/methods/sale/specs/getFromSectorCollection.spec.js diff --git a/db/dump/fixtures.sql b/db/dump/fixtures.sql index 04846435f..e536e694d 100644 --- a/db/dump/fixtures.sql +++ b/db/dump/fixtures.sql @@ -3707,9 +3707,8 @@ INSERT INTO `vn`.`machine` (`plate`, `maker`, `model`, `warehouseFk`, `departmen ('RE-003', 'IRON', 'JPH-24', 60, 23, 'ELECTRIC TOW', 'Drag cars', 2020, 103, 442); -INSERT INTO vn.machineWorker(workerFk,machineFk,inTimed) - VALUES (104,1,'2001-01-01 10:00:00.00.000'); +INSERT INTO vn.machineWorker(workerFk,machineFk,inTimed) VALUES (104,1,'2001-01-01 10:00:00.00.000'); -UPDATE vn.buy - SET itemOriginalFk = 1 - WHERE id = 1; \ No newline at end of file +UPDATE vn.buy SET itemOriginalFk = 1 WHERE id = 1; + +UPDATE vn.saleTracking SET stateFk = 26 WHERE id = 5; \ No newline at end of file diff --git a/loopback/locale/es.json b/loopback/locale/es.json index 25fbbda70..91374a34e 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -349,5 +349,6 @@ "Este estado no existe": "Este estado no existe", "The line could not be marked": "No se ha podido marcar la línea", "No se ha podido marcar la línea": "No se ha podido marcar la línea", - "The sale can not be tracked": "La línea no puede ser rastreada" + "The sale can not be tracked": "La línea no puede ser rastreada", + "La línea no puede ser rastreada": "La línea no puede ser rastreada" } \ No newline at end of file diff --git a/modules/ticket/back/methods/sale-tracking/specs/mark.spec.js b/modules/ticket/back/methods/sale-tracking/specs/mark.spec.js index 353a39c49..d981aeea5 100644 --- a/modules/ticket/back/methods/sale-tracking/specs/mark.spec.js +++ b/modules/ticket/back/methods/sale-tracking/specs/mark.spec.js @@ -1,5 +1,5 @@ const {models} = require('vn-loopback/server/server'); -fdescribe('saleTracking mark()', () => { +describe('saleTracking mark()', () => { const saleFk = 1; const originalQuantity = 10; const code = 'PREPARED'; diff --git a/modules/ticket/back/methods/sale/getFromSectorCollection.js b/modules/ticket/back/methods/sale/getFromSectorCollection.js index a56966887..c8925c3a9 100644 --- a/modules/ticket/back/methods/sale/getFromSectorCollection.js +++ b/modules/ticket/back/methods/sale/getFromSectorCollection.js @@ -25,36 +25,12 @@ module.exports = Self => { }); Self.getFromSectorCollection = async(ctx, sectorCollectionFk, sectorFk, options) => { - const myOptions = {}; const userId = ctx.req.accessToken.userId; + const myOptions = {userId}; if (typeof options == 'object') Object.assign(myOptions, options); - const sales = await Self.rawSql('CALL sectorCollection_getSale(?)', [sectorCollectionFk], myOptions); - - /* const sales = await Self.rawSql( - `SELECT s.ticketFk, - s.itemFk, - i.longName, - itemPackingTypeFk, - subName, - s.quantity, - w.code workerCode, - sgd.saleFk, - iss.quantity pickedQuantity, - c.salesPersonFk - FROM vn.sale s - JOIN item i ON i.id = s.itemFk - JOIN saleGroupDetail sgd ON sgd.saleFk = s.id - JOIN sectorCollectionSaleGroup scsg ON scsg.saleGroupFk = sgd.saleGroupFk - JOIN saleTracking st ON st.saleFk = s.id - JOIN state stt ON stt.id = st.stateFk AND stt.code = 'PREVIOUS_PREPARATION' - JOIN worker w ON w.id = st.workerFk - JOIN ticket t ON t.id= s.ticketFk - JOIN client c ON c.id=t.clientFk - LEFT JOIN itemShelvingSaleSum iss ON iss.saleFk = s.id - WHERE scsg.sectorCollectionFk = ? - AND st.workerFk = ?;`, [sectorCollectionFk, userId]); */ + const [sales] = await Self.rawSql('CALL sectorCollection_getSale(?)', [sectorCollectionFk], myOptions); const itemShelvings = []; for (let sale of sales) { diff --git a/modules/ticket/back/methods/sale/specs/getFromSectorCollection.spec.js b/modules/ticket/back/methods/sale/specs/getFromSectorCollection.spec.js new file mode 100644 index 000000000..1501426e4 --- /dev/null +++ b/modules/ticket/back/methods/sale/specs/getFromSectorCollection.spec.js @@ -0,0 +1,23 @@ +const {models} = require('vn-loopback/server/server'); + +describe('sale getFromSectorCollection()', () => { + const sectorCollectionFk = 1; + const sectorFk = 1; + + beforeAll(async() => { + ctx = { + req: { + headers: {origin: 'http://localhost'}, + accessToken: {userId: 40} + } + }; + }); + + it('should find an item and a shelving', async() => { + const options = {}; + const itemShelvings = await models.Sale.getFromSectorCollection(ctx, sectorCollectionFk, sectorFk, options); + + expect(itemShelvings.length).toEqual(1); + expect(itemShelvings[0].carros.length).toEqual(1); + }); +}); From 799237e14caaea96ba135910651e6e5f2cffc4c7 Mon Sep 17 00:00:00 2001 From: jorgep Date: Tue, 23 Jan 2024 09:09:55 +0100 Subject: [PATCH 070/173] feat: refs #6276 test shelving_addLog --- loopback/locale/en.json | 4 +- loopback/locale/es.json | 3 +- .../shelving/back/methods/shelving/addLog.js | 3 +- .../methods/shelving/specs/addLog.spec.js | 46 +++++++++++++++++++ 4 files changed, 53 insertions(+), 3 deletions(-) create mode 100644 modules/shelving/back/methods/shelving/specs/addLog.spec.js diff --git a/loopback/locale/en.json b/loopback/locale/en.json index 24c28a927..dc3a4afae 100644 --- a/loopback/locale/en.json +++ b/loopback/locale/en.json @@ -212,5 +212,7 @@ "This worker does not exist": "This worker does not exist", "this state does not exist": "This state does not exist", "The line could not be marked": "The line could not be marked", - "The sale can not be tracked": "The sale can not be tracked" + "The sale can not be tracked": "The sale can not be tracked", + "Shelving not valid": "Shelving not valid" + } \ No newline at end of file diff --git a/loopback/locale/es.json b/loopback/locale/es.json index 91374a34e..32266e9ce 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -350,5 +350,6 @@ "The line could not be marked": "No se ha podido marcar la línea", "No se ha podido marcar la línea": "No se ha podido marcar la línea", "The sale can not be tracked": "La línea no puede ser rastreada", - "La línea no puede ser rastreada": "La línea no puede ser rastreada" + "Shelving not valid": "Carro no válido", + "Carro no válido": "Carro no válido" } \ No newline at end of file diff --git a/modules/shelving/back/methods/shelving/addLog.js b/modules/shelving/back/methods/shelving/addLog.js index 13f9075f1..fe6d8b8da 100644 --- a/modules/shelving/back/methods/shelving/addLog.js +++ b/modules/shelving/back/methods/shelving/addLog.js @@ -16,6 +16,7 @@ module.exports = Self => { }); Self.addLog = async(ctx, code, options) => { const userId = ctx.req.accessToken.userId; + const $t = ctx.req.__; const models = Self.app.models; const myOptions = {}; let tx; @@ -35,7 +36,7 @@ module.exports = Self => { } }, myOptions); - if (!shelving) throw new UserError('Shelving not valid'); + if (!shelving) throw new UserError($t('Shelving not valid')); await models.ShelvingLog.create({ changedModel: 'Shelving', diff --git a/modules/shelving/back/methods/shelving/specs/addLog.spec.js b/modules/shelving/back/methods/shelving/specs/addLog.spec.js new file mode 100644 index 000000000..d538c24ec --- /dev/null +++ b/modules/shelving/back/methods/shelving/specs/addLog.spec.js @@ -0,0 +1,46 @@ +const {models} = require('vn-loopback/server/server'); + +describe('shelving addLog()', () => { + beforeAll(async() => { + ctx = { + req: { + headers: {origin: 'http://localhost'}, + accessToken: {userId: 66}, + __: value => value + } + }; + }); + + it('should add a log', async() => { + const tx = await models.SaleTracking.beginTransaction({}); + const options = {transaction: tx}; + const code = 'AA6'; + + try { + const shelvingLogsBefore = await models.ShelvingLog.find(null, options); + await models.Shelving.addLog(ctx, code, options); + const shelvingLogsAfter = await models.ShelvingLog.find(null, options); + + expect(shelvingLogsAfter.length).toEqual(shelvingLogsBefore.length + 1); + await tx.rollback(); + } catch (e) { + await tx.rollback(); + throw e; + } + }); + + it('should throw an error when the code does not exist', async() => { + const tx = await models.SaleTracking.beginTransaction({}); + const options = {transaction: tx}; + const code = 'DXI345'; + + try { + await models.Shelving.addLog(ctx, code, options); + + await tx.rollback(); + } catch (e) { + expect(e.message).toEqual('Shelving not valid'); + await tx.rollback(); + } + }); +}); From 08dd37e9e44fc1824bb3c383c38fd90746da55ff Mon Sep 17 00:00:00 2001 From: jorgep Date: Tue, 23 Jan 2024 12:13:23 +0100 Subject: [PATCH 071/173] feat: refs #6276 test sectorCollection_getSales --- .../getSalesFromTicketOrCollection.js | 66 ++++++++++--------- .../getSalesFromTicketOrCollection.spec.js | 35 ++++++++++ db/dump/fixtures.sql | 4 +- loopback/locale/es.json | 3 +- 4 files changed, 76 insertions(+), 32 deletions(-) create mode 100644 back/methods/collection/spec/getSalesFromTicketOrCollection.spec.js diff --git a/back/methods/collection/getSalesFromTicketOrCollection.js b/back/methods/collection/getSalesFromTicketOrCollection.js index d806782d9..68de62bd8 100644 --- a/back/methods/collection/getSalesFromTicketOrCollection.js +++ b/back/methods/collection/getSalesFromTicketOrCollection.js @@ -7,18 +7,11 @@ module.exports = Self => { arg: 'collectionOrTicketFk', type: 'number', required: true - }, - { - arg: 'sectorFk', - type: 'number', + }, { + arg: 'print', + type: 'boolean', required: true - }, - { - arg: 'printFk', - type: 'number', - required: true - }, - { + }, { arg: 'source', type: 'string', required: true @@ -35,36 +28,34 @@ module.exports = Self => { }, }); - Self.getSalesFromTicketOrCollection = async(ctx, collectionOrTicketFk, sectorFk, printFk, source, options) => { + Self.getSalesFromTicketOrCollection = async(ctx, collectionOrTicketFk, print, source, options) => { + const userId = ctx.req.accessToken.userId; const models = Self.app.models; - const myOptions = {}; + const myOptions = {userId}; if (typeof options == 'object') Object.assign(myOptions, options); - const [collectionOrTicket] = await Self.rawSql('SELECT vn.ticket_get(?) as id', [collectionOrTicketFk]); + const [{id}] = await Self.rawSql('SELECT vn.ticket_get(?) as id', + [collectionOrTicketFk], + myOptions); - const [tickets] = await Self.rawSql('CALL vn.collection_getTickets(?)', [collectionOrTicket.id]); + const [tickets] = await Self.rawSql('CALL vn.collection_getTickets(?)', [id], myOptions); - if (source == 'PRECHECKER' || source == 'ON_CHECKING') { - await Self.rawSql( - 'CALL vn.ticketStateToday_setState(?,?)', - [collectionOrTicket.id, source] - ); - } - - const [sales] = await Self.rawSql('CALL vn.sale_getFromTicketOrCollection(?)', [collectionOrTicket.id]); + await setState(source, id, myOptions); + const [sales] = await Self.rawSql('CALL vn.sale_getFromTicketOrCollection(?)', + [id], myOptions); const isPicker = source == 'CHECKER'; - const [placements] = await Self.rawSql( - 'CALL vn.collectionPlacement_get(?, ?)', [collectionOrTicket.id, isPicker] + const [placements] = await Self.rawSql('CALL vn.collectionPlacement_get(?, ?)', + [id, isPicker], myOptions ); - if (printFk == 1) await Self.rawSql('CALL vn.collection_printSticker(?,NULL)', [collectionOrTicket.id]); + if (print) await Self.rawSql('CALL vn.collection_printSticker(?,NULL)', [id], myOptions); if (tickets.length) await sendRocketTickets(tickets); - return getCollection(collectionOrTicket.id, tickets, sales, placements); + return getCollection(id, tickets, sales, placements, myOptions); async function sendRocketTickets(tickets) { for (let ticket of tickets) { @@ -83,7 +74,7 @@ module.exports = Self => { } } - async function getCollection(id, tickets, sales, placements) { + async function getCollection(id, tickets, sales, placements, options) { const collection = { collectionFk: id, tickets: [], @@ -95,7 +86,8 @@ module.exports = Self => { const barcodes = await getBarcodes(ticketFk); await Self.rawSql( 'CALL util.log_add(?, ?, ?, ?, ?, ?, ?, ?)', - ['vn', 'ticket', 'Ticket', ticketFk, ticketFk, 'select', null, null] + ['vn', 'ticket', 'Ticket', ticketFk, ticketFk, 'select', null, null], + options ); for (let sale of sales) { @@ -106,7 +98,7 @@ module.exports = Self => { sale.barcodes = []; for (const barcode of barcodes) { - if (barcode.movementId) { + if (barcode.movementId == sale.saleFk) { if (barcode.code) { sale.barcodes.push(barcode.code); sale.barcodes.push(`0 ${barcode.code}`); @@ -142,5 +134,19 @@ module.exports = Self => { AND tr.landed >= DATE_SUB(CURDATE(), INTERVAL 1 YEAR)`; return Self.rawSql(query, [ticketId]); } + + async function setState(source, id, options) { + let state; + if (source == 'PRECHECKER') state = 'PREVIOUS_CONTROL'; + else if (source == 'CHECKER') state = 'ON_CHECKING'; + + if (state) { + await Self.rawSql( + 'CALL vn.ticketStateToday_setState(?,?)', + [id, source], + options + ); + } + } }; }; diff --git a/back/methods/collection/spec/getSalesFromTicketOrCollection.spec.js b/back/methods/collection/spec/getSalesFromTicketOrCollection.spec.js new file mode 100644 index 000000000..8937b99e0 --- /dev/null +++ b/back/methods/collection/spec/getSalesFromTicketOrCollection.spec.js @@ -0,0 +1,35 @@ +const {models} = require('vn-loopback/server/server'); + +fdescribe('collection getSalesFromTicketOrCollection()', () => { + const collectionOrTicketFk = 999999; + const print = true; + const source = 'CHECKER'; + + beforeAll(() => { + ctx = { + req: { + accessToken: {userId: 9}, + headers: {origin: 'http://localhost'}, + } + }; + }); + + it('should return a collection with tickets, placements and barcodes settled correctly', async() => { + const options = {}; + const collection = await models.Collection.getSalesFromTicketOrCollection(ctx, + collectionOrTicketFk, print, source, options); + + const [firstTicket] = collection.tickets; + const [firstSale] = firstTicket.sales; + const [firstPlacement] = firstSale.placements; + + expect(collection.tickets.length).toBeGreaterThan(0); + expect(collection.collectionFk).toEqual(firstTicket.ticketFk); + + expect(firstSale.ticketFk).toEqual(firstTicket.ticketFk); + expect(firstSale.placements.length).toBeGreaterThan(0); + expect(firstSale.barcodes.length).toBeGreaterThan(0); + + expect(firstSale.saleFk).toEqual(firstPlacement.saleFk); + }); +}); diff --git a/db/dump/fixtures.sql b/db/dump/fixtures.sql index e536e694d..0485f9eec 100644 --- a/db/dump/fixtures.sql +++ b/db/dump/fixtures.sql @@ -3711,4 +3711,6 @@ INSERT INTO vn.machineWorker(workerFk,machineFk,inTimed) VALUES (104,1,'2001-01- UPDATE vn.buy SET itemOriginalFk = 1 WHERE id = 1; -UPDATE vn.saleTracking SET stateFk = 26 WHERE id = 5; \ No newline at end of file +UPDATE vn.saleTracking SET stateFk = 26 WHERE id = 5; + +INSERT INTO vn.report (name) VALUES ('LabelCollection') \ No newline at end of file diff --git a/loopback/locale/es.json b/loopback/locale/es.json index 32266e9ce..222df46d6 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -351,5 +351,6 @@ "No se ha podido marcar la línea": "No se ha podido marcar la línea", "The sale can not be tracked": "La línea no puede ser rastreada", "Shelving not valid": "Carro no válido", - "Carro no válido": "Carro no válido" + "Carro no válido": "Carro no válido", + "printerNotExists": "printerNotExists" } \ No newline at end of file From ae89d59bde5d8e3c11c4d38bf9cec41094e642fc Mon Sep 17 00:00:00 2001 From: jorgep Date: Tue, 23 Jan 2024 15:58:09 +0100 Subject: [PATCH 072/173] feat: refs #6276 WIP test sectorCollection_getSales --- .../getSalesFromTicketOrCollection.spec.js | 50 ++++++++++++++----- db/dump/fixtures.sql | 2 +- 2 files changed, 38 insertions(+), 14 deletions(-) diff --git a/back/methods/collection/spec/getSalesFromTicketOrCollection.spec.js b/back/methods/collection/spec/getSalesFromTicketOrCollection.spec.js index 8937b99e0..6417fca93 100644 --- a/back/methods/collection/spec/getSalesFromTicketOrCollection.spec.js +++ b/back/methods/collection/spec/getSalesFromTicketOrCollection.spec.js @@ -1,6 +1,6 @@ const {models} = require('vn-loopback/server/server'); -fdescribe('collection getSalesFromTicketOrCollection()', () => { +describe('collection getSalesFromTicketOrCollection()', () => { const collectionOrTicketFk = 999999; const print = true; const source = 'CHECKER'; @@ -15,21 +15,45 @@ fdescribe('collection getSalesFromTicketOrCollection()', () => { }); it('should return a collection with tickets, placements and barcodes settled correctly', async() => { - const options = {}; - const collection = await models.Collection.getSalesFromTicketOrCollection(ctx, - collectionOrTicketFk, print, source, options); + const tx = await models.Collection.beginTransaction({}); + const options = {transaction: tx}; + try { + const collection = await models.Collection.getSalesFromTicketOrCollection(ctx, + collectionOrTicketFk, print, source, options); - const [firstTicket] = collection.tickets; - const [firstSale] = firstTicket.sales; - const [firstPlacement] = firstSale.placements; + const [firstTicket] = collection.tickets; + const [firstSale] = firstTicket.sales; + const [firstPlacement] = firstSale.placements; - expect(collection.tickets.length).toBeGreaterThan(0); - expect(collection.collectionFk).toEqual(firstTicket.ticketFk); + expect(collection.tickets.length).toBeTruthy(); + expect(collection.collectionFk).toEqual(firstTicket.ticketFk); - expect(firstSale.ticketFk).toEqual(firstTicket.ticketFk); - expect(firstSale.placements.length).toBeGreaterThan(0); - expect(firstSale.barcodes.length).toBeGreaterThan(0); + expect(firstSale.ticketFk).toEqual(firstTicket.ticketFk); + expect(firstSale.placements.length).toBeTruthy(); + expect(firstSale.barcodes.length).toBeTruthy(); - expect(firstSale.saleFk).toEqual(firstPlacement.saleFk); + expect(firstSale.saleFk).toEqual(firstPlacement.saleFk); + await tx.rollback(); + } catch (e) { + await tx.rollback(); + throw e; + } + }); + + it('should print a sticker', async() => { + const tx = await models.Collection.beginTransaction({}); + const options = {transaction: tx}; + try { + const printQueueBefore = await models.Collection.rawSql('SELECT * FROM printQueue', [], options); + await models.Collection.getSalesFromTicketOrCollection(ctx, + collectionOrTicketFk, print, source, options); + const printQueueAfter = await models.Collection.rawSql('SELECT * FROM printQueue', [], options); + + expect(printQueueAfter.length).toEqual(printQueueBefore.length + 1); + await tx.rollback(); + } catch (e) { + await tx.rollback(); + throw e; + } }); }); diff --git a/db/dump/fixtures.sql b/db/dump/fixtures.sql index 0485f9eec..2cdc6fbe0 100644 --- a/db/dump/fixtures.sql +++ b/db/dump/fixtures.sql @@ -3713,4 +3713,4 @@ UPDATE vn.buy SET itemOriginalFk = 1 WHERE id = 1; UPDATE vn.saleTracking SET stateFk = 26 WHERE id = 5; -INSERT INTO vn.report (name) VALUES ('LabelCollection') \ No newline at end of file +INSERT INTO vn.report (name) VALUES ('LabelCollection'); \ No newline at end of file From e849f0b6e2000896aa8782a2add236cba7cdad06 Mon Sep 17 00:00:00 2001 From: jorgep Date: Wed, 24 Jan 2024 11:20:08 +0100 Subject: [PATCH 073/173] fix: refs #6276 sectorCollection_getSales --- .../getSalesFromTicketOrCollection.js | 28 ++++++++++++++++--- .../getSalesFromTicketOrCollection.spec.js | 19 +++++++++++++ 2 files changed, 43 insertions(+), 4 deletions(-) diff --git a/back/methods/collection/getSalesFromTicketOrCollection.js b/back/methods/collection/getSalesFromTicketOrCollection.js index 68de62bd8..50fe21875 100644 --- a/back/methods/collection/getSalesFromTicketOrCollection.js +++ b/back/methods/collection/getSalesFromTicketOrCollection.js @@ -92,9 +92,29 @@ module.exports = Self => { for (let sale of sales) { if (sale.ticketFk == ticketFk) { - sale.placements = placements.filter(placement => - placement.saleFk == sale.saleFk && placement.order - ); + sale.placements = []; + for (const salePlacement of placements) { + let placement; + if (salePlacement.saleFk == sale.saleFk && salePlacement.order) { + placement = { + saleFk: salePlacement.saleFk, + itemFk: salePlacement.itemFk, + placement: salePlacement.placement, + shelving: salePlacement.shelving, + created: salePlacement.created, + visible: salePlacement.visible, + order: salePlacement.order, + grouping: salePlacement.grouping, + priority: salePlacement.priority, + saleOrder: salePlacement.saleOrder, + isPreviousPrepared: salePlacement.isPreviousPrepared, + itemShelvingSaleFk: salePlacement.itemShelvingSaleFk, + ticketFk: salePlacement.ticketFk, + id: salePlacement.id + }; + sale.placements.push(placement); + } + } sale.barcodes = []; for (const barcode of barcodes) { @@ -143,7 +163,7 @@ module.exports = Self => { if (state) { await Self.rawSql( 'CALL vn.ticketStateToday_setState(?,?)', - [id, source], + [id, state], options ); } diff --git a/back/methods/collection/spec/getSalesFromTicketOrCollection.spec.js b/back/methods/collection/spec/getSalesFromTicketOrCollection.spec.js index 6417fca93..02532b4b0 100644 --- a/back/methods/collection/spec/getSalesFromTicketOrCollection.spec.js +++ b/back/methods/collection/spec/getSalesFromTicketOrCollection.spec.js @@ -56,4 +56,23 @@ describe('collection getSalesFromTicketOrCollection()', () => { throw e; } }); + + it('should add a ticketTracking', async() => { + const collectionOrTicketFk = 23; + + const tx = await models.Collection.beginTransaction({}); + const options = {transaction: tx}; + try { + const ticketTrackingBefore = await models.TicketTracking.find(null, options); + await models.Collection.getSalesFromTicketOrCollection(ctx, + collectionOrTicketFk, print, source, options); + const ticketTrackingAfter = await models.TicketTracking.find(null, options); + + expect(ticketTrackingAfter.length).toEqual(ticketTrackingBefore.length + 1); + await tx.rollback(); + } catch (e) { + await tx.rollback(); + throw e; + } + }); }); From e527780622444504516b9724baa168beab345a98 Mon Sep 17 00:00:00 2001 From: jorgep Date: Wed, 24 Jan 2024 11:24:49 +0100 Subject: [PATCH 074/173] fix: refs #6276 drop suitcase sectorCollection_getSales --- .../getSalesFromTicketOrCollection.spec.js | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/back/methods/collection/spec/getSalesFromTicketOrCollection.spec.js b/back/methods/collection/spec/getSalesFromTicketOrCollection.spec.js index 02532b4b0..6417fca93 100644 --- a/back/methods/collection/spec/getSalesFromTicketOrCollection.spec.js +++ b/back/methods/collection/spec/getSalesFromTicketOrCollection.spec.js @@ -56,23 +56,4 @@ describe('collection getSalesFromTicketOrCollection()', () => { throw e; } }); - - it('should add a ticketTracking', async() => { - const collectionOrTicketFk = 23; - - const tx = await models.Collection.beginTransaction({}); - const options = {transaction: tx}; - try { - const ticketTrackingBefore = await models.TicketTracking.find(null, options); - await models.Collection.getSalesFromTicketOrCollection(ctx, - collectionOrTicketFk, print, source, options); - const ticketTrackingAfter = await models.TicketTracking.find(null, options); - - expect(ticketTrackingAfter.length).toEqual(ticketTrackingBefore.length + 1); - await tx.rollback(); - } catch (e) { - await tx.rollback(); - throw e; - } - }); }); From 02e38eb71182aa80650c307708dea732b9f8365a Mon Sep 17 00:00:00 2001 From: jorgep Date: Thu, 25 Jan 2024 08:13:47 +0100 Subject: [PATCH 075/173] fix: refs #6276 fix tests --- back/methods/collection/addItem.js | 2 +- .../getSalesFromTicketOrCollection.js | 183 +++++++++--------- .../getSalesFromTicketOrCollection.spec.js | 29 ++- .../back/methods/item-shelving/makeMulti.js | 9 +- .../item/back/methods/item-shelving/return.js | 4 +- .../methods/sale-tracking/updateTracking.js | 2 +- 6 files changed, 124 insertions(+), 105 deletions(-) diff --git a/back/methods/collection/addItem.js b/back/methods/collection/addItem.js index 3b2a6921b..1317662b4 100644 --- a/back/methods/collection/addItem.js +++ b/back/methods/collection/addItem.js @@ -46,7 +46,7 @@ module.exports = Self => { } try { - const [[item]] = await Self.rawSql('CALL vn.item_getInfo(?,?)', [code, warehouseFk]); + const [[item]] = await Self.rawSql('CALL vn.item_getInfo(?,?)', [code, warehouseFk], myOptions); if (!item?.available) throw new UserError($t('We do not have availability for the selected item')); diff --git a/back/methods/collection/getSalesFromTicketOrCollection.js b/back/methods/collection/getSalesFromTicketOrCollection.js index 50fe21875..8fbc0f55b 100644 --- a/back/methods/collection/getSalesFromTicketOrCollection.js +++ b/back/methods/collection/getSalesFromTicketOrCollection.js @@ -56,92 +56,92 @@ module.exports = Self => { if (tickets.length) await sendRocketTickets(tickets); return getCollection(id, tickets, sales, placements, myOptions); + }; + async function sendRocketTickets(tickets) { + for (let ticket of tickets) { + let observations = ticket.observaciones.split(' '); - async function sendRocketTickets(tickets) { - for (let ticket of tickets) { - let observations = ticket.observaciones.split(' '); + for (let observation of observations) { + const salesMan = ticket.salesPersonFk; - for (let observation of observations) { - const salesMan = ticket.salesPersonFk; + if (!observation.startsWith('#') && !observation.startsWith('@')) return; - if (!observation.startsWith('#') && !observation.startsWith('@')) return; - - await models.Chat.send(ctx, - observation, - `El ticket ${ticket.ticketFk} del comercial ${salesMan} está en preparación.(mensaje creado automáticamente)` - ); - } - } - } - - async function getCollection(id, tickets, sales, placements, options) { - const collection = { - collectionFk: id, - tickets: [], - }; - for (let ticket of tickets) { - const {ticketFk} = ticket; - ticket.sales = []; - - const barcodes = await getBarcodes(ticketFk); - await Self.rawSql( - 'CALL util.log_add(?, ?, ?, ?, ?, ?, ?, ?)', - ['vn', 'ticket', 'Ticket', ticketFk, ticketFk, 'select', null, null], - options + await models.Chat.send(ctx, + observation, + `El ticket ${ticket.ticketFk} del comercial ${salesMan} está en preparación.(mensaje creado automáticamente)` ); - - for (let sale of sales) { - if (sale.ticketFk == ticketFk) { - sale.placements = []; - for (const salePlacement of placements) { - let placement; - if (salePlacement.saleFk == sale.saleFk && salePlacement.order) { - placement = { - saleFk: salePlacement.saleFk, - itemFk: salePlacement.itemFk, - placement: salePlacement.placement, - shelving: salePlacement.shelving, - created: salePlacement.created, - visible: salePlacement.visible, - order: salePlacement.order, - grouping: salePlacement.grouping, - priority: salePlacement.priority, - saleOrder: salePlacement.saleOrder, - isPreviousPrepared: salePlacement.isPreviousPrepared, - itemShelvingSaleFk: salePlacement.itemShelvingSaleFk, - ticketFk: salePlacement.ticketFk, - id: salePlacement.id - }; - sale.placements.push(placement); - } - } - - sale.barcodes = []; - for (const barcode of barcodes) { - if (barcode.movementId == sale.saleFk) { - if (barcode.code) { - sale.barcodes.push(barcode.code); - sale.barcodes.push(`0 ${barcode.code}`); - } - - if (barcode.id) { - sale.barcodes.push(barcode.id); - sale.barcodes.push(`0 ${barcode.id}`); - } - } - } - - ticket.sales.push(sale); - } - } - collection.tickets.push(ticket); } + } + } - return collection; + async function getCollection(id, tickets, sales, placements, options) { + const collection = { + collectionFk: id, + tickets: [], + }; + for (let ticket of tickets) { + const {ticketFk} = ticket; + ticket.sales = []; + + const barcodes = await getBarcodes(ticketFk); + await Self.rawSql( + 'CALL util.log_add(?, ?, ?, ?, ?, ?, ?, ?)', + ['vn', 'ticket', 'Ticket', ticketFk, ticketFk, 'select', null, null], + options + ); + + for (let sale of sales) { + if (sale.ticketFk == ticketFk) { + sale.placements = []; + for (const salePlacement of placements) { + let placement; + if (salePlacement.saleFk == sale.saleFk && salePlacement.order) { + placement = { + saleFk: salePlacement.saleFk, + itemFk: salePlacement.itemFk, + placement: salePlacement.placement, + shelving: salePlacement.shelving, + created: salePlacement.created, + visible: salePlacement.visible, + order: salePlacement.order, + grouping: salePlacement.grouping, + priority: salePlacement.priority, + saleOrder: salePlacement.saleOrder, + isPreviousPrepared: salePlacement.isPreviousPrepared, + itemShelvingSaleFk: salePlacement.itemShelvingSaleFk, + ticketFk: salePlacement.ticketFk, + id: salePlacement.id + }; + sale.placements.push(placement); + } + } + + sale.barcodes = []; + for (const barcode of barcodes) { + if (barcode.movementId == sale.saleFk) { + if (barcode.code) { + sale.barcodes.push(barcode.code); + sale.barcodes.push(`0 ${barcode.code}`); + } + + if (barcode.id) { + sale.barcodes.push(barcode.id); + sale.barcodes.push(`0 ${barcode.id}`); + } + } + } + + ticket.sales.push(sale); + } + } + collection.tickets.push(ticket); } - async function getBarcodes(ticketId) { - const query = + return collection; + } + + async function getBarcodes(ticketId) { + const query = `SELECT s.id movementId, b.code, c.id @@ -152,21 +152,20 @@ module.exports = Self => { LEFT JOIN vn.travel tr ON tr.id = e.travelFk WHERE s.ticketFk = ? AND tr.landed >= DATE_SUB(CURDATE(), INTERVAL 1 YEAR)`; - return Self.rawSql(query, [ticketId]); - } + return Self.rawSql(query, [ticketId]); + } - async function setState(source, id, options) { - let state; - if (source == 'PRECHECKER') state = 'PREVIOUS_CONTROL'; - else if (source == 'CHECKER') state = 'ON_CHECKING'; + async function setState(source, id, options) { + let state; + if (source == 'PRECHECKER') state = 'PREVIOUS_CONTROL'; + else if (source == 'CHECKER') state = 'ON_CHECKING'; - if (state) { - await Self.rawSql( - 'CALL vn.ticketStateToday_setState(?,?)', - [id, state], - options - ); - } + if (state) { + await Self.rawSql( + 'CALL vn.ticketStateToday_setState(?,?)', + [id, state], + options + ); } - }; + } }; diff --git a/back/methods/collection/spec/getSalesFromTicketOrCollection.spec.js b/back/methods/collection/spec/getSalesFromTicketOrCollection.spec.js index 6417fca93..8f2ea4408 100644 --- a/back/methods/collection/spec/getSalesFromTicketOrCollection.spec.js +++ b/back/methods/collection/spec/getSalesFromTicketOrCollection.spec.js @@ -43,11 +43,14 @@ describe('collection getSalesFromTicketOrCollection()', () => { it('should print a sticker', async() => { const tx = await models.Collection.beginTransaction({}); const options = {transaction: tx}; + const query = 'SELECT * FROM printQueue pq JOIN printQueueArgs pqa ON pqa.printQueueFk = pq.id'; try { - const printQueueBefore = await models.Collection.rawSql('SELECT * FROM printQueue', [], options); + const printQueueBefore = await models.Collection.rawSql( + query, [], options); await models.Collection.getSalesFromTicketOrCollection(ctx, - collectionOrTicketFk, print, source, options); - const printQueueAfter = await models.Collection.rawSql('SELECT * FROM printQueue', [], options); + collectionOrTicketFk, true, source, options); + const printQueueAfter = await models.Collection.rawSql( + query, [], options); expect(printQueueAfter.length).toEqual(printQueueBefore.length + 1); await tx.rollback(); @@ -56,4 +59,24 @@ describe('collection getSalesFromTicketOrCollection()', () => { throw e; } }); + + it('should getSalesFromTicketOrCollection', async() => { + const tx = await models.Collection.beginTransaction({}); + + try { + const options = {transaction: tx}; + await models.Ticket.updateAll({id: collectionOrTicketFk}, {shipped: '2001-01-02 00:00:00.000'}, options); + + const ticketTrackingBefore = await models.TicketTracking.find(null, options); + await models.Collection.getSalesFromTicketOrCollection(ctx, + collectionOrTicketFk, false, source, options); + const ticketTrackingAfter = await models.TicketTracking.find(null, options); + + expect(ticketTrackingAfter.length).toEqual(ticketTrackingBefore.length + 1); + await tx.rollback(); + } catch (e) { + await tx.rollback(); + throw e; + } + }); }); diff --git a/modules/item/back/methods/item-shelving/makeMulti.js b/modules/item/back/methods/item-shelving/makeMulti.js index 7d1ee11a0..e3a3b1cf5 100644 --- a/modules/item/back/methods/item-shelving/makeMulti.js +++ b/modules/item/back/methods/item-shelving/makeMulti.js @@ -47,7 +47,8 @@ module.exports = Self => { }, 0); discardItems.push(item); - const [result] = await Self.rawSql('SELECT vn.itemPacking(?, ?) itemPacking', [item, warehouseFk]); + const [result] = await Self.rawSql('SELECT vn.itemPacking(?, ?) itemPacking', + [item, warehouseFk], myOptions); let packing; if (result) packing = result.itemPacking; @@ -56,11 +57,7 @@ module.exports = Self => { quantity = quantity * packing; await Self.rawSql('CALL vn.itemShelving_add(?, ?, ?, NULL, NULL, ?, ?)', - [shelvingFk, - item, - quantity, - packing, - warehouseFk] + [shelvingFk, item, quantity, packing, warehouseFk], myOptions ); } } diff --git a/modules/item/back/methods/item-shelving/return.js b/modules/item/back/methods/item-shelving/return.js index aa44ef5b5..8e8b4eae2 100644 --- a/modules/item/back/methods/item-shelving/return.js +++ b/modules/item/back/methods/item-shelving/return.js @@ -39,8 +39,8 @@ module.exports = Self => { }; let itemShelvings = await models.ItemShelving.find(filterItemShelvings, myOptions); - const [alternatives] = await models.ItemShelving.rawSql( - 'CALL vn.itemShelving_getAlternatives(?)', [shelvingFk] + const [alternatives] = await models.ItemShelving.rawSql('CALL vn.itemShelving_getAlternatives(?)', + [shelvingFk], myOptions ); if (itemShelvings) { diff --git a/modules/ticket/back/methods/sale-tracking/updateTracking.js b/modules/ticket/back/methods/sale-tracking/updateTracking.js index 81eef28b4..22ff141d8 100644 --- a/modules/ticket/back/methods/sale-tracking/updateTracking.js +++ b/modules/ticket/back/methods/sale-tracking/updateTracking.js @@ -96,7 +96,7 @@ module.exports = Self => { neq: null } } - }); + }, myOptions); } if (isBuy) await models.SaleBuy.create({saleFk, buyFk}, myOptions); From 63fb3db8a1665045b96a964b7e94d4e7db8af3a7 Mon Sep 17 00:00:00 2001 From: jorgep Date: Thu, 25 Jan 2024 12:14:14 +0100 Subject: [PATCH 076/173] fix: refs #6276 test item_card & general fixes --- back/methods/collection/assignCollection.js | 13 +++++++++---- .../collection/getSalesFromTicketOrCollection.js | 16 +++++++--------- loopback/locale/en.json | 6 ++++-- loopback/locale/es.json | 4 +++- modules/item/back/methods/item/card.js | 9 ++------- .../item/back/methods/item/specs/card.spec.js | 4 ++-- 6 files changed, 27 insertions(+), 25 deletions(-) diff --git a/back/methods/collection/assignCollection.js b/back/methods/collection/assignCollection.js index 3384b325a..c4671e747 100644 --- a/back/methods/collection/assignCollection.js +++ b/back/methods/collection/assignCollection.js @@ -13,16 +13,21 @@ module.exports = Self => { }, }); - Self.assignCollection = async ctx => { + Self.assignCollection = async(ctx, options) => { const userId = ctx.req.accessToken.userId; + const myOptions = {userId}; + const $t = ctx.req.__; - await Self.rawSql('CALL vn.collection_assign(?, @vCollectionFk)', [userId]); + if (typeof options == 'object') + Object.assign(myOptions, options); + + await Self.rawSql('CALL vn.collection_assign(?, @vCollectionFk)', [userId], myOptions); const [assignedCollection] = await Self.rawSql('SELECT @vCollectionFk'); const {'@vCollectionFk': collectionFk} = assignedCollection; - if (!collectionFk) throw new UserError('No hay tickets para sacar'); - await Self.rawSql('CALL vn.collection_printSticker(?, NULL)', [collectionFk]); + if (!collectionFk) throw new UserError($t('There are not picking tickets')); + await Self.rawSql('CALL vn.collection_printSticker(?, NULL)', [collectionFk], myOptions); return collectionFk; }; diff --git a/back/methods/collection/getSalesFromTicketOrCollection.js b/back/methods/collection/getSalesFromTicketOrCollection.js index 8fbc0f55b..09ccbafdc 100644 --- a/back/methods/collection/getSalesFromTicketOrCollection.js +++ b/back/methods/collection/getSalesFromTicketOrCollection.js @@ -30,8 +30,8 @@ module.exports = Self => { Self.getSalesFromTicketOrCollection = async(ctx, collectionOrTicketFk, print, source, options) => { const userId = ctx.req.accessToken.userId; - const models = Self.app.models; const myOptions = {userId}; + const $t = ctx.req.__; if (typeof options == 'object') Object.assign(myOptions, options); @@ -53,22 +53,20 @@ module.exports = Self => { if (print) await Self.rawSql('CALL vn.collection_printSticker(?,NULL)', [id], myOptions); - if (tickets.length) await sendRocketTickets(tickets); + if (tickets.length) await sendRocketTickets(tickets, $t); return getCollection(id, tickets, sales, placements, myOptions); }; - async function sendRocketTickets(tickets) { + async function sendRocketTickets(tickets, $t) { for (let ticket of tickets) { let observations = ticket.observaciones.split(' '); for (let observation of observations) { const salesMan = ticket.salesPersonFk; - if (!observation.startsWith('#') && !observation.startsWith('@')) return; - await models.Chat.send(ctx, observation, - `El ticket ${ticket.ticketFk} del comercial ${salesMan} está en preparación.(mensaje creado automáticamente)` + $t('ticketCommercial', {ticket: ticket.ticketFk, salesMan}) ); } } @@ -83,7 +81,7 @@ module.exports = Self => { const {ticketFk} = ticket; ticket.sales = []; - const barcodes = await getBarcodes(ticketFk); + const barcodes = await getBarcodes(ticketFk, options); await Self.rawSql( 'CALL util.log_add(?, ?, ?, ?, ?, ?, ?, ?)', ['vn', 'ticket', 'Ticket', ticketFk, ticketFk, 'select', null, null], @@ -140,7 +138,7 @@ module.exports = Self => { return collection; } - async function getBarcodes(ticketId) { + async function getBarcodes(ticketId, options) { const query = `SELECT s.id movementId, b.code, @@ -152,7 +150,7 @@ module.exports = Self => { LEFT JOIN vn.travel tr ON tr.id = e.travelFk WHERE s.ticketFk = ? AND tr.landed >= DATE_SUB(CURDATE(), INTERVAL 1 YEAR)`; - return Self.rawSql(query, [ticketId]); + return Self.rawSql(query, [ticketId], options); } async function setState(source, id, options) { diff --git a/loopback/locale/en.json b/loopback/locale/en.json index dc3a4afae..5ff31a22f 100644 --- a/loopback/locale/en.json +++ b/loopback/locale/en.json @@ -213,6 +213,8 @@ "this state does not exist": "This state does not exist", "The line could not be marked": "The line could not be marked", "The sale can not be tracked": "The sale can not be tracked", - "Shelving not valid": "Shelving not valid" - + "Shelving not valid": "Shelving not valid", + "printerNotExists": "The printer does not exist", + "There are not picking tickets": "There are not picking tickets", + "ticketCommercial": "The ticket {{ ticket }} for the salesperson {{ salesMan }} is in preparation. (automatically generated message)" } \ No newline at end of file diff --git a/loopback/locale/es.json b/loopback/locale/es.json index 222df46d6..a1d1360a8 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -352,5 +352,7 @@ "The sale can not be tracked": "La línea no puede ser rastreada", "Shelving not valid": "Carro no válido", "Carro no válido": "Carro no válido", - "printerNotExists": "printerNotExists" + "printerNotExists": "No existe la impresora", + "There are not picking tickets": "No hay tickets para sacar", + "ticketCommercial": "El ticket {{ticket}} del comercial {{salesMan}} está en preparación.(mensaje creado automáticamente)" } \ No newline at end of file diff --git a/modules/item/back/methods/item/card.js b/modules/item/back/methods/item/card.js index 45c2ac36c..bc59c8bff 100644 --- a/modules/item/back/methods/item/card.js +++ b/modules/item/back/methods/item/card.js @@ -27,7 +27,7 @@ module.exports = Self => { Self.card = async(itemFk, warehouseFk) => { const models = Self.app.models; - const [result] = await Self.rawSql('CALL vn.item_getInfo(?, ?)', [itemFk, warehouseFk]); + const [[itemInfo]] = await Self.rawSql('CALL vn.item_getInfo(?, ?)', [itemFk, warehouseFk]); const barcodeItems = await Self.rawSql('SELECT vn.barcodeToItem(?) as realIdItem', [itemFk]); const [realIdItem] = barcodeItems.map(barcodeItem => barcodeItem.realIdItem); @@ -40,12 +40,7 @@ module.exports = Self => { } }); - let itemInfo; - if (result.length) { - itemInfo = {...result[0]}; - itemInfo.barcodes = barcodes; - } - + if (itemInfo) itemInfo.barcodes = barcodes; return itemInfo; }; }; diff --git a/modules/item/back/methods/item/specs/card.spec.js b/modules/item/back/methods/item/specs/card.spec.js index 725a4269d..65004cfa5 100644 --- a/modules/item/back/methods/item/specs/card.spec.js +++ b/modules/item/back/methods/item/specs/card.spec.js @@ -3,10 +3,10 @@ const {models} = require('vn-loopback/server/server'); describe('item card()', () => { const itemFk = 1; const warehouseFk = 1; - it('WIP: should get something', async() => { + it('should get an item with several barcodes', async() => { const card = await models.Item.card(itemFk, warehouseFk); expect(card).toBeDefined(); - expect(card.barcodes); + expect(card.barcodes.length).toBeTruthy(); }); }); From 293bbd3da33ee96733fc5cc87e40076183293747 Mon Sep 17 00:00:00 2001 From: jorgep Date: Mon, 29 Jan 2024 09:31:12 +0100 Subject: [PATCH 077/173] fix: refs #6276 merge database --- .../10837-whiteOrchid/00-firstScript.sql | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 db/versions/10837-whiteOrchid/00-firstScript.sql diff --git a/db/versions/10837-whiteOrchid/00-firstScript.sql b/db/versions/10837-whiteOrchid/00-firstScript.sql new file mode 100644 index 000000000..eef5faa80 --- /dev/null +++ b/db/versions/10837-whiteOrchid/00-firstScript.sql @@ -0,0 +1,18 @@ +-- Place your SQL code here +INSERT INTO `salix`.`ACL` (model, property, accessType, permission, principalType, principalId) + VALUES + ('Collection', 'assignCollection', 'WRITE', 'ALLOW', 'ROLE', 'employee'), + ('ExpeditionPallet', 'getPallet', 'READ', 'ALLOW', 'ROLE', 'employee'), + ('MachineWorker','updateInTime','WRITE','ALLOW','ROLE','employee'), + ('MobileAppVersionControl','getVersion','READ','ALLOW','ROLE','employee'), + ('SaleTracking','deleteTracking','WRITE','ALLOW','ROLE','employee'), + ('SaleTracking','updateTracking','WRITE','ALLOW','ROLE','employee'), + ('SaleTracking','mark','WRITE','ALLOW','ROLE','employee'), + ('ItemBarcode','deleteByItemAndCode','WRITE','ALLOW','ROLE','employee'), + ('Collection','addItem','WRITE','ALLOW','ROLE','employee'), + ('ExpeditionPallet', '*', 'READ', 'ALLOW', 'ROLE', 'production'), + ('MobileAppVersionControl', '*', 'READ', 'ALLOW', 'ROLE', 'production'), + ('Collection', 'assignCollection', 'WRITE', 'ALLOW', 'ROLE', 'production'), + ('Sale', 'getFromSectorCollection', 'READ', 'ALLOW', 'ROLE', 'employee'), + ('Collection', 'addItem', 'WRITE', 'ALLOW', 'ROLE', 'production'); + \ No newline at end of file From e17fc9141594161af61471846672654759b5c40a Mon Sep 17 00:00:00 2001 From: jorgep Date: Tue, 30 Jan 2024 14:58:11 +0100 Subject: [PATCH 078/173] fix: refs #6276 fix acl, addSaleByCode & tests --- .vscode/settings.json | 3 +- back/models/collection.js | 1 - .../10832-purpleAralia/00-newWareHouse.sql | 24 +++---- loopback/locale/es.json | 3 - .../back/methods/item-shelving/makeMulti.js | 71 ------------------- .../item/back/methods/item-shelving/return.js | 7 +- .../item-shelving/specs/makeMulti.spec.js | 54 -------------- .../item-shelving/specs/return.spec.js | 11 +-- modules/item/back/models/item-shelving.js | 1 - .../back/methods/ticket/addSaleByCode.js | 27 +++---- .../ticket/specs/addSaleByCode.spec.js | 21 +----- modules/ticket/back/models/ticket.js | 1 + 12 files changed, 27 insertions(+), 197 deletions(-) delete mode 100644 modules/item/back/methods/item-shelving/makeMulti.js delete mode 100644 modules/item/back/methods/item-shelving/specs/makeMulti.spec.js rename back/methods/collection/addItem.js => modules/ticket/back/methods/ticket/addSaleByCode.js (57%) rename back/methods/collection/spec/addItem.spec.js => modules/ticket/back/methods/ticket/specs/addSaleByCode.spec.js (60%) diff --git a/.vscode/settings.json b/.vscode/settings.json index 76b039f61..03479d27a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -18,6 +18,5 @@ "salix", "fdescribe", "Loggable" - ], - "CodeGPT.apiKey": "CodeGPT Plus Beta" + ] } diff --git a/back/models/collection.js b/back/models/collection.js index 98a199fbd..93ab2731b 100644 --- a/back/models/collection.js +++ b/back/models/collection.js @@ -5,6 +5,5 @@ module.exports = Self => { require('../methods/collection/previousLabel')(Self); require('../methods/collection/getTickets')(Self); require('../methods/collection/assignCollection')(Self); - require('../methods/collection/addItem')(Self); require('../methods/collection/getSalesFromTicketOrCollection')(Self); }; diff --git a/db/versions/10832-purpleAralia/00-newWareHouse.sql b/db/versions/10832-purpleAralia/00-newWareHouse.sql index 1b1ec263f..4802a6c4a 100644 --- a/db/versions/10832-purpleAralia/00-newWareHouse.sql +++ b/db/versions/10832-purpleAralia/00-newWareHouse.sql @@ -1,18 +1,14 @@ INSERT INTO `salix`.`ACL` (model, property, accessType, permission, principalType, principalId) VALUES - ('Collection', 'assignCollection', 'WRITE', 'ALLOW', 'ROLE', 'employee'), - ('ExpeditionPallet', 'getPallet', 'READ', 'ALLOW', 'ROLE', 'employee'), - ('MachineWorker','updateInTime','WRITE','ALLOW','ROLE','employee'), - ('MobileAppVersionControl','getVersion','READ','ALLOW','ROLE','employee'), - ('SaleTracking','deleteTracking','WRITE','ALLOW','ROLE','employee'), - ('SaleTracking','updateTracking','WRITE','ALLOW','ROLE','employee'), - ('SaleTracking','mark','WRITE','ALLOW','ROLE','employee'), - ('ItemBarcode','deleteByItemAndCode','WRITE','ALLOW','ROLE','employee'), - ('Collection','addItem','WRITE','ALLOW','ROLE','employee'), - ('ExpeditionPallet', '*', 'READ', 'ALLOW', 'ROLE', 'production'), - ('MobileAppVersionControl', '*', 'READ', 'ALLOW', 'ROLE', 'production'), ('Collection', 'assignCollection', 'WRITE', 'ALLOW', 'ROLE', 'production'), - ('Collection', 'addItem', 'WRITE', 'ALLOW', 'ROLE', 'production'), - ('Sale', 'getFromSectorCollection', 'READ', 'ALLOW', 'ROLE', 'employee'), - ('Collection', 'addItem', 'WRITE', 'ALLOW', 'ROLE', 'production'); + ('ExpeditionPallet', 'getPallet', 'READ', 'ALLOW', 'ROLE', 'production'), + ('MachineWorker','updateInTime','WRITE','ALLOW','ROLE','production'), + ('MobileAppVersionControl','getVersion','READ','ALLOW','ROLE','production'), + ('SaleTracking','deleteTracking','WRITE','ALLOW','ROLE','production'), + ('SaleTracking','updateTracking','WRITE','ALLOW','ROLE','production'), + ('SaleTracking','mark','WRITE','ALLOW','ROLE','production'), + ('ExpeditionPallet', '*', 'READ', 'ALLOW', 'ROLE', 'production'), + ('Collection', 'assignCollection', 'WRITE', 'ALLOW', 'ROLE', 'production'), + ('Sale', 'getFromSectorCollection', 'READ', 'ALLOW', 'ROLE', 'production'), + ('Ticket', 'addSaleByCode', 'WRITE', 'ALLOW', 'ROLE', 'production'); \ No newline at end of file diff --git a/loopback/locale/es.json b/loopback/locale/es.json index a1d1360a8..18e191188 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -346,12 +346,9 @@ "You are already using a machine": "Ya estás usando una máquina.", "This worker does not exist": "Este trabajador no existe", "this state does not exist": "Este estado no existe", - "Este estado no existe": "Este estado no existe", "The line could not be marked": "No se ha podido marcar la línea", - "No se ha podido marcar la línea": "No se ha podido marcar la línea", "The sale can not be tracked": "La línea no puede ser rastreada", "Shelving not valid": "Carro no válido", - "Carro no válido": "Carro no válido", "printerNotExists": "No existe la impresora", "There are not picking tickets": "No hay tickets para sacar", "ticketCommercial": "El ticket {{ticket}} del comercial {{salesMan}} está en preparación.(mensaje creado automáticamente)" diff --git a/modules/item/back/methods/item-shelving/makeMulti.js b/modules/item/back/methods/item-shelving/makeMulti.js deleted file mode 100644 index e3a3b1cf5..000000000 --- a/modules/item/back/methods/item-shelving/makeMulti.js +++ /dev/null @@ -1,71 +0,0 @@ -module.exports = Self => { - Self.remoteMethod('makeMulti', { - description: 'Add a record or update it if it already exists.', - accessType: 'WRITE', - accepts: [{ - arg: 'shelvingFk', - type: 'string', - required: true, - }, - { - arg: 'items', - type: ['number'], - required: true, - description: 'array of item foreign keys' - }, - { - arg: 'warehouseFk', - type: 'number', - required: true - }], - - http: { - path: `/makeMulti`, - verb: 'POST' - } - }); - - Self.makeMulti = async(shelvingFk, items, warehouseFk, options) => { - const myOptions = {}; - let tx; - - if (typeof options == 'object') - Object.assign(myOptions, options); - - if (!myOptions.transaction) { - tx = await Self.beginTransaction({}); - myOptions.transaction = tx; - } - - const discardItems = []; - - try { - for (let item of items) { - if (!discardItems.includes(item)) { - let quantity = items.reduce((acc, cur) => { - return acc + (cur === item ? 1 : 0); - }, 0); - discardItems.push(item); - - const [result] = await Self.rawSql('SELECT vn.itemPacking(?, ?) itemPacking', - [item, warehouseFk], myOptions); - let packing; - - if (result) packing = result.itemPacking; - if (!packing) packing = 1; - - quantity = quantity * packing; - - await Self.rawSql('CALL vn.itemShelving_add(?, ?, ?, NULL, NULL, ?, ?)', - [shelvingFk, item, quantity, packing, warehouseFk], myOptions - ); - } - } - - if (tx) await tx.commit(); - } catch (e) { - if (tx) await tx.rollback(); - throw e; - } - }; -}; diff --git a/modules/item/back/methods/item-shelving/return.js b/modules/item/back/methods/item-shelving/return.js index 8e8b4eae2..81047461e 100644 --- a/modules/item/back/methods/item-shelving/return.js +++ b/modules/item/back/methods/item-shelving/return.js @@ -39,13 +39,14 @@ module.exports = Self => { }; let itemShelvings = await models.ItemShelving.find(filterItemShelvings, myOptions); - const [alternatives] = await models.ItemShelving.rawSql('CALL vn.itemShelving_getAlternatives(?)', - [shelvingFk], myOptions - ); if (itemShelvings) { + const [alternatives] = await models.ItemShelving.rawSql('CALL vn.itemShelving_getAlternatives(?)', + [shelvingFk], myOptions + ); return itemShelvings.map(itemShelving => { const item = itemShelving.item(); + const carros = alternatives.filter(alternative => alternative.itemFk == itemShelving.itemFk); return { diff --git a/modules/item/back/methods/item-shelving/specs/makeMulti.spec.js b/modules/item/back/methods/item-shelving/specs/makeMulti.spec.js deleted file mode 100644 index f64a815f2..000000000 --- a/modules/item/back/methods/item-shelving/specs/makeMulti.spec.js +++ /dev/null @@ -1,54 +0,0 @@ -const {models} = require('vn-loopback/server/server'); - -describe('item makeMulti()', () => { - const warehouseFk = 1; - - beforeAll(async() => { - ctx = { - accessToken: {userId: 9}, - req: { - headers: {origin: 'http://localhost'}, - } - }; - }); - - it('should add two new records', async() => { - const shelvingFk = 'ZPP'; - const items = [1, 1, 1, 2]; - const tx = await models.ItemShelving.beginTransaction({}); - const options = {transaction: tx}; - - try { - await models.ItemShelving.makeMulti(shelvingFk, items, warehouseFk, options); - const itemShelvings = await models.ItemShelving.find({where: {shelvingFk}}, options); - - expect(itemShelvings.length).toEqual(2); - await tx.rollback(); - } catch (e) { - await tx.rollback(); - throw e; - } - }); - - it('should update the visible items', async() => { - const shelvingFk = 'GVC'; - const items = [2, 2]; - const tx = await models.ItemShelving.beginTransaction({}); - const options = {transaction: tx}; - try { - const {visible: itemsBefore} = await models.ItemShelving.findOne({ - where: {shelvingFk, itemFk: items[0]} - }, options); - await models.ItemShelving.makeMulti(shelvingFk, items, warehouseFk, options); - const {visible: itemsAfter} = await models.ItemShelving.findOne({ - where: {shelvingFk, itemFk: items[0]} - }, options); - - expect(itemsAfter).toEqual(itemsBefore + 2); - await tx.rollback(); - } catch (e) { - await tx.rollback(); - throw e; - } - }); -}); diff --git a/modules/item/back/methods/item-shelving/specs/return.spec.js b/modules/item/back/methods/item-shelving/specs/return.spec.js index c8acd6ab9..07ddc2168 100644 --- a/modules/item/back/methods/item-shelving/specs/return.spec.js +++ b/modules/item/back/methods/item-shelving/specs/return.spec.js @@ -1,6 +1,6 @@ const {models} = require('vn-loopback/server/server'); -describe('itemShelving return()', () => { +fdescribe('itemShelving return()', () => { beforeAll(async() => { ctx = { req: { @@ -9,15 +9,6 @@ describe('itemShelving return()', () => { }; }); - it('should return a list of items and alternative locations', async() => { - const shelvingFk = 'PCC'; - const itemShelvings = await models.ItemShelving.return(shelvingFk); - - expect(itemShelvings[0].itemFk).toEqual(999997); - expect(itemShelvings[0].quantity).toEqual(10); - expect(itemShelvings[0].carros.length).toEqual(1); - }); - it('should return a list of items without alternatives', async() => { const shelvingFk = 'HEJ'; const itemShelvings = await models.ItemShelving.return(shelvingFk); diff --git a/modules/item/back/models/item-shelving.js b/modules/item/back/models/item-shelving.js index 4eb5374e8..6e63a29b2 100644 --- a/modules/item/back/models/item-shelving.js +++ b/modules/item/back/models/item-shelving.js @@ -1,7 +1,6 @@ module.exports = Self => { require('../methods/item-shelving/deleteItemShelvings')(Self); require('../methods/item-shelving/getInventory')(Self); - require('../methods/item-shelving/makeMulti')(Self); require('../methods/item-shelving/return')(Self); require('../methods/item-shelving/updateFromSale')(Self); }; diff --git a/back/methods/collection/addItem.js b/modules/ticket/back/methods/ticket/addSaleByCode.js similarity index 57% rename from back/methods/collection/addItem.js rename to modules/ticket/back/methods/ticket/addSaleByCode.js index 1317662b4..5c63b465e 100644 --- a/back/methods/collection/addItem.js +++ b/modules/ticket/back/methods/ticket/addSaleByCode.js @@ -1,6 +1,5 @@ -const UserError = require('vn-loopback/util/user-error'); module.exports = Self => { - Self.remoteMethodCtx('addItem', { + Self.remoteMethodCtx('addSaleByCode', { description: 'Add a collection', accessType: 'WRITE', accepts: [ @@ -8,33 +7,26 @@ module.exports = Self => { arg: 'code', type: 'string', required: true - }, - { + }, { arg: 'quantity', type: 'number', required: true - }, - { + }, { arg: 'ticketFk', type: 'number', required: true }, - { - arg: 'warehouseFk', - type: 'number', - required: true - }, + ], http: { - path: `/addItem`, + path: `/addSaleByCode`, verb: 'POST' }, }); - Self.addItem = async(ctx, code, quantity, ticketFk, warehouseFk, options) => { + Self.addSaleByCode = async(ctx, code, quantity, ticketFk, options) => { const models = Self.app.models; const myOptions = {}; - const $t = ctx.req.__; let tx; if (typeof options == 'object') @@ -46,11 +38,8 @@ module.exports = Self => { } try { - const [[item]] = await Self.rawSql('CALL vn.item_getInfo(?,?)', [code, warehouseFk], myOptions); - - if (!item?.available) throw new UserError($t('We do not have availability for the selected item')); - - await models.Ticket.addSale(ctx, ticketFk, item.id, quantity, myOptions); + const [{itemFk}] = await Self.rawSql('SELECT barcodeToItem(?) itemFk', [code], myOptions); + await models.Ticket.addSale(ctx, ticketFk, itemFk, quantity, myOptions); if (tx) await tx.commit(); } catch (e) { diff --git a/back/methods/collection/spec/addItem.spec.js b/modules/ticket/back/methods/ticket/specs/addSaleByCode.spec.js similarity index 60% rename from back/methods/collection/spec/addItem.spec.js rename to modules/ticket/back/methods/ticket/specs/addSaleByCode.spec.js index 199aae588..ce3a5b3ad 100644 --- a/back/methods/collection/spec/addItem.spec.js +++ b/modules/ticket/back/methods/ticket/specs/addSaleByCode.spec.js @@ -1,7 +1,7 @@ const {models} = require('vn-loopback/server/server'); const LoopBackContext = require('loopback-context'); -describe('collection addItem()', () => { +describe('Ticket addSaleByCode()', () => { const quantity = 3; const ticketFk = 24; const warehouseFk = 1; @@ -26,7 +26,7 @@ describe('collection addItem()', () => { const code = '1111111111'; const salesBefore = await models.Sale.find(null, options); - await models.Collection.addItem(activeCtx, code, quantity, ticketFk, warehouseFk, options); + await models.Ticket.addSaleByCode(activeCtx, code, quantity, ticketFk, warehouseFk, options); const salesAfter = await models.Sale.find(null, options); expect(salesAfter.length).toEqual(salesBefore.length + 1); @@ -36,21 +36,4 @@ describe('collection addItem()', () => { throw e; } }); - - it('should throw an error when the item is not available', async() => { - const code = '00000000000'; - const tx = await models.Sale.beginTransaction({}); - - try { - const options = {transaction: tx}; - - await models.Collection.addItem(activeCtx, code, quantity, ticketFk, warehouseFk, options); - await tx.rollback(); - } catch (e) { - await tx.rollback(); - const error = e; - - expect(error.message).toEqual('We do not have availability for the selected item'); - } - }); }); diff --git a/modules/ticket/back/models/ticket.js b/modules/ticket/back/models/ticket.js index 1930765fb..51a8372e3 100644 --- a/modules/ticket/back/models/ticket.js +++ b/modules/ticket/back/models/ticket.js @@ -1,4 +1,5 @@ module.exports = Self => { require('./ticket-methods')(Self); require('../methods/ticket/state')(Self); + require('../methods/ticket/addSaleByCode')(Self); }; From 2a6abffef938d77f975498aa475ec7a2f03f2d27 Mon Sep 17 00:00:00 2001 From: jorgep Date: Tue, 30 Jan 2024 16:07:33 +0100 Subject: [PATCH 079/173] fix: refs #6276 fix errors & refactor --- back/methods/collection/assignCollection.js | 3 +-- .../mobile-app-version-control/getVersion.js | 6 +++--- loopback/locale/en.json | 2 +- loopback/locale/es.json | 2 +- modules/item/back/methods/item/card.js | 1 - modules/ticket/back/methods/sale-tracking/mark.js | 4 ++-- .../back/methods/sale-tracking/specs/mark.spec.js | 2 +- .../back/methods/ticket/specs/setDeleted.spec.js | 13 ++++++++----- modules/ticket/back/models/expeditionPallet.json | 3 --- 9 files changed, 17 insertions(+), 19 deletions(-) diff --git a/back/methods/collection/assignCollection.js b/back/methods/collection/assignCollection.js index c4671e747..67a10df51 100644 --- a/back/methods/collection/assignCollection.js +++ b/back/methods/collection/assignCollection.js @@ -16,7 +16,6 @@ module.exports = Self => { Self.assignCollection = async(ctx, options) => { const userId = ctx.req.accessToken.userId; const myOptions = {userId}; - const $t = ctx.req.__; if (typeof options == 'object') Object.assign(myOptions, options); @@ -26,7 +25,7 @@ module.exports = Self => { const [assignedCollection] = await Self.rawSql('SELECT @vCollectionFk'); const {'@vCollectionFk': collectionFk} = assignedCollection; - if (!collectionFk) throw new UserError($t('There are not picking tickets')); + if (!collectionFk) throw new UserError('There are not picking tickets'); await Self.rawSql('CALL vn.collection_printSticker(?, NULL)', [collectionFk], myOptions); return collectionFk; diff --git a/back/methods/mobile-app-version-control/getVersion.js b/back/methods/mobile-app-version-control/getVersion.js index 510fd6c4a..38f4acc54 100644 --- a/back/methods/mobile-app-version-control/getVersion.js +++ b/back/methods/mobile-app-version-control/getVersion.js @@ -29,9 +29,9 @@ module.exports = Self => { let fields = ['id', 'appName']; if (workerFk) - fields = [...fields, ...['isVersionBetaCritical', 'versionBeta', 'urlBeta']]; + fields = fields.concat(['isVersionBetaCritical', 'versionBeta', 'urlBeta']); else - fields = [...fields, ...['isVersionCritical', 'version', 'urlProduction']]; + fields = fields.concat(['isVersionCritical', 'version', 'urlProduction']); const filter = { where: { @@ -40,6 +40,6 @@ module.exports = Self => { fields, }; - return await Self.findOne(filter); + return Self.findOne(filter); }; }; diff --git a/loopback/locale/en.json b/loopback/locale/en.json index 5ff31a22f..fc15d0d0e 100644 --- a/loopback/locale/en.json +++ b/loopback/locale/en.json @@ -212,7 +212,7 @@ "This worker does not exist": "This worker does not exist", "this state does not exist": "This state does not exist", "The line could not be marked": "The line could not be marked", - "The sale can not be tracked": "The sale can not be tracked", + "The sale cannot be tracked": "The sale cannot be tracked", "Shelving not valid": "Shelving not valid", "printerNotExists": "The printer does not exist", "There are not picking tickets": "There are not picking tickets", diff --git a/loopback/locale/es.json b/loopback/locale/es.json index 18e191188..f9e41d7f8 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -347,7 +347,7 @@ "This worker does not exist": "Este trabajador no existe", "this state does not exist": "Este estado no existe", "The line could not be marked": "No se ha podido marcar la línea", - "The sale can not be tracked": "La línea no puede ser rastreada", + "The sale cannot be tracked": "La línea no puede ser rastreada", "Shelving not valid": "Carro no válido", "printerNotExists": "No existe la impresora", "There are not picking tickets": "No hay tickets para sacar", diff --git a/modules/item/back/methods/item/card.js b/modules/item/back/methods/item/card.js index bc59c8bff..5d086ce88 100644 --- a/modules/item/back/methods/item/card.js +++ b/modules/item/back/methods/item/card.js @@ -36,7 +36,6 @@ module.exports = Self => { fields: ['code'], where: { itemFk: realIdItem - } }); diff --git a/modules/ticket/back/methods/sale-tracking/mark.js b/modules/ticket/back/methods/sale-tracking/mark.js index dc288ba93..dd6cbc781 100644 --- a/modules/ticket/back/methods/sale-tracking/mark.js +++ b/modules/ticket/back/methods/sale-tracking/mark.js @@ -90,12 +90,12 @@ module.exports = Self => { const buy = await models.Buy.findById(buyFk, myOptions); if (buy.itemOriginalFk) await models.SaleBuy.create({saleFk, buyFk}, myOptions); } catch (e) { - throw new UserError($t('The sale can not be tracked')); + throw new UserError($t('The sale cannot be tracked')); } if (tx) await tx.commit(); } catch (e) { - if (e.message == $t('The sale can not be tracked')) { + if (e.message == $t('The sale cannot be tracked')) { if (tx) tx.commit(); throw e; } diff --git a/modules/ticket/back/methods/sale-tracking/specs/mark.spec.js b/modules/ticket/back/methods/sale-tracking/specs/mark.spec.js index d981aeea5..723f5fb78 100644 --- a/modules/ticket/back/methods/sale-tracking/specs/mark.spec.js +++ b/modules/ticket/back/methods/sale-tracking/specs/mark.spec.js @@ -79,7 +79,7 @@ describe('saleTracking mark()', () => { } catch (e) { const error = e; - expect(error.message).toEqual('The sale can not be tracked'); + expect(error.message).toEqual('The sale cannot be tracked'); await tx.rollback(); } }); diff --git a/modules/ticket/back/methods/ticket/specs/setDeleted.spec.js b/modules/ticket/back/methods/ticket/specs/setDeleted.spec.js index f3e35972f..520a9e403 100644 --- a/modules/ticket/back/methods/ticket/specs/setDeleted.spec.js +++ b/modules/ticket/back/methods/ticket/specs/setDeleted.spec.js @@ -50,14 +50,17 @@ describe('ticket setDeleted()', () => { return value; }; const ticketId = 23; - - await models.Ticket.setDeleted(ctx, ticketId, options); - - const [sectorCollection] = await models.Ticket.rawSql( + const [sectorCollectionBefore] = await models.Ticket.rawSql( `SELECT COUNT(*) numberRows FROM vn.sectorCollection`, [], options); - expect(sectorCollection.numberRows).toEqual(1); + await models.Ticket.setDeleted(ctx, ticketId, options); + + const [sectorCollectionAfter] = await models.Ticket.rawSql( + `SELECT COUNT(*) numberRows + FROM vn.sectorCollection`, [], options); + + expect(sectorCollectionAfter.numberRows).toEqual(sectorCollectionBefore.numberRows - 1); await tx.rollback(); } catch (e) { diff --git a/modules/ticket/back/models/expeditionPallet.json b/modules/ticket/back/models/expeditionPallet.json index 7cb4e1e6d..cab3af6ec 100644 --- a/modules/ticket/back/models/expeditionPallet.json +++ b/modules/ticket/back/models/expeditionPallet.json @@ -12,9 +12,6 @@ "id": true, "description": "Identifier" }, - "truckFk": { - "type": "number" - }, "built": { "type": "date" }, From 8f5a5d9cba80966e5bd4f408a91c63fe7ffbacbe Mon Sep 17 00:00:00 2001 From: jorgep Date: Wed, 31 Jan 2024 13:11:15 +0100 Subject: [PATCH 080/173] fix: refs #6703 tests & backs --- .../getSalesFromTicketOrCollection.js | 14 ++--- .../10837-whiteOrchid/00-firstScript.sql | 18 ------ loopback/locale/en.json | 2 - loopback/locale/es.json | 5 +- .../methods/expedition-pallet/getPallet.js | 60 ------------------- .../expedition-pallet/specs/getPallet.spec.js | 32 ---------- .../back/methods/sale-tracking/delete.js | 6 -- .../ticket/back/methods/sale-tracking/mark.js | 7 +-- .../sale-tracking/specs/delete.spec.js | 3 +- .../methods/sale-tracking/updateTracking.js | 3 +- .../ticket/back/models/expeditionPallet.js | 3 - modules/ticket/back/models/sale-buy.json | 3 +- modules/ticket/back/models/sale.js | 2 +- modules/worker/back/methods/operator/add.js | 10 ++-- 14 files changed, 19 insertions(+), 149 deletions(-) delete mode 100644 db/versions/10837-whiteOrchid/00-firstScript.sql delete mode 100644 modules/ticket/back/methods/expedition-pallet/getPallet.js delete mode 100644 modules/ticket/back/methods/expedition-pallet/specs/getPallet.spec.js delete mode 100644 modules/ticket/back/models/expeditionPallet.js diff --git a/back/methods/collection/getSalesFromTicketOrCollection.js b/back/methods/collection/getSalesFromTicketOrCollection.js index 09ccbafdc..3c27a0be6 100644 --- a/back/methods/collection/getSalesFromTicketOrCollection.js +++ b/back/methods/collection/getSalesFromTicketOrCollection.js @@ -154,15 +154,13 @@ module.exports = Self => { } async function setState(source, id, options) { - let state; - if (source == 'PRECHECKER') state = 'PREVIOUS_CONTROL'; - else if (source == 'CHECKER') state = 'ON_CHECKING'; - - if (state) { + const states = { + 'PRECHECKER': 'PREVIOUS_CONTROL', + 'CHECKER': 'ON_CHECKING' + }; + if (states[source]) { await Self.rawSql( - 'CALL vn.ticketStateToday_setState(?,?)', - [id, state], - options + 'CALL vn.ticketStateToday_setState(?,?)', [id, states[source]], options ); } } diff --git a/db/versions/10837-whiteOrchid/00-firstScript.sql b/db/versions/10837-whiteOrchid/00-firstScript.sql deleted file mode 100644 index eef5faa80..000000000 --- a/db/versions/10837-whiteOrchid/00-firstScript.sql +++ /dev/null @@ -1,18 +0,0 @@ --- Place your SQL code here -INSERT INTO `salix`.`ACL` (model, property, accessType, permission, principalType, principalId) - VALUES - ('Collection', 'assignCollection', 'WRITE', 'ALLOW', 'ROLE', 'employee'), - ('ExpeditionPallet', 'getPallet', 'READ', 'ALLOW', 'ROLE', 'employee'), - ('MachineWorker','updateInTime','WRITE','ALLOW','ROLE','employee'), - ('MobileAppVersionControl','getVersion','READ','ALLOW','ROLE','employee'), - ('SaleTracking','deleteTracking','WRITE','ALLOW','ROLE','employee'), - ('SaleTracking','updateTracking','WRITE','ALLOW','ROLE','employee'), - ('SaleTracking','mark','WRITE','ALLOW','ROLE','employee'), - ('ItemBarcode','deleteByItemAndCode','WRITE','ALLOW','ROLE','employee'), - ('Collection','addItem','WRITE','ALLOW','ROLE','employee'), - ('ExpeditionPallet', '*', 'READ', 'ALLOW', 'ROLE', 'production'), - ('MobileAppVersionControl', '*', 'READ', 'ALLOW', 'ROLE', 'production'), - ('Collection', 'assignCollection', 'WRITE', 'ALLOW', 'ROLE', 'production'), - ('Sale', 'getFromSectorCollection', 'READ', 'ALLOW', 'ROLE', 'employee'), - ('Collection', 'addItem', 'WRITE', 'ALLOW', 'ROLE', 'production'); - \ No newline at end of file diff --git a/loopback/locale/en.json b/loopback/locale/en.json index fc15d0d0e..20bb3eb07 100644 --- a/loopback/locale/en.json +++ b/loopback/locale/en.json @@ -206,10 +206,8 @@ "Incorrect pin": "Incorrect pin.", "This machine is already in use.": "This machine is already in use.", "the plate does not exist": "The plate {{plate}} does not exist", - "This pallet does not exist": "This pallet does not exist", "We do not have availability for the selected item": "We do not have availability for the selected item", "You are already using a machine": "You are already using a machine", - "This worker does not exist": "This worker does not exist", "this state does not exist": "This state does not exist", "The line could not be marked": "The line could not be marked", "The sale cannot be tracked": "The sale cannot be tracked", diff --git a/loopback/locale/es.json b/loopback/locale/es.json index f9e41d7f8..65ff7e951 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -341,15 +341,14 @@ "There is no zone for these parameters 999999": "There is no zone for these parameters 999999", "This machine is already in use.": "Esta máquina ya está en uso.", "the plate does not exist": "La máquina {{plate}} no existe", - "This pallet does not exist": "Este palet no existe", "We do not have availability for the selected item": "No tenemos disponible el item seleccionado", "You are already using a machine": "Ya estás usando una máquina.", - "This worker does not exist": "Este trabajador no existe", "this state does not exist": "Este estado no existe", "The line could not be marked": "No se ha podido marcar la línea", "The sale cannot be tracked": "La línea no puede ser rastreada", "Shelving not valid": "Carro no válido", "printerNotExists": "No existe la impresora", "There are not picking tickets": "No hay tickets para sacar", - "ticketCommercial": "El ticket {{ticket}} del comercial {{salesMan}} está en preparación.(mensaje creado automáticamente)" + "ticketCommercial": "El ticket {{ticket}} del comercial {{salesMan}} está en preparación.(mensaje creado automáticamente)", + "Este trabajador no existe": "Este trabajador no existe" } \ No newline at end of file diff --git a/modules/ticket/back/methods/expedition-pallet/getPallet.js b/modules/ticket/back/methods/expedition-pallet/getPallet.js deleted file mode 100644 index 340dc02b0..000000000 --- a/modules/ticket/back/methods/expedition-pallet/getPallet.js +++ /dev/null @@ -1,60 +0,0 @@ - -const UserError = require('vn-loopback/util/user-error'); -module.exports = Self => { - Self.remoteMethodCtx('getPallet', { - description: 'Get pallet', - accessType: 'READ', - accepts: [ - { - arg: 'expeditionFk', - type: 'integer', - }, - ], - http: { - path: `/getPallet`, - verb: 'GET' - }, - returns: { - type: 'object', - root: true - }, - }); - - Self.getPallet = async(ctx, expeditionFk, options) => { - const myOptions = {}; - const $t = ctx.req.__; - - if (typeof options == 'object') - Object.assign(myOptions, options); - - try { - const pallet = await Self.findOne({ - fields: ['truckFk'], - where: { - id: expeditionFk - }, - include: [ - { - relation: 'expeditionTruck', - scope: { - fields: ['eta', 'description'] - } - } - ], - }, myOptions); - - if (pallet) { - const truck = pallet.expeditionTruck(); - return { - truckFk: pallet.truckFk, - eta: truck.eta, - description: truck.description - }; - } - - throw new UserError($t('This pallet does not exist')); - } catch (e) { - return {message: e.message}; - } - }; -}; diff --git a/modules/ticket/back/methods/expedition-pallet/specs/getPallet.spec.js b/modules/ticket/back/methods/expedition-pallet/specs/getPallet.spec.js deleted file mode 100644 index 497fe04bb..000000000 --- a/modules/ticket/back/methods/expedition-pallet/specs/getPallet.spec.js +++ /dev/null @@ -1,32 +0,0 @@ -const {models} = require('vn-loopback/server/server'); - -describe('expeditonPallet getPallet()', () => { - beforeAll(async() => { - ctx = { - req: { - headers: {origin: 'http://localhost'}, - __: value => value - } - }; - }); - - it('should obtain the pallet data', async() => { - const palletId = 1; - const pallet = await models.ExpeditionPallet.getPallet(ctx, palletId); - - expect(pallet).toBeDefined(); - expect(pallet.truckFk).toEqual(1); - expect(pallet.description).toEqual('BEST TRUCK IN FLEET'); - }); - - it('should throw an error when the pallet does not exist', async() => { - const palletId = 600; - try { - await models.ExpeditionPallet.getPallet(ctx, palletId); - } catch (e) { - const error = e; - - expect(error.message).toEqual('This pallet does not exist'); - } - }); -}); diff --git a/modules/ticket/back/methods/sale-tracking/delete.js b/modules/ticket/back/methods/sale-tracking/delete.js index 5efd267dc..859f26354 100644 --- a/modules/ticket/back/methods/sale-tracking/delete.js +++ b/modules/ticket/back/methods/sale-tracking/delete.js @@ -14,10 +14,6 @@ module.exports = Self => { type: ['string'] }, ], - returns: { - type: 'boolean', - root: true - }, http: { path: `/delete`, verb: 'POST' @@ -63,8 +59,6 @@ module.exports = Self => { await saleTracking.destroy(myOptions); if (tx) await tx.commit(); - - return true; } catch (e) { if (tx) await tx.rollback(); throw e; diff --git a/modules/ticket/back/methods/sale-tracking/mark.js b/modules/ticket/back/methods/sale-tracking/mark.js index dd6cbc781..71fdfa048 100644 --- a/modules/ticket/back/methods/sale-tracking/mark.js +++ b/modules/ticket/back/methods/sale-tracking/mark.js @@ -54,7 +54,6 @@ module.exports = Self => { Self.mark = async(ctx, saleFk, originalQuantity, code, isChecked, buyFk, isScanned, quantity, itemShelvingFk, options) => { const userId = ctx.req.accessToken.userId; const models = Self.app.models; - const $t = ctx.req.__; const myOptions = {}; let tx; @@ -90,18 +89,18 @@ module.exports = Self => { const buy = await models.Buy.findById(buyFk, myOptions); if (buy.itemOriginalFk) await models.SaleBuy.create({saleFk, buyFk}, myOptions); } catch (e) { - throw new UserError($t('The sale cannot be tracked')); + throw new UserError('The sale cannot be tracked'); } if (tx) await tx.commit(); } catch (e) { - if (e.message == $t('The sale cannot be tracked')) { + if (e.message == 'The sale cannot be tracked') { if (tx) tx.commit(); throw e; } if (tx) await tx.rollback(); - throw new UserError($t('The line could not be marked')); + throw new UserError('The line could not be marked'); } }; }; diff --git a/modules/ticket/back/methods/sale-tracking/specs/delete.spec.js b/modules/ticket/back/methods/sale-tracking/specs/delete.spec.js index e23c12a61..bb66db4f3 100644 --- a/modules/ticket/back/methods/sale-tracking/specs/delete.spec.js +++ b/modules/ticket/back/methods/sale-tracking/specs/delete.spec.js @@ -12,12 +12,11 @@ describe('sale-tracking delete()', () => { const saleFk = 1; const stateCode = ['PREPARED']; - const result = await models.SaleTracking.delete(saleFk, stateCode, options); + await models.SaleTracking.delete(saleFk, stateCode, options); const itemShelvingsAfter = await models.ItemShelvingSale.find(null, options); const saleTrackingsAfter = await models.SaleTracking.find(null, options); - expect(result).toEqual(true); expect(saleTrackingsAfter.length).toBeLessThan(saleTrackingsBefore.length); expect(itemShelvingsAfter.length).toBeLessThan(itemShelvingsBefore.length); diff --git a/modules/ticket/back/methods/sale-tracking/updateTracking.js b/modules/ticket/back/methods/sale-tracking/updateTracking.js index 22ff141d8..2ce8ddaba 100644 --- a/modules/ticket/back/methods/sale-tracking/updateTracking.js +++ b/modules/ticket/back/methods/sale-tracking/updateTracking.js @@ -43,7 +43,6 @@ module.exports = Self => { Self.updateTracking = async(ctx, saleFk, originalQuantity, code, isChecked, buyFk, isScanned = null, options) => { const userId = ctx.req.accessToken.userId; const models = Self.app.models; - const $t = ctx.req.__; const myOptions = {}; let tx; @@ -60,7 +59,7 @@ module.exports = Self => { where: {code}, }, myOptions); - if (!state) throw new UserError($t('this state does not exist')); + if (!state) throw new UserError('this state does not exist'); const uniqueAttributes = { saleFk, workerFk: userId, diff --git a/modules/ticket/back/models/expeditionPallet.js b/modules/ticket/back/models/expeditionPallet.js deleted file mode 100644 index f41ad7712..000000000 --- a/modules/ticket/back/models/expeditionPallet.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = function(Self) { - require('../methods/expedition-pallet/getPallet')(Self); -}; diff --git a/modules/ticket/back/models/sale-buy.json b/modules/ticket/back/models/sale-buy.json index 60ff2bef4..a431f1224 100644 --- a/modules/ticket/back/models/sale-buy.json +++ b/modules/ticket/back/models/sale-buy.json @@ -9,8 +9,7 @@ "properties": { "saleFk": { "id": true, - "type": "number", - "forceId": false + "type": "number" }, "buyFk": { "type": "number" diff --git a/modules/ticket/back/models/sale.js b/modules/ticket/back/models/sale.js index 770fb3c5b..f20b00976 100644 --- a/modules/ticket/back/models/sale.js +++ b/modules/ticket/back/models/sale.js @@ -72,7 +72,7 @@ module.exports = Self => { if (item.family == 'EMB') return; const isInPreparing = await models.ACL.checkAccessAcl(ctx, 'Sale', 'isInPreparing', '*'); - if (!ctx.isNEwInstance && isInPreparing) return; + if (!ctx.isNewInstance && isInPreparing) return; await models.Sale.rawSql(`CALL catalog_calcFromItem(?,?,?,?)`, [ ticket.landed, diff --git a/modules/worker/back/methods/operator/add.js b/modules/worker/back/methods/operator/add.js index d330bc25b..150380513 100644 --- a/modules/worker/back/methods/operator/add.js +++ b/modules/worker/back/methods/operator/add.js @@ -1,4 +1,3 @@ -const UserError = require('vn-loopback/util/user-error'); module.exports = Self => { Self.remoteMethodCtx('add', { description: 'Add a new operator', @@ -12,7 +11,6 @@ module.exports = Self => { Self.add = async(ctx, options) => { const userId = ctx.req.accessToken.userId; const myOptions = {}; - const $t = ctx.req.__; let tx; if (typeof options == 'object') @@ -24,13 +22,13 @@ module.exports = Self => { } try { - await Self.create({ - workerFk: userId - }); + const isOperator = await Self.findById(user, myOptions); + if (!isOperator) await Self.create({workerFk: userId}, myOptions); + if (tx) await tx.commit(); } catch (e) { if (tx) await tx.rollback(); - throw new UserError($t('This worker does not exist')); + throw e; } }; }; From ec7a88c6dd6e4ea644c2cf70b791225676dd02bc Mon Sep 17 00:00:00 2001 From: jorgep Date: Thu, 1 Feb 2024 12:56:11 +0100 Subject: [PATCH 081/173] fix: refs #6703 tests, backs & fixtures --- db/dump/fixtures.before.sql | 175 +++++++++--------- loopback/server/connectors/vn-mysql.js | 8 +- .../methods/sale-tracking/updateTracking.js | 1 + modules/ticket/back/models/sale-buy.json | 3 + modules/ticket/back/models/specs/sale.spec.js | 21 ++- modules/worker/back/methods/operator/add.js | 17 +- 6 files changed, 117 insertions(+), 108 deletions(-) diff --git a/db/dump/fixtures.before.sql b/db/dump/fixtures.before.sql index 257e8c5cf..0d815d23a 100644 --- a/db/dump/fixtures.before.sql +++ b/db/dump/fixtures.before.sql @@ -3094,9 +3094,7 @@ INSERT IGNORE INTO vn.sector SET id = 9991, description = 'NormalSector', warehouseFk = 999, - isPreviousPreparedByPacking = FALSE, code = 'NS', - isPreviousPrepared = FALSE, isPackagingArea = FALSE, sonFk = NULL, isMain = TRUE, @@ -3106,9 +3104,7 @@ INSERT IGNORE INTO vn.sector SET id = 9992, description = 'PreviousSector', warehouseFk = 999, - isPreviousPreparedByPacking = FALSE, code = 'PS', - isPreviousPrepared = TRUE, isPackagingArea = FALSE, sonFk = NULL, isMain = TRUE, @@ -3118,41 +3114,38 @@ INSERT IGNORE INTO vn.sector SET id = 9993, description = 'MezaninneSector', warehouseFk = 999, - isPreviousPreparedByPacking = TRUE, code = 'MS', - isPreviousPrepared = FALSE, isPackagingArea = FALSE, sonFk = 9991, isMain = TRUE, itemPackingTypeFk = NULL; -REPLACE vn.parking SET id = 9991011, sectorFk = 9991, code = 'A-01-1', pickingOrder = 1; -REPLACE vn.parking SET id = 9991012, sectorFk = 9991, code = 'A-02-2', pickingOrder = 2; -REPLACE vn.parking SET id = 9991013, sectorFk = 9991, code = 'A-03-3', pickingOrder = 3; -REPLACE vn.parking SET id = 9991014, sectorFk = 9991, code = 'A-04-4', pickingOrder = 4; -REPLACE vn.parking SET id = 9991015, sectorFk = 9991, code = 'A-05-5', pickingOrder = 5; -REPLACE vn.parking SET id = 9992011, sectorFk = 9992, code = 'P-01-1', pickingOrder = 6; -REPLACE vn.parking SET id = 9992012, sectorFk = 9992, code = 'P-02-2', pickingOrder = 7; -REPLACE vn.parking SET id = 9992013, sectorFk = 9992, code = 'P-03-3', pickingOrder = 8; +INSERT INTO vn.parking (id,sectorFk, code, pickingOrder) + VALUES (4,9991, 'A-01-1', 1), + (5,9991, 'A-02-2', 2), + (6,9991, 'A-03-3', 3), + (7,9991, 'A-04-4', 4), + (8,9991, 'A-05-5', 5), + (9,9992, 'P-01-1', 6), + (10,9992, 'P-02-2', 7), + (11,9992, 'P-03-3', 8), + (12,9993, 'M-01-1', 9), + (13,9993, 'M-02-2', 10), + (14,9993, 'M-03-3', 11); -REPLACE vn.parking SET id = 9993011, sectorFk = 9993, code = 'M-01-1', pickingOrder = 9; -REPLACE vn.parking SET id = 9993012, sectorFk = 9993, code = 'M-02-2', pickingOrder = 10; -REPLACE vn.parking SET id = 9993013, sectorFk = 9993, code = 'M-03-3', pickingOrder = 11; - -REPLACE vn.shelving SET code = 'NAA', parkingFk = 9991011, priority = 1; -REPLACE vn.shelving SET code = 'NBB', parkingFk = 9991012, priority = 1; -REPLACE vn.shelving SET code = 'NCC', parkingFk = 9991013, priority = 1; -REPLACE vn.shelving SET code = 'NDD', parkingFk = 9991014, priority = 1; -REPLACE vn.shelving SET code = 'NEE', parkingFk = 9991015, priority = 1; - -REPLACE vn.shelving SET code = 'PAA', parkingFk = 9992011, priority = 1; -REPLACE vn.shelving SET code = 'PBB', parkingFk = 9992012, priority = 1; -REPLACE vn.shelving SET code = 'PCC', parkingFk = 9992013, priority = 1; - -REPLACE vn.shelving SET code = 'MAA', parkingFk = 9993011, priority = 1; -REPLACE vn.shelving SET code = 'MBB', parkingFk = 9993012, priority = 1; -REPLACE vn.shelving SET code = 'MCC', parkingFk = 9993013, priority = 1; +INSERT INTO vn.shelving (code, parkingFk, priority) + VALUES ('NAA', 4, 1), + ('NBB', 5, 1), + ('NCC', 6, 1), + ('NDD', 7, 1), + ('NEE', 8, 1), + ('PAA', 9, 1), + ('PBB', 10, 1), + ('PCC', 11, 1), + ('MAA', 12, 1), + ('MBB', 13, 1), + ('MCC', 14, 1); INSERT IGNORE INTO vn.itemType SET id = 999, @@ -3172,10 +3165,9 @@ INSERT IGNORE INTO vn.travel landed = CURDATE(), warehouseInFk = 999, warehouseOutFk = 1, - isReceived = TRUE, - agencyFk = 1; + isReceived = TRUE; -REPLACE vn.entry +INSERT INTO vn.entry SET id = 999, supplierFk = 791, isConfirmed = TRUE, @@ -3183,7 +3175,7 @@ REPLACE vn.entry travelFk = 99, companyFk = 442; -REPLACE vn.ticket +INSERT INTO vn.ticket SET id = 999999, clientFk = 2, warehouseFk = 999, @@ -3194,7 +3186,7 @@ REPLACE vn.ticket agencyModeFk = 10, landed = CURDATE(); -REPLACE vn.collection +INSERT INTO vn.collection SET id = 10101010, workerFk = 9; @@ -3203,7 +3195,7 @@ INSERT IGNORE INTO vn.ticketCollection ticketFk = 999999, collectionFk = 10101010; -REPLACE vn.item +INSERT INTO vn.item SET id = 999991, name = 'Palito para pinchos', `size` = 25, @@ -3216,7 +3208,7 @@ REPLACE vn.item weightByPiece = 6, intrastatFk = 44219999; -REPLACE vn.buy +INSERT INTO vn.buy SET id = 9999991, entryFk = 999, itemFk = 999991, @@ -3233,7 +3225,7 @@ REPLACE vn.buy minPrice = 1, weight = 50; -REPLACE vn.sale +INSERT INTO vn.sale SET id = 99991, itemFk = 999991, ticketFk = 999999, @@ -3242,7 +3234,7 @@ REPLACE vn.sale price = 1, discount = 0; -REPLACE vn.item +INSERT INTO vn.item SET id = 999992, name = 'Madera verde', `size` = 10, @@ -3255,7 +3247,7 @@ REPLACE vn.item weightByPiece = 50, intrastatFk = 44219999; -REPLACE vn.buy +INSERT INTO vn.buy SET id = 9999992, entryFk = 999, itemFk = 999992, @@ -3272,7 +3264,7 @@ REPLACE vn.buy minPrice = 1, weight = 25; -REPLACE vn.sale +INSERT INTO vn.sale SET id = 99992, itemFk = 999992, ticketFk = 999999, @@ -3281,7 +3273,7 @@ REPLACE vn.sale price = 1, discount = 0; -REPLACE vn.item +INSERT INTO vn.item SET id = 999993, name = 'Madera Roja/Morada', `size` = 12, @@ -3294,7 +3286,7 @@ REPLACE vn.item weightByPiece = 35, intrastatFk = 44219999; -REPLACE vn.buy +INSERT INTO vn.buy SET id = 9999993, entryFk = 999, itemFk = 999993, @@ -3311,7 +3303,7 @@ REPLACE vn.buy minPrice = 1, weight = 25; -REPLACE vn.itemShelving +INSERT INTO vn.itemShelving SET id = 9931, itemFk = 999993, shelvingFk = 'NCC', @@ -3319,7 +3311,7 @@ REPLACE vn.itemShelving `grouping` = 5, packing = 10; -REPLACE vn.sale +INSERT INTO vn.sale SET id = 99993, itemFk = 999993, ticketFk = 999999, @@ -3328,7 +3320,7 @@ REPLACE vn.sale price = 1, discount = 0; -REPLACE vn.item +INSERT INTO vn.item SET id = 999994, name = 'Madera Naranja', `size` = 18, @@ -3341,7 +3333,7 @@ REPLACE vn.item weightByPiece = 160, intrastatFk = 44219999; -REPLACE vn.buy +INSERT INTO vn.buy SET id = 9999994, entryFk = 999, itemFk = 999994, @@ -3358,7 +3350,7 @@ REPLACE vn.buy minPrice = 1, weight = 25; -REPLACE vn.sale +INSERT INTO vn.sale SET id = 99994, itemFk = 999994, ticketFk = 999999, @@ -3367,7 +3359,7 @@ REPLACE vn.sale price = 1, discount = 0; -REPLACE vn.item +INSERT INTO vn.item SET id = 999995, name = 'Madera Amarilla', `size` = 11, @@ -3380,7 +3372,7 @@ REPLACE vn.item weightByPiece = 78, intrastatFk = 44219999; -REPLACE vn.buy +INSERT INTO vn.buy SET id = 9999995, entryFk = 999, itemFk = 999995, @@ -3397,7 +3389,7 @@ REPLACE vn.buy minPrice = 1, weight = 35; -REPLACE vn.sale +INSERT INTO vn.sale SET id = 99995, itemFk = 999995, ticketFk = 999999, @@ -3407,7 +3399,7 @@ REPLACE vn.sale discount = 0; -- Palito naranja -REPLACE vn.item +INSERT INTO vn.item SET id = 999998, name = 'Palito naranja', `size` = 11, @@ -3420,7 +3412,7 @@ REPLACE vn.item weightByPiece = 78, intrastatFk = 44219999; -REPLACE vn.buy +INSERT INTO vn.buy SET id = 9999998, entryFk = 999, itemFk = 999998, @@ -3437,7 +3429,7 @@ REPLACE vn.buy minPrice = 1, weight = 35; -REPLACE vn.sale +INSERT INTO vn.sale SET id = 99998, itemFk = 999998, ticketFk = 999999, @@ -3447,7 +3439,7 @@ REPLACE vn.sale discount = 0; -- Palito amarillo -REPLACE vn.item +INSERT INTO vn.item SET id = 999999, name = 'Palito amarillo', `size` = 11, @@ -3460,7 +3452,7 @@ REPLACE vn.item weightByPiece = 78, intrastatFk = 44219999; -REPLACE vn.buy +INSERT INTO vn.buy SET id = 9999999, entryFk = 999, itemFk = 999999, @@ -3477,7 +3469,7 @@ REPLACE vn.buy minPrice = 1, weight = 35; -REPLACE vn.sale +INSERT INTO vn.sale SET id = 99999, itemFk = 999999, ticketFk = 999999, @@ -3487,7 +3479,7 @@ REPLACE vn.sale discount = 0; -- Palito azul -REPLACE vn.item +INSERT INTO vn.item SET id = 1000000, name = 'Palito azul', `size` = 10, @@ -3500,7 +3492,7 @@ REPLACE vn.item weightByPiece = 78, intrastatFk = 44219999; -REPLACE vn.buy +INSERT INTO vn.buy SET id = 10000000, entryFk = 999, itemFk = 1000000, @@ -3517,7 +3509,7 @@ REPLACE vn.buy minPrice = 1, weight = 35; -REPLACE vn.sale +INSERT INTO vn.sale SET id = 100000, itemFk = 1000000, ticketFk = 999999, @@ -3527,7 +3519,7 @@ REPLACE vn.sale discount = 0; -- Palito rojo -REPLACE vn.item +INSERT INTO vn.item SET id = 1000001, name = 'Palito rojo', `size` = 10, @@ -3540,7 +3532,7 @@ REPLACE vn.item weightByPiece = 78, intrastatFk = 44219999; -REPLACE vn.buy +INSERT INTO vn.buy SET id = 10000001, entryFk = 999, itemFk = 1000001, @@ -3558,7 +3550,7 @@ REPLACE vn.buy weight = 35; -REPLACE vn.sale +INSERT INTO vn.sale SET id = 100001, itemFk = 1000001, ticketFk = 999999, @@ -3581,7 +3573,7 @@ INSERT IGNORE INTO vn.item weightByPiece = 20, intrastatFk = 44219999; -REPLACE vn.buy +INSERT vn.buy SET id = 9999996, entryFk = 999, itemFk = 999996, @@ -3598,7 +3590,7 @@ REPLACE vn.buy minPrice = 7, weight = 80; -REPLACE vn.sale +INSERT vn.sale SET id = 99996, itemFk = 999996, ticketFk = 999999, @@ -3621,7 +3613,7 @@ INSERT IGNORE INTO vn.item weightByPiece = 20, intrastatFk = 44219999; -REPLACE vn.buy +INSERT vn.buy SET id = 9999997, entryFk = 999, itemFk = 999997, @@ -3638,7 +3630,7 @@ REPLACE vn.buy minPrice = 7, weight = 80; -REPLACE vn.sale +INSERT vn.sale SET id = 99997, itemFk = 999997, ticketFk = 999999, @@ -3655,25 +3647,25 @@ DELETE ish.* FROM vn.itemShelving ish JOIN vn.warehouse w ON w.id = s.warehouseFk WHERE w.name = 'TestingWarehouse'; -REPLACE vn.itemShelving -(id, itemFk, shelvingFk, visible, created, `grouping`, packing, packagingFk, userFk, isChecked) +INSERT INTO vn.itemShelving +(itemFk, shelvingFk, visible, created, `grouping`, packing, packagingFk, userFk, isChecked) VALUES - (9911, 999991, 'NAA', 8, '2023-09-20', 1, 20, NULL, 103, NULL), - (9912, 999998, 'NAA', 80, '2023-09-20', 10, 30, NULL, 103, NULL), - (9913, 1000001, 'NAA', 6, '2023-09-20', 3, 50, NULL, 103, NULL), - (9914, 1000000, 'NBB', 50, '2023-09-18', 25, 500, NULL, 103, NULL), - (9915, 999993, 'NBB', 25, '2023-09-18', NULL, 10, NULL, 103, NULL), - (9916, 999999, 'NBB', 30, '2023-09-18', 10, 500, NULL, 103, NULL), - (9917, 999993, 'NCC', 25, '2023-09-20', 5, 10, NULL, 103, NULL), - (9918, 999997, 'NCC', 10, '2023-09-20', NULL, 100, NULL, 103, NULL), - (9919, 999999, 'NCC', 40, '2023-09-20', 10, 500, NULL, 103, NULL), - (9920, 999995, 'NDD', 10, '2023-09-19', NULL, 20, NULL, 103, NULL), - (9921, 999994, 'NDD', 48, '2023-09-19', 4, 20, NULL, 103, NULL), - (9922, 1000001, 'NEE', 6, '2023-09-21', 3, 50, NULL, 103, NULL), - (9923, 999992, 'NEE', 50, '2023-09-21', NULL, 1, NULL, 103, NULL), - (9924, 1000000, 'NEE', 25, '2023-09-21', 25, 500, NULL, 103, NULL), - (9925, 999996, 'PAA', 5, '2023-09-27', 1, 5, NULL, 103, NULL), - (9926, 999997, 'PCC', 10, '2023-09-27', 5, 100, NULL, 103, NULL); + (999991, 'NAA', 8, '2023-09-20', 1, 20, NULL, 103, NULL), + (999998, 'NAA', 80, '2023-09-20', 10, 30, NULL, 103, NULL), + (1000001, 'NAA', 6, '2023-09-20', 3, 50, NULL, 103, NULL), + (1000000, 'NBB', 50, '2023-09-18', 25, 500, NULL, 103, NULL), + (999993, 'NBB', 25, '2023-09-18', NULL, 10, NULL, 103, NULL), + (999999, 'NBB', 30, '2023-09-18', 10, 500, NULL, 103, NULL), + (999993, 'NCC', 25, '2023-09-20', 5, 10, NULL, 103, NULL), + (999997, 'NCC', 10, '2023-09-20', NULL, 100, NULL, 103, NULL), + (999999, 'NCC', 40, '2023-09-20', 10, 500, NULL, 103, NULL), + (999995, 'NDD', 10, '2023-09-19', NULL, 20, NULL, 103, NULL), + (999994, 'NDD', 48, '2023-09-19', 4, 20, NULL, 103, NULL), + (1000001, 'NEE', 6, '2023-09-21', 3, 50, NULL, 103, NULL), + (999992, 'NEE', 50, '2023-09-21', NULL, 1, NULL, 103, NULL), + (1000000, 'NEE', 25, '2023-09-21', 25, 500, NULL, 103, NULL), + (999996, 'PAA', 5, '2023-09-27', 1, 5, NULL, 103, NULL), + (999997, 'PCC', 10, '2023-09-27', 5, 100, NULL, 103, NULL); -- Previous for Bolas de madera INSERT IGNORE INTO vn.sectorCollection @@ -3682,9 +3674,9 @@ INSERT IGNORE INTO vn.sectorCollection sectorFk = 9992; INSERT IGNORE INTO vn.saleGroup - SET id = 999, + SET id = 4, userFk = 1, - parkingFk = 9992011, + parkingFk = 9, sectorFk = 9992; INSERT IGNORE INTO vn.sectorCollectionSaleGroup @@ -3692,13 +3684,14 @@ INSERT IGNORE INTO vn.sectorCollectionSaleGroup sectorCollectionFk = 99, saleGroupFk = 999; -REPLACE vn.saleGroupDetail +INSERT vn.saleGroupDetail SET id = 99991, saleFk = 99996, saleGroupFk = 999; -REPLACE vn.saleTracking - SET saleFk = 99996, +INSERT INTO vn.saleTracking + SET id = 7, + saleFk = 99996, isChecked = TRUE, workerFk = 103, stateFk = 28; diff --git a/loopback/server/connectors/vn-mysql.js b/loopback/server/connectors/vn-mysql.js index 7c086ff9b..737fd94d5 100644 --- a/loopback/server/connectors/vn-mysql.js +++ b/loopback/server/connectors/vn-mysql.js @@ -268,8 +268,14 @@ class VnMySQL extends MySQL { arguments, model, ctx, opts, cb); } + isLoggable(model) { + const Model = this.getModelDefinition(model).model; + const {settings} = Model.definition; + return settings.mixins?.Loggable; + } + invokeMethod(method, args, model, ctx, opts, cb) { - if (!opts?.httpCtx) + if (!this.isLoggable(model)) return super[method].apply(this, args); this.invokeMethodP(method, [...args], model, ctx, opts) diff --git a/modules/ticket/back/methods/sale-tracking/updateTracking.js b/modules/ticket/back/methods/sale-tracking/updateTracking.js index 2ce8ddaba..50e117084 100644 --- a/modules/ticket/back/methods/sale-tracking/updateTracking.js +++ b/modules/ticket/back/methods/sale-tracking/updateTracking.js @@ -97,6 +97,7 @@ module.exports = Self => { } }, myOptions); } + if (isBuy) await models.SaleBuy.create({saleFk, buyFk}, myOptions); diff --git a/modules/ticket/back/models/sale-buy.json b/modules/ticket/back/models/sale-buy.json index a431f1224..496a8d6fa 100644 --- a/modules/ticket/back/models/sale-buy.json +++ b/modules/ticket/back/models/sale-buy.json @@ -1,6 +1,9 @@ { "name": "SaleBuy", "base": "VnModel", + "mixins": { + "Loggable": true + }, "options": { "mysql": { "table": "saleBuy" diff --git a/modules/ticket/back/models/specs/sale.spec.js b/modules/ticket/back/models/specs/sale.spec.js index d078dc8e2..979b86108 100644 --- a/modules/ticket/back/models/specs/sale.spec.js +++ b/modules/ticket/back/models/specs/sale.spec.js @@ -3,7 +3,7 @@ const models = require('vn-loopback/server/server').models; const LoopBackContext = require('loopback-context'); -describe('sale model ', () => { +fdescribe('sale model ', () => { const ctx = { req: { accessToken: {userId: 9}, @@ -233,6 +233,25 @@ describe('sale model ', () => { } }); + it('should change the quantity if it has production role and is not a new instance', async() => { + spyOn(LoopBackContext, 'getCurrentContext').and.returnValue(getActiveCtx(9)); + const tx = await models.Sale.beginTransaction({}); + const options = {transaction: tx}; + + try { + const saleId = 1; + const newQuantity = 10; + + const {quantity} = await models.Collection.setSaleQuantity(saleId, newQuantity, options); + + expect(quantity).toEqual(newQuantity); + await tx.rollback(); + } catch (e) { + await tx.rollback(); + throw e; + } + }); + describe('newPrice', () => { it('should increase quantity if you have enough available and the new price is the same as the previous one', async() => { const ctx = { diff --git a/modules/worker/back/methods/operator/add.js b/modules/worker/back/methods/operator/add.js index 150380513..6fa780588 100644 --- a/modules/worker/back/methods/operator/add.js +++ b/modules/worker/back/methods/operator/add.js @@ -11,24 +11,11 @@ module.exports = Self => { Self.add = async(ctx, options) => { const userId = ctx.req.accessToken.userId; const myOptions = {}; - let tx; if (typeof options == 'object') Object.assign(myOptions, options); - if (!myOptions.transaction) { - tx = await Self.beginTransaction({}); - myOptions.transaction = tx; - } - - try { - const isOperator = await Self.findById(user, myOptions); - if (!isOperator) await Self.create({workerFk: userId}, myOptions); - - if (tx) await tx.commit(); - } catch (e) { - if (tx) await tx.rollback(); - throw e; - } + const isOperator = await Self.findById(user, myOptions); + if (!isOperator) await Self.create({workerFk: userId}, myOptions); }; }; From 21cf05ddd0a2057b6bb865143fa4adec28a8ec06 Mon Sep 17 00:00:00 2001 From: jorgep Date: Fri, 2 Feb 2024 09:23:29 +0100 Subject: [PATCH 082/173] fix: refs #6276 fix tests & errors --- .../item-shelving/specs/return.spec.js | 2 +- modules/item/back/methods/item/card.js | 11 +++++++--- modules/ticket/back/models/specs/sale.spec.js | 2 +- .../travel/specs/extraCommunityFilter.spec.js | 2 +- .../back/methods/travel/specs/filter.spec.js | 2 +- modules/worker/back/methods/operator/add.js | 2 +- .../back/methods/operator/spec/add.spec.js | 21 ++++++++++++------- 7 files changed, 26 insertions(+), 16 deletions(-) diff --git a/modules/item/back/methods/item-shelving/specs/return.spec.js b/modules/item/back/methods/item-shelving/specs/return.spec.js index 07ddc2168..a5edc0ade 100644 --- a/modules/item/back/methods/item-shelving/specs/return.spec.js +++ b/modules/item/back/methods/item-shelving/specs/return.spec.js @@ -1,6 +1,6 @@ const {models} = require('vn-loopback/server/server'); -fdescribe('itemShelving return()', () => { +describe('itemShelving return()', () => { beforeAll(async() => { ctx = { req: { diff --git a/modules/item/back/methods/item/card.js b/modules/item/back/methods/item/card.js index 5d086ce88..8ee4ccc6b 100644 --- a/modules/item/back/methods/item/card.js +++ b/modules/item/back/methods/item/card.js @@ -24,12 +24,17 @@ module.exports = Self => { }, }); - Self.card = async(itemFk, warehouseFk) => { + Self.card = async(itemFk, warehouseFk, options) => { + const myOptions = {}; + + if (typeof options == 'object') + Object.assign(myOptions, options); + const models = Self.app.models; - const [[itemInfo]] = await Self.rawSql('CALL vn.item_getInfo(?, ?)', [itemFk, warehouseFk]); + const [[itemInfo]] = await Self.rawSql('CALL vn.item_getInfo(?, ?)', [itemFk, warehouseFk], myOptions); - const barcodeItems = await Self.rawSql('SELECT vn.barcodeToItem(?) as realIdItem', [itemFk]); + const barcodeItems = await Self.rawSql('SELECT vn.barcodeToItem(?) as realIdItem', [itemFk], myOptions); const [realIdItem] = barcodeItems.map(barcodeItem => barcodeItem.realIdItem); const barcodes = await models.ItemBarcode.find({ diff --git a/modules/ticket/back/models/specs/sale.spec.js b/modules/ticket/back/models/specs/sale.spec.js index 979b86108..26d64cfe2 100644 --- a/modules/ticket/back/models/specs/sale.spec.js +++ b/modules/ticket/back/models/specs/sale.spec.js @@ -3,7 +3,7 @@ const models = require('vn-loopback/server/server').models; const LoopBackContext = require('loopback-context'); -fdescribe('sale model ', () => { +describe('sale model ', () => { const ctx = { req: { accessToken: {userId: 9}, diff --git a/modules/travel/back/methods/travel/specs/extraCommunityFilter.spec.js b/modules/travel/back/methods/travel/specs/extraCommunityFilter.spec.js index 1ce55cc91..599851b55 100644 --- a/modules/travel/back/methods/travel/specs/extraCommunityFilter.spec.js +++ b/modules/travel/back/methods/travel/specs/extraCommunityFilter.spec.js @@ -79,7 +79,7 @@ describe('Travel extraCommunityFilter()', () => { const result = await app.models.Travel.extraCommunityFilter(ctx, filter); - expect(result.length).toEqual(9); + expect(result.length).toEqual(8); }); it('should return the travel matching "cargoSupplierFk"', async() => { diff --git a/modules/travel/back/methods/travel/specs/filter.spec.js b/modules/travel/back/methods/travel/specs/filter.spec.js index 6cb366938..1a6ee895c 100644 --- a/modules/travel/back/methods/travel/specs/filter.spec.js +++ b/modules/travel/back/methods/travel/specs/filter.spec.js @@ -80,6 +80,6 @@ describe('Travel filter()', () => { const result = await app.models.Travel.filter(ctx); - expect(result.length).toEqual(6); + expect(result.length).toEqual(5); }); }); diff --git a/modules/worker/back/methods/operator/add.js b/modules/worker/back/methods/operator/add.js index 6fa780588..efd610562 100644 --- a/modules/worker/back/methods/operator/add.js +++ b/modules/worker/back/methods/operator/add.js @@ -15,7 +15,7 @@ module.exports = Self => { if (typeof options == 'object') Object.assign(myOptions, options); - const isOperator = await Self.findById(user, myOptions); + const isOperator = await Self.findById(userId, myOptions); if (!isOperator) await Self.create({workerFk: userId}, myOptions); }; }; diff --git a/modules/worker/back/methods/operator/spec/add.spec.js b/modules/worker/back/methods/operator/spec/add.spec.js index 4d26e8ca9..94daae8de 100644 --- a/modules/worker/back/methods/operator/spec/add.spec.js +++ b/modules/worker/back/methods/operator/spec/add.spec.js @@ -1,8 +1,8 @@ const {models} = require('vn-loopback/server/server'); describe('operator add()', () => { - const itBoss = 104; - const noWorker = 100000; + const noOperator = 104; + const operator = 9; beforeAll(async() => { ctx = { @@ -14,18 +14,23 @@ describe('operator add()', () => { }; }); - it('should throw an error if the worker does not exist', async() => { + it('should not add an existent operator', async() => { const tx = await models.Operator.beginTransaction({}); const options = {transaction: tx}; - ctx.req.accessToken.userId = noWorker; + ctx.req.accessToken.userId = operator; try { + const operatorBefore = await models.Operator.find(null, options); + const isOperator = await models.Operator.findOne(null, options); + + expect(isOperator).toBeDefined(); + await models.Operator.add(ctx, options); + const operatorAfter = await models.Operator.find(null, options); + + expect(operatorBefore.length).toEqual(operatorAfter.length); await tx.rollback(); } catch (e) { - const error = e; - - expect(error.message).toEqual('This worker does not exist'); await tx.rollback(); } }); @@ -33,7 +38,7 @@ describe('operator add()', () => { it('should add a new operator successfully', async() => { const tx = await models.Operator.beginTransaction({}); const options = {transaction: tx}; - ctx.req.accessToken.userId = itBoss; + ctx.req.accessToken.userId = noOperator; try { const operatorBefore = await models.Operator.find(null, options); From 9f194f4f63a9421cf0dbba7980b0923459c0b2d0 Mon Sep 17 00:00:00 2001 From: jorgep Date: Fri, 2 Feb 2024 10:28:13 +0100 Subject: [PATCH 083/173] fix: refs #6276 fix model --- modules/ticket/back/models/sale-buy.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/modules/ticket/back/models/sale-buy.json b/modules/ticket/back/models/sale-buy.json index 496a8d6fa..a431f1224 100644 --- a/modules/ticket/back/models/sale-buy.json +++ b/modules/ticket/back/models/sale-buy.json @@ -1,9 +1,6 @@ { "name": "SaleBuy", "base": "VnModel", - "mixins": { - "Loggable": true - }, "options": { "mysql": { "table": "saleBuy" From 8ad69a62b9a245f9d504dea7688777afcccf227d Mon Sep 17 00:00:00 2001 From: jorgep Date: Thu, 8 Feb 2024 10:08:16 +0100 Subject: [PATCH 084/173] fix: refs #6276 loggable & userId --- loopback/common/mixins/loggable.js | 3 ++- loopback/server/connectors/vn-mysql.js | 6 +++--- modules/ticket/back/methods/sale-tracking/updateTracking.js | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/loopback/common/mixins/loggable.js b/loopback/common/mixins/loggable.js index 760fdf60a..24243ba68 100644 --- a/loopback/common/mixins/loggable.js +++ b/loopback/common/mixins/loggable.js @@ -1,6 +1,7 @@ const LoopBackContext = require('loopback-context'); async function handleObserve(ctx) { - ctx.options.httpCtx = LoopBackContext.getCurrentContext(); + const httpCtx = LoopBackContext.getCurrentContext(); + ctx.options.userId = httpCtx?.active?.accessToken?.userId; } module.exports = function(Self) { let Mixin = { diff --git a/loopback/server/connectors/vn-mysql.js b/loopback/server/connectors/vn-mysql.js index 737fd94d5..5edef4395 100644 --- a/loopback/server/connectors/vn-mysql.js +++ b/loopback/server/connectors/vn-mysql.js @@ -275,7 +275,7 @@ class VnMySQL extends MySQL { } invokeMethod(method, args, model, ctx, opts, cb) { - if (!this.isLoggable(model)) + if (!this.isLoggable(model) && !opts?.userId) return super[method].apply(this, args); this.invokeMethodP(method, [...args], model, ctx, opts) @@ -287,11 +287,11 @@ class VnMySQL extends MySQL { let tx; if (!opts.transaction) { tx = await Transaction.begin(this, {}); - opts = Object.assign({transaction: tx, httpCtx: opts.httpCtx}, opts); + opts = Object.assign({transaction: tx}, opts); } try { - const userId = opts.httpCtx && opts.httpCtx.active?.accessToken?.userId; + const {userId} = opts; if (userId) { const user = await Model.app.models.VnUser.findById(userId, {fields: ['name']}, opts); await this.executeP(`CALL account.myUser_loginWithName(?)`, [user.name], opts); diff --git a/modules/ticket/back/methods/sale-tracking/updateTracking.js b/modules/ticket/back/methods/sale-tracking/updateTracking.js index 50e117084..f58429790 100644 --- a/modules/ticket/back/methods/sale-tracking/updateTracking.js +++ b/modules/ticket/back/methods/sale-tracking/updateTracking.js @@ -43,7 +43,7 @@ module.exports = Self => { Self.updateTracking = async(ctx, saleFk, originalQuantity, code, isChecked, buyFk, isScanned = null, options) => { const userId = ctx.req.accessToken.userId; const models = Self.app.models; - const myOptions = {}; + const myOptions = {userId}; let tx; if (typeof options == 'object') From 33cca9bfe8816c1650f73ac8ea074605020beb03 Mon Sep 17 00:00:00 2001 From: jorgep Date: Thu, 8 Feb 2024 14:20:05 +0100 Subject: [PATCH 085/173] fix: refs #6276 assignColletion --- back/methods/collection/assignCollection.js | 6 +-- .../collection/spec/assignCollection.spec.js | 38 +++++++++++++++++++ 2 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 back/methods/collection/spec/assignCollection.spec.js diff --git a/back/methods/collection/assignCollection.js b/back/methods/collection/assignCollection.js index 67a10df51..575649de8 100644 --- a/back/methods/collection/assignCollection.js +++ b/back/methods/collection/assignCollection.js @@ -20,10 +20,8 @@ module.exports = Self => { if (typeof options == 'object') Object.assign(myOptions, options); - await Self.rawSql('CALL vn.collection_assign(?, @vCollectionFk)', [userId], myOptions); - - const [assignedCollection] = await Self.rawSql('SELECT @vCollectionFk'); - const {'@vCollectionFk': collectionFk} = assignedCollection; + const [info, okPacket, {collectionFk}] = await Self.rawSql('CALL vn.collection_assign(?, @vCollectionFk); SELECT @vCollectionFk collectionFk', + [userId], myOptions); if (!collectionFk) throw new UserError('There are not picking tickets'); await Self.rawSql('CALL vn.collection_printSticker(?, NULL)', [collectionFk], myOptions); diff --git a/back/methods/collection/spec/assignCollection.spec.js b/back/methods/collection/spec/assignCollection.spec.js new file mode 100644 index 000000000..e8f3882a3 --- /dev/null +++ b/back/methods/collection/spec/assignCollection.spec.js @@ -0,0 +1,38 @@ +const models = require('vn-loopback/server/server').models; +const LoopBackContext = require('loopback-context'); + +describe('ticket assignCollection()', () => { + let ctx; + let options; + let tx; + beforeEach(async() => { + ctx = { + req: { + accessToken: {userId: 1106}, + headers: {origin: 'http://localhost'}, + __: value => value + }, + args: {} + }; + + spyOn(LoopBackContext, 'getCurrentContext').and.returnValue({ + active: ctx.req + }); + + options = {transaction: tx}; + tx = await models.Sale.beginTransaction({}); + options.transaction = tx; + }); + + afterEach(async() => { + await tx.rollback(); + }); + + it('should throw an error when there is not picking tickets', async() => { + try { + await models.Collection.assignCollection(ctx, options); + } catch (e) { + expect(e.message).toEqual('There are not picking tickets'); + } + }); +}); From c2fffd1edaf4d45b170f142f56f8182d34e6651d Mon Sep 17 00:00:00 2001 From: jorgep Date: Thu, 8 Feb 2024 14:52:23 +0100 Subject: [PATCH 086/173] fix: refs #6276 drop test --- .../getSalesFromTicketOrCollection.spec.js | 20 ------------------- 1 file changed, 20 deletions(-) diff --git a/back/methods/collection/spec/getSalesFromTicketOrCollection.spec.js b/back/methods/collection/spec/getSalesFromTicketOrCollection.spec.js index 8f2ea4408..50ba69401 100644 --- a/back/methods/collection/spec/getSalesFromTicketOrCollection.spec.js +++ b/back/methods/collection/spec/getSalesFromTicketOrCollection.spec.js @@ -59,24 +59,4 @@ describe('collection getSalesFromTicketOrCollection()', () => { throw e; } }); - - it('should getSalesFromTicketOrCollection', async() => { - const tx = await models.Collection.beginTransaction({}); - - try { - const options = {transaction: tx}; - await models.Ticket.updateAll({id: collectionOrTicketFk}, {shipped: '2001-01-02 00:00:00.000'}, options); - - const ticketTrackingBefore = await models.TicketTracking.find(null, options); - await models.Collection.getSalesFromTicketOrCollection(ctx, - collectionOrTicketFk, false, source, options); - const ticketTrackingAfter = await models.TicketTracking.find(null, options); - - expect(ticketTrackingAfter.length).toEqual(ticketTrackingBefore.length + 1); - await tx.rollback(); - } catch (e) { - await tx.rollback(); - throw e; - } - }); }); From 2fb68e81c96e750e7817cacc8286b253121d15bf Mon Sep 17 00:00:00 2001 From: jorgep Date: Thu, 15 Feb 2024 15:17:39 +0100 Subject: [PATCH 087/173] fix: refs #6276 rollback sale --- modules/ticket/back/models/sale.js | 5 ++--- modules/ticket/back/models/specs/sale.spec.js | 19 ------------------- 2 files changed, 2 insertions(+), 22 deletions(-) diff --git a/modules/ticket/back/models/sale.js b/modules/ticket/back/models/sale.js index 035c4cb11..6204e9a02 100644 --- a/modules/ticket/back/models/sale.js +++ b/modules/ticket/back/models/sale.js @@ -70,8 +70,7 @@ module.exports = Self => { }, ctx.options); if (item.family == 'EMB') return; - const isInPreparing = await models.ACL.checkAccessAcl(ctx, 'Sale', 'isInPreparing', '*'); - if (!ctx.isNewInstance && isInPreparing) return; + if (await models.ACL.checkAccessAcl(ctx, 'Sale', 'isInPreparing', '*')) return; await models.Sale.rawSql(`CALL catalog_calcFromItem(?,?,?,?)`, [ ticket.landed, @@ -89,7 +88,7 @@ module.exports = Self => { if (await models.ACL.checkAccessAcl(ctx, 'Ticket', 'isRoleAdvanced', '*')) return; - if (newQuantity < item.minQuantity && newQuantity != available && !isInPreparing) + if (newQuantity < item.minQuantity && newQuantity != available) throw new UserError('The amount cannot be less than the minimum'); if (ctx.isNewInstance || isReduction) return; diff --git a/modules/ticket/back/models/specs/sale.spec.js b/modules/ticket/back/models/specs/sale.spec.js index 26d64cfe2..d078dc8e2 100644 --- a/modules/ticket/back/models/specs/sale.spec.js +++ b/modules/ticket/back/models/specs/sale.spec.js @@ -233,25 +233,6 @@ describe('sale model ', () => { } }); - it('should change the quantity if it has production role and is not a new instance', async() => { - spyOn(LoopBackContext, 'getCurrentContext').and.returnValue(getActiveCtx(9)); - const tx = await models.Sale.beginTransaction({}); - const options = {transaction: tx}; - - try { - const saleId = 1; - const newQuantity = 10; - - const {quantity} = await models.Collection.setSaleQuantity(saleId, newQuantity, options); - - expect(quantity).toEqual(newQuantity); - await tx.rollback(); - } catch (e) { - await tx.rollback(); - throw e; - } - }); - describe('newPrice', () => { it('should increase quantity if you have enough available and the new price is the same as the previous one', async() => { const ctx = { From 89970e39d0dd57a1217b0cb0d26dcdbfe0706505 Mon Sep 17 00:00:00 2001 From: jorgep Date: Fri, 16 Feb 2024 10:47:41 +0100 Subject: [PATCH 088/173] fix: refs #6276 back tests --- .../ticket/back/methods/ticket/specs/addSaleByCode.spec.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/ticket/back/methods/ticket/specs/addSaleByCode.spec.js b/modules/ticket/back/methods/ticket/specs/addSaleByCode.spec.js index ce3a5b3ad..b97139178 100644 --- a/modules/ticket/back/methods/ticket/specs/addSaleByCode.spec.js +++ b/modules/ticket/back/methods/ticket/specs/addSaleByCode.spec.js @@ -3,7 +3,7 @@ const LoopBackContext = require('loopback-context'); describe('Ticket addSaleByCode()', () => { const quantity = 3; - const ticketFk = 24; + const ticketFk = 13; const warehouseFk = 1; beforeAll(async() => { activeCtx = { @@ -19,7 +19,7 @@ describe('Ticket addSaleByCode()', () => { }); it('should add a new sale', async() => { - const tx = await models.Sale.beginTransaction({}); + const tx = await models.Ticket.beginTransaction({}); try { const options = {transaction: tx}; From 1767ce426aa4eb80e018640a908305b373264d18 Mon Sep 17 00:00:00 2001 From: jorgep Date: Fri, 16 Feb 2024 11:54:59 +0100 Subject: [PATCH 089/173] fix: refs #6276 collection_addItem --- loopback/locale/es.json | 704 +++++++++--------- .../back/methods/ticket/addSaleByCode.js | 14 +- 2 files changed, 356 insertions(+), 362 deletions(-) diff --git a/loopback/locale/es.json b/loopback/locale/es.json index f82152f92..e31cfc58b 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -1,360 +1,348 @@ { - "Phone format is invalid": "El formato del teléfono no es correcto", - "You are not allowed to change the credit": "No tienes privilegios para modificar el crédito", - "Unable to mark the equivalence surcharge": "No se puede marcar el recargo de equivalencia", - "The default consignee can not be unchecked": "No se puede desmarcar el consignatario predeterminado", - "Unable to default a disabled consignee": "No se puede poner predeterminado un consignatario desactivado", - "Can't be blank": "No puede estar en blanco", - "Invalid TIN": "NIF/CIF inválido", - "TIN must be unique": "El NIF/CIF debe ser único", - "A client with that Web User name already exists": "Ya existe un cliente con ese Usuario Web", - "Is invalid": "Es inválido", - "Quantity cannot be zero": "La cantidad no puede ser cero", - "Enter an integer different to zero": "Introduce un entero distinto de cero", - "Package cannot be blank": "El embalaje no puede estar en blanco", - "The company name must be unique": "La razón social debe ser única", - "Invalid email": "Correo electrónico inválido", - "The IBAN does not have the correct format": "El IBAN no tiene el formato correcto", - "That payment method requires an IBAN": "El método de pago seleccionado requiere un IBAN", - "That payment method requires a BIC": "El método de pago seleccionado requiere un BIC", - "State cannot be blank": "El estado no puede estar en blanco", - "Worker cannot be blank": "El trabajador no puede estar en blanco", - "Cannot change the payment method if no salesperson": "No se puede cambiar la forma de pago si no hay comercial asignado", - "can't be blank": "El campo no puede estar vacío", - "Observation type must be unique": "El tipo de observación no puede repetirse", - "The credit must be an integer greater than or equal to zero": "The credit must be an integer greater than or equal to zero", - "The grade must be similar to the last one": "El grade debe ser similar al último", - "Only manager can change the credit": "Solo el gerente puede cambiar el credito de este cliente", - "Name cannot be blank": "El nombre no puede estar en blanco", - "Phone cannot be blank": "El teléfono no puede estar en blanco", - "Period cannot be blank": "El periodo no puede estar en blanco", - "Choose a company": "Selecciona una empresa", - "Se debe rellenar el campo de texto": "Se debe rellenar el campo de texto", - "Description should have maximum of 45 characters": "La descripción debe tener maximo 45 caracteres", - "Cannot be blank": "El campo no puede estar en blanco", - "The grade must be an integer greater than or equal to zero": "El grade debe ser un entero mayor o igual a cero", - "Sample type cannot be blank": "El tipo de plantilla no puede quedar en blanco", - "Description cannot be blank": "Se debe rellenar el campo de texto", - "The price of the item changed": "El precio del artículo cambió", - "The value should not be greater than 100%": "El valor no debe de ser mayor de 100%", - "The value should be a number": "El valor debe ser un numero", - "This order is not editable": "Esta orden no se puede modificar", - "You can't create an order for a frozen client": "No puedes crear una orden para un cliente congelado", - "You can't create an order for a client that has a debt": "No puedes crear una orden para un cliente con deuda", - "is not a valid date": "No es una fecha valida", - "Barcode must be unique": "El código de barras debe ser único", - "The warehouse can't be repeated": "El almacén no puede repetirse", - "The tag or priority can't be repeated for an item": "El tag o prioridad no puede repetirse para un item", - "The observation type can't be repeated": "El tipo de observación no puede repetirse", - "A claim with that sale already exists": "Ya existe una reclamación para esta línea", - "You don't have enough privileges to change that field": "No tienes permisos para cambiar ese campo", - "Warehouse cannot be blank": "El almacén no puede quedar en blanco", - "Agency cannot be blank": "La agencia no puede quedar en blanco", - "Not enough privileges to edit a client with verified data": "No tienes permisos para hacer cambios en un cliente con datos comprobados", - "This address doesn't exist": "Este consignatario no existe", - "You must delete the claim id %d first": "Antes debes borrar la reclamación %d", - "You don't have enough privileges": "No tienes suficientes permisos", - "Cannot check Equalization Tax in this NIF/CIF": "No se puede marcar RE en este NIF/CIF", - "You can't make changes on the basic data of an confirmed order or with rows": "No puedes cambiar los datos básicos de una orden con artículos", - "INVALID_USER_NAME": "El nombre de usuario solo debe contener letras minúsculas o, a partir del segundo carácter, números o subguiones, no está permitido el uso de la letra ñ", - "You can't create a ticket for a frozen client": "No puedes crear un ticket para un cliente congelado", - "You can't create a ticket for an inactive client": "No puedes crear un ticket para un cliente inactivo", - "Tag value cannot be blank": "El valor del tag no puede quedar en blanco", - "ORDER_EMPTY": "Cesta vacía", - "You don't have enough privileges to do that": "No tienes permisos para cambiar esto", - "NO SE PUEDE DESACTIVAR EL CONSIGNAT": "NO SE PUEDE DESACTIVAR EL CONSIGNAT", - "Error. El NIF/CIF está repetido": "Error. El NIF/CIF está repetido", - "Street cannot be empty": "Dirección no puede estar en blanco", - "City cannot be empty": "Ciudad no puede estar en blanco", - "Code cannot be blank": "Código no puede estar en blanco", - "You cannot remove this department": "No puedes eliminar este departamento", - "The extension must be unique": "La extensión debe ser unica", - "The secret can't be blank": "La contraseña no puede estar en blanco", - "We weren't able to send this SMS": "No hemos podido enviar el SMS", - "This client can't be invoiced": "Este cliente no puede ser facturado", - "You must provide the correction information to generate a corrective invoice": "Debes informar la información de corrección para generar una factura rectificativa", - "This ticket can't be invoiced": "Este ticket no puede ser facturado", - "You cannot add or modify services to an invoiced ticket": "No puedes añadir o modificar servicios a un ticket facturado", - "This ticket can not be modified": "Este ticket no puede ser modificado", - "The introduced hour already exists": "Esta hora ya ha sido introducida", - "INFINITE_LOOP": "Existe una dependencia entre dos Jefes", - "The sales of the receiver ticket can't be modified": "Las lineas del ticket al que envias no pueden ser modificadas", - "NO_AGENCY_AVAILABLE": "No hay una zona de reparto disponible con estos parámetros", - "ERROR_PAST_SHIPMENT": "No puedes seleccionar una fecha de envío en pasado", - "The current ticket can't be modified": "El ticket actual no puede ser modificado", - "The current claim can't be modified": "La reclamación actual no puede ser modificada", - "The sales of this ticket can't be modified": "Las lineas de este ticket no pueden ser modificadas", - "The sales do not exists": "La(s) línea(s) seleccionada(s) no existe(n)", - "Please select at least one sale": "Por favor selecciona al menos una linea", - "All sales must belong to the same ticket": "Todas las lineas deben pertenecer al mismo ticket", - "NO_ZONE_FOR_THIS_PARAMETERS": "Para este día no hay ninguna zona configurada", - "This item doesn't exists": "El artículo no existe", - "NOT_ZONE_WITH_THIS_PARAMETERS": "Para este día no hay ninguna zona configurada", - "Extension format is invalid": "El formato de la extensión es inválido", - "Invalid parameters to create a new ticket": "Parámetros inválidos para crear un nuevo ticket", - "This item is not available": "Este artículo no está disponible", - "This postcode already exists": "Este código postal ya existe", - "Concept cannot be blank": "El concepto no puede quedar en blanco", - "File doesn't exists": "El archivo no existe", - "You don't have privileges to change the zone": "No tienes permisos para cambiar la zona o para esos parámetros hay más de una opción de envío, hable con las agencias", - "This ticket is already on weekly tickets": "Este ticket ya está en tickets programados", - "Ticket id cannot be blank": "El id de ticket no puede quedar en blanco", - "Weekday cannot be blank": "El día de la semana no puede quedar en blanco", - "You can't delete a confirmed order": "No puedes borrar un pedido confirmado", - "The social name has an invalid format": "El nombre fiscal tiene un formato incorrecto", - "Invalid quantity": "Cantidad invalida", - "This postal code is not valid": "Este código postal no es válido", - "is invalid": "es inválido", - "The postcode doesn't exist. Please enter a correct one": "El código postal no existe. Por favor, introduce uno correcto", - "The department name can't be repeated": "El nombre del departamento no puede repetirse", - "This phone already exists": "Este teléfono ya existe", - "You cannot move a parent to its own sons": "No puedes mover un elemento padre a uno de sus hijos", - "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", - "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 fin", - "Start date should be lower than end date": "La fecha de inicio debe ser menor que la fecha de fin", - "You should mark at least one week day": "Debes marcar al menos un día de la semana", - "Swift / BIC can't be empty": "Swift / BIC no puede estar vacío", - "Customs agent is required for a non UEE member": "El agente de aduanas es requerido para los clientes extracomunitarios", - "Incoterms is required for a non UEE member": "El incoterms es requerido para los clientes extracomunitarios", - "Deleted sales from ticket": "He eliminado las siguientes lineas del ticket [{{ticketId}}]({{{ticketUrl}}}): {{{deletions}}}", - "Added sale to ticket": "He añadido la siguiente linea al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{addition}}}", - "Changed sale discount": "He cambiado el descuento de las siguientes lineas al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", - "Created claim": "He creado la reclamación [{{claimId}}]({{{claimUrl}}}) de las siguientes lineas del ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", - "Changed sale price": "He cambiado el precio de [{{itemId}} {{concept}}]({{{itemUrl}}}) ({{quantity}}) de {{oldPrice}}€ ➔ *{{newPrice}}€* del ticket [{{ticketId}}]({{{ticketUrl}}})", - "Changed sale quantity": "He cambiado la cantidad de [{{itemId}} {{concept}}]({{{itemUrl}}}) de {{oldQuantity}} ➔ *{{newQuantity}}* del ticket [{{ticketId}}]({{{ticketUrl}}})", - "State": "Estado", - "regular": "normal", - "reserved": "reservado", - "Changed sale reserved state": "He cambiado el estado reservado de las siguientes lineas al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", - "Bought units from buy request": "Se ha comprado {{quantity}} unidades de [{{itemId}} {{concept}}]({{{urlItem}}}) para el ticket id [{{ticketId}}]({{{url}}})", - "Deny buy request": "Se ha rechazado la petición de compra para el ticket id [{{ticketId}}]({{{url}}}). Motivo: {{observation}}", - "MESSAGE_INSURANCE_CHANGE": "He cambiado el crédito asegurado del cliente [{{clientName}} ({{clientId}})]({{{url}}}) a *{{credit}} €*", - "Changed client paymethod": "He cambiado la forma de pago del cliente [{{clientName}} ({{clientId}})]({{{url}}})", - "Sent units from ticket": "Envio *{{quantity}}* unidades de [{{concept}} ({{itemId}})]({{{itemUrl}}}) a *\"{{nickname}}\"* provenientes del ticket id [{{ticketId}}]({{{ticketUrl}}})", - "Change quantity": "{{concept}} cambia de {{oldQuantity}} a {{newQuantity}}", - "Claim will be picked": "Se recogerá el género de la reclamación [({{claimId}})]({{{claimUrl}}}) del cliente *{{clientName}}*", - "Claim state has changed to": "Se ha cambiado el estado de la reclamación [({{claimId}})]({{{claimUrl}}}) del cliente *{{clientName}}* a *{{newState}}*", - "Client checked as validated despite of duplication": "Cliente comprobado a pesar de que existe el cliente id {{clientId}}", - "ORDER_ROW_UNAVAILABLE": "No hay disponibilidad de este producto", - "Distance must be lesser than 4000": "La distancia debe ser inferior a 4000", - "This ticket is deleted": "Este ticket está eliminado", - "Unable to clone this travel": "No ha sido posible clonar este travel", - "This thermograph id already exists": "La id del termógrafo ya existe", - "Choose a date range or days forward": "Selecciona un rango de fechas o días en adelante", - "ORDER_ALREADY_CONFIRMED": "ORDEN YA CONFIRMADA", - "Invalid password": "Invalid password", - "Password does not meet requirements": "La contraseña no cumple los requisitos", - "Role already assigned": "Rol ya asignado", - "Invalid role name": "Nombre de rol no válido", - "Role name must be written in camelCase": "El nombre del rol debe escribirse en camelCase", - "Email already exists": "El correo ya existe", - "User already exists": "El/La usuario/a ya existe", - "Absence change notification on the labour calendar": "Notificación de cambio de ausencia en el calendario laboral", - "Record of hours week": "Registro de horas semana {{week}} año {{year}} ", - "Created absence": "El empleado {{author}} ha añadido una ausencia de tipo '{{absenceType}}' a {{employee}} para el día {{dated}}.", - "Deleted absence": "El empleado {{author}} ha eliminado una ausencia de tipo '{{absenceType}}' a {{employee}} del día {{dated}}.", - "I have deleted the ticket id": "He eliminado el ticket id [{{id}}]({{{url}}})", - "I have restored the ticket id": "He restaurado el ticket id [{{id}}]({{{url}}})", - "You can only restore a ticket within the first hour after deletion": "Únicamente puedes restaurar el ticket dentro de la primera hora después de su eliminación", - "Changed this data from the ticket": "He cambiado estos datos del ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", - "agencyModeFk": "Agencia", - "clientFk": "Cliente", - "zoneFk": "Zona", - "warehouseFk": "Almacén", - "shipped": "F. envío", - "landed": "F. entrega", - "addressFk": "Consignatario", - "companyFk": "Empresa", - "The social name cannot be empty": "La razón social no puede quedar en blanco", - "The nif cannot be empty": "El NIF no puede quedar en blanco", - "You need to fill sage information before you check verified data": "Debes rellenar la información de sage antes de marcar datos comprobados", - "ASSIGN_ZONE_FIRST": "Asigna una zona primero", - "Amount cannot be zero": "El importe no puede ser cero", - "Company has to be official": "Empresa inválida", - "You can not select this payment method without a registered bankery account": "No se puede utilizar este método de pago si no has registrado una cuenta bancaria", - "Action not allowed on the test environment": "Esta acción no está permitida en el entorno de pruebas", - "The selected ticket is not suitable for this route": "El ticket seleccionado no es apto para esta ruta", - "New ticket request has been created with price": "Se ha creado una nueva petición de compra '{{description}}' para el día *{{shipped}}*, con una cantidad de *{{quantity}}* y un precio de *{{price}} €*", - "New ticket request has been created": "Se ha creado una nueva petición de compra '{{description}}' para el día *{{shipped}}*, con una cantidad de *{{quantity}}*", - "Swift / BIC cannot be empty": "Swift / BIC no puede estar vacío", - "This BIC already exist.": "Este BIC ya existe.", - "That item doesn't exists": "Ese artículo no existe", - "There's a new urgent ticket:": "Hay un nuevo ticket urgente:", - "Invalid account": "Cuenta inválida", - "Compensation account is empty": "La cuenta para compensar está vacia", - "This genus already exist": "Este genus ya existe", - "This specie already exist": "Esta especie ya existe", - "Client assignment has changed": "He cambiado el comercial ~*\"<{{previousWorkerName}}>\"*~ por *\"<{{currentWorkerName}}>\"* del cliente [{{clientName}} ({{clientId}})]({{{url}}})", - "None": "Ninguno", - "The contract was not active during the selected date": "El contrato no estaba activo durante la fecha seleccionada", - "Cannot add more than one '1/2 day vacation'": "No puedes añadir más de un 'Vacaciones 1/2 dia'", - "This document already exists on this ticket": "Este documento ya existe en el ticket", - "Some of the selected tickets are not billable": "Algunos de los tickets seleccionados no son facturables", - "You can't invoice tickets from multiple clients": "No puedes facturar tickets de multiples clientes", - "nickname": "nickname", - "INACTIVE_PROVIDER": "Proveedor inactivo", - "This client is not invoiceable": "Este cliente no es facturable", - "serial non editable": "Esta serie no permite asignar la referencia", - "Max shipped required": "La fecha límite es requerida", - "Can't invoice to future": "No se puede facturar a futuro", - "Can't invoice to past": "No se puede facturar a pasado", - "This ticket is already invoiced": "Este ticket ya está facturado", - "A ticket with an amount of zero can't be invoiced": "No se puede facturar un ticket con importe cero", - "A ticket with a negative base can't be invoiced": "No se puede facturar un ticket con una base negativa", - "Global invoicing failed": "[Facturación global] No se han podido facturar algunos clientes", - "Wasn't able to invoice the following clients": "No se han podido facturar los siguientes clientes", - "Can't verify data unless the client has a business type": "No se puede verificar datos de un cliente que no tiene tipo de negocio", - "You don't have enough privileges to set this credit amount": "No tienes suficientes privilegios para establecer esta cantidad de crédito", - "You can't change the credit set to zero from a financialBoss": "No puedes cambiar el cŕedito establecido a cero por un jefe de finanzas", - "Amounts do not match": "Las cantidades no coinciden", - "The PDF document does not exist": "El documento PDF no existe. Prueba a regenerarlo desde la opción 'Regenerar PDF factura'", - "The type of business must be filled in basic data": "El tipo de negocio debe estar rellenado en datos básicos", - "You can't create a claim from a ticket delivered more than seven days ago": "No puedes crear una reclamación de un ticket entregado hace más de siete días", - "The worker has hours recorded that day": "El trabajador tiene horas fichadas ese día", - "The worker has a marked absence that day": "El trabajador tiene marcada una ausencia ese día", - "You can not modify is pay method checked": "No se puede modificar el campo método de pago validado", - "The account size must be exactly 10 characters": "El tamaño de la cuenta debe ser exactamente de 10 caracteres", - "Can't transfer claimed sales": "No puedes transferir lineas reclamadas", - "You don't have privileges to create refund": "No tienes permisos para crear un abono", - "The item is required": "El artículo es requerido", - "The agency is already assigned to another autonomous": "La agencia ya está asignada a otro autónomo", - "date in the future": "Fecha en el futuro", - "reference duplicated": "Referencia duplicada", - "This ticket is already a refund": "Este ticket ya es un abono", - "isWithoutNegatives": "Sin negativos", - "routeFk": "routeFk", - "Can't change the password of another worker": "No se puede cambiar la contraseña de otro trabajador", - "No hay un contrato en vigor": "No hay un contrato en vigor", - "No se permite fichar a futuro": "No se permite fichar a futuro", - "No está permitido trabajar": "No está permitido trabajar", - "Fichadas impares": "Fichadas impares", - "Descanso diario 12h.": "Descanso diario 12h.", - "Descanso semanal 36h. / 72h.": "Descanso semanal 36h. / 72h.", - "Dirección incorrecta": "Dirección incorrecta", - "Modifiable user details only by an administrator": "Detalles de usuario modificables solo por un administrador", - "Modifiable password only via recovery or by an administrator": "Contraseña modificable solo a través de la recuperación o por un administrador", - "Not enough privileges to edit a client": "No tienes suficientes privilegios para editar un cliente", - "This route does not exists": "Esta ruta no existe", - "Claim pickup order sent": "Reclamación Orden de recogida enviada [{{claimId}}]({{{claimUrl}}}) al cliente *{{clientName}}*", - "You don't have grant privilege": "No tienes privilegios para dar privilegios", - "You don't own the role and you can't assign it to another user": "No eres el propietario del rol y no puedes asignarlo a otro usuario", - "Ticket merged": "Ticket [{{originId}}]({{{originFullPath}}}) ({{{originDated}}}) fusionado con [{{destinationId}}]({{{destinationFullPath}}}) ({{{destinationDated}}})", - "Already has this status": "Ya tiene este estado", - "There aren't records for this week": "No existen registros para esta semana", - "Empty data source": "Origen de datos vacio", - "App locked": "Aplicación bloqueada por el usuario {{userId}}", - "Email verify": "Correo de verificación", - "Landing cannot be lesser than shipment": "Landing cannot be lesser than shipment", - "Receipt's bank was not found": "No se encontró el banco del recibo", - "This receipt was not compensated": "Este recibo no ha sido compensado", - "Client's email was not found": "No se encontró el email del cliente", - "Negative basis": "Base negativa", - "This worker code already exists": "Este codigo de trabajador ya existe", - "This personal mail already exists": "Este correo personal ya existe", - "This worker already exists": "Este trabajador ya existe", - "App name does not exist": "El nombre de aplicación no es válido", - "Try again": "Vuelve a intentarlo", - "Aplicación bloqueada por el usuario 9": "Aplicación bloqueada por el usuario 9", - "Failed to upload delivery note": "Error al subir albarán {{id}}", - "The DOCUWARE PDF document does not exists": "El documento PDF Docuware no existe", - "It is not possible to modify tracked sales": "No es posible modificar líneas de pedido que se hayan empezado a preparar", - "It is not possible to modify sales that their articles are from Floramondo": "No es posible modificar líneas de pedido cuyos artículos sean de Floramondo", - "It is not possible to modify cloned sales": "No es posible modificar líneas de pedido clonadas", - "A supplier with the same name already exists. Change the country.": "Un proveedor con el mismo nombre ya existe. Cambie el país.", - "There is no assigned email for this client": "No hay correo asignado para este cliente", - "Exists an invoice with a future date": "Existe una factura con fecha posterior", - "Invoice date can't be less than max date": "La fecha de factura no puede ser inferior a la fecha límite", - "Warehouse inventory not set": "El almacén inventario no está establecido", - "This locker has already been assigned": "Esta taquilla ya ha sido asignada", - "Tickets with associated refunds": "No se pueden borrar tickets con abonos asociados. Este ticket está asociado al abono Nº %d", - "Not exist this branch": "La rama no existe", - "This ticket cannot be signed because it has not been boxed": "Este ticket no puede firmarse porque no ha sido encajado", - "Collection does not exist": "La colección no existe", - "Cannot obtain exclusive lock": "No se puede obtener un bloqueo exclusivo", - "Insert a date range": "Inserte un rango de fechas", - "Added observation": "{{user}} añadió esta observacion: {{text}}", - "Comment added to client": "Observación añadida al cliente {{clientFk}}", - "Invalid auth code": "Código de verificación incorrecto", - "Invalid or expired verification code": "Código de verificación incorrecto o expirado", - "Cannot create a new claimBeginning from a different ticket": "No se puede crear una línea de reclamación de un ticket diferente al origen", - "company": "Compañía", - "country": "País", - "clientId": "Id cliente", - "clientSocialName": "Cliente", - "amount": "Importe", - "taxableBase": "Base", - "ticketFk": "Id ticket", - "isActive": "Activo", - "hasToInvoice": "Facturar", - "isTaxDataChecked": "Datos comprobados", - "comercialId": "Id comercial", - "comercialName": "Comercial", - "Pass expired": "La contraseña ha caducado, cambiela desde Salix", - "Invalid NIF for VIES": "Invalid NIF for VIES", - "Ticket does not exist": "Este ticket no existe", - "Ticket is already signed": "Este ticket ya ha sido firmado", - "Authentication failed": "Autenticación fallida", - "You can't use the same password": "No puedes usar la misma contraseña", - "You can only add negative amounts in refund tickets": "Solo se puede añadir cantidades negativas en tickets abono", - "Fecha fuera de rango": "Fecha fuera de rango", - "Error while generating PDF": "Error al generar PDF", - "Error when sending mail to client": "Error al enviar el correo al cliente", - "Mail not sent": "Se ha producido un fallo al enviar la factura al cliente [{{clientId}}]({{{clientUrl}}}), por favor revisa la dirección de correo electrónico", - "The renew period has not been exceeded": "El periodo de renovación no ha sido superado", - "Valid priorities": "Prioridades válidas: %d", - "hasAnyNegativeBase": "Base negativa para los tickets: {{ticketsIds}}", - "hasAnyPositiveBase": "Base positivas para los tickets: {{ticketsIds}}", - "You cannot assign an alias that you are not assigned to": "No puede asignar un alias que no tenga asignado", - "This ticket cannot be left empty.": "Este ticket no se puede dejar vacío. %s", - "The company has not informed the supplier account for bank transfers": "La empresa no tiene informado la cuenta de proveedor para transferencias bancarias", - "You cannot assign/remove an alias that you are not assigned to": "No puede asignar/eliminar un alias que no tenga asignado", - "This invoice has a linked vehicle.": "Esta factura tiene un vehiculo vinculado", - "You don't have enough privileges.": "No tienes suficientes permisos.", - "This ticket is locked": "Este ticket está bloqueado.", - "This ticket is not editable.": "Este ticket no es editable.", - "The ticket doesn't exist.": "No existe el ticket.", - "Social name should be uppercase": "La razón social debe ir en mayúscula", - "Street should be uppercase": "La dirección fiscal debe ir en mayúscula", - "Ticket without Route": "Ticket sin ruta", - "Select a different client": "Seleccione un cliente distinto", - "Fill all the fields": "Rellene todos los campos", - "The response is not a PDF": "La respuesta no es un PDF", - "Booking completed": "Reserva completada", - "The ticket is in preparation": "El ticket [{{ticketId}}]({{{ticketUrl}}}) del comercial {{salesPersonId}} está en preparación", - "Incoterms data for consignee is missing": "Faltan los datos de los Incoterms para el consignatario", - "The notification subscription of this worker cant be modified": "La subscripción a la notificación de este trabajador no puede ser modificada", - "User disabled": "Usuario desactivado", - "The amount cannot be less than the minimum": "La cantidad no puede ser menor que la cantidad mínima", - "quantityLessThanMin": "La cantidad no puede ser menor que la cantidad mínima", - "Cannot past travels with entries": "No se pueden pasar envíos con entradas", - "It was not able to remove the next expeditions:": "No se pudo eliminar las siguientes expediciones: {{expeditions}}", - "This claim has been updated": "La reclamación con Id: {{claimId}}, ha sido actualizada", - "This user does not have an assigned tablet": "Este usuario no tiene tablet asignada", - "Incorrect pin": "Pin incorrecto", - "You already have the mailAlias": "Ya tienes este alias de correo", - "The alias cant be modified": "Este alias de correo no puede ser modificado", - "This ticket already has a cmr saved": "Este ticket ya tiene un cmr guardado", - "Name should be uppercase": "El nombre debe ir en mayúscula", - "Bank entity must be specified": "La entidad bancaria es obligatoria", - "An email is necessary": "Es necesario un email", - "You cannot update these fields": "No puedes actualizar estos campos", - "CountryFK cannot be empty": "El país no puede estar vacío", - "Cmr file does not exist": "El archivo del cmr no existe", - "You are not allowed to modify the alias": "No estás autorizado a modificar el alias", + "Phone format is invalid": "El formato del teléfono no es correcto", + "You are not allowed to change the credit": "No tienes privilegios para modificar el crédito", + "Unable to mark the equivalence surcharge": "No se puede marcar el recargo de equivalencia", + "The default consignee can not be unchecked": "No se puede desmarcar el consignatario predeterminado", + "Unable to default a disabled consignee": "No se puede poner predeterminado un consignatario desactivado", + "Can't be blank": "No puede estar en blanco", + "Invalid TIN": "NIF/CIF inválido", + "TIN must be unique": "El NIF/CIF debe ser único", + "A client with that Web User name already exists": "Ya existe un cliente con ese Usuario Web", + "Is invalid": "Es inválido", + "Quantity cannot be zero": "La cantidad no puede ser cero", + "Enter an integer different to zero": "Introduce un entero distinto de cero", + "Package cannot be blank": "El embalaje no puede estar en blanco", + "The company name must be unique": "La razón social debe ser única", + "Invalid email": "Correo electrónico inválido", + "The IBAN does not have the correct format": "El IBAN no tiene el formato correcto", + "That payment method requires an IBAN": "El método de pago seleccionado requiere un IBAN", + "That payment method requires a BIC": "El método de pago seleccionado requiere un BIC", + "State cannot be blank": "El estado no puede estar en blanco", + "Worker cannot be blank": "El trabajador no puede estar en blanco", + "Cannot change the payment method if no salesperson": "No se puede cambiar la forma de pago si no hay comercial asignado", + "can't be blank": "El campo no puede estar vacío", + "Observation type must be unique": "El tipo de observación no puede repetirse", + "The credit must be an integer greater than or equal to zero": "The credit must be an integer greater than or equal to zero", + "The grade must be similar to the last one": "El grade debe ser similar al último", + "Only manager can change the credit": "Solo el gerente puede cambiar el credito de este cliente", + "Name cannot be blank": "El nombre no puede estar en blanco", + "Phone cannot be blank": "El teléfono no puede estar en blanco", + "Period cannot be blank": "El periodo no puede estar en blanco", + "Choose a company": "Selecciona una empresa", + "Se debe rellenar el campo de texto": "Se debe rellenar el campo de texto", + "Description should have maximum of 45 characters": "La descripción debe tener maximo 45 caracteres", + "Cannot be blank": "El campo no puede estar en blanco", + "The grade must be an integer greater than or equal to zero": "El grade debe ser un entero mayor o igual a cero", + "Sample type cannot be blank": "El tipo de plantilla no puede quedar en blanco", + "Description cannot be blank": "Se debe rellenar el campo de texto", + "The price of the item changed": "El precio del artículo cambió", + "The value should not be greater than 100%": "El valor no debe de ser mayor de 100%", + "The value should be a number": "El valor debe ser un numero", + "This order is not editable": "Esta orden no se puede modificar", + "You can't create an order for a frozen client": "No puedes crear una orden para un cliente congelado", + "You can't create an order for a client that has a debt": "No puedes crear una orden para un cliente con deuda", + "is not a valid date": "No es una fecha valida", + "Barcode must be unique": "El código de barras debe ser único", + "The warehouse can't be repeated": "El almacén no puede repetirse", + "The tag or priority can't be repeated for an item": "El tag o prioridad no puede repetirse para un item", + "The observation type can't be repeated": "El tipo de observación no puede repetirse", + "A claim with that sale already exists": "Ya existe una reclamación para esta línea", + "You don't have enough privileges to change that field": "No tienes permisos para cambiar ese campo", + "Warehouse cannot be blank": "El almacén no puede quedar en blanco", + "Agency cannot be blank": "La agencia no puede quedar en blanco", + "Not enough privileges to edit a client with verified data": "No tienes permisos para hacer cambios en un cliente con datos comprobados", + "This address doesn't exist": "Este consignatario no existe", + "You must delete the claim id %d first": "Antes debes borrar la reclamación %d", + "You don't have enough privileges": "No tienes suficientes permisos", + "Cannot check Equalization Tax in this NIF/CIF": "No se puede marcar RE en este NIF/CIF", + "You can't make changes on the basic data of an confirmed order or with rows": "No puedes cambiar los datos básicos de una orden con artículos", + "INVALID_USER_NAME": "El nombre de usuario solo debe contener letras minúsculas o, a partir del segundo carácter, números o subguiones, no está permitido el uso de la letra ñ", + "You can't create a ticket for a frozen client": "No puedes crear un ticket para un cliente congelado", + "You can't create a ticket for an inactive client": "No puedes crear un ticket para un cliente inactivo", + "Tag value cannot be blank": "El valor del tag no puede quedar en blanco", + "ORDER_EMPTY": "Cesta vacía", + "You don't have enough privileges to do that": "No tienes permisos para cambiar esto", + "NO SE PUEDE DESACTIVAR EL CONSIGNAT": "NO SE PUEDE DESACTIVAR EL CONSIGNAT", + "Error. El NIF/CIF está repetido": "Error. El NIF/CIF está repetido", + "Street cannot be empty": "Dirección no puede estar en blanco", + "City cannot be empty": "Ciudad no puede estar en blanco", + "Code cannot be blank": "Código no puede estar en blanco", + "You cannot remove this department": "No puedes eliminar este departamento", + "The extension must be unique": "La extensión debe ser unica", + "The secret can't be blank": "La contraseña no puede estar en blanco", + "We weren't able to send this SMS": "No hemos podido enviar el SMS", + "This client can't be invoiced": "Este cliente no puede ser facturado", + "You must provide the correction information to generate a corrective invoice": "Debes informar la información de corrección para generar una factura rectificativa", + "This ticket can't be invoiced": "Este ticket no puede ser facturado", + "You cannot add or modify services to an invoiced ticket": "No puedes añadir o modificar servicios a un ticket facturado", + "This ticket can not be modified": "Este ticket no puede ser modificado", + "The introduced hour already exists": "Esta hora ya ha sido introducida", + "INFINITE_LOOP": "Existe una dependencia entre dos Jefes", + "The sales of the receiver ticket can't be modified": "Las lineas del ticket al que envias no pueden ser modificadas", + "NO_AGENCY_AVAILABLE": "No hay una zona de reparto disponible con estos parámetros", + "ERROR_PAST_SHIPMENT": "No puedes seleccionar una fecha de envío en pasado", + "The current ticket can't be modified": "El ticket actual no puede ser modificado", + "The current claim can't be modified": "La reclamación actual no puede ser modificada", + "The sales of this ticket can't be modified": "Las lineas de este ticket no pueden ser modificadas", + "The sales do not exists": "La(s) línea(s) seleccionada(s) no existe(n)", + "Please select at least one sale": "Por favor selecciona al menos una linea", + "All sales must belong to the same ticket": "Todas las lineas deben pertenecer al mismo ticket", + "NO_ZONE_FOR_THIS_PARAMETERS": "Para este día no hay ninguna zona configurada", + "This item doesn't exists": "El artículo no existe", + "NOT_ZONE_WITH_THIS_PARAMETERS": "Para este día no hay ninguna zona configurada", + "Extension format is invalid": "El formato de la extensión es inválido", + "Invalid parameters to create a new ticket": "Parámetros inválidos para crear un nuevo ticket", + "This item is not available": "Este artículo no está disponible", + "This postcode already exists": "Este código postal ya existe", + "Concept cannot be blank": "El concepto no puede quedar en blanco", + "File doesn't exists": "El archivo no existe", + "You don't have privileges to change the zone": "No tienes permisos para cambiar la zona o para esos parámetros hay más de una opción de envío, hable con las agencias", + "This ticket is already on weekly tickets": "Este ticket ya está en tickets programados", + "Ticket id cannot be blank": "El id de ticket no puede quedar en blanco", + "Weekday cannot be blank": "El día de la semana no puede quedar en blanco", + "You can't delete a confirmed order": "No puedes borrar un pedido confirmado", + "The social name has an invalid format": "El nombre fiscal tiene un formato incorrecto", + "Invalid quantity": "Cantidad invalida", + "This postal code is not valid": "Este código postal no es válido", + "is invalid": "es inválido", + "The postcode doesn't exist. Please enter a correct one": "El código postal no existe. Por favor, introduce uno correcto", + "The department name can't be repeated": "El nombre del departamento no puede repetirse", + "This phone already exists": "Este teléfono ya existe", + "You cannot move a parent to its own sons": "No puedes mover un elemento padre a uno de sus hijos", + "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", + "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 fin", + "Start date should be lower than end date": "La fecha de inicio debe ser menor que la fecha de fin", + "You should mark at least one week day": "Debes marcar al menos un día de la semana", + "Swift / BIC can't be empty": "Swift / BIC no puede estar vacío", + "Customs agent is required for a non UEE member": "El agente de aduanas es requerido para los clientes extracomunitarios", + "Incoterms is required for a non UEE member": "El incoterms es requerido para los clientes extracomunitarios", + "Deleted sales from ticket": "He eliminado las siguientes lineas del ticket [{{ticketId}}]({{{ticketUrl}}}): {{{deletions}}}", + "Added sale to ticket": "He añadido la siguiente linea al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{addition}}}", + "Changed sale discount": "He cambiado el descuento de las siguientes lineas al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", + "Created claim": "He creado la reclamación [{{claimId}}]({{{claimUrl}}}) de las siguientes lineas del ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", + "Changed sale price": "He cambiado el precio de [{{itemId}} {{concept}}]({{{itemUrl}}}) ({{quantity}}) de {{oldPrice}}€ ➔ *{{newPrice}}€* del ticket [{{ticketId}}]({{{ticketUrl}}})", + "Changed sale quantity": "He cambiado la cantidad de [{{itemId}} {{concept}}]({{{itemUrl}}}) de {{oldQuantity}} ➔ *{{newQuantity}}* del ticket [{{ticketId}}]({{{ticketUrl}}})", + "State": "Estado", + "regular": "normal", + "reserved": "reservado", + "Changed sale reserved state": "He cambiado el estado reservado de las siguientes lineas al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", + "Bought units from buy request": "Se ha comprado {{quantity}} unidades de [{{itemId}} {{concept}}]({{{urlItem}}}) para el ticket id [{{ticketId}}]({{{url}}})", + "Deny buy request": "Se ha rechazado la petición de compra para el ticket id [{{ticketId}}]({{{url}}}). Motivo: {{observation}}", + "MESSAGE_INSURANCE_CHANGE": "He cambiado el crédito asegurado del cliente [{{clientName}} ({{clientId}})]({{{url}}}) a *{{credit}} €*", + "Changed client paymethod": "He cambiado la forma de pago del cliente [{{clientName}} ({{clientId}})]({{{url}}})", + "Sent units from ticket": "Envio *{{quantity}}* unidades de [{{concept}} ({{itemId}})]({{{itemUrl}}}) a *\"{{nickname}}\"* provenientes del ticket id [{{ticketId}}]({{{ticketUrl}}})", + "Change quantity": "{{concept}} cambia de {{oldQuantity}} a {{newQuantity}}", + "Claim will be picked": "Se recogerá el género de la reclamación [({{claimId}})]({{{claimUrl}}}) del cliente *{{clientName}}*", + "Claim state has changed to": "Se ha cambiado el estado de la reclamación [({{claimId}})]({{{claimUrl}}}) del cliente *{{clientName}}* a *{{newState}}*", + "Client checked as validated despite of duplication": "Cliente comprobado a pesar de que existe el cliente id {{clientId}}", + "ORDER_ROW_UNAVAILABLE": "No hay disponibilidad de este producto", + "Distance must be lesser than 1000": "La distancia debe ser inferior a 1000", + "This ticket is deleted": "Este ticket está eliminado", + "Unable to clone this travel": "No ha sido posible clonar este travel", + "This thermograph id already exists": "La id del termógrafo ya existe", + "Choose a date range or days forward": "Selecciona un rango de fechas o días en adelante", + "ORDER_ALREADY_CONFIRMED": "ORDEN YA CONFIRMADA", + "Invalid password": "Invalid password", + "Password does not meet requirements": "La contraseña no cumple los requisitos", + "Role already assigned": "Rol ya asignado", + "Invalid role name": "Nombre de rol no válido", + "Role name must be written in camelCase": "El nombre del rol debe escribirse en camelCase", + "Email already exists": "El correo ya existe", + "User already exists": "El/La usuario/a ya existe", + "Absence change notification on the labour calendar": "Notificación de cambio de ausencia en el calendario laboral", + "Record of hours week": "Registro de horas semana {{week}} año {{year}} ", + "Created absence": "El empleado {{author}} ha añadido una ausencia de tipo '{{absenceType}}' a {{employee}} para el día {{dated}}.", + "Deleted absence": "El empleado {{author}} ha eliminado una ausencia de tipo '{{absenceType}}' a {{employee}} del día {{dated}}.", + "I have deleted the ticket id": "He eliminado el ticket id [{{id}}]({{{url}}})", + "I have restored the ticket id": "He restaurado el ticket id [{{id}}]({{{url}}})", + "You can only restore a ticket within the first hour after deletion": "Únicamente puedes restaurar el ticket dentro de la primera hora después de su eliminación", + "Changed this data from the ticket": "He cambiado estos datos del ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", + "agencyModeFk": "Agencia", + "clientFk": "Cliente", + "zoneFk": "Zona", + "warehouseFk": "Almacén", + "shipped": "F. envío", + "landed": "F. entrega", + "addressFk": "Consignatario", + "companyFk": "Empresa", + "The social name cannot be empty": "La razón social no puede quedar en blanco", + "The nif cannot be empty": "El NIF no puede quedar en blanco", + "You need to fill sage information before you check verified data": "Debes rellenar la información de sage antes de marcar datos comprobados", + "ASSIGN_ZONE_FIRST": "Asigna una zona primero", + "Amount cannot be zero": "El importe no puede ser cero", + "Company has to be official": "Empresa inválida", + "You can not select this payment method without a registered bankery account": "No se puede utilizar este método de pago si no has registrado una cuenta bancaria", + "Action not allowed on the test environment": "Esta acción no está permitida en el entorno de pruebas", + "The selected ticket is not suitable for this route": "El ticket seleccionado no es apto para esta ruta", + "New ticket request has been created with price": "Se ha creado una nueva petición de compra '{{description}}' para el día *{{shipped}}*, con una cantidad de *{{quantity}}* y un precio de *{{price}} €*", + "New ticket request has been created": "Se ha creado una nueva petición de compra '{{description}}' para el día *{{shipped}}*, con una cantidad de *{{quantity}}*", + "Swift / BIC cannot be empty": "Swift / BIC no puede estar vacío", + "This BIC already exist.": "Este BIC ya existe.", + "That item doesn't exists": "Ese artículo no existe", + "There's a new urgent ticket:": "Hay un nuevo ticket urgente:", + "Invalid account": "Cuenta inválida", + "Compensation account is empty": "La cuenta para compensar está vacia", + "This genus already exist": "Este genus ya existe", + "This specie already exist": "Esta especie ya existe", + "Client assignment has changed": "He cambiado el comercial ~*\"<{{previousWorkerName}}>\"*~ por *\"<{{currentWorkerName}}>\"* del cliente [{{clientName}} ({{clientId}})]({{{url}}})", + "None": "Ninguno", + "The contract was not active during the selected date": "El contrato no estaba activo durante la fecha seleccionada", + "Cannot add more than one '1/2 day vacation'": "No puedes añadir más de un 'Vacaciones 1/2 dia'", + "This document already exists on this ticket": "Este documento ya existe en el ticket", + "Some of the selected tickets are not billable": "Algunos de los tickets seleccionados no son facturables", + "You can't invoice tickets from multiple clients": "No puedes facturar tickets de multiples clientes", + "nickname": "nickname", + "INACTIVE_PROVIDER": "Proveedor inactivo", + "This client is not invoiceable": "Este cliente no es facturable", + "serial non editable": "Esta serie no permite asignar la referencia", + "Max shipped required": "La fecha límite es requerida", + "Can't invoice to future": "No se puede facturar a futuro", + "Can't invoice to past": "No se puede facturar a pasado", + "This ticket is already invoiced": "Este ticket ya está facturado", + "A ticket with an amount of zero can't be invoiced": "No se puede facturar un ticket con importe cero", + "A ticket with a negative base can't be invoiced": "No se puede facturar un ticket con una base negativa", + "Global invoicing failed": "[Facturación global] No se han podido facturar algunos clientes", + "Wasn't able to invoice the following clients": "No se han podido facturar los siguientes clientes", + "Can't verify data unless the client has a business type": "No se puede verificar datos de un cliente que no tiene tipo de negocio", + "You don't have enough privileges to set this credit amount": "No tienes suficientes privilegios para establecer esta cantidad de crédito", + "You can't change the credit set to zero from a financialBoss": "No puedes cambiar el cŕedito establecido a cero por un jefe de finanzas", + "Amounts do not match": "Las cantidades no coinciden", + "The PDF document does not exist": "El documento PDF no existe. Prueba a regenerarlo desde la opción 'Regenerar PDF factura'", + "The type of business must be filled in basic data": "El tipo de negocio debe estar rellenado en datos básicos", + "You can't create a claim from a ticket delivered more than seven days ago": "No puedes crear una reclamación de un ticket entregado hace más de siete días", + "The worker has hours recorded that day": "El trabajador tiene horas fichadas ese día", + "The worker has a marked absence that day": "El trabajador tiene marcada una ausencia ese día", + "You can not modify is pay method checked": "No se puede modificar el campo método de pago validado", + "The account size must be exactly 10 characters": "El tamaño de la cuenta debe ser exactamente de 10 caracteres", + "Can't transfer claimed sales": "No puedes transferir lineas reclamadas", + "You don't have privileges to create refund": "No tienes permisos para crear un abono", + "The item is required": "El artículo es requerido", + "The agency is already assigned to another autonomous": "La agencia ya está asignada a otro autónomo", + "date in the future": "Fecha en el futuro", + "reference duplicated": "Referencia duplicada", + "This ticket is already a refund": "Este ticket ya es un abono", + "isWithoutNegatives": "Sin negativos", + "routeFk": "routeFk", + "Can't change the password of another worker": "No se puede cambiar la contraseña de otro trabajador", + "No hay un contrato en vigor": "No hay un contrato en vigor", + "No se permite fichar a futuro": "No se permite fichar a futuro", + "No está permitido trabajar": "No está permitido trabajar", + "Fichadas impares": "Fichadas impares", + "Descanso diario 12h.": "Descanso diario 12h.", + "Descanso semanal 36h. / 72h.": "Descanso semanal 36h. / 72h.", + "Dirección incorrecta": "Dirección incorrecta", + "Modifiable user details only by an administrator": "Detalles de usuario modificables solo por un administrador", + "Modifiable password only via recovery or by an administrator": "Contraseña modificable solo a través de la recuperación o por un administrador", + "Not enough privileges to edit a client": "No tienes suficientes privilegios para editar un cliente", + "This route does not exists": "Esta ruta no existe", + "Claim pickup order sent": "Reclamación Orden de recogida enviada [{{claimId}}]({{{claimUrl}}}) al cliente *{{clientName}}*", + "You don't have grant privilege": "No tienes privilegios para dar privilegios", + "You don't own the role and you can't assign it to another user": "No eres el propietario del rol y no puedes asignarlo a otro usuario", + "Ticket merged": "Ticket [{{originId}}]({{{originFullPath}}}) ({{{originDated}}}) fusionado con [{{destinationId}}]({{{destinationFullPath}}}) ({{{destinationDated}}})", + "Already has this status": "Ya tiene este estado", + "There aren't records for this week": "No existen registros para esta semana", + "Empty data source": "Origen de datos vacio", + "App locked": "Aplicación bloqueada por el usuario {{userId}}", + "Email verify": "Correo de verificación", + "Landing cannot be lesser than shipment": "Landing cannot be lesser than shipment", + "Receipt's bank was not found": "No se encontró el banco del recibo", + "This receipt was not compensated": "Este recibo no ha sido compensado", + "Client's email was not found": "No se encontró el email del cliente", + "Negative basis": "Base negativa", + "This worker code already exists": "Este codigo de trabajador ya existe", + "This personal mail already exists": "Este correo personal ya existe", + "This worker already exists": "Este trabajador ya existe", + "App name does not exist": "El nombre de aplicación no es válido", + "Try again": "Vuelve a intentarlo", + "Aplicación bloqueada por el usuario 9": "Aplicación bloqueada por el usuario 9", + "Failed to upload delivery note": "Error al subir albarán {{id}}", + "The DOCUWARE PDF document does not exists": "El documento PDF Docuware no existe", + "It is not possible to modify tracked sales": "No es posible modificar líneas de pedido que se hayan empezado a preparar", + "It is not possible to modify sales that their articles are from Floramondo": "No es posible modificar líneas de pedido cuyos artículos sean de Floramondo", + "It is not possible to modify cloned sales": "No es posible modificar líneas de pedido clonadas", + "A supplier with the same name already exists. Change the country.": "Un proveedor con el mismo nombre ya existe. Cambie el país.", + "There is no assigned email for this client": "No hay correo asignado para este cliente", + "Exists an invoice with a future date": "Existe una factura con fecha posterior", + "Invoice date can't be less than max date": "La fecha de factura no puede ser inferior a la fecha límite", + "Warehouse inventory not set": "El almacén inventario no está establecido", + "This locker has already been assigned": "Esta taquilla ya ha sido asignada", + "Tickets with associated refunds": "No se pueden borrar tickets con abonos asociados. Este ticket está asociado al abono Nº %d", + "Not exist this branch": "La rama no existe", + "This ticket cannot be signed because it has not been boxed": "Este ticket no puede firmarse porque no ha sido encajado", + "Collection does not exist": "La colección no existe", + "Cannot obtain exclusive lock": "No se puede obtener un bloqueo exclusivo", + "Insert a date range": "Inserte un rango de fechas", + "Added observation": "{{user}} añadió esta observacion: {{text}}", + "Comment added to client": "Observación añadida al cliente {{clientFk}}", + "Invalid auth code": "Código de verificación incorrecto", + "Invalid or expired verification code": "Código de verificación incorrecto o expirado", + "Cannot create a new claimBeginning from a different ticket": "No se puede crear una línea de reclamación de un ticket diferente al origen", + "company": "Compañía", + "country": "País", + "clientId": "Id cliente", + "clientSocialName": "Cliente", + "amount": "Importe", + "taxableBase": "Base", + "ticketFk": "Id ticket", + "isActive": "Activo", + "hasToInvoice": "Facturar", + "isTaxDataChecked": "Datos comprobados", + "comercialId": "Id comercial", + "comercialName": "Comercial", + "Pass expired": "La contraseña ha caducado, cambiela desde Salix", + "Invalid NIF for VIES": "Invalid NIF for VIES", + "Ticket does not exist": "Este ticket no existe", + "Ticket is already signed": "Este ticket ya ha sido firmado", + "Authentication failed": "Autenticación fallida", + "You can't use the same password": "No puedes usar la misma contraseña", + "You can only add negative amounts in refund tickets": "Solo se puede añadir cantidades negativas en tickets abono", + "Fecha fuera de rango": "Fecha fuera de rango", + "Error while generating PDF": "Error al generar PDF", + "Error when sending mail to client": "Error al enviar el correo al cliente", + "Mail not sent": "Se ha producido un fallo al enviar la factura al cliente [{{clientId}}]({{{clientUrl}}}), por favor revisa la dirección de correo electrónico", + "The renew period has not been exceeded": "El periodo de renovación no ha sido superado", + "Valid priorities": "Prioridades válidas: %d", + "hasAnyNegativeBase": "Base negativa para los tickets: {{ticketsIds}}", + "hasAnyPositiveBase": "Base positivas para los tickets: {{ticketsIds}}", + "You cannot assign an alias that you are not assigned to": "No puede asignar un alias que no tenga asignado", + "This ticket cannot be left empty.": "Este ticket no se puede dejar vacío. %s", + "The company has not informed the supplier account for bank transfers": "La empresa no tiene informado la cuenta de proveedor para transferencias bancarias", + "You cannot assign/remove an alias that you are not assigned to": "No puede asignar/eliminar un alias que no tenga asignado", + "This invoice has a linked vehicle.": "Esta factura tiene un vehiculo vinculado", + "You don't have enough privileges.": "No tienes suficientes permisos.", + "This ticket is locked": "Este ticket está bloqueado.", + "This ticket is not editable.": "Este ticket no es editable.", + "The ticket doesn't exist.": "No existe el ticket.", + "Social name should be uppercase": "La razón social debe ir en mayúscula", + "Street should be uppercase": "La dirección fiscal debe ir en mayúscula", + "Ticket without Route": "Ticket sin ruta", + "Select a different client": "Seleccione un cliente distinto", + "Fill all the fields": "Rellene todos los campos", + "The response is not a PDF": "La respuesta no es un PDF", + "Booking completed": "Reserva completada", + "The ticket is in preparation": "El ticket [{{ticketId}}]({{{ticketUrl}}}) del comercial {{salesPersonId}} está en preparación", + "Incoterms data for consignee is missing": "Faltan los datos de los Incoterms para el consignatario", + "The notification subscription of this worker cant be modified": "La subscripción a la notificación de este trabajador no puede ser modificada", + "User disabled": "Usuario desactivado", + "The amount cannot be less than the minimum": "La cantidad no puede ser menor que la cantidad mínima", + "quantityLessThanMin": "La cantidad no puede ser menor que la cantidad mínima", + "Cannot past travels with entries": "No se pueden pasar envíos con entradas", + "It was not able to remove the next expeditions:": "No se pudo eliminar las siguientes expediciones: {{expeditions}}", + "This claim has been updated": "La reclamación con Id: {{claimId}}, ha sido actualizada", + "This user does not have an assigned tablet": "Este usuario no tiene tablet asignada", + "Incorrect pin": "Pin incorrecto", + "You already have the mailAlias": "Ya tienes este alias de correo", + "The alias cant be modified": "Este alias de correo no puede ser modificado", "No tickets to invoice": "No hay tickets para facturar", - "This machine is already in use.": "Esta máquina ya está en uso.", - "the plate does not exist": "La máquina {{plate}} no existe", - "We do not have availability for the selected item": "No tenemos disponible el item seleccionado", - "You are already using a machine": "Ya estás usando una máquina.", - "this state does not exist": "Este estado no existe", - "The line could not be marked": "No se ha podido marcar la línea", - "The sale cannot be tracked": "La línea no puede ser rastreada", - "Shelving not valid": "Carro no válido", - "printerNotExists": "No existe la impresora", - "There are not picking tickets": "No hay tickets para sacar", - "ticketCommercial": "El ticket {{ticket}} del comercial {{salesMan}} está en preparación.(mensaje creado automáticamente)", - -} + "This ticket already has a cmr saved": "Este ticket ya tiene un cmr guardado", + "Name should be uppercase": "El nombre debe ir en mayúscula", + "Bank entity must be specified": "La entidad bancaria es obligatoria", + "An email is necessary": "Es necesario un email", + "You cannot update these fields": "No puedes actualizar estos campos", + "CountryFK cannot be empty": "El país no puede estar vacío", + "Cmr file does not exist": "El archivo del cmr no existe", + "We do not have availability for the selected item": "No tenemos disponible el artículo seleccionado" +} \ No newline at end of file diff --git a/modules/ticket/back/methods/ticket/addSaleByCode.js b/modules/ticket/back/methods/ticket/addSaleByCode.js index 5c63b465e..cb3bcccd3 100644 --- a/modules/ticket/back/methods/ticket/addSaleByCode.js +++ b/modules/ticket/back/methods/ticket/addSaleByCode.js @@ -1,3 +1,4 @@ +const UserError = require('vn-loopback/util/user-error'); module.exports = Self => { Self.remoteMethodCtx('addSaleByCode', { description: 'Add a collection', @@ -15,6 +16,10 @@ module.exports = Self => { arg: 'ticketFk', type: 'number', required: true + }, { + arg: 'warehouseFk', + type: 'number', + required: true }, ], @@ -24,8 +29,7 @@ module.exports = Self => { }, }); - Self.addSaleByCode = async(ctx, code, quantity, ticketFk, options) => { - const models = Self.app.models; + Self.addSaleByCode = async(ctx, code, quantity, ticketFk, warehouseFk, options) => { const myOptions = {}; let tx; @@ -38,8 +42,10 @@ module.exports = Self => { } try { - const [{itemFk}] = await Self.rawSql('SELECT barcodeToItem(?) itemFk', [code], myOptions); - await models.Ticket.addSale(ctx, ticketFk, itemFk, quantity, myOptions); + const [[item]] = await Self.rawSql('CALL vn.item_getInfo(?,?)', [code, warehouseFk], myOptions); + if (!item?.available) throw new UserError('We do not have availability for the selected item'); + + await Self.rawSql('CALL vn.collection_addItem(?, ?, ?)', [item.id, quantity, ticketFk], myOptions); if (tx) await tx.commit(); } catch (e) { From d5a341330750b369173bcf72f23c8bcd70f8f43f Mon Sep 17 00:00:00 2001 From: jorgep Date: Mon, 19 Feb 2024 14:46:42 +0100 Subject: [PATCH 090/173] fix: refs #6776 method names & chanmges --- .../{assignCollection.js => assign.js} | 6 +- ...sFromTicketOrCollection.js => getSales.js} | 13 ++--- ...ssignCollection.spec.js => assign.spec.js} | 4 +- ...tOrCollection.spec.js => getSales.spec.js} | 6 +- back/methods/machine-worker/updateInTime.js | 6 +- back/models/collection.js | 4 +- .../10832-purpleAralia/00-newWareHouse.sql | 7 +-- .../{return.js => getAlternative.js} | 6 +- ...{return.spec.js => getAlternative.spec.js} | 6 +- .../back/methods/item/{card.js => get.js} | 28 +++++---- .../item/specs/{card.spec.js => get.spec.js} | 6 +- modules/item/back/models/item-shelving.js | 2 +- modules/item/back/models/item.js | 2 +- .../back/methods/ticket/addSaleByCode.js | 11 ++-- modules/worker/back/methods/operator/add.js | 21 ------- .../back/methods/operator/spec/add.spec.js | 58 ------------------- modules/worker/back/models/operator.js | 2 - 17 files changed, 49 insertions(+), 139 deletions(-) rename back/methods/collection/{assignCollection.js => assign.js} (86%) rename back/methods/collection/{getSalesFromTicketOrCollection.js => getSales.js} (94%) rename back/methods/collection/spec/{assignCollection.spec.js => assign.spec.js} (88%) rename back/methods/collection/spec/{getSalesFromTicketOrCollection.spec.js => getSales.spec.js} (90%) rename modules/item/back/methods/item-shelving/{return.js => getAlternative.js} (92%) rename modules/item/back/methods/item-shelving/specs/{return.spec.js => getAlternative.spec.js} (70%) rename modules/item/back/methods/item/{card.js => get.js} (55%) rename modules/item/back/methods/item/specs/{card.spec.js => get.spec.js} (67%) delete mode 100644 modules/worker/back/methods/operator/add.js delete mode 100644 modules/worker/back/methods/operator/spec/add.spec.js diff --git a/back/methods/collection/assignCollection.js b/back/methods/collection/assign.js similarity index 86% rename from back/methods/collection/assignCollection.js rename to back/methods/collection/assign.js index 575649de8..8a2300e3e 100644 --- a/back/methods/collection/assignCollection.js +++ b/back/methods/collection/assign.js @@ -1,10 +1,10 @@ const UserError = require('vn-loopback/util/user-error'); module.exports = Self => { - Self.remoteMethodCtx('assignCollection', { + Self.remoteMethodCtx('assign', { description: 'Assign a collection', accessType: 'WRITE', http: { - path: `/assignCollection`, + path: `/assign`, verb: 'POST' }, returns: { @@ -13,7 +13,7 @@ module.exports = Self => { }, }); - Self.assignCollection = async(ctx, options) => { + Self.assign = async(ctx, options) => { const userId = ctx.req.accessToken.userId; const myOptions = {userId}; diff --git a/back/methods/collection/getSalesFromTicketOrCollection.js b/back/methods/collection/getSales.js similarity index 94% rename from back/methods/collection/getSalesFromTicketOrCollection.js rename to back/methods/collection/getSales.js index 3c27a0be6..e9a87bfa3 100644 --- a/back/methods/collection/getSalesFromTicketOrCollection.js +++ b/back/methods/collection/getSales.js @@ -1,5 +1,5 @@ module.exports = Self => { - Self.remoteMethodCtx('getSalesFromTicketOrCollection', { + Self.remoteMethodCtx('getSales', { description: 'Get sales from ticket or collection', accessType: 'READ', accepts: [ @@ -23,12 +23,12 @@ module.exports = Self => { root: true }, http: { - path: `/getSalesFromTicketOrCollection`, + path: `/getSales`, verb: 'GET' }, }); - Self.getSalesFromTicketOrCollection = async(ctx, collectionOrTicketFk, print, source, options) => { + Self.getSales = async(ctx, collectionOrTicketFk, print, source, options) => { const userId = ctx.req.accessToken.userId; const myOptions = {userId}; const $t = ctx.req.__; @@ -62,11 +62,11 @@ module.exports = Self => { let observations = ticket.observaciones.split(' '); for (let observation of observations) { - const salesMan = ticket.salesPersonFk; + const salesPerson = ticket.salesPersonFk; if (!observation.startsWith('#') && !observation.startsWith('@')) return; await models.Chat.send(ctx, observation, - $t('ticketCommercial', {ticket: ticket.ticketFk, salesMan}) + $t('ticketCommercial', {ticket: ticket.ticketFk, salesPerson}) ); } } @@ -92,9 +92,8 @@ module.exports = Self => { if (sale.ticketFk == ticketFk) { sale.placements = []; for (const salePlacement of placements) { - let placement; if (salePlacement.saleFk == sale.saleFk && salePlacement.order) { - placement = { + const placement = { saleFk: salePlacement.saleFk, itemFk: salePlacement.itemFk, placement: salePlacement.placement, diff --git a/back/methods/collection/spec/assignCollection.spec.js b/back/methods/collection/spec/assign.spec.js similarity index 88% rename from back/methods/collection/spec/assignCollection.spec.js rename to back/methods/collection/spec/assign.spec.js index e8f3882a3..745343819 100644 --- a/back/methods/collection/spec/assignCollection.spec.js +++ b/back/methods/collection/spec/assign.spec.js @@ -1,7 +1,7 @@ const models = require('vn-loopback/server/server').models; const LoopBackContext = require('loopback-context'); -describe('ticket assignCollection()', () => { +describe('ticket assign()', () => { let ctx; let options; let tx; @@ -30,7 +30,7 @@ describe('ticket assignCollection()', () => { it('should throw an error when there is not picking tickets', async() => { try { - await models.Collection.assignCollection(ctx, options); + await models.Collection.assign(ctx, options); } catch (e) { expect(e.message).toEqual('There are not picking tickets'); } diff --git a/back/methods/collection/spec/getSalesFromTicketOrCollection.spec.js b/back/methods/collection/spec/getSales.spec.js similarity index 90% rename from back/methods/collection/spec/getSalesFromTicketOrCollection.spec.js rename to back/methods/collection/spec/getSales.spec.js index 50ba69401..e6205cc79 100644 --- a/back/methods/collection/spec/getSalesFromTicketOrCollection.spec.js +++ b/back/methods/collection/spec/getSales.spec.js @@ -1,6 +1,6 @@ const {models} = require('vn-loopback/server/server'); -describe('collection getSalesFromTicketOrCollection()', () => { +describe('collection getSales()', () => { const collectionOrTicketFk = 999999; const print = true; const source = 'CHECKER'; @@ -18,7 +18,7 @@ describe('collection getSalesFromTicketOrCollection()', () => { const tx = await models.Collection.beginTransaction({}); const options = {transaction: tx}; try { - const collection = await models.Collection.getSalesFromTicketOrCollection(ctx, + const collection = await models.Collection.getSales(ctx, collectionOrTicketFk, print, source, options); const [firstTicket] = collection.tickets; @@ -47,7 +47,7 @@ describe('collection getSalesFromTicketOrCollection()', () => { try { const printQueueBefore = await models.Collection.rawSql( query, [], options); - await models.Collection.getSalesFromTicketOrCollection(ctx, + await models.Collection.getSales(ctx, collectionOrTicketFk, true, source, options); const printQueueAfter = await models.Collection.rawSql( query, [], options); diff --git a/back/methods/machine-worker/updateInTime.js b/back/methods/machine-worker/updateInTime.js index 706f1a80e..cfeda4425 100644 --- a/back/methods/machine-worker/updateInTime.js +++ b/back/methods/machine-worker/updateInTime.js @@ -50,13 +50,13 @@ module.exports = Self => { if (machineWorker) { const {maxHours} = await models.MachineWorkerConfig.findOne({fields: ['maxHours']}, myOptions); const hoursDifference = (Date.vnNow() - machineWorker.inTime.getTime()) / (60 * 60 * 1000); - const isHimSelf = userId == machineWorker.workerFk; + const isHimself = userId == machineWorker.workerFk; const isSameMachine = machine.id == machineWorker.machineFk; - if (hoursDifference < maxHours && !isHimSelf) + if (hoursDifference < maxHours && !isHimself) throw new UserError($t('This machine is already in use.')); - if (hoursDifference < maxHours && isHimSelf && !isSameMachine) + if (hoursDifference < maxHours && isHimself && !isSameMachine) throw new UserError($t('You are already using a machine')); await machineWorker.updateAttributes({ diff --git a/back/models/collection.js b/back/models/collection.js index 7cc88c950..f2c2f1566 100644 --- a/back/models/collection.js +++ b/back/models/collection.js @@ -3,6 +3,6 @@ module.exports = Self => { require('../methods/collection/setSaleQuantity')(Self); require('../methods/collection/previousLabel')(Self); require('../methods/collection/getTickets')(Self); - require('../methods/collection/assignCollection')(Self); - require('../methods/collection/getSalesFromTicketOrCollection')(Self); + require('../methods/collection/assign')(Self); + require('../methods/collection/getSales')(Self); }; diff --git a/db/versions/10832-purpleAralia/00-newWareHouse.sql b/db/versions/10832-purpleAralia/00-newWareHouse.sql index 4802a6c4a..d2a86bf3e 100644 --- a/db/versions/10832-purpleAralia/00-newWareHouse.sql +++ b/db/versions/10832-purpleAralia/00-newWareHouse.sql @@ -1,6 +1,6 @@ INSERT INTO `salix`.`ACL` (model, property, accessType, permission, principalType, principalId) VALUES - ('Collection', 'assignCollection', 'WRITE', 'ALLOW', 'ROLE', 'production'), + ('Collection', 'assign', 'WRITE', 'ALLOW', 'ROLE', 'production'), ('ExpeditionPallet', 'getPallet', 'READ', 'ALLOW', 'ROLE', 'production'), ('MachineWorker','updateInTime','WRITE','ALLOW','ROLE','production'), ('MobileAppVersionControl','getVersion','READ','ALLOW','ROLE','production'), @@ -8,7 +8,4 @@ INSERT INTO `salix`.`ACL` (model, property, accessType, permission, principalTyp ('SaleTracking','updateTracking','WRITE','ALLOW','ROLE','production'), ('SaleTracking','mark','WRITE','ALLOW','ROLE','production'), ('ExpeditionPallet', '*', 'READ', 'ALLOW', 'ROLE', 'production'), - ('Collection', 'assignCollection', 'WRITE', 'ALLOW', 'ROLE', 'production'), - ('Sale', 'getFromSectorCollection', 'READ', 'ALLOW', 'ROLE', 'production'), - ('Ticket', 'addSaleByCode', 'WRITE', 'ALLOW', 'ROLE', 'production'); - \ No newline at end of file + ('Sale', 'getFromSectorCollection', 'READ', 'ALLOW', 'ROLE', 'production'); \ No newline at end of file diff --git a/modules/item/back/methods/item-shelving/return.js b/modules/item/back/methods/item-shelving/getAlternative.js similarity index 92% rename from modules/item/back/methods/item-shelving/return.js rename to modules/item/back/methods/item-shelving/getAlternative.js index 81047461e..8c0f63a2f 100644 --- a/modules/item/back/methods/item-shelving/return.js +++ b/modules/item/back/methods/item-shelving/getAlternative.js @@ -1,5 +1,5 @@ module.exports = Self => { - Self.remoteMethod('return', { + Self.remoteMethod('getAlternative', { description: 'Returns a list of items and possible alternative locations', accessType: 'READ', accepts: [{ @@ -12,12 +12,12 @@ module.exports = Self => { root: true }, http: { - path: `/return`, + path: `/getAlternative`, verb: 'GET' } }); - Self.return = async(shelvingFk, options) => { + Self.getAlternative = async(shelvingFk, options) => { const models = Self.app.models; const myOptions = {}; diff --git a/modules/item/back/methods/item-shelving/specs/return.spec.js b/modules/item/back/methods/item-shelving/specs/getAlternative.spec.js similarity index 70% rename from modules/item/back/methods/item-shelving/specs/return.spec.js rename to modules/item/back/methods/item-shelving/specs/getAlternative.spec.js index a5edc0ade..8c8d8a33d 100644 --- a/modules/item/back/methods/item-shelving/specs/return.spec.js +++ b/modules/item/back/methods/item-shelving/specs/getAlternative.spec.js @@ -1,6 +1,6 @@ const {models} = require('vn-loopback/server/server'); -describe('itemShelving return()', () => { +describe('itemShelving getAlternative()', () => { beforeAll(async() => { ctx = { req: { @@ -11,14 +11,14 @@ describe('itemShelving return()', () => { it('should return a list of items without alternatives', async() => { const shelvingFk = 'HEJ'; - const itemShelvings = await models.ItemShelving.return(shelvingFk); + const itemShelvings = await models.ItemShelving.getAlternative(shelvingFk); expect(itemShelvings[0].carros.length).toEqual(0); }); it('should return an empty list', async() => { const shelvingFk = 'ZZP'; - const itemShelvings = await models.ItemShelving.return(shelvingFk); + const itemShelvings = await models.ItemShelving.getAlternative(shelvingFk); expect(itemShelvings.length).toEqual(0); }); diff --git a/modules/item/back/methods/item/card.js b/modules/item/back/methods/item/get.js similarity index 55% rename from modules/item/back/methods/item/card.js rename to modules/item/back/methods/item/get.js index 8ee4ccc6b..38b37a90c 100644 --- a/modules/item/back/methods/item/card.js +++ b/modules/item/back/methods/item/get.js @@ -1,14 +1,14 @@ module.exports = Self => { - Self.remoteMethod('card', { + Self.remoteMethod('get', { description: 'Get the data from an item', accessType: 'READ', http: { - path: `/card`, + path: `/get`, verb: 'GET' }, accepts: [ { - arg: 'itemFk', + arg: 'barcode', type: 'number', required: true, }, @@ -24,7 +24,7 @@ module.exports = Self => { }, }); - Self.card = async(itemFk, warehouseFk, options) => { + Self.get = async(barcode, warehouseFk, options) => { const myOptions = {}; if (typeof options == 'object') @@ -32,19 +32,17 @@ module.exports = Self => { const models = Self.app.models; - const [[itemInfo]] = await Self.rawSql('CALL vn.item_getInfo(?, ?)', [itemFk, warehouseFk], myOptions); + const [[itemInfo]] = await Self.rawSql('CALL vn.item_getInfo(?, ?)', [barcode, warehouseFk], myOptions); - const barcodeItems = await Self.rawSql('SELECT vn.barcodeToItem(?) as realIdItem', [itemFk], myOptions); - const [realIdItem] = barcodeItems.map(barcodeItem => barcodeItem.realIdItem); + if (itemInfo) { + itemInfo.barcodes = await models.ItemBarcode.find({ + fields: ['code'], + where: { + itemFk: itemInfo.id + } + }); + } - const barcodes = await models.ItemBarcode.find({ - fields: ['code'], - where: { - itemFk: realIdItem - } - }); - - if (itemInfo) itemInfo.barcodes = barcodes; return itemInfo; }; }; diff --git a/modules/item/back/methods/item/specs/card.spec.js b/modules/item/back/methods/item/specs/get.spec.js similarity index 67% rename from modules/item/back/methods/item/specs/card.spec.js rename to modules/item/back/methods/item/specs/get.spec.js index 65004cfa5..55262004a 100644 --- a/modules/item/back/methods/item/specs/card.spec.js +++ b/modules/item/back/methods/item/specs/get.spec.js @@ -1,10 +1,10 @@ const {models} = require('vn-loopback/server/server'); -describe('item card()', () => { - const itemFk = 1; +describe('item get()', () => { + const barcode = 1; const warehouseFk = 1; it('should get an item with several barcodes', async() => { - const card = await models.Item.card(itemFk, warehouseFk); + const card = await models.Item.get(barcode, warehouseFk); expect(card).toBeDefined(); expect(card.barcodes.length).toBeTruthy(); diff --git a/modules/item/back/models/item-shelving.js b/modules/item/back/models/item-shelving.js index 6e63a29b2..e180a2d7c 100644 --- a/modules/item/back/models/item-shelving.js +++ b/modules/item/back/models/item-shelving.js @@ -1,6 +1,6 @@ module.exports = Self => { require('../methods/item-shelving/deleteItemShelvings')(Self); require('../methods/item-shelving/getInventory')(Self); - require('../methods/item-shelving/return')(Self); + require('../methods/item-shelving/getAlternative')(Self); require('../methods/item-shelving/updateFromSale')(Self); }; diff --git a/modules/item/back/models/item.js b/modules/item/back/models/item.js index 17c7a59f1..e715ab431 100644 --- a/modules/item/back/models/item.js +++ b/modules/item/back/models/item.js @@ -17,7 +17,7 @@ module.exports = Self => { require('../methods/item/buyerWasteEmail')(Self); require('../methods/item/labelPdf')(Self); require('../methods/item/setVisibleDiscard')(Self); - require('../methods/item/card')(Self); + require('../methods/item/get')(Self); Self.validatesPresenceOf('originFk', {message: 'Cannot be blank'}); diff --git a/modules/ticket/back/methods/ticket/addSaleByCode.js b/modules/ticket/back/methods/ticket/addSaleByCode.js index cb3bcccd3..c22cbc20e 100644 --- a/modules/ticket/back/methods/ticket/addSaleByCode.js +++ b/modules/ticket/back/methods/ticket/addSaleByCode.js @@ -1,11 +1,10 @@ -const UserError = require('vn-loopback/util/user-error'); module.exports = Self => { Self.remoteMethodCtx('addSaleByCode', { description: 'Add a collection', accessType: 'WRITE', accepts: [ { - arg: 'code', + arg: 'barcode', type: 'string', required: true }, { @@ -29,7 +28,7 @@ module.exports = Self => { }, }); - Self.addSaleByCode = async(ctx, code, quantity, ticketFk, warehouseFk, options) => { + Self.addSaleByCode = async(ctx, barcode, quantity, ticketFk, warehouseFk, options) => { const myOptions = {}; let tx; @@ -42,10 +41,8 @@ module.exports = Self => { } try { - const [[item]] = await Self.rawSql('CALL vn.item_getInfo(?,?)', [code, warehouseFk], myOptions); - if (!item?.available) throw new UserError('We do not have availability for the selected item'); - - await Self.rawSql('CALL vn.collection_addItem(?, ?, ?)', [item.id, quantity, ticketFk], myOptions); + const [[item]] = await Self.rawSql('CALL vn.item_getInfo(?,?)', [barcode, warehouseFk], myOptions); + await Self.addSale(ctx, ticketFk, item.id, quantity, myOptions); if (tx) await tx.commit(); } catch (e) { diff --git a/modules/worker/back/methods/operator/add.js b/modules/worker/back/methods/operator/add.js deleted file mode 100644 index efd610562..000000000 --- a/modules/worker/back/methods/operator/add.js +++ /dev/null @@ -1,21 +0,0 @@ -module.exports = Self => { - Self.remoteMethodCtx('add', { - description: 'Add a new operator', - accessType: 'WRITE', - http: { - path: `/add`, - verb: 'POST' - } - }); - - Self.add = async(ctx, options) => { - const userId = ctx.req.accessToken.userId; - const myOptions = {}; - - if (typeof options == 'object') - Object.assign(myOptions, options); - - const isOperator = await Self.findById(userId, myOptions); - if (!isOperator) await Self.create({workerFk: userId}, myOptions); - }; -}; diff --git a/modules/worker/back/methods/operator/spec/add.spec.js b/modules/worker/back/methods/operator/spec/add.spec.js deleted file mode 100644 index 94daae8de..000000000 --- a/modules/worker/back/methods/operator/spec/add.spec.js +++ /dev/null @@ -1,58 +0,0 @@ -const {models} = require('vn-loopback/server/server'); - -describe('operator add()', () => { - const noOperator = 104; - const operator = 9; - - beforeAll(async() => { - ctx = { - req: { - accessToken: {}, - headers: {origin: 'http://localhost'}, - __: value => value - } - }; - }); - - it('should not add an existent operator', async() => { - const tx = await models.Operator.beginTransaction({}); - const options = {transaction: tx}; - ctx.req.accessToken.userId = operator; - - try { - const operatorBefore = await models.Operator.find(null, options); - const isOperator = await models.Operator.findOne(null, options); - - expect(isOperator).toBeDefined(); - - await models.Operator.add(ctx, options); - const operatorAfter = await models.Operator.find(null, options); - - expect(operatorBefore.length).toEqual(operatorAfter.length); - await tx.rollback(); - } catch (e) { - await tx.rollback(); - } - }); - - it('should add a new operator successfully', async() => { - const tx = await models.Operator.beginTransaction({}); - const options = {transaction: tx}; - ctx.req.accessToken.userId = noOperator; - - try { - const operatorBefore = await models.Operator.find(null, options); - await models.Operator.add(ctx, options); - const operatorAfter = await models.Operator.find(null, options); - - const isOperator = await models.Operator.findOne(null, options); - - expect(operatorBefore.length).toEqual(operatorAfter.length - 1); - expect(isOperator).toBeDefined(); - await tx.rollback(); - } catch (e) { - await tx.rollback(); - throw e; - } - }); -}); diff --git a/modules/worker/back/models/operator.js b/modules/worker/back/models/operator.js index 442ac343f..cf6c198b6 100644 --- a/modules/worker/back/models/operator.js +++ b/modules/worker/back/models/operator.js @@ -1,6 +1,4 @@ module.exports = Self => { - require('../methods/operator/add')(Self); - Self.observe('after save', async function(ctx) { const instance = ctx.data || ctx.instance; const models = Self.app.models; From 072280cc9caf2b888475d8544fdbceda0568dac7 Mon Sep 17 00:00:00 2001 From: jorgep Date: Tue, 20 Feb 2024 08:48:47 +0100 Subject: [PATCH 091/173] fix: refs #6776 method names --- .../methods/sale-tracking/{mark.js => setPicked.js} | 8 ++++---- .../specs/{mark.spec.js => setPicked.spec.js} | 10 +++++----- modules/ticket/back/models/sale-tracking.js | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) rename modules/ticket/back/methods/sale-tracking/{mark.js => setPicked.js} (90%) rename modules/ticket/back/methods/sale-tracking/specs/{mark.spec.js => setPicked.spec.js} (93%) diff --git a/modules/ticket/back/methods/sale-tracking/mark.js b/modules/ticket/back/methods/sale-tracking/setPicked.js similarity index 90% rename from modules/ticket/back/methods/sale-tracking/mark.js rename to modules/ticket/back/methods/sale-tracking/setPicked.js index 71fdfa048..990768197 100644 --- a/modules/ticket/back/methods/sale-tracking/mark.js +++ b/modules/ticket/back/methods/sale-tracking/setPicked.js @@ -1,8 +1,8 @@ const UserError = require('vn-loopback/util/user-error'); module.exports = Self => { - Self.remoteMethodCtx('mark', { - description: 'Insert an itemShelvingSale and Modify a saleTracking record', + Self.remoteMethodCtx('setPicked', { + description: 'Add the sales line of the item and set the tracking.', accessType: 'WRITE', accepts: [ { @@ -46,12 +46,12 @@ module.exports = Self => { } ], http: { - path: `/mark`, + path: `/setPicked`, verb: 'POST' } }); - Self.mark = async(ctx, saleFk, originalQuantity, code, isChecked, buyFk, isScanned, quantity, itemShelvingFk, options) => { + Self.setPicked = async(ctx, saleFk, originalQuantity, code, isChecked, buyFk, isScanned, quantity, itemShelvingFk, options) => { const userId = ctx.req.accessToken.userId; const models = Self.app.models; const myOptions = {}; diff --git a/modules/ticket/back/methods/sale-tracking/specs/mark.spec.js b/modules/ticket/back/methods/sale-tracking/specs/setPicked.spec.js similarity index 93% rename from modules/ticket/back/methods/sale-tracking/specs/mark.spec.js rename to modules/ticket/back/methods/sale-tracking/specs/setPicked.spec.js index 723f5fb78..0cf2ccbeb 100644 --- a/modules/ticket/back/methods/sale-tracking/specs/mark.spec.js +++ b/modules/ticket/back/methods/sale-tracking/specs/setPicked.spec.js @@ -1,5 +1,5 @@ const {models} = require('vn-loopback/server/server'); -describe('saleTracking mark()', () => { +describe('saleTracking setPicked()', () => { const saleFk = 1; const originalQuantity = 10; const code = 'PREPARED'; @@ -24,7 +24,7 @@ describe('saleTracking mark()', () => { const options = {transaction: tx}; const code = 'FAKESTATE'; try { - await models.SaleTracking.mark( + await models.SaleTracking.setPicked( ctx, saleFk, originalQuantity, @@ -50,7 +50,7 @@ describe('saleTracking mark()', () => { const tx = await models.SaleTracking.beginTransaction({}); const options = {transaction: tx}; try { - await models.SaleTracking.mark( + await models.SaleTracking.setPicked( ctx, saleFk, originalQuantity, @@ -63,7 +63,7 @@ describe('saleTracking mark()', () => { options ); - await models.SaleTracking.mark( + await models.SaleTracking.setPicked( ctx, saleFk, originalQuantity, @@ -89,7 +89,7 @@ describe('saleTracking mark()', () => { const options = {transaction: tx}; try { const itemShelvingSaleBefore = await models.ItemShelvingSale.find({}, options); - await models.SaleTracking.mark( + await models.SaleTracking.setPicked( ctx, saleFk, originalQuantity, diff --git a/modules/ticket/back/models/sale-tracking.js b/modules/ticket/back/models/sale-tracking.js index f284ec185..b5f8aeed5 100644 --- a/modules/ticket/back/models/sale-tracking.js +++ b/modules/ticket/back/models/sale-tracking.js @@ -4,5 +4,5 @@ module.exports = Self => { require('../methods/sale-tracking/new')(Self); require('../methods/sale-tracking/delete')(Self); require('../methods/sale-tracking/updateTracking')(Self); - require('../methods/sale-tracking/mark')(Self); + require('../methods/sale-tracking/setPicked')(Self); }; From 55b490160bed737cf58dc809dcfd3ff7e3a92107 Mon Sep 17 00:00:00 2001 From: jorgep Date: Tue, 20 Feb 2024 09:27:37 +0100 Subject: [PATCH 092/173] fix: refs #6776 back --- modules/ticket/back/methods/ticket/addSaleByCode.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/ticket/back/methods/ticket/addSaleByCode.js b/modules/ticket/back/methods/ticket/addSaleByCode.js index c22cbc20e..a73628c86 100644 --- a/modules/ticket/back/methods/ticket/addSaleByCode.js +++ b/modules/ticket/back/methods/ticket/addSaleByCode.js @@ -1,3 +1,4 @@ +const UserError = require('vn-loopback/util/user-error'); module.exports = Self => { Self.remoteMethodCtx('addSaleByCode', { description: 'Add a collection', @@ -42,7 +43,9 @@ module.exports = Self => { try { const [[item]] = await Self.rawSql('CALL vn.item_getInfo(?,?)', [barcode, warehouseFk], myOptions); - await Self.addSale(ctx, ticketFk, item.id, quantity, myOptions); + if (!item?.available) throw new UserError('We do not have availability for the selected item'); + + await Self.rawSql('CALL vn.collection_addItem(?, ?, ?)', [item.id, quantity, ticketFk], myOptions); if (tx) await tx.commit(); } catch (e) { From 9ce162da7144b8b064b4d1f0ab91f4b02e349082 Mon Sep 17 00:00:00 2001 From: jorgep Date: Tue, 20 Feb 2024 10:59:13 +0100 Subject: [PATCH 093/173] fix: refs #6776 back --- db/versions/10832-purpleAralia/00-newWareHouse.sql | 4 ++-- modules/ticket/back/methods/sale-tracking/delete.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/db/versions/10832-purpleAralia/00-newWareHouse.sql b/db/versions/10832-purpleAralia/00-newWareHouse.sql index d2a86bf3e..448c69322 100644 --- a/db/versions/10832-purpleAralia/00-newWareHouse.sql +++ b/db/versions/10832-purpleAralia/00-newWareHouse.sql @@ -4,8 +4,8 @@ INSERT INTO `salix`.`ACL` (model, property, accessType, permission, principalTyp ('ExpeditionPallet', 'getPallet', 'READ', 'ALLOW', 'ROLE', 'production'), ('MachineWorker','updateInTime','WRITE','ALLOW','ROLE','production'), ('MobileAppVersionControl','getVersion','READ','ALLOW','ROLE','production'), - ('SaleTracking','deleteTracking','WRITE','ALLOW','ROLE','production'), + ('SaleTracking','delete','WRITE','ALLOW','ROLE','production'), ('SaleTracking','updateTracking','WRITE','ALLOW','ROLE','production'), - ('SaleTracking','mark','WRITE','ALLOW','ROLE','production'), + ('SaleTracking','setPicked','WRITE','ALLOW','ROLE','production'), ('ExpeditionPallet', '*', 'READ', 'ALLOW', 'ROLE', 'production'), ('Sale', 'getFromSectorCollection', 'READ', 'ALLOW', 'ROLE', 'production'); \ No newline at end of file diff --git a/modules/ticket/back/methods/sale-tracking/delete.js b/modules/ticket/back/methods/sale-tracking/delete.js index 859f26354..fda21a014 100644 --- a/modules/ticket/back/methods/sale-tracking/delete.js +++ b/modules/ticket/back/methods/sale-tracking/delete.js @@ -2,7 +2,7 @@ module.exports = Self => { Self.remoteMethod('delete', { description: 'Delete sale trackings and item shelving sales', - accessType: 'READ', + accessType: 'WRITE', accepts: [ { arg: 'saleFk', From 131ae6b522ddd4288d7a3af49aa0b96eb750def0 Mon Sep 17 00:00:00 2001 From: sergiodt Date: Fri, 23 Feb 2024 07:44:25 +0100 Subject: [PATCH 094/173] refs #6193 feat:modify inventory --- db/routines/vn/procedures/itemShelving_inventory.sql | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/db/routines/vn/procedures/itemShelving_inventory.sql b/db/routines/vn/procedures/itemShelving_inventory.sql index ce2934426..73e438fbb 100644 --- a/db/routines/vn/procedures/itemShelving_inventory.sql +++ b/db/routines/vn/procedures/itemShelving_inventory.sql @@ -30,10 +30,11 @@ BEGIN ish.visible, p.sectorFk, it.workerFk buyer, - CONCAT('http:',ic.url, '/catalog/1600x900/',i.image) urlImage, + ic.url, + i.image, ish.isChecked, CASE - WHEN s.notPrepared > sm.parked THEN 0 + WHEN IFNULL (s.notPrepared, 0) > sm.parked THEN 0 WHEN sm.visible > sm.parked THEN 1 ELSE 2 END priority @@ -43,7 +44,7 @@ BEGIN JOIN tmp.stockMisfit sm ON sm.itemFk = ish.itemFk JOIN shelving sh ON sh.code = ish.shelvingFk JOIN parking p ON p.id = sh.parkingFk - JOIN ( + LEFT JOIN ( SELECT s.itemFk, sum(s.quantity) notPrepared FROM sale s JOIN ticket t ON t.id = s.ticketFk From 7fdfd4fcb418d49a6e1b6b9ea570cc139c2756ef Mon Sep 17 00:00:00 2001 From: jorgep Date: Fri, 23 Feb 2024 13:02:56 +0100 Subject: [PATCH 095/173] fix: refs #6276 desestructuring --- back/methods/collection/assign.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/back/methods/collection/assign.js b/back/methods/collection/assign.js index 8a2300e3e..b0c1d9995 100644 --- a/back/methods/collection/assign.js +++ b/back/methods/collection/assign.js @@ -20,7 +20,7 @@ module.exports = Self => { if (typeof options == 'object') Object.assign(myOptions, options); - const [info, okPacket, {collectionFk}] = await Self.rawSql('CALL vn.collection_assign(?, @vCollectionFk); SELECT @vCollectionFk collectionFk', + const [,, {collectionFk}] = await Self.rawSql('CALL vn.collection_assign(?, @vCollectionFk); SELECT @vCollectionFk collectionFk', [userId], myOptions); if (!collectionFk) throw new UserError('There are not picking tickets'); From b1a8fcf968ac1c0b2cffa566ff655241144ec8b2 Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 26 Feb 2024 11:50:46 +0100 Subject: [PATCH 096/173] refs #6925 fix(invoice): incoterms error --- db/routines/vn/procedures/ticket_closeByTicket.sql | 5 +++-- loopback/locale/es.json | 3 ++- loopback/server/boot/date.js | 4 ++-- modules/ticket/back/methods/ticket/closeAll.js | 3 ++- modules/ticket/back/methods/ticket/closure.js | 11 ++++++----- .../reports/invoice-incoterms/invoice-incoterms.js | 5 ++++- 6 files changed, 19 insertions(+), 12 deletions(-) diff --git a/db/routines/vn/procedures/ticket_closeByTicket.sql b/db/routines/vn/procedures/ticket_closeByTicket.sql index 93772225b..837b809a2 100644 --- a/db/routines/vn/procedures/ticket_closeByTicket.sql +++ b/db/routines/vn/procedures/ticket_closeByTicket.sql @@ -15,10 +15,11 @@ BEGIN JOIN agencyMode am ON am.id = t.agencyModeFk LEFT JOIN ticketState ts ON ts.ticketFk = t.id JOIN alertLevel al ON al.id = ts.alertLevel - WHERE al.code = 'PACKED' OR (am.code = 'refund' AND al.code != 'delivered') + WHERE (al.code = 'PACKED' OR (am.code = 'refund' AND al.code != 'delivered')) AND t.id = vTicketFk AND t.refFk IS NULL - GROUP BY t.id); + GROUP BY t.id + ); CALL ticket_close(); diff --git a/loopback/locale/es.json b/loopback/locale/es.json index aea0c311c..49283e633 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -344,5 +344,6 @@ "CountryFK cannot be empty": "El país no puede estar vacío", "Cmr file does not exist": "El archivo del cmr no existe", "You are not allowed to modify the alias": "No estás autorizado a modificar el alias", - "No tickets to invoice": "No hay tickets para facturar" + "No tickets to invoice": "No hay tickets para facturar", + "The address of the customer must have information about Incoterms and Customs Agent": "El consignatario del cliente debe tener informado Incoterms y Agente de aduanas" } diff --git a/loopback/server/boot/date.js b/loopback/server/boot/date.js index d592dc416..18c816186 100644 --- a/loopback/server/boot/date.js +++ b/loopback/server/boot/date.js @@ -1,7 +1,7 @@ module.exports = () => { Date.vnUTC = (env = process.env.NODE_ENV) => { - if (!env || env === 'development') - return new Date(Date.UTC(2001, 0, 1, 11)); + // if (!env || env === 'development') + // return new Date(Date.UTC(2001, 0, 1, 11)); return new Date(); }; diff --git a/modules/ticket/back/methods/ticket/closeAll.js b/modules/ticket/back/methods/ticket/closeAll.js index 46c45aa92..e0c6b0b16 100644 --- a/modules/ticket/back/methods/ticket/closeAll.js +++ b/modules/ticket/back/methods/ticket/closeAll.js @@ -30,7 +30,7 @@ module.exports = Self => { // Prevent closure for current day if (toDate >= todayMinDate && toDate <= todayMaxDate) throw new UserError('You cannot close tickets for today'); - + console.log(toDate, toDate); const tickets = await Self.rawSql(` SELECT t.id, t.clientFk, @@ -57,6 +57,7 @@ module.exports = Self => { AND t.refFk IS NULL GROUP BY t.id `, [toDate, toDate]); + console.log('tickets: ', tickets); await closure(ctx, Self, tickets); diff --git a/modules/ticket/back/methods/ticket/closure.js b/modules/ticket/back/methods/ticket/closure.js index 1d04679d3..2a0db1067 100644 --- a/modules/ticket/back/methods/ticket/closure.js +++ b/modules/ticket/back/methods/ticket/closure.js @@ -15,11 +15,12 @@ module.exports = async function(ctx, Self, tickets, reqArgs = {}) { const [invoiceOut] = await Self.rawSql(` SELECT io.id, io.ref, io.serial, cny.code companyCode, io.issued - FROM ticket t - JOIN invoiceOut io ON io.ref = t.refFk - JOIN company cny ON cny.id = io.companyFk - WHERE t.id = ? - `, [ticket.id]); + FROM ticket t + JOIN invoiceOut io ON io.ref = t.refFk + JOIN company cny ON cny.id = io.companyFk + WHERE t.id = ? + `, [ticket.id]); + console.log('invoiceOut: ', invoiceOut); const mailOptions = { overrideAttachments: true, diff --git a/print/templates/reports/invoice-incoterms/invoice-incoterms.js b/print/templates/reports/invoice-incoterms/invoice-incoterms.js index 9cc2600af..eb3a7d6a1 100755 --- a/print/templates/reports/invoice-incoterms/invoice-incoterms.js +++ b/print/templates/reports/invoice-incoterms/invoice-incoterms.js @@ -1,4 +1,5 @@ const vnReport = require('../../../core/mixins/vn-report.js'); +const UserError = require('vn-loopback/util/user-error'); module.exports = { name: 'invoice-incoterms', @@ -7,7 +8,9 @@ module.exports = { this.invoice = await this.findOneFromDef('invoice', [this.reference]); this.checkMainEntity(this.invoice); this.client = await this.findOneFromDef('client', [this.reference]); - this.incoterms = await this.findOneFromDef('incoterms', [this.reference, this.reference, this.reference, this.reference]); + this.incoterms = + await this.findOneFromDef('incoterms', [this.reference, this.reference, this.reference, this.reference]); + if (!this.incoterms) throw new UserError(`The client should be informed of the incoterms`); }, props: { reference: { From 96abdd46306fff648a4515e852616b6b7f6a96de Mon Sep 17 00:00:00 2001 From: sergiodt Date: Mon, 26 Feb 2024 12:52:34 +0100 Subject: [PATCH 097/173] refs #6078 feat:add workeractivity --- back/model-config.json | 13 +- back/models/workerActivity.json | 33 + back/models/workerActivityType.json | 19 + db/versions/10905-grayIvy/00-firstScript.sql | 41 ++ loopback/locale/es.json | 695 ++++++++++--------- modules/worker/back/models/department.json | 7 +- 6 files changed, 455 insertions(+), 353 deletions(-) create mode 100644 back/models/workerActivity.json create mode 100644 back/models/workerActivityType.json create mode 100644 db/versions/10905-grayIvy/00-firstScript.sql diff --git a/back/model-config.json b/back/model-config.json index 27a94498c..02c1c8c7f 100644 --- a/back/model-config.json +++ b/back/model-config.json @@ -16,7 +16,7 @@ "Bank": { "dataSource": "vn" }, - "Buyer": { + "Buyer": { "dataSource": "vn" }, "Campaign": { @@ -159,8 +159,11 @@ }, "VnRole": { "dataSource": "vn" + }, + "WorkerActivity": { + "dataSource": "vn" + }, + "WorkerActivityType": { + "dataSource": "vn" } -} - - - +} \ No newline at end of file diff --git a/back/models/workerActivity.json b/back/models/workerActivity.json new file mode 100644 index 000000000..34f375586 --- /dev/null +++ b/back/models/workerActivity.json @@ -0,0 +1,33 @@ +{ + "name": "WorkerActivity", + "base": "VnModel", + "options": { + "mysql": { + "table": "workerActivity" + } + }, + "properties": { + "id": { + "id": true, + "type": "number" + }, + "workerActivityTypeFk": { + "type": "string" + }, + "created": { + "type": "date" + }, + "relations": { + "workerFk": { + "type": "belongsTo", + "model": "Worker", + "foreignKey": "workerFk" + }, + "workerActivityTypeFk": { + "type": "belongsTo", + "model": "WorkerActivityType", + "foreignKey": "workerActivityTypeFk" + } + } + } +} \ No newline at end of file diff --git a/back/models/workerActivityType.json b/back/models/workerActivityType.json new file mode 100644 index 000000000..f010363a7 --- /dev/null +++ b/back/models/workerActivityType.json @@ -0,0 +1,19 @@ +{ + "name": "WorkerActivityType", + "base": "VnModel", + "options": { + "mysql": { + "table": "workerActivityType" + } + }, + "properties": { + "code": { + "id": true, + "type": "string" + }, + "description": { + "type": "string", + "required": false + } + } +} \ No newline at end of file diff --git a/db/versions/10905-grayIvy/00-firstScript.sql b/db/versions/10905-grayIvy/00-firstScript.sql new file mode 100644 index 000000000..a85efd836 --- /dev/null +++ b/db/versions/10905-grayIvy/00-firstScript.sql @@ -0,0 +1,41 @@ +CREATE OR REPLACE TABLE `workerActivityType` ( + `code` varchar(20) NOT NULL, + `description` varchar(45) NOT NULL, + PRIMARY KEY (`code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; + + +CREATE OR REPLACE TABLE `workerActivity` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `workerFk` int(10) unsigned NOT NULL, + `workerActivityTypeFk` varchar(20) NOT NULL, + `created` datetime NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `workerActivity_worker_FK` (`workerFk`), + KEY `workerActivity_workerActivityType_FK` (`workerActivityTypeFk`), + CONSTRAINT `workerActivity_workerActivityType_FK` FOREIGN KEY (`workerActivityTypeFk`) REFERENCES `workerActivityType` (`code`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `workerActivity_worker_FK` FOREIGN KEY (`workerFk`) REFERENCES `worker` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='Registros actividades por los trabajadores'; + +-- vn.workerMistakeType definition + + +ALTER TABLE vn.department ADD workerActivityTypeFk varchar(20) NULL COMMENT 'Indica la actitividad que desempeña por defecto ese departamento'; +ALTER TABLE vn.department ADD CONSTRAINT department_workerActivityType_FK FOREIGN KEY (workerActivityTypeFk) REFERENCES vn.workerActivityType(code) ON DELETE CASCADE ON UPDATE CASCADE; + + + +INSERT INTO vn.workerActivityType (code, description) VALUES('ON_CHECKING', 'REVISION'); +INSERT INTO vn.workerActivityType (code, description) VALUES('PREVIOUS_CAM', 'CAMARA'); +INSERT INTO vn.workerActivityType (code, description) VALUES('PREVIOUS_ART', 'ARTIFICIAL'); +INSERT INTO vn.workerActivityType (code, description) VALUES('ON_PREPARATION', 'SACADO'); +INSERT INTO vn.workerActivityType (code, description) VALUES('PACKING', 'ENCAJADO'); +INSERT INTO vn.workerActivityType (code, description) VALUES('FIELD', 'CAMPOS'); +INSERT INTO vn.workerActivityType (code, description) VALUES('DELIVERY', 'REPARTO'); +INSERT INTO vn.workerActivityType (code, description) VALUES('STORAGE', 'ALMACENAJE'); +INSERT INTO vn.workerActivityType (code, description) VALUES('PALLETIZING', 'PALETIZADO'); +INSERT INTO vn.workerActivityType (code, description) VALUES('STOP', 'PARADA'); + + +INSERT INTO salix.ACL ( model, property, accessType, permission, principalType, principalId) VALUES('WorkerActivityType', '*', 'READ', 'ALLOW', 'ROLE', 'production'); +INSERT INTO salix.ACL ( model, property, accessType, permission, principalType, principalId) VALUES('WorkerActivity', '*', '*', 'ALLOW', 'ROLE', 'production'); \ No newline at end of file diff --git a/loopback/locale/es.json b/loopback/locale/es.json index aea0c311c..d2663df13 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -1,348 +1,349 @@ { - "Phone format is invalid": "El formato del teléfono no es correcto", - "You are not allowed to change the credit": "No tienes privilegios para modificar el crédito", - "Unable to mark the equivalence surcharge": "No se puede marcar el recargo de equivalencia", - "The default consignee can not be unchecked": "No se puede desmarcar el consignatario predeterminado", - "Unable to default a disabled consignee": "No se puede poner predeterminado un consignatario desactivado", - "Can't be blank": "No puede estar en blanco", - "Invalid TIN": "NIF/CIF inválido", - "TIN must be unique": "El NIF/CIF debe ser único", - "A client with that Web User name already exists": "Ya existe un cliente con ese Usuario Web", - "Is invalid": "Es inválido", - "Quantity cannot be zero": "La cantidad no puede ser cero", - "Enter an integer different to zero": "Introduce un entero distinto de cero", - "Package cannot be blank": "El embalaje no puede estar en blanco", - "The company name must be unique": "La razón social debe ser única", - "Invalid email": "Correo electrónico inválido", - "The IBAN does not have the correct format": "El IBAN no tiene el formato correcto", - "That payment method requires an IBAN": "El método de pago seleccionado requiere un IBAN", - "That payment method requires a BIC": "El método de pago seleccionado requiere un BIC", - "State cannot be blank": "El estado no puede estar en blanco", - "Worker cannot be blank": "El trabajador no puede estar en blanco", - "Cannot change the payment method if no salesperson": "No se puede cambiar la forma de pago si no hay comercial asignado", - "can't be blank": "El campo no puede estar vacío", - "Observation type must be unique": "El tipo de observación no puede repetirse", - "The credit must be an integer greater than or equal to zero": "The credit must be an integer greater than or equal to zero", - "The grade must be similar to the last one": "El grade debe ser similar al último", - "Only manager can change the credit": "Solo el gerente puede cambiar el credito de este cliente", - "Name cannot be blank": "El nombre no puede estar en blanco", - "Phone cannot be blank": "El teléfono no puede estar en blanco", - "Period cannot be blank": "El periodo no puede estar en blanco", - "Choose a company": "Selecciona una empresa", - "Se debe rellenar el campo de texto": "Se debe rellenar el campo de texto", - "Description should have maximum of 45 characters": "La descripción debe tener maximo 45 caracteres", - "Cannot be blank": "El campo no puede estar en blanco", - "The grade must be an integer greater than or equal to zero": "El grade debe ser un entero mayor o igual a cero", - "Sample type cannot be blank": "El tipo de plantilla no puede quedar en blanco", - "Description cannot be blank": "Se debe rellenar el campo de texto", - "The price of the item changed": "El precio del artículo cambió", - "The value should not be greater than 100%": "El valor no debe de ser mayor de 100%", - "The value should be a number": "El valor debe ser un numero", - "This order is not editable": "Esta orden no se puede modificar", - "You can't create an order for a frozen client": "No puedes crear una orden para un cliente congelado", - "You can't create an order for a client that has a debt": "No puedes crear una orden para un cliente con deuda", - "is not a valid date": "No es una fecha valida", - "Barcode must be unique": "El código de barras debe ser único", - "The warehouse can't be repeated": "El almacén no puede repetirse", - "The tag or priority can't be repeated for an item": "El tag o prioridad no puede repetirse para un item", - "The observation type can't be repeated": "El tipo de observación no puede repetirse", - "A claim with that sale already exists": "Ya existe una reclamación para esta línea", - "You don't have enough privileges to change that field": "No tienes permisos para cambiar ese campo", - "Warehouse cannot be blank": "El almacén no puede quedar en blanco", - "Agency cannot be blank": "La agencia no puede quedar en blanco", - "Not enough privileges to edit a client with verified data": "No tienes permisos para hacer cambios en un cliente con datos comprobados", - "This address doesn't exist": "Este consignatario no existe", - "You must delete the claim id %d first": "Antes debes borrar la reclamación %d", - "You don't have enough privileges": "No tienes suficientes permisos", - "Cannot check Equalization Tax in this NIF/CIF": "No se puede marcar RE en este NIF/CIF", - "You can't make changes on the basic data of an confirmed order or with rows": "No puedes cambiar los datos básicos de una orden con artículos", - "INVALID_USER_NAME": "El nombre de usuario solo debe contener letras minúsculas o, a partir del segundo carácter, números o subguiones, no está permitido el uso de la letra ñ", - "You can't create a ticket for a frozen client": "No puedes crear un ticket para un cliente congelado", - "You can't create a ticket for an inactive client": "No puedes crear un ticket para un cliente inactivo", - "Tag value cannot be blank": "El valor del tag no puede quedar en blanco", - "ORDER_EMPTY": "Cesta vacía", - "You don't have enough privileges to do that": "No tienes permisos para cambiar esto", - "NO SE PUEDE DESACTIVAR EL CONSIGNAT": "NO SE PUEDE DESACTIVAR EL CONSIGNAT", - "Error. El NIF/CIF está repetido": "Error. El NIF/CIF está repetido", - "Street cannot be empty": "Dirección no puede estar en blanco", - "City cannot be empty": "Ciudad no puede estar en blanco", - "Code cannot be blank": "Código no puede estar en blanco", - "You cannot remove this department": "No puedes eliminar este departamento", - "The extension must be unique": "La extensión debe ser unica", - "The secret can't be blank": "La contraseña no puede estar en blanco", - "We weren't able to send this SMS": "No hemos podido enviar el SMS", - "This client can't be invoiced": "Este cliente no puede ser facturado", - "You must provide the correction information to generate a corrective invoice": "Debes informar la información de corrección para generar una factura rectificativa", - "This ticket can't be invoiced": "Este ticket no puede ser facturado", - "You cannot add or modify services to an invoiced ticket": "No puedes añadir o modificar servicios a un ticket facturado", - "This ticket can not be modified": "Este ticket no puede ser modificado", - "The introduced hour already exists": "Esta hora ya ha sido introducida", - "INFINITE_LOOP": "Existe una dependencia entre dos Jefes", - "The sales of the receiver ticket can't be modified": "Las lineas del ticket al que envias no pueden ser modificadas", - "NO_AGENCY_AVAILABLE": "No hay una zona de reparto disponible con estos parámetros", - "ERROR_PAST_SHIPMENT": "No puedes seleccionar una fecha de envío en pasado", - "The current ticket can't be modified": "El ticket actual no puede ser modificado", - "The current claim can't be modified": "La reclamación actual no puede ser modificada", - "The sales of this ticket can't be modified": "Las lineas de este ticket no pueden ser modificadas", - "The sales do not exists": "La(s) línea(s) seleccionada(s) no existe(n)", - "Please select at least one sale": "Por favor selecciona al menos una linea", - "All sales must belong to the same ticket": "Todas las lineas deben pertenecer al mismo ticket", - "NO_ZONE_FOR_THIS_PARAMETERS": "Para este día no hay ninguna zona configurada", - "This item doesn't exists": "El artículo no existe", - "NOT_ZONE_WITH_THIS_PARAMETERS": "Para este día no hay ninguna zona configurada", - "Extension format is invalid": "El formato de la extensión es inválido", - "Invalid parameters to create a new ticket": "Parámetros inválidos para crear un nuevo ticket", - "This item is not available": "Este artículo no está disponible", - "This postcode already exists": "Este código postal ya existe", - "Concept cannot be blank": "El concepto no puede quedar en blanco", - "File doesn't exists": "El archivo no existe", - "You don't have privileges to change the zone": "No tienes permisos para cambiar la zona o para esos parámetros hay más de una opción de envío, hable con las agencias", - "This ticket is already on weekly tickets": "Este ticket ya está en tickets programados", - "Ticket id cannot be blank": "El id de ticket no puede quedar en blanco", - "Weekday cannot be blank": "El día de la semana no puede quedar en blanco", - "You can't delete a confirmed order": "No puedes borrar un pedido confirmado", - "The social name has an invalid format": "El nombre fiscal tiene un formato incorrecto", - "Invalid quantity": "Cantidad invalida", - "This postal code is not valid": "Este código postal no es válido", - "is invalid": "es inválido", - "The postcode doesn't exist. Please enter a correct one": "El código postal no existe. Por favor, introduce uno correcto", - "The department name can't be repeated": "El nombre del departamento no puede repetirse", - "This phone already exists": "Este teléfono ya existe", - "You cannot move a parent to its own sons": "No puedes mover un elemento padre a uno de sus hijos", - "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", - "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 fin", - "Start date should be lower than end date": "La fecha de inicio debe ser menor que la fecha de fin", - "You should mark at least one week day": "Debes marcar al menos un día de la semana", - "Swift / BIC can't be empty": "Swift / BIC no puede estar vacío", - "Customs agent is required for a non UEE member": "El agente de aduanas es requerido para los clientes extracomunitarios", - "Incoterms is required for a non UEE member": "El incoterms es requerido para los clientes extracomunitarios", - "Deleted sales from ticket": "He eliminado las siguientes lineas del ticket [{{ticketId}}]({{{ticketUrl}}}): {{{deletions}}}", - "Added sale to ticket": "He añadido la siguiente linea al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{addition}}}", - "Changed sale discount": "He cambiado el descuento de las siguientes lineas al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", - "Created claim": "He creado la reclamación [{{claimId}}]({{{claimUrl}}}) de las siguientes lineas del ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", - "Changed sale price": "He cambiado el precio de [{{itemId}} {{concept}}]({{{itemUrl}}}) ({{quantity}}) de {{oldPrice}}€ ➔ *{{newPrice}}€* del ticket [{{ticketId}}]({{{ticketUrl}}})", - "Changed sale quantity": "He cambiado la cantidad de [{{itemId}} {{concept}}]({{{itemUrl}}}) de {{oldQuantity}} ➔ *{{newQuantity}}* del ticket [{{ticketId}}]({{{ticketUrl}}})", - "State": "Estado", - "regular": "normal", - "reserved": "reservado", - "Changed sale reserved state": "He cambiado el estado reservado de las siguientes lineas al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", - "Bought units from buy request": "Se ha comprado {{quantity}} unidades de [{{itemId}} {{concept}}]({{{urlItem}}}) para el ticket id [{{ticketId}}]({{{url}}})", - "Deny buy request": "Se ha rechazado la petición de compra para el ticket id [{{ticketId}}]({{{url}}}). Motivo: {{observation}}", - "MESSAGE_INSURANCE_CHANGE": "He cambiado el crédito asegurado del cliente [{{clientName}} ({{clientId}})]({{{url}}}) a *{{credit}} €*", - "Changed client paymethod": "He cambiado la forma de pago del cliente [{{clientName}} ({{clientId}})]({{{url}}})", - "Sent units from ticket": "Envio *{{quantity}}* unidades de [{{concept}} ({{itemId}})]({{{itemUrl}}}) a *\"{{nickname}}\"* provenientes del ticket id [{{ticketId}}]({{{ticketUrl}}})", - "Change quantity": "{{concept}} cambia de {{oldQuantity}} a {{newQuantity}}", - "Claim will be picked": "Se recogerá el género de la reclamación [({{claimId}})]({{{claimUrl}}}) del cliente *{{clientName}}*", - "Claim state has changed to": "Se ha cambiado el estado de la reclamación [({{claimId}})]({{{claimUrl}}}) del cliente *{{clientName}}* a *{{newState}}*", - "Client checked as validated despite of duplication": "Cliente comprobado a pesar de que existe el cliente id {{clientId}}", - "ORDER_ROW_UNAVAILABLE": "No hay disponibilidad de este producto", - "Distance must be lesser than 4000": "La distancia debe ser inferior a 4000", - "This ticket is deleted": "Este ticket está eliminado", - "Unable to clone this travel": "No ha sido posible clonar este travel", - "This thermograph id already exists": "La id del termógrafo ya existe", - "Choose a date range or days forward": "Selecciona un rango de fechas o días en adelante", - "ORDER_ALREADY_CONFIRMED": "ORDEN YA CONFIRMADA", - "Invalid password": "Invalid password", - "Password does not meet requirements": "La contraseña no cumple los requisitos", - "Role already assigned": "Rol ya asignado", - "Invalid role name": "Nombre de rol no válido", - "Role name must be written in camelCase": "El nombre del rol debe escribirse en camelCase", - "Email already exists": "El correo ya existe", - "User already exists": "El/La usuario/a ya existe", - "Absence change notification on the labour calendar": "Notificación de cambio de ausencia en el calendario laboral", - "Record of hours week": "Registro de horas semana {{week}} año {{year}} ", - "Created absence": "El empleado {{author}} ha añadido una ausencia de tipo '{{absenceType}}' a {{employee}} para el día {{dated}}.", - "Deleted absence": "El empleado {{author}} ha eliminado una ausencia de tipo '{{absenceType}}' a {{employee}} del día {{dated}}.", - "I have deleted the ticket id": "He eliminado el ticket id [{{id}}]({{{url}}})", - "I have restored the ticket id": "He restaurado el ticket id [{{id}}]({{{url}}})", - "You can only restore a ticket within the first hour after deletion": "Únicamente puedes restaurar el ticket dentro de la primera hora después de su eliminación", - "Changed this data from the ticket": "He cambiado estos datos del ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", - "agencyModeFk": "Agencia", - "clientFk": "Cliente", - "zoneFk": "Zona", - "warehouseFk": "Almacén", - "shipped": "F. envío", - "landed": "F. entrega", - "addressFk": "Consignatario", - "companyFk": "Empresa", - "The social name cannot be empty": "La razón social no puede quedar en blanco", - "The nif cannot be empty": "El NIF no puede quedar en blanco", - "You need to fill sage information before you check verified data": "Debes rellenar la información de sage antes de marcar datos comprobados", - "ASSIGN_ZONE_FIRST": "Asigna una zona primero", - "Amount cannot be zero": "El importe no puede ser cero", - "Company has to be official": "Empresa inválida", - "You can not select this payment method without a registered bankery account": "No se puede utilizar este método de pago si no has registrado una cuenta bancaria", - "Action not allowed on the test environment": "Esta acción no está permitida en el entorno de pruebas", - "The selected ticket is not suitable for this route": "El ticket seleccionado no es apto para esta ruta", - "New ticket request has been created with price": "Se ha creado una nueva petición de compra '{{description}}' para el día *{{shipped}}*, con una cantidad de *{{quantity}}* y un precio de *{{price}} €*", - "New ticket request has been created": "Se ha creado una nueva petición de compra '{{description}}' para el día *{{shipped}}*, con una cantidad de *{{quantity}}*", - "Swift / BIC cannot be empty": "Swift / BIC no puede estar vacío", - "This BIC already exist.": "Este BIC ya existe.", - "That item doesn't exists": "Ese artículo no existe", - "There's a new urgent ticket:": "Hay un nuevo ticket urgente:", - "Invalid account": "Cuenta inválida", - "Compensation account is empty": "La cuenta para compensar está vacia", - "This genus already exist": "Este genus ya existe", - "This specie already exist": "Esta especie ya existe", - "Client assignment has changed": "He cambiado el comercial ~*\"<{{previousWorkerName}}>\"*~ por *\"<{{currentWorkerName}}>\"* del cliente [{{clientName}} ({{clientId}})]({{{url}}})", - "None": "Ninguno", - "The contract was not active during the selected date": "El contrato no estaba activo durante la fecha seleccionada", - "Cannot add more than one '1/2 day vacation'": "No puedes añadir más de un 'Vacaciones 1/2 dia'", - "This document already exists on this ticket": "Este documento ya existe en el ticket", - "Some of the selected tickets are not billable": "Algunos de los tickets seleccionados no son facturables", - "You can't invoice tickets from multiple clients": "No puedes facturar tickets de multiples clientes", - "nickname": "nickname", - "INACTIVE_PROVIDER": "Proveedor inactivo", - "This client is not invoiceable": "Este cliente no es facturable", - "serial non editable": "Esta serie no permite asignar la referencia", - "Max shipped required": "La fecha límite es requerida", - "Can't invoice to future": "No se puede facturar a futuro", - "Can't invoice to past": "No se puede facturar a pasado", - "This ticket is already invoiced": "Este ticket ya está facturado", - "A ticket with an amount of zero can't be invoiced": "No se puede facturar un ticket con importe cero", - "A ticket with a negative base can't be invoiced": "No se puede facturar un ticket con una base negativa", - "Global invoicing failed": "[Facturación global] No se han podido facturar algunos clientes", - "Wasn't able to invoice the following clients": "No se han podido facturar los siguientes clientes", - "Can't verify data unless the client has a business type": "No se puede verificar datos de un cliente que no tiene tipo de negocio", - "You don't have enough privileges to set this credit amount": "No tienes suficientes privilegios para establecer esta cantidad de crédito", - "You can't change the credit set to zero from a financialBoss": "No puedes cambiar el cŕedito establecido a cero por un jefe de finanzas", - "Amounts do not match": "Las cantidades no coinciden", - "The PDF document does not exist": "El documento PDF no existe. Prueba a regenerarlo desde la opción 'Regenerar PDF factura'", - "The type of business must be filled in basic data": "El tipo de negocio debe estar rellenado en datos básicos", - "You can't create a claim from a ticket delivered more than seven days ago": "No puedes crear una reclamación de un ticket entregado hace más de siete días", - "The worker has hours recorded that day": "El trabajador tiene horas fichadas ese día", - "The worker has a marked absence that day": "El trabajador tiene marcada una ausencia ese día", - "You can not modify is pay method checked": "No se puede modificar el campo método de pago validado", - "The account size must be exactly 10 characters": "El tamaño de la cuenta debe ser exactamente de 10 caracteres", - "Can't transfer claimed sales": "No puedes transferir lineas reclamadas", - "You don't have privileges to create refund": "No tienes permisos para crear un abono", - "The item is required": "El artículo es requerido", - "The agency is already assigned to another autonomous": "La agencia ya está asignada a otro autónomo", - "date in the future": "Fecha en el futuro", - "reference duplicated": "Referencia duplicada", - "This ticket is already a refund": "Este ticket ya es un abono", - "isWithoutNegatives": "Sin negativos", - "routeFk": "routeFk", - "Can't change the password of another worker": "No se puede cambiar la contraseña de otro trabajador", - "No hay un contrato en vigor": "No hay un contrato en vigor", - "No se permite fichar a futuro": "No se permite fichar a futuro", - "No está permitido trabajar": "No está permitido trabajar", - "Fichadas impares": "Fichadas impares", - "Descanso diario 12h.": "Descanso diario 12h.", - "Descanso semanal 36h. / 72h.": "Descanso semanal 36h. / 72h.", - "Dirección incorrecta": "Dirección incorrecta", - "Modifiable user details only by an administrator": "Detalles de usuario modificables solo por un administrador", - "Modifiable password only via recovery or by an administrator": "Contraseña modificable solo a través de la recuperación o por un administrador", - "Not enough privileges to edit a client": "No tienes suficientes privilegios para editar un cliente", - "This route does not exists": "Esta ruta no existe", - "Claim pickup order sent": "Reclamación Orden de recogida enviada [{{claimId}}]({{{claimUrl}}}) al cliente *{{clientName}}*", - "You don't have grant privilege": "No tienes privilegios para dar privilegios", - "You don't own the role and you can't assign it to another user": "No eres el propietario del rol y no puedes asignarlo a otro usuario", - "Ticket merged": "Ticket [{{originId}}]({{{originFullPath}}}) ({{{originDated}}}) fusionado con [{{destinationId}}]({{{destinationFullPath}}}) ({{{destinationDated}}})", - "Already has this status": "Ya tiene este estado", - "There aren't records for this week": "No existen registros para esta semana", - "Empty data source": "Origen de datos vacio", - "App locked": "Aplicación bloqueada por el usuario {{userId}}", - "Email verify": "Correo de verificación", - "Landing cannot be lesser than shipment": "Landing cannot be lesser than shipment", - "Receipt's bank was not found": "No se encontró el banco del recibo", - "This receipt was not compensated": "Este recibo no ha sido compensado", - "Client's email was not found": "No se encontró el email del cliente", - "Negative basis": "Base negativa", - "This worker code already exists": "Este codigo de trabajador ya existe", - "This personal mail already exists": "Este correo personal ya existe", - "This worker already exists": "Este trabajador ya existe", - "App name does not exist": "El nombre de aplicación no es válido", - "Try again": "Vuelve a intentarlo", - "Aplicación bloqueada por el usuario 9": "Aplicación bloqueada por el usuario 9", - "Failed to upload delivery note": "Error al subir albarán {{id}}", - "The DOCUWARE PDF document does not exists": "El documento PDF Docuware no existe", - "It is not possible to modify tracked sales": "No es posible modificar líneas de pedido que se hayan empezado a preparar", - "It is not possible to modify sales that their articles are from Floramondo": "No es posible modificar líneas de pedido cuyos artículos sean de Floramondo", - "It is not possible to modify cloned sales": "No es posible modificar líneas de pedido clonadas", - "A supplier with the same name already exists. Change the country.": "Un proveedor con el mismo nombre ya existe. Cambie el país.", - "There is no assigned email for this client": "No hay correo asignado para este cliente", - "Exists an invoice with a future date": "Existe una factura con fecha posterior", - "Invoice date can't be less than max date": "La fecha de factura no puede ser inferior a la fecha límite", - "Warehouse inventory not set": "El almacén inventario no está establecido", - "This locker has already been assigned": "Esta taquilla ya ha sido asignada", - "Tickets with associated refunds": "No se pueden borrar tickets con abonos asociados. Este ticket está asociado al abono Nº %d", - "Not exist this branch": "La rama no existe", - "This ticket cannot be signed because it has not been boxed": "Este ticket no puede firmarse porque no ha sido encajado", - "Collection does not exist": "La colección no existe", - "Cannot obtain exclusive lock": "No se puede obtener un bloqueo exclusivo", - "Insert a date range": "Inserte un rango de fechas", - "Added observation": "{{user}} añadió esta observacion: {{text}}", - "Comment added to client": "Observación añadida al cliente {{clientFk}}", - "Invalid auth code": "Código de verificación incorrecto", - "Invalid or expired verification code": "Código de verificación incorrecto o expirado", - "Cannot create a new claimBeginning from a different ticket": "No se puede crear una línea de reclamación de un ticket diferente al origen", - "company": "Compañía", - "country": "País", - "clientId": "Id cliente", - "clientSocialName": "Cliente", - "amount": "Importe", - "taxableBase": "Base", - "ticketFk": "Id ticket", - "isActive": "Activo", - "hasToInvoice": "Facturar", - "isTaxDataChecked": "Datos comprobados", - "comercialId": "Id comercial", - "comercialName": "Comercial", - "Pass expired": "La contraseña ha caducado, cambiela desde Salix", - "Invalid NIF for VIES": "Invalid NIF for VIES", - "Ticket does not exist": "Este ticket no existe", - "Ticket is already signed": "Este ticket ya ha sido firmado", - "Authentication failed": "Autenticación fallida", - "You can't use the same password": "No puedes usar la misma contraseña", - "You can only add negative amounts in refund tickets": "Solo se puede añadir cantidades negativas en tickets abono", - "Fecha fuera de rango": "Fecha fuera de rango", - "Error while generating PDF": "Error al generar PDF", - "Error when sending mail to client": "Error al enviar el correo al cliente", - "Mail not sent": "Se ha producido un fallo al enviar la factura al cliente [{{clientId}}]({{{clientUrl}}}), por favor revisa la dirección de correo electrónico", - "The renew period has not been exceeded": "El periodo de renovación no ha sido superado", - "Valid priorities": "Prioridades válidas: %d", - "hasAnyNegativeBase": "Base negativa para los tickets: {{ticketsIds}}", - "hasAnyPositiveBase": "Base positivas para los tickets: {{ticketsIds}}", - "You cannot assign an alias that you are not assigned to": "No puede asignar un alias que no tenga asignado", - "This ticket cannot be left empty.": "Este ticket no se puede dejar vacío. %s", - "The company has not informed the supplier account for bank transfers": "La empresa no tiene informado la cuenta de proveedor para transferencias bancarias", - "You cannot assign/remove an alias that you are not assigned to": "No puede asignar/eliminar un alias que no tenga asignado", - "This invoice has a linked vehicle.": "Esta factura tiene un vehiculo vinculado", - "You don't have enough privileges.": "No tienes suficientes permisos.", - "This ticket is locked": "Este ticket está bloqueado.", - "This ticket is not editable.": "Este ticket no es editable.", - "The ticket doesn't exist.": "No existe el ticket.", - "Social name should be uppercase": "La razón social debe ir en mayúscula", - "Street should be uppercase": "La dirección fiscal debe ir en mayúscula", - "Ticket without Route": "Ticket sin ruta", - "Select a different client": "Seleccione un cliente distinto", - "Fill all the fields": "Rellene todos los campos", - "The response is not a PDF": "La respuesta no es un PDF", - "Booking completed": "Reserva completada", - "The ticket is in preparation": "El ticket [{{ticketId}}]({{{ticketUrl}}}) del comercial {{salesPersonId}} está en preparación", - "Incoterms data for consignee is missing": "Faltan los datos de los Incoterms para el consignatario", - "The notification subscription of this worker cant be modified": "La subscripción a la notificación de este trabajador no puede ser modificada", - "User disabled": "Usuario desactivado", - "The amount cannot be less than the minimum": "La cantidad no puede ser menor que la cantidad mínima", - "quantityLessThanMin": "La cantidad no puede ser menor que la cantidad mínima", - "Cannot past travels with entries": "No se pueden pasar envíos con entradas", - "It was not able to remove the next expeditions:": "No se pudo eliminar las siguientes expediciones: {{expeditions}}", - "This claim has been updated": "La reclamación con Id: {{claimId}}, ha sido actualizada", - "This user does not have an assigned tablet": "Este usuario no tiene tablet asignada", - "Incorrect pin": "Pin incorrecto", - "You already have the mailAlias": "Ya tienes este alias de correo", - "The alias cant be modified": "Este alias de correo no puede ser modificado", - "This ticket already has a cmr saved": "Este ticket ya tiene un cmr guardado", - "Name should be uppercase": "El nombre debe ir en mayúscula", - "Bank entity must be specified": "La entidad bancaria es obligatoria", - "An email is necessary": "Es necesario un email", - "You cannot update these fields": "No puedes actualizar estos campos", - "CountryFK cannot be empty": "El país no puede estar vacío", - "Cmr file does not exist": "El archivo del cmr no existe", - "You are not allowed to modify the alias": "No estás autorizado a modificar el alias", - "No tickets to invoice": "No hay tickets para facturar" -} + "Phone format is invalid": "El formato del teléfono no es correcto", + "You are not allowed to change the credit": "No tienes privilegios para modificar el crédito", + "Unable to mark the equivalence surcharge": "No se puede marcar el recargo de equivalencia", + "The default consignee can not be unchecked": "No se puede desmarcar el consignatario predeterminado", + "Unable to default a disabled consignee": "No se puede poner predeterminado un consignatario desactivado", + "Can't be blank": "No puede estar en blanco", + "Invalid TIN": "NIF/CIF inválido", + "TIN must be unique": "El NIF/CIF debe ser único", + "A client with that Web User name already exists": "Ya existe un cliente con ese Usuario Web", + "Is invalid": "Es inválido", + "Quantity cannot be zero": "La cantidad no puede ser cero", + "Enter an integer different to zero": "Introduce un entero distinto de cero", + "Package cannot be blank": "El embalaje no puede estar en blanco", + "The company name must be unique": "La razón social debe ser única", + "Invalid email": "Correo electrónico inválido", + "The IBAN does not have the correct format": "El IBAN no tiene el formato correcto", + "That payment method requires an IBAN": "El método de pago seleccionado requiere un IBAN", + "That payment method requires a BIC": "El método de pago seleccionado requiere un BIC", + "State cannot be blank": "El estado no puede estar en blanco", + "Worker cannot be blank": "El trabajador no puede estar en blanco", + "Cannot change the payment method if no salesperson": "No se puede cambiar la forma de pago si no hay comercial asignado", + "can't be blank": "El campo no puede estar vacío", + "Observation type must be unique": "El tipo de observación no puede repetirse", + "The credit must be an integer greater than or equal to zero": "The credit must be an integer greater than or equal to zero", + "The grade must be similar to the last one": "El grade debe ser similar al último", + "Only manager can change the credit": "Solo el gerente puede cambiar el credito de este cliente", + "Name cannot be blank": "El nombre no puede estar en blanco", + "Phone cannot be blank": "El teléfono no puede estar en blanco", + "Period cannot be blank": "El periodo no puede estar en blanco", + "Choose a company": "Selecciona una empresa", + "Se debe rellenar el campo de texto": "Se debe rellenar el campo de texto", + "Description should have maximum of 45 characters": "La descripción debe tener maximo 45 caracteres", + "Cannot be blank": "El campo no puede estar en blanco", + "The grade must be an integer greater than or equal to zero": "El grade debe ser un entero mayor o igual a cero", + "Sample type cannot be blank": "El tipo de plantilla no puede quedar en blanco", + "Description cannot be blank": "Se debe rellenar el campo de texto", + "The price of the item changed": "El precio del artículo cambió", + "The value should not be greater than 100%": "El valor no debe de ser mayor de 100%", + "The value should be a number": "El valor debe ser un numero", + "This order is not editable": "Esta orden no se puede modificar", + "You can't create an order for a frozen client": "No puedes crear una orden para un cliente congelado", + "You can't create an order for a client that has a debt": "No puedes crear una orden para un cliente con deuda", + "is not a valid date": "No es una fecha valida", + "Barcode must be unique": "El código de barras debe ser único", + "The warehouse can't be repeated": "El almacén no puede repetirse", + "The tag or priority can't be repeated for an item": "El tag o prioridad no puede repetirse para un item", + "The observation type can't be repeated": "El tipo de observación no puede repetirse", + "A claim with that sale already exists": "Ya existe una reclamación para esta línea", + "You don't have enough privileges to change that field": "No tienes permisos para cambiar ese campo", + "Warehouse cannot be blank": "El almacén no puede quedar en blanco", + "Agency cannot be blank": "La agencia no puede quedar en blanco", + "Not enough privileges to edit a client with verified data": "No tienes permisos para hacer cambios en un cliente con datos comprobados", + "This address doesn't exist": "Este consignatario no existe", + "You must delete the claim id %d first": "Antes debes borrar la reclamación %d", + "You don't have enough privileges": "No tienes suficientes permisos", + "Cannot check Equalization Tax in this NIF/CIF": "No se puede marcar RE en este NIF/CIF", + "You can't make changes on the basic data of an confirmed order or with rows": "No puedes cambiar los datos básicos de una orden con artículos", + "INVALID_USER_NAME": "El nombre de usuario solo debe contener letras minúsculas o, a partir del segundo carácter, números o subguiones, no está permitido el uso de la letra ñ", + "You can't create a ticket for a frozen client": "No puedes crear un ticket para un cliente congelado", + "You can't create a ticket for an inactive client": "No puedes crear un ticket para un cliente inactivo", + "Tag value cannot be blank": "El valor del tag no puede quedar en blanco", + "ORDER_EMPTY": "Cesta vacía", + "You don't have enough privileges to do that": "No tienes permisos para cambiar esto", + "NO SE PUEDE DESACTIVAR EL CONSIGNAT": "NO SE PUEDE DESACTIVAR EL CONSIGNAT", + "Error. El NIF/CIF está repetido": "Error. El NIF/CIF está repetido", + "Street cannot be empty": "Dirección no puede estar en blanco", + "City cannot be empty": "Ciudad no puede estar en blanco", + "Code cannot be blank": "Código no puede estar en blanco", + "You cannot remove this department": "No puedes eliminar este departamento", + "The extension must be unique": "La extensión debe ser unica", + "The secret can't be blank": "La contraseña no puede estar en blanco", + "We weren't able to send this SMS": "No hemos podido enviar el SMS", + "This client can't be invoiced": "Este cliente no puede ser facturado", + "You must provide the correction information to generate a corrective invoice": "Debes informar la información de corrección para generar una factura rectificativa", + "This ticket can't be invoiced": "Este ticket no puede ser facturado", + "You cannot add or modify services to an invoiced ticket": "No puedes añadir o modificar servicios a un ticket facturado", + "This ticket can not be modified": "Este ticket no puede ser modificado", + "The introduced hour already exists": "Esta hora ya ha sido introducida", + "INFINITE_LOOP": "Existe una dependencia entre dos Jefes", + "The sales of the receiver ticket can't be modified": "Las lineas del ticket al que envias no pueden ser modificadas", + "NO_AGENCY_AVAILABLE": "No hay una zona de reparto disponible con estos parámetros", + "ERROR_PAST_SHIPMENT": "No puedes seleccionar una fecha de envío en pasado", + "The current ticket can't be modified": "El ticket actual no puede ser modificado", + "The current claim can't be modified": "La reclamación actual no puede ser modificada", + "The sales of this ticket can't be modified": "Las lineas de este ticket no pueden ser modificadas", + "The sales do not exists": "La(s) línea(s) seleccionada(s) no existe(n)", + "Please select at least one sale": "Por favor selecciona al menos una linea", + "All sales must belong to the same ticket": "Todas las lineas deben pertenecer al mismo ticket", + "NO_ZONE_FOR_THIS_PARAMETERS": "Para este día no hay ninguna zona configurada", + "This item doesn't exists": "El artículo no existe", + "NOT_ZONE_WITH_THIS_PARAMETERS": "Para este día no hay ninguna zona configurada", + "Extension format is invalid": "El formato de la extensión es inválido", + "Invalid parameters to create a new ticket": "Parámetros inválidos para crear un nuevo ticket", + "This item is not available": "Este artículo no está disponible", + "This postcode already exists": "Este código postal ya existe", + "Concept cannot be blank": "El concepto no puede quedar en blanco", + "File doesn't exists": "El archivo no existe", + "You don't have privileges to change the zone": "No tienes permisos para cambiar la zona o para esos parámetros hay más de una opción de envío, hable con las agencias", + "This ticket is already on weekly tickets": "Este ticket ya está en tickets programados", + "Ticket id cannot be blank": "El id de ticket no puede quedar en blanco", + "Weekday cannot be blank": "El día de la semana no puede quedar en blanco", + "You can't delete a confirmed order": "No puedes borrar un pedido confirmado", + "The social name has an invalid format": "El nombre fiscal tiene un formato incorrecto", + "Invalid quantity": "Cantidad invalida", + "This postal code is not valid": "Este código postal no es válido", + "is invalid": "es inválido", + "The postcode doesn't exist. Please enter a correct one": "El código postal no existe. Por favor, introduce uno correcto", + "The department name can't be repeated": "El nombre del departamento no puede repetirse", + "This phone already exists": "Este teléfono ya existe", + "You cannot move a parent to its own sons": "No puedes mover un elemento padre a uno de sus hijos", + "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", + "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 fin", + "Start date should be lower than end date": "La fecha de inicio debe ser menor que la fecha de fin", + "You should mark at least one week day": "Debes marcar al menos un día de la semana", + "Swift / BIC can't be empty": "Swift / BIC no puede estar vacío", + "Customs agent is required for a non UEE member": "El agente de aduanas es requerido para los clientes extracomunitarios", + "Incoterms is required for a non UEE member": "El incoterms es requerido para los clientes extracomunitarios", + "Deleted sales from ticket": "He eliminado las siguientes lineas del ticket [{{ticketId}}]({{{ticketUrl}}}): {{{deletions}}}", + "Added sale to ticket": "He añadido la siguiente linea al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{addition}}}", + "Changed sale discount": "He cambiado el descuento de las siguientes lineas al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", + "Created claim": "He creado la reclamación [{{claimId}}]({{{claimUrl}}}) de las siguientes lineas del ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", + "Changed sale price": "He cambiado el precio de [{{itemId}} {{concept}}]({{{itemUrl}}}) ({{quantity}}) de {{oldPrice}}€ ➔ *{{newPrice}}€* del ticket [{{ticketId}}]({{{ticketUrl}}})", + "Changed sale quantity": "He cambiado la cantidad de [{{itemId}} {{concept}}]({{{itemUrl}}}) de {{oldQuantity}} ➔ *{{newQuantity}}* del ticket [{{ticketId}}]({{{ticketUrl}}})", + "State": "Estado", + "regular": "normal", + "reserved": "reservado", + "Changed sale reserved state": "He cambiado el estado reservado de las siguientes lineas al ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", + "Bought units from buy request": "Se ha comprado {{quantity}} unidades de [{{itemId}} {{concept}}]({{{urlItem}}}) para el ticket id [{{ticketId}}]({{{url}}})", + "Deny buy request": "Se ha rechazado la petición de compra para el ticket id [{{ticketId}}]({{{url}}}). Motivo: {{observation}}", + "MESSAGE_INSURANCE_CHANGE": "He cambiado el crédito asegurado del cliente [{{clientName}} ({{clientId}})]({{{url}}}) a *{{credit}} €*", + "Changed client paymethod": "He cambiado la forma de pago del cliente [{{clientName}} ({{clientId}})]({{{url}}})", + "Sent units from ticket": "Envio *{{quantity}}* unidades de [{{concept}} ({{itemId}})]({{{itemUrl}}}) a *\"{{nickname}}\"* provenientes del ticket id [{{ticketId}}]({{{ticketUrl}}})", + "Change quantity": "{{concept}} cambia de {{oldQuantity}} a {{newQuantity}}", + "Claim will be picked": "Se recogerá el género de la reclamación [({{claimId}})]({{{claimUrl}}}) del cliente *{{clientName}}*", + "Claim state has changed to": "Se ha cambiado el estado de la reclamación [({{claimId}})]({{{claimUrl}}}) del cliente *{{clientName}}* a *{{newState}}*", + "Client checked as validated despite of duplication": "Cliente comprobado a pesar de que existe el cliente id {{clientId}}", + "ORDER_ROW_UNAVAILABLE": "No hay disponibilidad de este producto", + "Distance must be lesser than 4000": "La distancia debe ser inferior a 4000", + "This ticket is deleted": "Este ticket está eliminado", + "Unable to clone this travel": "No ha sido posible clonar este travel", + "This thermograph id already exists": "La id del termógrafo ya existe", + "Choose a date range or days forward": "Selecciona un rango de fechas o días en adelante", + "ORDER_ALREADY_CONFIRMED": "ORDEN YA CONFIRMADA", + "Invalid password": "Invalid password", + "Password does not meet requirements": "La contraseña no cumple los requisitos", + "Role already assigned": "Rol ya asignado", + "Invalid role name": "Nombre de rol no válido", + "Role name must be written in camelCase": "El nombre del rol debe escribirse en camelCase", + "Email already exists": "El correo ya existe", + "User already exists": "El/La usuario/a ya existe", + "Absence change notification on the labour calendar": "Notificación de cambio de ausencia en el calendario laboral", + "Record of hours week": "Registro de horas semana {{week}} año {{year}} ", + "Created absence": "El empleado {{author}} ha añadido una ausencia de tipo '{{absenceType}}' a {{employee}} para el día {{dated}}.", + "Deleted absence": "El empleado {{author}} ha eliminado una ausencia de tipo '{{absenceType}}' a {{employee}} del día {{dated}}.", + "I have deleted the ticket id": "He eliminado el ticket id [{{id}}]({{{url}}})", + "I have restored the ticket id": "He restaurado el ticket id [{{id}}]({{{url}}})", + "You can only restore a ticket within the first hour after deletion": "Únicamente puedes restaurar el ticket dentro de la primera hora después de su eliminación", + "Changed this data from the ticket": "He cambiado estos datos del ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}", + "agencyModeFk": "Agencia", + "clientFk": "Cliente", + "zoneFk": "Zona", + "warehouseFk": "Almacén", + "shipped": "F. envío", + "landed": "F. entrega", + "addressFk": "Consignatario", + "companyFk": "Empresa", + "The social name cannot be empty": "La razón social no puede quedar en blanco", + "The nif cannot be empty": "El NIF no puede quedar en blanco", + "You need to fill sage information before you check verified data": "Debes rellenar la información de sage antes de marcar datos comprobados", + "ASSIGN_ZONE_FIRST": "Asigna una zona primero", + "Amount cannot be zero": "El importe no puede ser cero", + "Company has to be official": "Empresa inválida", + "You can not select this payment method without a registered bankery account": "No se puede utilizar este método de pago si no has registrado una cuenta bancaria", + "Action not allowed on the test environment": "Esta acción no está permitida en el entorno de pruebas", + "The selected ticket is not suitable for this route": "El ticket seleccionado no es apto para esta ruta", + "New ticket request has been created with price": "Se ha creado una nueva petición de compra '{{description}}' para el día *{{shipped}}*, con una cantidad de *{{quantity}}* y un precio de *{{price}} €*", + "New ticket request has been created": "Se ha creado una nueva petición de compra '{{description}}' para el día *{{shipped}}*, con una cantidad de *{{quantity}}*", + "Swift / BIC cannot be empty": "Swift / BIC no puede estar vacío", + "This BIC already exist.": "Este BIC ya existe.", + "That item doesn't exists": "Ese artículo no existe", + "There's a new urgent ticket:": "Hay un nuevo ticket urgente:", + "Invalid account": "Cuenta inválida", + "Compensation account is empty": "La cuenta para compensar está vacia", + "This genus already exist": "Este genus ya existe", + "This specie already exist": "Esta especie ya existe", + "Client assignment has changed": "He cambiado el comercial ~*\"<{{previousWorkerName}}>\"*~ por *\"<{{currentWorkerName}}>\"* del cliente [{{clientName}} ({{clientId}})]({{{url}}})", + "None": "Ninguno", + "The contract was not active during the selected date": "El contrato no estaba activo durante la fecha seleccionada", + "Cannot add more than one '1/2 day vacation'": "No puedes añadir más de un 'Vacaciones 1/2 dia'", + "This document already exists on this ticket": "Este documento ya existe en el ticket", + "Some of the selected tickets are not billable": "Algunos de los tickets seleccionados no son facturables", + "You can't invoice tickets from multiple clients": "No puedes facturar tickets de multiples clientes", + "nickname": "nickname", + "INACTIVE_PROVIDER": "Proveedor inactivo", + "This client is not invoiceable": "Este cliente no es facturable", + "serial non editable": "Esta serie no permite asignar la referencia", + "Max shipped required": "La fecha límite es requerida", + "Can't invoice to future": "No se puede facturar a futuro", + "Can't invoice to past": "No se puede facturar a pasado", + "This ticket is already invoiced": "Este ticket ya está facturado", + "A ticket with an amount of zero can't be invoiced": "No se puede facturar un ticket con importe cero", + "A ticket with a negative base can't be invoiced": "No se puede facturar un ticket con una base negativa", + "Global invoicing failed": "[Facturación global] No se han podido facturar algunos clientes", + "Wasn't able to invoice the following clients": "No se han podido facturar los siguientes clientes", + "Can't verify data unless the client has a business type": "No se puede verificar datos de un cliente que no tiene tipo de negocio", + "You don't have enough privileges to set this credit amount": "No tienes suficientes privilegios para establecer esta cantidad de crédito", + "You can't change the credit set to zero from a financialBoss": "No puedes cambiar el cŕedito establecido a cero por un jefe de finanzas", + "Amounts do not match": "Las cantidades no coinciden", + "The PDF document does not exist": "El documento PDF no existe. Prueba a regenerarlo desde la opción 'Regenerar PDF factura'", + "The type of business must be filled in basic data": "El tipo de negocio debe estar rellenado en datos básicos", + "You can't create a claim from a ticket delivered more than seven days ago": "No puedes crear una reclamación de un ticket entregado hace más de siete días", + "The worker has hours recorded that day": "El trabajador tiene horas fichadas ese día", + "The worker has a marked absence that day": "El trabajador tiene marcada una ausencia ese día", + "You can not modify is pay method checked": "No se puede modificar el campo método de pago validado", + "The account size must be exactly 10 characters": "El tamaño de la cuenta debe ser exactamente de 10 caracteres", + "Can't transfer claimed sales": "No puedes transferir lineas reclamadas", + "You don't have privileges to create refund": "No tienes permisos para crear un abono", + "The item is required": "El artículo es requerido", + "The agency is already assigned to another autonomous": "La agencia ya está asignada a otro autónomo", + "date in the future": "Fecha en el futuro", + "reference duplicated": "Referencia duplicada", + "This ticket is already a refund": "Este ticket ya es un abono", + "isWithoutNegatives": "Sin negativos", + "routeFk": "routeFk", + "Can't change the password of another worker": "No se puede cambiar la contraseña de otro trabajador", + "No hay un contrato en vigor": "No hay un contrato en vigor", + "No se permite fichar a futuro": "No se permite fichar a futuro", + "No está permitido trabajar": "No está permitido trabajar", + "Fichadas impares": "Fichadas impares", + "Descanso diario 12h.": "Descanso diario 12h.", + "Descanso semanal 36h. / 72h.": "Descanso semanal 36h. / 72h.", + "Dirección incorrecta": "Dirección incorrecta", + "Modifiable user details only by an administrator": "Detalles de usuario modificables solo por un administrador", + "Modifiable password only via recovery or by an administrator": "Contraseña modificable solo a través de la recuperación o por un administrador", + "Not enough privileges to edit a client": "No tienes suficientes privilegios para editar un cliente", + "This route does not exists": "Esta ruta no existe", + "Claim pickup order sent": "Reclamación Orden de recogida enviada [{{claimId}}]({{{claimUrl}}}) al cliente *{{clientName}}*", + "You don't have grant privilege": "No tienes privilegios para dar privilegios", + "You don't own the role and you can't assign it to another user": "No eres el propietario del rol y no puedes asignarlo a otro usuario", + "Ticket merged": "Ticket [{{originId}}]({{{originFullPath}}}) ({{{originDated}}}) fusionado con [{{destinationId}}]({{{destinationFullPath}}}) ({{{destinationDated}}})", + "Already has this status": "Ya tiene este estado", + "There aren't records for this week": "No existen registros para esta semana", + "Empty data source": "Origen de datos vacio", + "App locked": "Aplicación bloqueada por el usuario {{userId}}", + "Email verify": "Correo de verificación", + "Landing cannot be lesser than shipment": "Landing cannot be lesser than shipment", + "Receipt's bank was not found": "No se encontró el banco del recibo", + "This receipt was not compensated": "Este recibo no ha sido compensado", + "Client's email was not found": "No se encontró el email del cliente", + "Negative basis": "Base negativa", + "This worker code already exists": "Este codigo de trabajador ya existe", + "This personal mail already exists": "Este correo personal ya existe", + "This worker already exists": "Este trabajador ya existe", + "App name does not exist": "El nombre de aplicación no es válido", + "Try again": "Vuelve a intentarlo", + "Aplicación bloqueada por el usuario 9": "Aplicación bloqueada por el usuario 9", + "Failed to upload delivery note": "Error al subir albarán {{id}}", + "The DOCUWARE PDF document does not exists": "El documento PDF Docuware no existe", + "It is not possible to modify tracked sales": "No es posible modificar líneas de pedido que se hayan empezado a preparar", + "It is not possible to modify sales that their articles are from Floramondo": "No es posible modificar líneas de pedido cuyos artículos sean de Floramondo", + "It is not possible to modify cloned sales": "No es posible modificar líneas de pedido clonadas", + "A supplier with the same name already exists. Change the country.": "Un proveedor con el mismo nombre ya existe. Cambie el país.", + "There is no assigned email for this client": "No hay correo asignado para este cliente", + "Exists an invoice with a future date": "Existe una factura con fecha posterior", + "Invoice date can't be less than max date": "La fecha de factura no puede ser inferior a la fecha límite", + "Warehouse inventory not set": "El almacén inventario no está establecido", + "This locker has already been assigned": "Esta taquilla ya ha sido asignada", + "Tickets with associated refunds": "No se pueden borrar tickets con abonos asociados. Este ticket está asociado al abono Nº %d", + "Not exist this branch": "La rama no existe", + "This ticket cannot be signed because it has not been boxed": "Este ticket no puede firmarse porque no ha sido encajado", + "Collection does not exist": "La colección no existe", + "Cannot obtain exclusive lock": "No se puede obtener un bloqueo exclusivo", + "Insert a date range": "Inserte un rango de fechas", + "Added observation": "{{user}} añadió esta observacion: {{text}}", + "Comment added to client": "Observación añadida al cliente {{clientFk}}", + "Invalid auth code": "Código de verificación incorrecto", + "Invalid or expired verification code": "Código de verificación incorrecto o expirado", + "Cannot create a new claimBeginning from a different ticket": "No se puede crear una línea de reclamación de un ticket diferente al origen", + "company": "Compañía", + "country": "País", + "clientId": "Id cliente", + "clientSocialName": "Cliente", + "amount": "Importe", + "taxableBase": "Base", + "ticketFk": "Id ticket", + "isActive": "Activo", + "hasToInvoice": "Facturar", + "isTaxDataChecked": "Datos comprobados", + "comercialId": "Id comercial", + "comercialName": "Comercial", + "Pass expired": "La contraseña ha caducado, cambiela desde Salix", + "Invalid NIF for VIES": "Invalid NIF for VIES", + "Ticket does not exist": "Este ticket no existe", + "Ticket is already signed": "Este ticket ya ha sido firmado", + "Authentication failed": "Autenticación fallida", + "You can't use the same password": "No puedes usar la misma contraseña", + "You can only add negative amounts in refund tickets": "Solo se puede añadir cantidades negativas en tickets abono", + "Fecha fuera de rango": "Fecha fuera de rango", + "Error while generating PDF": "Error al generar PDF", + "Error when sending mail to client": "Error al enviar el correo al cliente", + "Mail not sent": "Se ha producido un fallo al enviar la factura al cliente [{{clientId}}]({{{clientUrl}}}), por favor revisa la dirección de correo electrónico", + "The renew period has not been exceeded": "El periodo de renovación no ha sido superado", + "Valid priorities": "Prioridades válidas: %d", + "hasAnyNegativeBase": "Base negativa para los tickets: {{ticketsIds}}", + "hasAnyPositiveBase": "Base positivas para los tickets: {{ticketsIds}}", + "You cannot assign an alias that you are not assigned to": "No puede asignar un alias que no tenga asignado", + "This ticket cannot be left empty.": "Este ticket no se puede dejar vacío. %s", + "The company has not informed the supplier account for bank transfers": "La empresa no tiene informado la cuenta de proveedor para transferencias bancarias", + "You cannot assign/remove an alias that you are not assigned to": "No puede asignar/eliminar un alias que no tenga asignado", + "This invoice has a linked vehicle.": "Esta factura tiene un vehiculo vinculado", + "You don't have enough privileges.": "No tienes suficientes permisos.", + "This ticket is locked": "Este ticket está bloqueado.", + "This ticket is not editable.": "Este ticket no es editable.", + "The ticket doesn't exist.": "No existe el ticket.", + "Social name should be uppercase": "La razón social debe ir en mayúscula", + "Street should be uppercase": "La dirección fiscal debe ir en mayúscula", + "Ticket without Route": "Ticket sin ruta", + "Select a different client": "Seleccione un cliente distinto", + "Fill all the fields": "Rellene todos los campos", + "The response is not a PDF": "La respuesta no es un PDF", + "Booking completed": "Reserva completada", + "The ticket is in preparation": "El ticket [{{ticketId}}]({{{ticketUrl}}}) del comercial {{salesPersonId}} está en preparación", + "Incoterms data for consignee is missing": "Faltan los datos de los Incoterms para el consignatario", + "The notification subscription of this worker cant be modified": "La subscripción a la notificación de este trabajador no puede ser modificada", + "User disabled": "Usuario desactivado", + "The amount cannot be less than the minimum": "La cantidad no puede ser menor que la cantidad mínima", + "quantityLessThanMin": "La cantidad no puede ser menor que la cantidad mínima", + "Cannot past travels with entries": "No se pueden pasar envíos con entradas", + "It was not able to remove the next expeditions:": "No se pudo eliminar las siguientes expediciones: {{expeditions}}", + "This claim has been updated": "La reclamación con Id: {{claimId}}, ha sido actualizada", + "This user does not have an assigned tablet": "Este usuario no tiene tablet asignada", + "Incorrect pin": "Pin incorrecto", + "You already have the mailAlias": "Ya tienes este alias de correo", + "The alias cant be modified": "Este alias de correo no puede ser modificado", + "This ticket already has a cmr saved": "Este ticket ya tiene un cmr guardado", + "Name should be uppercase": "El nombre debe ir en mayúscula", + "Bank entity must be specified": "La entidad bancaria es obligatoria", + "An email is necessary": "Es necesario un email", + "You cannot update these fields": "No puedes actualizar estos campos", + "CountryFK cannot be empty": "El país no puede estar vacío", + "Cmr file does not exist": "El archivo del cmr no existe", + "You are not allowed to modify the alias": "No estás autorizado a modificar el alias", + "No tickets to invoice": "No hay tickets para facturar", + "parkingNotExist": "parkingNotExist" +} \ No newline at end of file diff --git a/modules/worker/back/models/department.json b/modules/worker/back/models/department.json index edeba74f7..0245a7486 100644 --- a/modules/worker/back/models/department.json +++ b/modules/worker/back/models/department.json @@ -62,6 +62,11 @@ "type": "belongsTo", "model": "Worker", "foreignKey": "workerFk" + }, + "workerActivity": { + "type": "belongsTo", + "model": "Worker", + "foreignKey": "workerActivityTypeFk" } } -} +} \ No newline at end of file From b86110c898353e7c1dd0d2e16add048b7af4e850 Mon Sep 17 00:00:00 2001 From: jorgep Date: Tue, 27 Feb 2024 10:29:49 +0100 Subject: [PATCH 098/173] fix: refs #6276 changes --- back/methods/collection/getSales.js | 2 +- modules/item/back/methods/item-shelving/getAlternative.js | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/back/methods/collection/getSales.js b/back/methods/collection/getSales.js index e9a87bfa3..c9f277890 100644 --- a/back/methods/collection/getSales.js +++ b/back/methods/collection/getSales.js @@ -46,7 +46,7 @@ module.exports = Self => { const [sales] = await Self.rawSql('CALL vn.sale_getFromTicketOrCollection(?)', [id], myOptions); - const isPicker = source == 'CHECKER'; + const isPicker = source != 'CHECKER'; const [placements] = await Self.rawSql('CALL vn.collectionPlacement_get(?, ?)', [id, isPicker], myOptions ); diff --git a/modules/item/back/methods/item-shelving/getAlternative.js b/modules/item/back/methods/item-shelving/getAlternative.js index 8c0f63a2f..dd497d580 100644 --- a/modules/item/back/methods/item-shelving/getAlternative.js +++ b/modules/item/back/methods/item-shelving/getAlternative.js @@ -52,7 +52,9 @@ module.exports = Self => { return { id: itemShelving.id, itemFk: itemShelving.itemFk, - longName: item ? item.longName || `${item.name} ${item.size}` : '', + name: item.name, + size: item.size, + longName: item.longName, quantity: itemShelving.visible, carros }; From f95a4f3530a14b875e113ef155920ccbbff407a9 Mon Sep 17 00:00:00 2001 From: jorgep Date: Wed, 28 Feb 2024 09:06:48 +0100 Subject: [PATCH 099/173] refactor: refs #6276 drop setState function --- back/methods/collection/getSales.js | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/back/methods/collection/getSales.js b/back/methods/collection/getSales.js index c9f277890..cf0496600 100644 --- a/back/methods/collection/getSales.js +++ b/back/methods/collection/getSales.js @@ -42,7 +42,12 @@ module.exports = Self => { const [tickets] = await Self.rawSql('CALL vn.collection_getTickets(?)', [id], myOptions); - await setState(source, id, myOptions); + if (source) { + await Self.rawSql( + 'CALL vn.ticketStateToday_setState(?,?)', [id, source], options + ); + } + const [sales] = await Self.rawSql('CALL vn.sale_getFromTicketOrCollection(?)', [id], myOptions); @@ -151,16 +156,4 @@ module.exports = Self => { AND tr.landed >= DATE_SUB(CURDATE(), INTERVAL 1 YEAR)`; return Self.rawSql(query, [ticketId], options); } - - async function setState(source, id, options) { - const states = { - 'PRECHECKER': 'PREVIOUS_CONTROL', - 'CHECKER': 'ON_CHECKING' - }; - if (states[source]) { - await Self.rawSql( - 'CALL vn.ticketStateToday_setState(?,?)', [id, states[source]], options - ); - } - } }; From f5f2179ac68419671d6ccc273c9c1a9ff1031e61 Mon Sep 17 00:00:00 2001 From: guillermo Date: Wed, 28 Feb 2024 12:32:28 +0100 Subject: [PATCH 100/173] refactor: refs #6495 Migrated procs to vn --- .../procedures/client_sendMailPurchases.sql | 91 ++++++++++++++++ .../client_sendMailPurchasesLauncher.sql | 27 +++++ .../procedures/supplier_getPackagingStock.sql | 50 +++++++++ .../supplier_getPackagingStockDetail.sql | 65 ++++++++++++ .../emailYesterdayPurchasesByConsigna.sql | 100 ------------------ .../emailYesterdayPurchasesLauncher.sql | 27 ----- .../vn2008/procedures/embalajes_stocks.sql | 51 --------- .../procedures/embalajes_stocks_detalle.sql | 78 -------------- .../10918-wheatRose/00-firstScript.sql | 4 + 9 files changed, 237 insertions(+), 256 deletions(-) create mode 100644 db/routines/vn/procedures/client_sendMailPurchases.sql create mode 100644 db/routines/vn/procedures/client_sendMailPurchasesLauncher.sql create mode 100644 db/routines/vn/procedures/supplier_getPackagingStock.sql create mode 100644 db/routines/vn/procedures/supplier_getPackagingStockDetail.sql delete mode 100644 db/routines/vn2008/procedures/emailYesterdayPurchasesByConsigna.sql delete mode 100644 db/routines/vn2008/procedures/emailYesterdayPurchasesLauncher.sql delete mode 100644 db/routines/vn2008/procedures/embalajes_stocks.sql delete mode 100644 db/routines/vn2008/procedures/embalajes_stocks_detalle.sql create mode 100644 db/versions/10918-wheatRose/00-firstScript.sql diff --git a/db/routines/vn/procedures/client_sendMailPurchases.sql b/db/routines/vn/procedures/client_sendMailPurchases.sql new file mode 100644 index 000000000..2eeddb479 --- /dev/null +++ b/db/routines/vn/procedures/client_sendMailPurchases.sql @@ -0,0 +1,91 @@ +DELIMITER $$ +CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`client_sendMailPurchases`( + vSelf INT, + vDated DATE +) +BEGIN +/** + * Envia un correo electrónico con un resumen de los pedidos + * preparados para un cliente. + * + * @param vSelf Id del cliente + * @param vDated Fecha de preparación + */ + DECLARE vTicketFk INT; + DECLARE vAlias VARCHAR(50); + DECLARE vStreet VARCHAR(255); + DECLARE vCity VARCHAR(25); + DECLARE vAmount DOUBLE; + DECLARE vMailTo VARCHAR(250); + DECLARE vString TEXT; + DECLARE vDone BOOL DEFAULT FALSE; + DECLARE vTickets CURSOR FOR + SELECT t.id, + t.nickname, + CAST(sub.amount AS DECIMAL(10,2)) amount, + a.street, + a.city + FROM ticket t + JOIN `address` a ON t.addressFk = a.id + JOIN ( + SELECT s.ticketFk, + SUM( + s.quantity * s.price * (100 - s.discount) / 100 + ) amount + FROM sale s + JOIN ticket t ON t.id = s.ticketFk + WHERE t.shipped >= util.VN_CURDATE() - INTERVAL 6 MONTH + GROUP BY s.ticketFk + ) sub ON sub.ticketFk = t.id + WHERE t.shipped BETWEEN vDated AND util.dayEnd(vDated) + AND t.clientFk = vSelf; + DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE; + + SET vDated = IFNULL(vDated, util.yesterday()); + + OPEN vTickets; + FETCH vTickets INTO vTicketFk, vAlias, vAmount, vStreet, vCity; + + SET vString = CONCAT('

', + '

Relación de envíos.

', + '

Dia: ', vDated, '

'); + + WHILE NOT vDone DO + SET vString = CONCAT(vString, '

', + ' + + + + + + +
+ Ticket ', vTicketFk,' ', vAmount, ' €
', + ' ', vAlias, '
', + ' ', vStreet, '(', vCity, ')'); + FETCH vTickets INTO vTicketFk, vAlias, vAmount, vStreet, vCity; + END WHILE; + + SET vString = CONCAT( + vString, + '', + '', + '
', + '

Puede acceder al detalle de los albaranes haciendo click sobre el número de Ticket', + '

Muchas gracias por su confianza

', + '

'); + + -- Envío del email + SELECT CONCAT(email,', pako@verdnatura.es') INTO vMailTo + FROM client + WHERE id = vSelf + AND email <> ''; + + CALL mail_insert( + IFNULL(vMailTo, 'pako.natek@gmail.com'), + 'pako@verdnatura.es', + 'Resumen de pedidos preparados', + vString + ); +END$$ +DELIMITER ; diff --git a/db/routines/vn/procedures/client_sendMailPurchasesLauncher.sql b/db/routines/vn/procedures/client_sendMailPurchasesLauncher.sql new file mode 100644 index 000000000..e93e803da --- /dev/null +++ b/db/routines/vn/procedures/client_sendMailPurchasesLauncher.sql @@ -0,0 +1,27 @@ +DELIMITER $$ +CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`client_sendMailPurchasesLauncher`() +BEGIN +/** + * Lanza el envío de correos electrónicos con el resumen de pedidos + * preparados para todos los clientes con el campo eypbc a TRUE. + * + * @param vSelf Id del cliente + * @param vDated Fecha de preparación + */ + DECLARE vDone BOOL DEFAULT FALSE; + DECLARE vClientFk INT; + DECLARE vClients CURSOR FOR + SELECT id + FROM client + WHERE eypbc; + DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE; + + OPEN vClients; + FETCH vClients INTO vClientFk; + + WHILE NOT vDone DO + CALL client_sendMailPurchases(util.yesterday(), vClientFk); + FETCH vClients INTO vClientFk; + END WHILE; +END$$ +DELIMITER ; diff --git a/db/routines/vn/procedures/supplier_getPackagingStock.sql b/db/routines/vn/procedures/supplier_getPackagingStock.sql new file mode 100644 index 000000000..c5f533d6b --- /dev/null +++ b/db/routines/vn/procedures/supplier_getPackagingStock.sql @@ -0,0 +1,50 @@ +DELIMITER $$ +CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`supplier_getPackagingStock`( + vSelf INT +) +BEGIN +/** + * Obtiene el stock de los embalajes de un proveedor. + * + * @param vSelf Id del proveedor + */ + DECLARE vItemCategoryFk INT; + + SELECT id INTO vItemCategoryFk + FROM itemCategory + WHERE code = 'others'; + + SELECT sub.itemFk, + i.name, + SUM(sub.quantity) quantity + FROM ( + SELECT b.itemFk, b.quantity + FROM buy b + JOIN item i ON i.id = b.itemFk + JOIN itemType it ON it.id = i.typeFk + JOIN `entry` e ON e.id = b.entryFk + JOIN travel t ON t.id = e.travelFk + WHERE e.supplierFk = vSelf + AND t.landed >= '2010-01-01' + AND it.categoryFk = vItemCategoryFk + UNION ALL + SELECT s.itemFk, - s.quantity + FROM sale s + JOIN item i ON i.id = s.itemFk + JOIN itemType it ON it.id = i.typeFk + JOIN ticket t ON t.id = s.ticketFk + JOIN `address` a ON a.id = t.addressFk + JOIN ( + SELECT c.id, + s.id supplierFk + FROM supplier s + JOIN client c ON c.fi = s.nif + ) sub ON sub.id = a.clientFk + WHERE sub.supplierFk = vSelf + AND it.categoryFk = vItemCategoryFk + AND t.shipped > '2010-01-01' + ) sub + JOIN item i ON i.id = sub.itemFk + GROUP BY i.id; +END$$ +DELIMITER ; diff --git a/db/routines/vn/procedures/supplier_getPackagingStockDetail.sql b/db/routines/vn/procedures/supplier_getPackagingStockDetail.sql new file mode 100644 index 000000000..f32fc8772 --- /dev/null +++ b/db/routines/vn/procedures/supplier_getPackagingStockDetail.sql @@ -0,0 +1,65 @@ +DELIMITER $$ +CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`supplier_getPackagingStockDetail`( + vSelf INT, + vItemFk INT +) +BEGIN +/** + * Obtiene el detalle del embalaje de un proveedor. + * + * @param vSelf Id del proveedor + * @param vItemFk Id del artículo + */ + SELECT sub.itemFk, + sub.`table`, + sub.registry, + sub.dated, + i.name item, + w.name warehouse, + sub.`in`, + sub.`out`, + s.name supplier, + CAST(sub.buyingValue AS DECIMAL(5,2)) price + FROM ( + SELECT b.itemFk, + IF(b.quantity > 0, b.quantity, NULL) `in`, + IF(b.quantity > 0, NULL, - b.quantity) `out`, + 'E' `table`, + b.entryFk registry, + t.landed dated, + t.warehouseInFk, + b.buyingValue + FROM buy b + JOIN `entry` e ON e.id = b.entryFk + JOIN travel t ON t.id = e.travelFk + WHERE e.supplierFk = vSelf + AND b.itemFk = vItemFk + AND t.landed >= '2010-01-01' + UNION ALL + SELECT s.itemFk, + IF(s.quantity < 0, - s.quantity, NULL), + IF(s.quantity < 0, NULL, s.quantity), + 'T', + s.ticketFk, + t.shipped, + t.warehouseFk, + s.price + FROM sale s + JOIN ticket t ON t.id = s.ticketFk + JOIN address a ON a.id = t.addressFk + JOIN ( + SELECT c.id, + s.id supplierFk + FROM supplier s + JOIN client c ON c.fi = s.nif + ) sub ON sub.id = a.clientFk + WHERE sub.supplierFk = vSelf + AND s.itemFk = vItemFk + AND t.shipped > '2010-01-01' + ) sub + JOIN item i ON i.id = sub.itemFk + JOIN supplier s ON s.id = vSelf + JOIN warehouse w on w.id = sub.warehouseInFk; + +END$$ +DELIMITER ; diff --git a/db/routines/vn2008/procedures/emailYesterdayPurchasesByConsigna.sql b/db/routines/vn2008/procedures/emailYesterdayPurchasesByConsigna.sql deleted file mode 100644 index 439eba5ad..000000000 --- a/db/routines/vn2008/procedures/emailYesterdayPurchasesByConsigna.sql +++ /dev/null @@ -1,100 +0,0 @@ -DELIMITER $$ -CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`emailYesterdayPurchasesByConsigna`(IN v_Date DATE, IN v_Client_Id INT) -BEGIN - - DECLARE MyIdTicket BIGINT; - DECLARE MyAlias VARCHAR(50); - DECLARE MyDomicilio VARCHAR(255); - DECLARE MyPoblacion VARCHAR(25); - DECLARE MyImporte DOUBLE; - DECLARE MyMailTo VARCHAR(250); - DECLARE MyMailReplyTo VARCHAR(250); - DECLARE done INT DEFAULT FALSE; - DECLARE emptyList INT DEFAULT 0; - DECLARE txt TEXT; - - DECLARE rs CURSOR FOR - SELECT t.Id_Ticket, Alias, cast(amount as decimal(10,2)) Importe, Domicilio, POBLACION - FROM Tickets t - JOIN Consignatarios cs ON t.Id_Consigna = cs.Id_Consigna - JOIN ( - SELECT `Movimientos`.`Id_Ticket` AS `Id_Ticket`, - sum( - `Movimientos`.`Cantidad` * `Movimientos`.`Preu` * (100 - `Movimientos`.`Descuento`) / 100 - ) AS `amount` - FROM ( - `vn2008`.`Movimientos` - JOIN `vn2008`.`Tickets` ON( - `Movimientos`.`Id_Ticket` = `Tickets`.`Id_Ticket` - ) - ) - WHERE `Tickets`.`Fecha` >= `util`.`VN_CURDATE`() + INTERVAL -6 MONTH - GROUP BY `Movimientos`.`Id_Ticket` - ) v ON v.Id_Ticket = t.Id_Ticket - WHERE t.Fecha BETWEEN v_Date AND util.dayEnd(v_Date) - AND t.Id_Cliente = v_Client_Id; - - DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; - - SET v_Date = IFNULL(v_Date, util.yesterday()); - - OPEN rs; - - FETCH rs INTO MyIdTicket, MyAlias, MyImporte, MyDomicilio, MyPoblacion; - - SET emptyList = done; - - SET txt = CONCAT('

', - '

Relación de envíos.

', - '

Dia: ', v_Date, '

'); - - WHILE NOT done DO - - SET txt = CONCAT(txt, '

', - ' - - - - - - -
- Ticket ', MyIdTicket,' ', MyImporte, ' €
' - , ' ', MyAlias, '
' - , ' ', MyDomicilio, '(', MyPoblacion, ')'); - - FETCH rs INTO MyIdTicket, MyAlias, MyImporte, MyDomicilio, MyPoblacion; - - END WHILE; - - SET txt = CONCAT( - txt, - '', - '', - '
', - '

Puede acceder al detalle de los albaranes haciendo click sobre el número de Ticket', - '

Muchas gracias por su confianza

', - '

'); - - -- Envío del email - IF emptyList = 0 THEN - - SELECT CONCAT(`e-mail`,',pako@verdnatura.es') INTO MyMailTo - FROM Clientes - WHERE Id_Cliente = v_Client_Id AND `e-mail`>''; - - IF v_Client_Id = 7818 THEN -- LOEWE - SET MyMailTo = 'isabel@elisabethblumen.com,emunozca@loewe.es,pako@verdnatura.es'; - END IF; - - CALL vn.mail_insert( - IFNULL(MyMailTo,'pako.natek@gmail.com'), - 'pako@verdnatura.es', - 'Resumen de pedidos preparados', - txt - ); - - END IF; - -END$$ -DELIMITER ; diff --git a/db/routines/vn2008/procedures/emailYesterdayPurchasesLauncher.sql b/db/routines/vn2008/procedures/emailYesterdayPurchasesLauncher.sql deleted file mode 100644 index c414cf1c4..000000000 --- a/db/routines/vn2008/procedures/emailYesterdayPurchasesLauncher.sql +++ /dev/null @@ -1,27 +0,0 @@ -DELIMITER $$ -CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`emailYesterdayPurchasesLauncher`() -BEGIN - -DECLARE done INT DEFAULT 0; -DECLARE vMyClientId INT; - -DECLARE rs CURSOR FOR -SELECT Id_Cliente -FROM Clientes -WHERE EYPBC != 0; - -DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; - -OPEN rs; - -FETCH rs INTO vMyClientId; - -WHILE NOT done DO - - CALL emailYesterdayPurchasesByConsigna(util.yesterday(), vMyClientId); - - FETCH rs INTO vMyClientId; - -END WHILE; -END$$ -DELIMITER ; diff --git a/db/routines/vn2008/procedures/embalajes_stocks.sql b/db/routines/vn2008/procedures/embalajes_stocks.sql deleted file mode 100644 index b20e44c79..000000000 --- a/db/routines/vn2008/procedures/embalajes_stocks.sql +++ /dev/null @@ -1,51 +0,0 @@ -DELIMITER $$ -CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`embalajes_stocks`(IN idPEOPLE INT, IN bolCLIENT BOOLEAN) -BEGIN - -if bolCLIENT then - - select m.Id_Article, Article, - cast(sum(m.Cantidad) as decimal) as Saldo - from Movimientos m - join Articles a on m.Id_Article = a.Id_Article - join Tipos tp on tp.tipo_id = a.tipo_id - join Tickets t using(Id_Ticket) - join Consignatarios cs using(Id_Consigna) - where cs.Id_Cliente = idPEOPLE - and Tipo = 'Contenedores' - and t.Fecha > '2010-01-01' - group by m.Id_Article; - -else - -select Id_Article, Article, sum(Cantidad) as Saldo -from -(select Id_Article, Cantidad -from Compres c -join Articles a using(Id_Article) -join Tipos tp using(tipo_id) -join Entradas e using(Id_Entrada) -join travel tr on tr.id = travel_id -where Id_Proveedor = idPEOPLE -and landing >= '2010-01-01' -and reino_id = 6 - -union all - -select Id_Article, - Cantidad -from Movimientos m -join Articles a using(Id_Article) -join Tipos tp using(tipo_id) -join Tickets t using(Id_Ticket) -join Consignatarios cs using(Id_Consigna) -join proveedores_clientes pc on pc.Id_Cliente = cs.Id_Cliente -where Id_Proveedor = idPEOPLE -and reino_id = 6 -and t.Fecha > '2010-01-01') mov - -join Articles a using(Id_Article) -group by Id_Article; - -end if; - -END$$ -DELIMITER ; diff --git a/db/routines/vn2008/procedures/embalajes_stocks_detalle.sql b/db/routines/vn2008/procedures/embalajes_stocks_detalle.sql deleted file mode 100644 index c49d1b88a..000000000 --- a/db/routines/vn2008/procedures/embalajes_stocks_detalle.sql +++ /dev/null @@ -1,78 +0,0 @@ -DELIMITER $$ -CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`embalajes_stocks_detalle`(IN idPEOPLE INT, IN idARTICLE INT, IN bolCLIENT BOOLEAN) -BEGIN - - -if bolCLIENT then - - select m.Id_Article - , Article - , IF(Cantidad < 0, - Cantidad, NULL) as Entrada - , IF(Cantidad < 0, NULL, Cantidad) as Salida - , 'T' as Tabla - , t.Id_Ticket as Registro - , t.Fecha - , w.name as Almacen - , cast(Preu as Decimal(5,2)) Precio - , c.Cliente as Proveedor - , abbreviation as Empresa - from Movimientos m - join Articles a using(Id_Article) - join Tickets t using(Id_Ticket) - join empresa e on e.id = t.empresa_id - join warehouse w on w.id = t.warehouse_id - join Consignatarios cs using(Id_Consigna) - join Clientes c on c.Id_Cliente = cs.Id_Cliente - where cs.Id_Cliente = idPEOPLE - and m.Id_Article = idARTICLE - and t.Fecha > '2010-01-01'; - -else - -select Id_Article, Tabla, Registro, Fecha, Article -, w.name as Almacen, Entrada, Salida, Proveedor, cast(Precio as Decimal(5,2)) Precio - -from - -(select Id_Article - , IF(Cantidad > 0, Cantidad, NULL) as Entrada - , IF(Cantidad > 0, NULL,- Cantidad) as Salida - , 'E' as Tabla - , Id_Entrada as Registro - , landing as Fecha - , tr.warehouse_id - , Costefijo as Precio -from Compres c -join Entradas e using(Id_Entrada) -join travel tr on tr.id = travel_id -where Id_Proveedor = idPEOPLE -and Id_Article = idARTICLE -and landing >= '2010-01-01' - -union all - -select Id_Article - , IF(Cantidad < 0, - Cantidad, NULL) as Entrada - , IF(Cantidad < 0, NULL, Cantidad) as Salida - , 'T' - , Id_Ticket - , Fecha - , t.warehouse_id - , Preu -from Movimientos m -join Tickets t using(Id_Ticket) -join Consignatarios cs using(Id_Consigna) -join proveedores_clientes pc on pc.Id_Cliente = cs.Id_Cliente -where Id_Proveedor = idPEOPLE -and Id_Article = idARTICLE -and t.Fecha > '2010-01-01') mov - -join Articles a using(Id_Article) -join Proveedores p on Id_Proveedor = idPEOPLE -join warehouse w on w.id = mov.warehouse_id -; - -end if; - -END$$ -DELIMITER ; diff --git a/db/versions/10918-wheatRose/00-firstScript.sql b/db/versions/10918-wheatRose/00-firstScript.sql new file mode 100644 index 000000000..40cb99ab0 --- /dev/null +++ b/db/versions/10918-wheatRose/00-firstScript.sql @@ -0,0 +1,4 @@ +UPDATE IGNORE bs.nightTask + SET `procedure` = 'client_sendMailPurchasesLauncher', + `schema` = 'vn' + WHERE `procedure` = 'emailYesterdayPurchasesLauncher'; From c54c9ce9132b06f27cb628a4e40f0b06426fb51d Mon Sep 17 00:00:00 2001 From: jorgep Date: Thu, 29 Feb 2024 14:43:37 +0100 Subject: [PATCH 101/173] fix: refs #5186 create parkingLog & add sector relation --- .../vn/triggers/parking_afterDelete.sql | 12 ++++++ .../vn/triggers/parking_beforeInsert.sql | 2 +- .../vn/triggers/parking_beforeUpdate.sql | 2 +- .../10923-pinkOak/00-createParkingLog.sql | 43 +++++++++++++++++++ modules/shelving/back/models/parking.json | 8 ++-- 5 files changed, 62 insertions(+), 5 deletions(-) create mode 100644 db/routines/vn/triggers/parking_afterDelete.sql create mode 100644 db/versions/10923-pinkOak/00-createParkingLog.sql diff --git a/db/routines/vn/triggers/parking_afterDelete.sql b/db/routines/vn/triggers/parking_afterDelete.sql new file mode 100644 index 000000000..1ec96c24d --- /dev/null +++ b/db/routines/vn/triggers/parking_afterDelete.sql @@ -0,0 +1,12 @@ +DELIMITER $$ +CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`parking_afterDelete` + AFTER DELETE ON `parking` + FOR EACH ROW +BEGIN + INSERT INTO parkingLog + SET `action` = 'delete', + `changedModel` = 'Parking', + `changedModelId` = OLD.id, + `userFk` = account.myUser_getId(); +END$$ +DELIMITER ; \ No newline at end of file diff --git a/db/routines/vn/triggers/parking_beforeInsert.sql b/db/routines/vn/triggers/parking_beforeInsert.sql index 9cf0bd42a..cdec4c759 100644 --- a/db/routines/vn/triggers/parking_beforeInsert.sql +++ b/db/routines/vn/triggers/parking_beforeInsert.sql @@ -3,7 +3,7 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`parking_beforeInsert` BEFORE INSERT ON `parking` FOR EACH ROW BEGIN - + SET NEW.editorFk = account.myUser_getId(); -- SET new.`code` = CONCAT(new.`column`,' - ',new.`row`) ; END$$ diff --git a/db/routines/vn/triggers/parking_beforeUpdate.sql b/db/routines/vn/triggers/parking_beforeUpdate.sql index 38238daa1..3e808f505 100644 --- a/db/routines/vn/triggers/parking_beforeUpdate.sql +++ b/db/routines/vn/triggers/parking_beforeUpdate.sql @@ -3,7 +3,7 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`parking_beforeUpdate` BEFORE UPDATE ON `parking` FOR EACH ROW BEGIN - + SET NEW.editorFk = account.myUser_getId(); -- SET new.`code` = CONCAT(new.`column`,' - ',new.`row`) ; END$$ diff --git a/db/versions/10923-pinkOak/00-createParkingLog.sql b/db/versions/10923-pinkOak/00-createParkingLog.sql new file mode 100644 index 000000000..8274e2d82 --- /dev/null +++ b/db/versions/10923-pinkOak/00-createParkingLog.sql @@ -0,0 +1,43 @@ +CREATE OR REPLACE TABLE `vn`.`parkingLog` ( + + `id` int(11) NOT NULL AUTO_INCREMENT, + + `originFk` int(11) DEFAULT NULL, + + `userFk` int(10) unsigned DEFAULT NULL, + + `action` set('insert','update','delete','select') NOT NULL, + + `creationDate` timestamp NULL DEFAULT current_timestamp(), + + `description` text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL, + + `changedModel` enum('Parking','SaleGroup','SaleGroupDetail') NOT NULL DEFAULT 'Parking', + + `oldInstance` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`oldInstance`)), + + `newInstance` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`newInstance`)), + + `changedModelId` int(11) NOT NULL, + + `changedModelValue` varchar(45) DEFAULT NULL, + + PRIMARY KEY (`id`), + + KEY `logParkinguserFk` (`userFk`), + + KEY `parkingLog_changedModel` (`changedModel`,`changedModelId`,`creationDate`), + + KEY `parkingLog_originFk` (`originFk`,`creationDate`), + + CONSTRAINT `parkingOriginFk` FOREIGN KEY (`originFk`) REFERENCES `parking` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + + CONSTRAINT `parkingUserFk` FOREIGN KEY (`userFk`) REFERENCES `account`.`user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE + +) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; + +ALTER TABLE vn.parking DROP COLUMN IF EXISTS editorFk; +ALTER TABLE IF EXISTS vn.parking ADD COLUMN editorFk INT; + +ALTER TABLE vn.saleGroupDetail DROP COLUMN IF EXISTS editorFk; +ALTER TABLE IF EXISTS vn.saleGroupDetail ADD COLUMN editorFk INT; \ No newline at end of file diff --git a/modules/shelving/back/models/parking.json b/modules/shelving/back/models/parking.json index 53fec6e69..47a3305ae 100644 --- a/modules/shelving/back/models/parking.json +++ b/modules/shelving/back/models/parking.json @@ -20,9 +20,6 @@ "type": "string", "required": true }, - "sectorFk": { - "type": "number" - }, "code": { "type": "string" }, @@ -35,6 +32,11 @@ "type": "hasMany", "model": "saleGroup", "foreignKey": "parkingFk" + }, + "sector": { + "type": "belongsTo", + "model": "Sector", + "foreignKey": "sectorFk" } } } From 19278781847e5434a2e73d8a354d50a370a62ff4 Mon Sep 17 00:00:00 2001 From: jorgep Date: Thu, 29 Feb 2024 16:04:16 +0100 Subject: [PATCH 102/173] fix: refs #5186 drop SaleGroup from ticketLog --- .../10923-pinkOak/00-createParkingLog.sql | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/db/versions/10923-pinkOak/00-createParkingLog.sql b/db/versions/10923-pinkOak/00-createParkingLog.sql index 8274e2d82..d7fba0568 100644 --- a/db/versions/10923-pinkOak/00-createParkingLog.sql +++ b/db/versions/10923-pinkOak/00-createParkingLog.sql @@ -1,4 +1,4 @@ -CREATE OR REPLACE TABLE `vn`.`parkingLog` ( +CREATE OR REPLACE TABLE vn.parkingLog ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -40,4 +40,20 @@ ALTER TABLE vn.parking DROP COLUMN IF EXISTS editorFk; ALTER TABLE IF EXISTS vn.parking ADD COLUMN editorFk INT; ALTER TABLE vn.saleGroupDetail DROP COLUMN IF EXISTS editorFk; -ALTER TABLE IF EXISTS vn.saleGroupDetail ADD COLUMN editorFk INT; \ No newline at end of file +ALTER TABLE IF EXISTS vn.saleGroupDetail ADD COLUMN editorFk INT; + + +ALTER TABLE vn.ticketLog + MODIFY COLUMN changedModel enum('Ticket', + 'Sale', + 'TicketWeekly', + 'TicketTracking', + 'TicketService', + 'TicketRequest', + 'TicketRefund', + 'TicketPackaging', + 'TicketObservation', + 'TicketDms', + 'Expedition', + 'Sms' + ) NOT NULL DEFAULT 'Ticket'; From 7b0bed209e64c85cfbb8ed245a54e6e3c6fb33b5 Mon Sep 17 00:00:00 2001 From: jorgep Date: Thu, 29 Feb 2024 16:27:42 +0100 Subject: [PATCH 103/173] feat: refs #5186 add acl & model --- .../10923-pinkOak/00-createParkingLog.sql | 25 ++++++++++--------- .../10923-pinkOak/01-aclParkingLog.sql | 2 ++ modules/parking/back/model-config.json | 5 ++++ modules/parking/back/models/parking-log.json | 9 +++++++ 4 files changed, 29 insertions(+), 12 deletions(-) create mode 100644 db/versions/10923-pinkOak/01-aclParkingLog.sql create mode 100644 modules/parking/back/model-config.json create mode 100644 modules/parking/back/models/parking-log.json diff --git a/db/versions/10923-pinkOak/00-createParkingLog.sql b/db/versions/10923-pinkOak/00-createParkingLog.sql index d7fba0568..f31f58196 100644 --- a/db/versions/10923-pinkOak/00-createParkingLog.sql +++ b/db/versions/10923-pinkOak/00-createParkingLog.sql @@ -44,16 +44,17 @@ ALTER TABLE IF EXISTS vn.saleGroupDetail ADD COLUMN editorFk INT; ALTER TABLE vn.ticketLog - MODIFY COLUMN changedModel enum('Ticket', - 'Sale', - 'TicketWeekly', - 'TicketTracking', - 'TicketService', - 'TicketRequest', - 'TicketRefund', - 'TicketPackaging', - 'TicketObservation', - 'TicketDms', - 'Expedition', - 'Sms' + MODIFY COLUMN changedModel ENUM( + 'Ticket', + 'Sale', + 'TicketWeekly', + 'TicketTracking', + 'TicketService', + 'TicketRequest', + 'TicketRefund', + 'TicketPackaging', + 'TicketObservation', + 'TicketDms', + 'Expedition', + 'Sms' ) NOT NULL DEFAULT 'Ticket'; diff --git a/db/versions/10923-pinkOak/01-aclParkingLog.sql b/db/versions/10923-pinkOak/01-aclParkingLog.sql new file mode 100644 index 000000000..8f7e55d63 --- /dev/null +++ b/db/versions/10923-pinkOak/01-aclParkingLog.sql @@ -0,0 +1,2 @@ +INSERT INTO salix.ACL (model, property, accessType, permission, principalType, principalId) + VALUES ('ParkingLog', '*', 'READ', 'ALLOW', 'ROLE', 'employee'); \ No newline at end of file diff --git a/modules/parking/back/model-config.json b/modules/parking/back/model-config.json new file mode 100644 index 000000000..5c0d3d916 --- /dev/null +++ b/modules/parking/back/model-config.json @@ -0,0 +1,5 @@ +{ + "ParkingLog": { + "dataSource": "vn" + } +} diff --git a/modules/parking/back/models/parking-log.json b/modules/parking/back/models/parking-log.json new file mode 100644 index 000000000..1bbb031d8 --- /dev/null +++ b/modules/parking/back/models/parking-log.json @@ -0,0 +1,9 @@ +{ + "name": "ParkingLog", + "base": "Log", + "options": { + "mysql": { + "table": "parkingLog" + } + } +} From 3dd4d48557fda06afa119de77dd9331fc83f7631 Mon Sep 17 00:00:00 2001 From: guillermo Date: Fri, 1 Mar 2024 07:47:15 +0100 Subject: [PATCH 104/173] refactor: refs #6495 Deleted residual procs --- .../procedures/supplier_getPackagingStock.sql | 50 -------------- .../supplier_getPackagingStockDetail.sql | 65 ------------------- 2 files changed, 115 deletions(-) delete mode 100644 db/routines/vn/procedures/supplier_getPackagingStock.sql delete mode 100644 db/routines/vn/procedures/supplier_getPackagingStockDetail.sql diff --git a/db/routines/vn/procedures/supplier_getPackagingStock.sql b/db/routines/vn/procedures/supplier_getPackagingStock.sql deleted file mode 100644 index c5f533d6b..000000000 --- a/db/routines/vn/procedures/supplier_getPackagingStock.sql +++ /dev/null @@ -1,50 +0,0 @@ -DELIMITER $$ -CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`supplier_getPackagingStock`( - vSelf INT -) -BEGIN -/** - * Obtiene el stock de los embalajes de un proveedor. - * - * @param vSelf Id del proveedor - */ - DECLARE vItemCategoryFk INT; - - SELECT id INTO vItemCategoryFk - FROM itemCategory - WHERE code = 'others'; - - SELECT sub.itemFk, - i.name, - SUM(sub.quantity) quantity - FROM ( - SELECT b.itemFk, b.quantity - FROM buy b - JOIN item i ON i.id = b.itemFk - JOIN itemType it ON it.id = i.typeFk - JOIN `entry` e ON e.id = b.entryFk - JOIN travel t ON t.id = e.travelFk - WHERE e.supplierFk = vSelf - AND t.landed >= '2010-01-01' - AND it.categoryFk = vItemCategoryFk - UNION ALL - SELECT s.itemFk, - s.quantity - FROM sale s - JOIN item i ON i.id = s.itemFk - JOIN itemType it ON it.id = i.typeFk - JOIN ticket t ON t.id = s.ticketFk - JOIN `address` a ON a.id = t.addressFk - JOIN ( - SELECT c.id, - s.id supplierFk - FROM supplier s - JOIN client c ON c.fi = s.nif - ) sub ON sub.id = a.clientFk - WHERE sub.supplierFk = vSelf - AND it.categoryFk = vItemCategoryFk - AND t.shipped > '2010-01-01' - ) sub - JOIN item i ON i.id = sub.itemFk - GROUP BY i.id; -END$$ -DELIMITER ; diff --git a/db/routines/vn/procedures/supplier_getPackagingStockDetail.sql b/db/routines/vn/procedures/supplier_getPackagingStockDetail.sql deleted file mode 100644 index f32fc8772..000000000 --- a/db/routines/vn/procedures/supplier_getPackagingStockDetail.sql +++ /dev/null @@ -1,65 +0,0 @@ -DELIMITER $$ -CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`supplier_getPackagingStockDetail`( - vSelf INT, - vItemFk INT -) -BEGIN -/** - * Obtiene el detalle del embalaje de un proveedor. - * - * @param vSelf Id del proveedor - * @param vItemFk Id del artículo - */ - SELECT sub.itemFk, - sub.`table`, - sub.registry, - sub.dated, - i.name item, - w.name warehouse, - sub.`in`, - sub.`out`, - s.name supplier, - CAST(sub.buyingValue AS DECIMAL(5,2)) price - FROM ( - SELECT b.itemFk, - IF(b.quantity > 0, b.quantity, NULL) `in`, - IF(b.quantity > 0, NULL, - b.quantity) `out`, - 'E' `table`, - b.entryFk registry, - t.landed dated, - t.warehouseInFk, - b.buyingValue - FROM buy b - JOIN `entry` e ON e.id = b.entryFk - JOIN travel t ON t.id = e.travelFk - WHERE e.supplierFk = vSelf - AND b.itemFk = vItemFk - AND t.landed >= '2010-01-01' - UNION ALL - SELECT s.itemFk, - IF(s.quantity < 0, - s.quantity, NULL), - IF(s.quantity < 0, NULL, s.quantity), - 'T', - s.ticketFk, - t.shipped, - t.warehouseFk, - s.price - FROM sale s - JOIN ticket t ON t.id = s.ticketFk - JOIN address a ON a.id = t.addressFk - JOIN ( - SELECT c.id, - s.id supplierFk - FROM supplier s - JOIN client c ON c.fi = s.nif - ) sub ON sub.id = a.clientFk - WHERE sub.supplierFk = vSelf - AND s.itemFk = vItemFk - AND t.shipped > '2010-01-01' - ) sub - JOIN item i ON i.id = sub.itemFk - JOIN supplier s ON s.id = vSelf - JOIN warehouse w on w.id = sub.warehouseInFk; - -END$$ -DELIMITER ; From 3caed386e991ba9e1c5c7cea289ee99640e04afa Mon Sep 17 00:00:00 2001 From: jorgep Date: Fri, 1 Mar 2024 12:23:06 +0100 Subject: [PATCH 105/173] feat: refs #5186 add fixtures --- db/dump/fixtures.before.sql | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/db/dump/fixtures.before.sql b/db/dump/fixtures.before.sql index aef0f13e3..619c5d0f7 100644 --- a/db/dump/fixtures.before.sql +++ b/db/dump/fixtures.before.sql @@ -3069,3 +3069,9 @@ INSERT INTO `vn`.`cmr` (id,truckPlate,observations,senderInstruccions,paymentIns UPDATE vn.department SET workerFk = null; + +INSERT INTO vn.parkingLog(originFk, userFk, `action`, creationDate, description, changedModel,oldInstance, newInstance, changedModelId, changedModelValue) + VALUES(1, 18, 'update', '2024-03-01 08:35:07.000', NULL, 'SaleGroup', '{"parkingFk":null}', '{"parkingFk":1}', 1, NULL); + +INSERT INTO vn.parkingLog(originFk, userFk, `action`, creationDate, description, changedModel,oldInstance, newInstance, changedModelId, changedModelValue) + VALUES(1, 19, 'update', '2024-03-01 08:35:07.000', NULL, 'SaleGroup', '{"parkingFk":1}', '{"parkingFk":3, "ticketFk":2}', 3, NULL); \ No newline at end of file From 87799fbc64451bef6cc95847b7e1efefdfd7dc86 Mon Sep 17 00:00:00 2001 From: robert Date: Fri, 1 Mar 2024 12:30:37 +0100 Subject: [PATCH 106/173] fix: rutasAnalyzeHotFix --- db/routines/bi/procedures/rutasAnalyze.sql | 37 +++++++++---------- .../bi/procedures/rutasAnalyze_launcher.sql | 2 +- 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/db/routines/bi/procedures/rutasAnalyze.sql b/db/routines/bi/procedures/rutasAnalyze.sql index 8b56fa74d..b68a67aa5 100644 --- a/db/routines/bi/procedures/rutasAnalyze.sql +++ b/db/routines/bi/procedures/rutasAnalyze.sql @@ -1,7 +1,7 @@ DELIMITER $$ CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bi`.`rutasAnalyze`( - vYear INT, - vMonth INT + vdatedFrom INT, + vdatedTo INT ) BEGIN /** @@ -9,8 +9,16 @@ BEGIN * y lo almacena en la tabla bi.rutasBoard */ DELETE FROM rutasBoard - WHERE YEAR(Fecha) = vYear - AND MONTH(Fecha) = vMonth; + WHERE Fecha BETWEEN vdatedFrom AND vdatedTo; + + DELETE rb.* + FROM rutasBoard rb + JOIN vn.route r ON r.id = rb.Id_Ruta + JOIN vn.ticket t ON t.routeFk = r.id + LEFT JOIN vn.`zone` z ON z.id = t.zoneFk + JOIN vn.expeditionBoxVol ebv ON ebv.code = 'transportBox' + WHERE r.created BETWEEN vdatedFrom AND vdatedTo + AND z.isVolumetric; -- Rellenamos la tabla con los datos de las rutas VOLUMETRICAS, especialmente con los bultos "virtuales" INSERT INTO rutasBoard( @@ -27,7 +35,7 @@ BEGIN LEFT JOIN vn.`zone` z ON z.id = t.zoneFk JOIN vn.saleVolume sv ON sv.ticketFk = t.id JOIN vn.expeditionBoxVol ebv ON ebv.code = 'transportBox' - WHERE YEAR(r.created) = vYear AND MONTH(r.created) = vMonth + WHERE r.created BETWEEN vdatedFrom AND vdatedTo AND z.isVolumetric GROUP BY r.id; @@ -44,8 +52,7 @@ BEGIN FROM vn.route r JOIN vn.ticket t ON t.routeFk = r.id LEFT JOIN vn.`zone` z ON z.id = t.zoneFk - WHERE YEAR(r.created) = vYear - AND MONTH(r.created) = vMonth + WHERE r.created BETWEEN vdatedFrom AND vdatedTo AND NOT z.isVolumetric GROUP BY r.id ON DUPLICATE KEY UPDATE Bultos = Bultos + VALUES(Bultos); @@ -56,15 +63,13 @@ BEGIN SELECT t.routeFk, SUM(s.quantity * sc.value) totalPractice 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.code = 'FREIGHT' - AND tm.`year` = vYear - AND tm.`month` = vMonth + AND r.created BETWEEN vdatedFrom AND vdatedTo GROUP BY r.id ) sub ON sub.routeFk = r.Id_Ruta SET r.practico = IFNULL(sub.totalPractice / r.Bultos, 0); @@ -76,14 +81,12 @@ BEGIN SUM(t.zonePrice/ ebv.ratio) / COUNT(*) averageTheoreticalVolume 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.freightItemFk 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 + WHERE r.created BETWEEN vdatedFrom AND vdatedTo AND NOT z.isVolumetric GROUP BY t.routeFk ) sub ON r.Id_Ruta = sub.routeFk @@ -96,12 +99,10 @@ BEGIN SUM(freight) averageTheoreticalVolume 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 + WHERE r.created BETWEEN vdatedFrom AND vdatedTo AND z.isVolumetric GROUP BY t.routeFk ) sub ON r.Id_Ruta = sub.routeFk @@ -114,11 +115,9 @@ BEGIN SUM(g.amount) 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 + WHERE r.created BETWEEN vdatedFrom AND vdatedTo AND gt.code = 'freightDifference' GROUP BY t.routeFk ) sub ON r.Id_Ruta = sub.routeFk diff --git a/db/routines/bi/procedures/rutasAnalyze_launcher.sql b/db/routines/bi/procedures/rutasAnalyze_launcher.sql index bc50b7905..02f5e1b9c 100644 --- a/db/routines/bi/procedures/rutasAnalyze_launcher.sql +++ b/db/routines/bi/procedures/rutasAnalyze_launcher.sql @@ -4,6 +4,6 @@ BEGIN /** * Call rutasAnalyze */ - CALL rutasAnalyze(YEAR(util.VN_CURDATE()), MONTH(util.VN_CURDATE())); + CALL rutasAnalyze(util.VN_CURDATE() - INTERVAL 30 DAY , util.VN_CURDATE()); END$$ DELIMITER ; From 19f8d1bb81e4fd74348fb029506e5ce4dc570190 Mon Sep 17 00:00:00 2001 From: robert Date: Fri, 1 Mar 2024 12:57:34 +0100 Subject: [PATCH 107/173] fix: poner nombres en camelCase --- db/routines/bi/procedures/rutasAnalyze.sql | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/db/routines/bi/procedures/rutasAnalyze.sql b/db/routines/bi/procedures/rutasAnalyze.sql index b68a67aa5..aee4d6132 100644 --- a/db/routines/bi/procedures/rutasAnalyze.sql +++ b/db/routines/bi/procedures/rutasAnalyze.sql @@ -1,7 +1,7 @@ DELIMITER $$ CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bi`.`rutasAnalyze`( - vdatedFrom INT, - vdatedTo INT + vDatedFrom INT, + vDatedTo INT ) BEGIN /** @@ -9,7 +9,7 @@ BEGIN * y lo almacena en la tabla bi.rutasBoard */ DELETE FROM rutasBoard - WHERE Fecha BETWEEN vdatedFrom AND vdatedTo; + WHERE Fecha BETWEEN vDatedFrom AND vDatedTo; DELETE rb.* FROM rutasBoard rb @@ -17,7 +17,7 @@ BEGIN JOIN vn.ticket t ON t.routeFk = r.id LEFT JOIN vn.`zone` z ON z.id = t.zoneFk JOIN vn.expeditionBoxVol ebv ON ebv.code = 'transportBox' - WHERE r.created BETWEEN vdatedFrom AND vdatedTo + WHERE r.created BETWEEN vDatedFrom AND vDatedTo AND z.isVolumetric; -- Rellenamos la tabla con los datos de las rutas VOLUMETRICAS, especialmente con los bultos "virtuales" @@ -35,7 +35,7 @@ BEGIN LEFT JOIN vn.`zone` z ON z.id = t.zoneFk JOIN vn.saleVolume sv ON sv.ticketFk = t.id JOIN vn.expeditionBoxVol ebv ON ebv.code = 'transportBox' - WHERE r.created BETWEEN vdatedFrom AND vdatedTo + WHERE r.created BETWEEN vDatedFrom AND vDatedTo AND z.isVolumetric GROUP BY r.id; @@ -52,7 +52,7 @@ BEGIN FROM vn.route r JOIN vn.ticket t ON t.routeFk = r.id LEFT JOIN vn.`zone` z ON z.id = t.zoneFk - WHERE r.created BETWEEN vdatedFrom AND vdatedTo + WHERE r.created BETWEEN vDatedFrom AND vDatedTo AND NOT z.isVolumetric GROUP BY r.id ON DUPLICATE KEY UPDATE Bultos = Bultos + VALUES(Bultos); @@ -69,7 +69,7 @@ BEGIN JOIN vn.component c ON c.id = sc.componentFk JOIN vn.componentType ct ON ct.id = c.typeFk WHERE ct.code = 'FREIGHT' - AND r.created BETWEEN vdatedFrom AND vdatedTo + AND r.created BETWEEN vDatedFrom AND vDatedTo GROUP BY r.id ) sub ON sub.routeFk = r.Id_Ruta SET r.practico = IFNULL(sub.totalPractice / r.Bultos, 0); @@ -86,7 +86,7 @@ BEGIN 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 r.created BETWEEN vdatedFrom AND vdatedTo + WHERE r.created BETWEEN vDatedFrom AND vDatedTo AND NOT z.isVolumetric GROUP BY t.routeFk ) sub ON r.Id_Ruta = sub.routeFk @@ -102,7 +102,7 @@ BEGIN 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 r.created BETWEEN vdatedFrom AND vdatedTo + WHERE r.created BETWEEN vDatedFrom AND vDatedTo AND z.isVolumetric GROUP BY t.routeFk ) sub ON r.Id_Ruta = sub.routeFk @@ -117,7 +117,7 @@ BEGIN JOIN vn.route r ON r.id = t.routeFk JOIN vn.greuge g ON g.ticketFk = t.id JOIN vn.greugeType gt ON gt.id = g.greugeTypeFk - WHERE r.created BETWEEN vdatedFrom AND vdatedTo + WHERE r.created BETWEEN vDatedFrom AND vDatedTo AND gt.code = 'freightDifference' GROUP BY t.routeFk ) sub ON r.Id_Ruta = sub.routeFk From 5e2f9dd3d02e72545d7b430c0dbdfd76d870f4f6 Mon Sep 17 00:00:00 2001 From: robert Date: Fri, 1 Mar 2024 12:58:48 +0100 Subject: [PATCH 108/173] fix: poner nombres correcto --- db/routines/bi/procedures/rutasAnalyze.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/routines/bi/procedures/rutasAnalyze.sql b/db/routines/bi/procedures/rutasAnalyze.sql index aee4d6132..a69e7c457 100644 --- a/db/routines/bi/procedures/rutasAnalyze.sql +++ b/db/routines/bi/procedures/rutasAnalyze.sql @@ -11,7 +11,7 @@ BEGIN DELETE FROM rutasBoard WHERE Fecha BETWEEN vDatedFrom AND vDatedTo; - DELETE rb.* + DELETE rb FROM rutasBoard rb JOIN vn.route r ON r.id = rb.Id_Ruta JOIN vn.ticket t ON t.routeFk = r.id From 97f76c64ffd99b0abfbbdb15b8b693196e65cc3a Mon Sep 17 00:00:00 2001 From: jorgep Date: Fri, 1 Mar 2024 13:35:07 +0100 Subject: [PATCH 109/173] refactor: refs #6276 drop sendRocket method --- back/methods/collection/getSales.js | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/back/methods/collection/getSales.js b/back/methods/collection/getSales.js index cf0496600..a5e7aeefa 100644 --- a/back/methods/collection/getSales.js +++ b/back/methods/collection/getSales.js @@ -58,24 +58,22 @@ module.exports = Self => { if (print) await Self.rawSql('CALL vn.collection_printSticker(?,NULL)', [id], myOptions); - if (tickets.length) await sendRocketTickets(tickets, $t); - - return getCollection(id, tickets, sales, placements, myOptions); - }; - async function sendRocketTickets(tickets, $t) { for (let ticket of tickets) { let observations = ticket.observaciones.split(' '); for (let observation of observations) { const salesPerson = ticket.salesPersonFk; - if (!observation.startsWith('#') && !observation.startsWith('@')) return; - await models.Chat.send(ctx, - observation, - $t('ticketCommercial', {ticket: ticket.ticketFk, salesPerson}) - ); + if (observation.startsWith('#') || observation.startsWith('@')) { + await models.Chat.send(ctx, + observation, + $t('ticketCommercial', {ticket: ticket.ticketFk, salesPerson}) + ); + } } } - } + + return getCollection(id, tickets, sales, placements, myOptions); + }; async function getCollection(id, tickets, sales, placements, options) { const collection = { From bd5d88f5ef1a6163c9a289caa904f56db7c88eaa Mon Sep 17 00:00:00 2001 From: ivanm Date: Mon, 4 Mar 2024 08:41:09 +0100 Subject: [PATCH 110/173] refs #6969 Error packaging --- db/routines/vn/procedures/buyUltimateFromInterval.sql | 1 - 1 file changed, 1 deletion(-) diff --git a/db/routines/vn/procedures/buyUltimateFromInterval.sql b/db/routines/vn/procedures/buyUltimateFromInterval.sql index 92434a47b..f78174482 100644 --- a/db/routines/vn/procedures/buyUltimateFromInterval.sql +++ b/db/routines/vn/procedures/buyUltimateFromInterval.sql @@ -39,7 +39,6 @@ BEGIN WHERE t.landed BETWEEN vStarted AND vEnded AND (vWarehouseFk IS NULL OR t.warehouseInFk = vWarehouseFk) AND b.price2 > 0 - AND b.quantity > 0 ORDER BY NOT b.isIgnored DESC, t.landed DESC, b.id DESC LIMIT 10000000000000000000) sub GROUP BY itemFk, warehouseFk; From 854a9b62af94160de9933c74e7d21a54407aa6cf Mon Sep 17 00:00:00 2001 From: jorgep Date: Mon, 4 Mar 2024 09:21:41 +0100 Subject: [PATCH 111/173] fix: refs #6276 refactor updateInTime & changes --- back/methods/machine-worker/updateInTime.js | 10 +++++----- modules/item/back/methods/item-barcode/delete.js | 2 +- .../item/back/methods/item-shelving/getAlternative.js | 4 ++-- .../methods/item-shelving/specs/getAlternative.spec.js | 2 +- modules/ticket/back/methods/sale-tracking/setPicked.js | 6 +++--- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/back/methods/machine-worker/updateInTime.js b/back/methods/machine-worker/updateInTime.js index cfeda4425..8f663302d 100644 --- a/back/methods/machine-worker/updateInTime.js +++ b/back/methods/machine-worker/updateInTime.js @@ -47,9 +47,10 @@ module.exports = Self => { } }, myOptions); + const {maxHours} = await models.MachineWorkerConfig.findOne({fields: ['maxHours']}, myOptions); + const hoursDifference = (Date.vnNow() - machineWorker.inTime.getTime()) / (60 * 60 * 1000); + if (machineWorker) { - const {maxHours} = await models.MachineWorkerConfig.findOne({fields: ['maxHours']}, myOptions); - const hoursDifference = (Date.vnNow() - machineWorker.inTime.getTime()) / (60 * 60 * 1000); const isHimself = userId == machineWorker.workerFk; const isSameMachine = machine.id == machineWorker.machineFk; @@ -62,10 +63,9 @@ module.exports = Self => { await machineWorker.updateAttributes({ outTime: Date.vnNew() }, myOptions); + } - if (hoursDifference >= maxHours) - await models.MachineWorker.create({machineFk: machine.id, workerFk: userId}, myOptions); - } else + if (!machineWorker || hoursDifference >= maxHours) await models.MachineWorker.create({machineFk: machine.id, workerFk: userId}, myOptions); if (tx) await tx.commit(); diff --git a/modules/item/back/methods/item-barcode/delete.js b/modules/item/back/methods/item-barcode/delete.js index b27782b1b..0eea651d3 100644 --- a/modules/item/back/methods/item-barcode/delete.js +++ b/modules/item/back/methods/item-barcode/delete.js @@ -1,7 +1,7 @@ module.exports = Self => { Self.remoteMethod('delete', { description: 'Delete an ItemBarcode by itemFk and code', - accessType: 'READ', + accessType: 'WRITE', accepts: [ { arg: 'barcode', diff --git a/modules/item/back/methods/item-shelving/getAlternative.js b/modules/item/back/methods/item-shelving/getAlternative.js index dd497d580..8108bfa6e 100644 --- a/modules/item/back/methods/item-shelving/getAlternative.js +++ b/modules/item/back/methods/item-shelving/getAlternative.js @@ -47,7 +47,7 @@ module.exports = Self => { return itemShelvings.map(itemShelving => { const item = itemShelving.item(); - const carros = alternatives.filter(alternative => alternative.itemFk == itemShelving.itemFk); + const shelvings = alternatives.filter(alternative => alternative.itemFk == itemShelving.itemFk); return { id: itemShelving.id, @@ -56,7 +56,7 @@ module.exports = Self => { size: item.size, longName: item.longName, quantity: itemShelving.visible, - carros + shelvings }; }); } diff --git a/modules/item/back/methods/item-shelving/specs/getAlternative.spec.js b/modules/item/back/methods/item-shelving/specs/getAlternative.spec.js index 8c8d8a33d..3f4917477 100644 --- a/modules/item/back/methods/item-shelving/specs/getAlternative.spec.js +++ b/modules/item/back/methods/item-shelving/specs/getAlternative.spec.js @@ -13,7 +13,7 @@ describe('itemShelving getAlternative()', () => { const shelvingFk = 'HEJ'; const itemShelvings = await models.ItemShelving.getAlternative(shelvingFk); - expect(itemShelvings[0].carros.length).toEqual(0); + expect(itemShelvings[0].shelvings.length).toEqual(0); }); it('should return an empty list', async() => { diff --git a/modules/ticket/back/methods/sale-tracking/setPicked.js b/modules/ticket/back/methods/sale-tracking/setPicked.js index 990768197..828f6eb7e 100644 --- a/modules/ticket/back/methods/sale-tracking/setPicked.js +++ b/modules/ticket/back/methods/sale-tracking/setPicked.js @@ -73,7 +73,7 @@ module.exports = Self => { userFk: userId }, myOptions); - const itemShelving = await models.ItemShelving.findById(itemShelvingFk, myOptions); + const itemShelving = await models.ItemShelving.findById(itemShelvingFk, null, myOptions); await itemShelving.updateAttributes({visible: itemShelving.visible - quantity}, myOptions); @@ -86,8 +86,8 @@ module.exports = Self => { await Self.updateTracking(ctx, saleFk, originalQuantity, code, isChecked, null, isScanned, myOptions); try { - const buy = await models.Buy.findById(buyFk, myOptions); - if (buy.itemOriginalFk) await models.SaleBuy.create({saleFk, buyFk}, myOptions); + const {itemOriginalFk} = await models.Buy.findById(buyFk, {fields: ['itemOriginalFk']}, myOptions); + if (itemOriginalFk) await models.SaleBuy.create({saleFk, buyFk}, myOptions); } catch (e) { throw new UserError('The sale cannot be tracked'); } From 9cff06ae3d9718417996bad6238c208f5a08376a Mon Sep 17 00:00:00 2001 From: jorgep Date: Mon, 4 Mar 2024 09:30:07 +0100 Subject: [PATCH 112/173] feat: refs #6276 acl itemBarcode delete --- db/versions/10832-purpleAralia/00-newWareHouse.sql | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/db/versions/10832-purpleAralia/00-newWareHouse.sql b/db/versions/10832-purpleAralia/00-newWareHouse.sql index 448c69322..dd2c16bdb 100644 --- a/db/versions/10832-purpleAralia/00-newWareHouse.sql +++ b/db/versions/10832-purpleAralia/00-newWareHouse.sql @@ -8,4 +8,5 @@ INSERT INTO `salix`.`ACL` (model, property, accessType, permission, principalTyp ('SaleTracking','updateTracking','WRITE','ALLOW','ROLE','production'), ('SaleTracking','setPicked','WRITE','ALLOW','ROLE','production'), ('ExpeditionPallet', '*', 'READ', 'ALLOW', 'ROLE', 'production'), - ('Sale', 'getFromSectorCollection', 'READ', 'ALLOW', 'ROLE', 'production'); \ No newline at end of file + ('Sale', 'getFromSectorCollection', 'READ', 'ALLOW', 'ROLE', 'production'), + ('ItemBarcode', 'delete', 'WRITE', 'ALLOW', 'ROLE', 'production'); \ No newline at end of file From 5175c91b2d255e25e3e3ae2463ea4894253ed3f8 Mon Sep 17 00:00:00 2001 From: robert Date: Mon, 4 Mar 2024 11:51:55 +0100 Subject: [PATCH 113/173] fix: quitar delete --- db/routines/bi/procedures/rutasAnalyze.sql | 9 --------- 1 file changed, 9 deletions(-) diff --git a/db/routines/bi/procedures/rutasAnalyze.sql b/db/routines/bi/procedures/rutasAnalyze.sql index a69e7c457..37c565833 100644 --- a/db/routines/bi/procedures/rutasAnalyze.sql +++ b/db/routines/bi/procedures/rutasAnalyze.sql @@ -11,15 +11,6 @@ BEGIN DELETE FROM rutasBoard WHERE Fecha BETWEEN vDatedFrom AND vDatedTo; - DELETE rb - FROM rutasBoard rb - JOIN vn.route r ON r.id = rb.Id_Ruta - JOIN vn.ticket t ON t.routeFk = r.id - LEFT JOIN vn.`zone` z ON z.id = t.zoneFk - JOIN vn.expeditionBoxVol ebv ON ebv.code = 'transportBox' - WHERE r.created BETWEEN vDatedFrom AND vDatedTo - AND z.isVolumetric; - -- Rellenamos la tabla con los datos de las rutas VOLUMETRICAS, especialmente con los bultos "virtuales" INSERT INTO rutasBoard( Id_Ruta, From c9b6cbf67b193a711132760cfdfb48bd467ca729 Mon Sep 17 00:00:00 2001 From: robert Date: Tue, 5 Mar 2024 07:15:38 +0100 Subject: [PATCH 114/173] fix: vDatedFrom y vDatedTo --- db/routines/bi/procedures/rutasAnalyze.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/db/routines/bi/procedures/rutasAnalyze.sql b/db/routines/bi/procedures/rutasAnalyze.sql index 37c565833..5f0d55c7a 100644 --- a/db/routines/bi/procedures/rutasAnalyze.sql +++ b/db/routines/bi/procedures/rutasAnalyze.sql @@ -1,7 +1,7 @@ DELIMITER $$ CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bi`.`rutasAnalyze`( - vDatedFrom INT, - vDatedTo INT + vDatedFrom DATE, + vDatedTo DATE ) BEGIN /** From 40d91aeb28b12fa14a7a8628743a2078c5aeadb1 Mon Sep 17 00:00:00 2001 From: alexm Date: Tue, 5 Mar 2024 07:32:06 +0100 Subject: [PATCH 115/173] fix: try to fix puppeteer --- Jenkinsfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Jenkinsfile b/Jenkinsfile index 821316c87..e89ec4a44 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -103,6 +103,7 @@ pipeline { NODE_ENV = '' } steps { + sh 'pnpx puppeteer browsers install chrome' sh 'node back/tests.js --ci --junit --network jenkins' } post { From 6db24580be10a1d436ddf1abd9d0d49e1437b3f4 Mon Sep 17 00:00:00 2001 From: alexm Date: Tue, 5 Mar 2024 07:42:44 +0100 Subject: [PATCH 116/173] fix: try to fix puppeteer --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index e89ec4a44..9ca7f5d19 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -71,6 +71,7 @@ pipeline { stage('Back') { steps { sh 'pnpm install --prefer-offline' + sh 'pnpx puppeteer browsers install chrome' } } stage('Print') { @@ -103,7 +104,6 @@ pipeline { NODE_ENV = '' } steps { - sh 'pnpx puppeteer browsers install chrome' sh 'node back/tests.js --ci --junit --network jenkins' } post { From 619ac4e0538f161d4356c8aee8d13a722ba703cd Mon Sep 17 00:00:00 2001 From: guillermo Date: Tue, 5 Mar 2024 08:55:40 +0100 Subject: [PATCH 117/173] refactor: refs #6495 Requested changes --- ...MailPurchases.sql => client_mailSales.sql} | 56 +++++++++++-------- ...ncher.sql => client_mailSalesLauncher.sql} | 15 +++-- .../10918-wheatRose/00-firstScript.sql | 2 +- 3 files changed, 43 insertions(+), 30 deletions(-) rename db/routines/vn/procedures/{client_sendMailPurchases.sql => client_mailSales.sql} (78%) rename db/routines/vn/procedures/{client_sendMailPurchasesLauncher.sql => client_mailSalesLauncher.sql} (77%) diff --git a/db/routines/vn/procedures/client_sendMailPurchases.sql b/db/routines/vn/procedures/client_mailSales.sql similarity index 78% rename from db/routines/vn/procedures/client_sendMailPurchases.sql rename to db/routines/vn/procedures/client_mailSales.sql index 2eeddb479..7178d981f 100644 --- a/db/routines/vn/procedures/client_sendMailPurchases.sql +++ b/db/routines/vn/procedures/client_mailSales.sql @@ -1,9 +1,9 @@ DELIMITER $$ -CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`client_sendMailPurchases`( +CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`client_mailSales`( vSelf INT, vDated DATE ) -BEGIN +proc: BEGIN /** * Envia un correo electrónico con un resumen de los pedidos * preparados para un cliente. @@ -43,14 +43,19 @@ BEGIN SET vDated = IFNULL(vDated, util.yesterday()); - OPEN vTickets; - FETCH vTickets INTO vTicketFk, vAlias, vAmount, vStreet, vCity; - SET vString = CONCAT('

', '

Relación de envíos.

', '

Dia: ', vDated, '

'); - WHILE NOT vDone DO + OPEN vTickets; + l: LOOP + SET vDone = FALSE; + FETCH vTickets INTO vTicketFk, vAlias, vAmount, vStreet, vCity; + + IF vDone THEN + LEAVE l; + END IF; + SET vString = CONCAT(vString, '

', ' @@ -63,29 +68,34 @@ BEGIN
', ' ', vAlias, '
', ' ', vStreet, '(', vCity, ')'); - FETCH vTickets INTO vTicketFk, vAlias, vAmount, vStreet, vCity; - END WHILE; + END LOOP; + + IF vTicketFk IS NULL THEN + LEAVE proc; + END IF; SET vString = CONCAT( - vString, - '', - '', - '
', - '

Puede acceder al detalle de los albaranes haciendo click sobre el número de Ticket', - '

Muchas gracias por su confianza

', - '

'); + vString, + '', + '', + '
', + '

Puede acceder al detalle de los albaranes haciendo click sobre el número de Ticket', + '

Muchas gracias por su confianza

', + '

'); - -- Envío del email - SELECT CONCAT(email,', pako@verdnatura.es') INTO vMailTo + SELECT email INTO vMailTo FROM client WHERE id = vSelf AND email <> ''; - CALL mail_insert( - IFNULL(vMailTo, 'pako.natek@gmail.com'), - 'pako@verdnatura.es', - 'Resumen de pedidos preparados', - vString - ); + -- Envío del email + IF vMailTo IS NOT NULL THEN + CALL mail_insert( + vMailTo, + NULL, + 'Resumen de pedidos preparados', + vString + ); + END IF; END$$ DELIMITER ; diff --git a/db/routines/vn/procedures/client_sendMailPurchasesLauncher.sql b/db/routines/vn/procedures/client_mailSalesLauncher.sql similarity index 77% rename from db/routines/vn/procedures/client_sendMailPurchasesLauncher.sql rename to db/routines/vn/procedures/client_mailSalesLauncher.sql index e93e803da..89337b5c8 100644 --- a/db/routines/vn/procedures/client_sendMailPurchasesLauncher.sql +++ b/db/routines/vn/procedures/client_mailSalesLauncher.sql @@ -1,5 +1,5 @@ DELIMITER $$ -CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`client_sendMailPurchasesLauncher`() +CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`client_mailSalesLauncher`() BEGIN /** * Lanza el envío de correos electrónicos con el resumen de pedidos @@ -17,11 +17,14 @@ BEGIN DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE; OPEN vClients; - FETCH vClients INTO vClientFk; - - WHILE NOT vDone DO - CALL client_sendMailPurchases(util.yesterday(), vClientFk); + l: LOOP + SET vDone = FALSE; FETCH vClients INTO vClientFk; - END WHILE; + + IF vDone THEN + LEAVE l; + END IF; + CALL client_mailSales(vClientFk, util.yesterday()); + END LOOP; END$$ DELIMITER ; diff --git a/db/versions/10918-wheatRose/00-firstScript.sql b/db/versions/10918-wheatRose/00-firstScript.sql index 40cb99ab0..c915e909a 100644 --- a/db/versions/10918-wheatRose/00-firstScript.sql +++ b/db/versions/10918-wheatRose/00-firstScript.sql @@ -1,4 +1,4 @@ UPDATE IGNORE bs.nightTask - SET `procedure` = 'client_sendMailPurchasesLauncher', + SET `procedure` = 'client_mailSalesLauncher', `schema` = 'vn' WHERE `procedure` = 'emailYesterdayPurchasesLauncher'; From fc08adc0640d7daf20ca88279c2ce1181e72d42d Mon Sep 17 00:00:00 2001 From: jorgep Date: Tue, 5 Mar 2024 10:09:32 +0100 Subject: [PATCH 118/173] fix: refs #6276 options --- back/methods/collection/getSales.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/back/methods/collection/getSales.js b/back/methods/collection/getSales.js index a5e7aeefa..78945dc80 100644 --- a/back/methods/collection/getSales.js +++ b/back/methods/collection/getSales.js @@ -44,7 +44,7 @@ module.exports = Self => { if (source) { await Self.rawSql( - 'CALL vn.ticketStateToday_setState(?,?)', [id, source], options + 'CALL vn.ticketStateToday_setState(?,?)', [id, source], myOptions ); } From e0732835d040cc0e20cab7ad1c6e3ac8e6da2a92 Mon Sep 17 00:00:00 2001 From: guillermo Date: Tue, 5 Mar 2024 10:25:23 +0100 Subject: [PATCH 119/173] refactor: refs #6948 Bank to Accouting --- back/model-config.json | 2 +- back/models/{bank.json => accounting.json} | 9 +++------ back/models/payment.json | 2 +- db/routines/bs/procedures/manaCustomerUpdate.sql | 2 +- .../hedera/procedures/tpvTransaction_undo.sql | 2 +- .../sage/procedures/accountingMovements_add.sql | 4 ++-- db/routines/sage/procedures/pgc_add.sql | 12 ++++++------ db/routines/vn/functions/till_new.sql | 2 +- .../vn/procedures/bankPolicy_notifyExpired.sql | 12 +++++------- db/routines/vn/procedures/client_getMana.sql | 3 ++- db/routines/vn/procedures/supplier_statement.sql | 2 +- db/routines/vn/triggers/payment_beforeInsert.sql | 10 +++++----- db/routines/vn/views/bank.sql | 12 ------------ db/routines/vn/views/exchangeInsuranceOut.sql | 4 ++-- db/routines/vn2008/views/Bancos.sql | 16 ++++++++-------- .../10928-orangeEucalyptus/00-firstScript.sql | 2 ++ .../client/back/methods/client/createReceipt.js | 2 +- .../methods/receipt/balanceCompensationEmail.js | 2 +- modules/client/back/models/receipt.json | 2 +- modules/client/back/models/till.json | 2 +- .../back/models/invoice-in-due-day.json | 2 +- 21 files changed, 46 insertions(+), 60 deletions(-) rename back/models/{bank.json => accounting.json} (85%) delete mode 100644 db/routines/vn/views/bank.sql create mode 100644 db/versions/10928-orangeEucalyptus/00-firstScript.sql diff --git a/back/model-config.json b/back/model-config.json index c4eefd932..cc260760e 100644 --- a/back/model-config.json +++ b/back/model-config.json @@ -13,7 +13,7 @@ "AuthCode": { "dataSource": "vn" }, - "Bank": { + "Accounting": { "dataSource": "vn" }, "Buyer": { diff --git a/back/models/bank.json b/back/models/accounting.json similarity index 85% rename from back/models/bank.json rename to back/models/accounting.json index da73b1141..979947471 100644 --- a/back/models/bank.json +++ b/back/models/accounting.json @@ -1,9 +1,9 @@ { - "name": "Bank", + "name": "Accounting", "base": "VnModel", "options": { "mysql": { - "table": "bank" + "table": "accounting" } }, "properties": { @@ -22,10 +22,7 @@ }, "accountingTypeFk": { "type": "number", - "required": true, - "mysql": { - "columnName": "cash" - } + "required": true }, "entityFk": { "type": "number", diff --git a/back/models/payment.json b/back/models/payment.json index 7eca36e4d..ed354969e 100644 --- a/back/models/payment.json +++ b/back/models/payment.json @@ -47,7 +47,7 @@ }, "bank": { "type": "belongsTo", - "model": "Bank", + "model": "Accounting", "foreignKey": "bankFk" }, "payMethod": { diff --git a/db/routines/bs/procedures/manaCustomerUpdate.sql b/db/routines/bs/procedures/manaCustomerUpdate.sql index 2cb25d135..2038f976a 100644 --- a/db/routines/bs/procedures/manaCustomerUpdate.sql +++ b/db/routines/bs/procedures/manaCustomerUpdate.sql @@ -22,7 +22,7 @@ BEGIN FROM vn.component WHERE code = 'manaClaim'; SELECT id INTO vManaBankId - FROM vn.bank WHERE code = 'mana'; + FROM vn.accounting WHERE code = 'mana'; SELECT id INTO vManaGreugeTypeId FROM vn.greugeType WHERE code = 'mana'; diff --git a/db/routines/hedera/procedures/tpvTransaction_undo.sql b/db/routines/hedera/procedures/tpvTransaction_undo.sql index ed72dd76d..f31ba6a80 100644 --- a/db/routines/hedera/procedures/tpvTransaction_undo.sql +++ b/db/routines/hedera/procedures/tpvTransaction_undo.sql @@ -54,7 +54,7 @@ p: BEGIN FROM vn.`client` WHERE id = vCustomer; SELECT account INTO vAccount - FROM vn.bank WHERE id = vBank; + FROM vn.accounting WHERE id = vBank; DELETE FROM vn.XDiario WHERE SUBCTA = vSubaccount diff --git a/db/routines/sage/procedures/accountingMovements_add.sql b/db/routines/sage/procedures/accountingMovements_add.sql index bd86e132d..ffb20c3ee 100644 --- a/db/routines/sage/procedures/accountingMovements_add.sql +++ b/db/routines/sage/procedures/accountingMovements_add.sql @@ -254,8 +254,8 @@ BEGIN ) sub GROUP BY ASIEN )sub2 ON sub2.ASIEN = x.ASIEN LEFT JOIN ( SELECT DISTINCT(account),cu.code - FROM vn.bank b - JOIN vn.currency cu ON cu.id = b.currencyFk + FROM vn.accounting a + JOIN vn.currency cu ON cu.id = a.currencyFk WHERE cu.code <> 'EUR' -- no se informa cuando la divisa en EUR )sub3 ON sub3.account = x.SUBCTA WHERE x.enlazadoSage = FALSE diff --git a/db/routines/sage/procedures/pgc_add.sql b/db/routines/sage/procedures/pgc_add.sql index 6dd5bc72d..ebcb2d043 100644 --- a/db/routines/sage/procedures/pgc_add.sql +++ b/db/routines/sage/procedures/pgc_add.sql @@ -17,15 +17,15 @@ BEGIN e.id accountFk, UCASE(e.name), '' - FROM vn.expense e + FROM expense e UNION SELECT company_getCode(vCompanyFk), - b.account, - UCASE(b.bank), + a.account, + UCASE(a.bank), '' - FROM vn.bank b - WHERE b.isActive - AND b.`account` + FROM accounting a + WHERE a.isActive + AND a.`account` UNION SELECT CodigoEmpresa, CodigoCuenta, diff --git a/db/routines/vn/functions/till_new.sql b/db/routines/vn/functions/till_new.sql index cfca5945d..24f4f2b79 100644 --- a/db/routines/vn/functions/till_new.sql +++ b/db/routines/vn/functions/till_new.sql @@ -34,7 +34,7 @@ BEGIN -- Inserta los asientos contables SELECT account INTO vAccount - FROM bank WHERE id = vBank; + FROM accounting WHERE id = vBank; SELECT accountingAccount INTO vSubaccount FROM `client` WHERE id = vClient; diff --git a/db/routines/vn/procedures/bankPolicy_notifyExpired.sql b/db/routines/vn/procedures/bankPolicy_notifyExpired.sql index 52b747659..61216938d 100644 --- a/db/routines/vn/procedures/bankPolicy_notifyExpired.sql +++ b/db/routines/vn/procedures/bankPolicy_notifyExpired.sql @@ -10,13 +10,11 @@ BEGIN INSERT INTO mail (receiver,replyTo,subject,body) SELECT 'administracion@verdnatura.es' receiver, 'noreply@verdnatura.es' replyTo, - CONCAT('El seguro de la poliza ',b.id,' ',b.bank,' ha finalizado.') subject, - CONCAT('El seguro de la poliza ',b.id,' ',b.bank,' ha finalizado.') body - FROM vn.bankPolicy bp - LEFT JOIN vn.supplier s - ON s.id = bp.supplierFk - LEFT JOIN vn.bank b - ON b.id = bp.accountingFk + CONCAT('El seguro de la poliza ',a.id,' ',a.bank,' ha finalizado.') subject, + CONCAT('El seguro de la poliza ',a.id,' ',a.bank,' ha finalizado.') body + FROM bankPolicy bp + LEFT JOIN supplier s ON s.id = bp.supplierFk + LEFT JOIN accounting a ON a.id = bp.accountingFk WHERE bp.insuranceExpired = util.VN_CURDATE(); END$$ DELIMITER ; diff --git a/db/routines/vn/procedures/client_getMana.sql b/db/routines/vn/procedures/client_getMana.sql index 99b00c6df..f5bb5747d 100644 --- a/db/routines/vn/procedures/client_getMana.sql +++ b/db/routines/vn/procedures/client_getMana.sql @@ -39,7 +39,8 @@ BEGIN FROM receipt r JOIN `client` c ON c.id = r.clientFk JOIN tmp.client tc ON tc.id = c.id - JOIN bank b ON r.bankFk = b.id AND b.code = 'mana' + JOIN accounting a ON r.bankFk = a.id + AND a.code = 'mana' WHERE r.payed > vFromDated AND r.payed <= util.VN_CURDATE() UNION ALL diff --git a/db/routines/vn/procedures/supplier_statement.sql b/db/routines/vn/procedures/supplier_statement.sql index 406286e9d..a03a7770c 100644 --- a/db/routines/vn/procedures/supplier_statement.sql +++ b/db/routines/vn/procedures/supplier_statement.sql @@ -94,7 +94,7 @@ BEGIN 'payment' FROM payment p LEFT JOIN currency c ON c.id = p.currencyFk - LEFT JOIN bank b ON b.id = p.bankFk + LEFT JOIN accounting a ON a.id = p.bankFk LEFT JOIN payMethod pm ON pm.id = p.payMethodFk LEFT JOIN promissoryNote pn ON pn.paymentFk = p.id WHERE p.received > '2014-12-31' diff --git a/db/routines/vn/triggers/payment_beforeInsert.sql b/db/routines/vn/triggers/payment_beforeInsert.sql index 6a28a1382..1b343712f 100644 --- a/db/routines/vn/triggers/payment_beforeInsert.sql +++ b/db/routines/vn/triggers/payment_beforeInsert.sql @@ -10,21 +10,21 @@ BEGIN -- PAK 10/02/15 No se asientan los pagos directamente, salvo en el caso de las cajas de CASH SELECT (at2.code = 'cash') INTO bolCASH - FROM vn.bank b - JOIN vn.accountingType at2 ON at2.id = b.cash - WHERE b.id = NEW.bankFk; + FROM accounting a + JOIN accountingType at2 ON at2.id = a.accountingTypeFk + WHERE a.id = NEW.bankFk; IF bolCASH THEN SELECT account INTO cuenta_banco - FROM bank + FROM accounting WHERE id = NEW.bankFk; SELECT account INTO cuenta_proveedor FROM supplier WHERE id = NEW.supplierFk; - CALL vn.ledger_next(vNewBookEntry); + CALL ledger_next(vNewBookEntry); INSERT INTO XDiario ( ASIEN, FECHA, diff --git a/db/routines/vn/views/bank.sql b/db/routines/vn/views/bank.sql deleted file mode 100644 index fa0d9a4f0..000000000 --- a/db/routines/vn/views/bank.sql +++ /dev/null @@ -1,12 +0,0 @@ -CREATE OR REPLACE DEFINER=`root`@`localhost` - SQL SECURITY DEFINER - VIEW `vn`.`bank` -AS SELECT `a`.`id` AS `id`, - `a`.`bank` AS `bank`, - `a`.`account` AS `account`, - `a`.`accountingTypeFk` AS `cash`, - `a`.`entityFk` AS `entityFk`, - `a`.`isActive` AS `isActive`, - `a`.`currencyFk` AS `currencyFk`, - `a`.`code` AS `code` -FROM `vn`.`accounting` `a` diff --git a/db/routines/vn/views/exchangeInsuranceOut.sql b/db/routines/vn/views/exchangeInsuranceOut.sql index f93b65331..5c41dbb24 100644 --- a/db/routines/vn/views/exchangeInsuranceOut.sql +++ b/db/routines/vn/views/exchangeInsuranceOut.sql @@ -7,9 +7,9 @@ AS SELECT `p`.`received` AS `received`, FROM ( ( `vn`.`payment` `p` - JOIN `vn`.`bank` `b` ON(`b`.`id` = `p`.`bankFk`) + JOIN `vn`.`accounting` `a` ON(`a`.`id` = `p`.`bankFk`) ) - JOIN `vn`.`accountingType` `at2` ON(`at2`.`id` = `b`.`cash`) + JOIN `vn`.`accountingType` `at2` ON(`at2`.`id` = `a`.`accountingTypeFk`) ) WHERE `p`.`currencyFk` = 2 AND `at2`.`code` = 'wireTransfer' diff --git a/db/routines/vn2008/views/Bancos.sql b/db/routines/vn2008/views/Bancos.sql index 0c6f8d1bd..6e850f365 100644 --- a/db/routines/vn2008/views/Bancos.sql +++ b/db/routines/vn2008/views/Bancos.sql @@ -1,11 +1,11 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `vn2008`.`Bancos` -AS SELECT `b`.`id` AS `Id_Banco`, - `b`.`bank` AS `Banco`, - `b`.`account` AS `Cuenta`, - `b`.`cash` AS `cash`, - `b`.`entityFk` AS `entity_id`, - `b`.`isActive` AS `activo`, - `b`.`currencyFk` AS `currencyFk` -FROM `vn`.`bank` `b` +AS SELECT `a`.`id` AS `Id_Banco`, + `a`.`bank` AS `Banco`, + `a`.`account` AS `Cuenta`, + `a`.`accountingTypeFk` AS `cash`, + `a`.`entityFk` AS `entity_id`, + `a`.`isActive` AS `activo`, + `a`.`currencyFk` AS `currencyFk` +FROM `vn`.`accounting` `a` diff --git a/db/versions/10928-orangeEucalyptus/00-firstScript.sql b/db/versions/10928-orangeEucalyptus/00-firstScript.sql new file mode 100644 index 000000000..5f56f580b --- /dev/null +++ b/db/versions/10928-orangeEucalyptus/00-firstScript.sql @@ -0,0 +1,2 @@ +REVOKE SELECT ON TABLE vn.bank FROM administrative, hr; +GRANT SELECT ON TABLE vn.accounting TO administrative, hr; diff --git a/modules/client/back/methods/client/createReceipt.js b/modules/client/back/methods/client/createReceipt.js index b70b9bbe0..debdaf066 100644 --- a/modules/client/back/methods/client/createReceipt.js +++ b/modules/client/back/methods/client/createReceipt.js @@ -69,7 +69,7 @@ module.exports = function(Self) { delete args.ctx; // Remove unwanted properties const originalClient = await models.Client.findById(args.clientFk, null, myOptions); - const bank = await models.Bank.findById(args.bankFk, null, myOptions); + const bank = await models.Accounting.findById(args.bankFk, null, myOptions); const accountingType = await models.AccountingType.findById(bank.accountingTypeFk, null, myOptions); if (accountingType.code == 'compensation') { diff --git a/modules/client/back/methods/receipt/balanceCompensationEmail.js b/modules/client/back/methods/receipt/balanceCompensationEmail.js index afae5dabc..994d5124a 100644 --- a/modules/client/back/methods/receipt/balanceCompensationEmail.js +++ b/modules/client/back/methods/receipt/balanceCompensationEmail.js @@ -28,7 +28,7 @@ module.exports = Self => { const models = Self.app.models; const receipt = await models.Receipt.findById(id, {fields: ['clientFk', 'bankFk']}); - const bank = await models.Bank.findById(receipt.bankFk); + const bank = await models.Accounting.findById(receipt.bankFk); if (!bank) throw new UserError(`Receipt's bank was not found`); diff --git a/modules/client/back/models/receipt.json b/modules/client/back/models/receipt.json index da7879df9..6ade21ac5 100644 --- a/modules/client/back/models/receipt.json +++ b/modules/client/back/models/receipt.json @@ -60,7 +60,7 @@ }, "bank": { "type": "belongsTo", - "model": "Bank", + "model": "Accounting", "foreignKey": "bankFk" }, "supplier": { diff --git a/modules/client/back/models/till.json b/modules/client/back/models/till.json index 4b86e50e2..6677b27d4 100644 --- a/modules/client/back/models/till.json +++ b/modules/client/back/models/till.json @@ -46,7 +46,7 @@ "relations": { "bank": { "type": "belongsTo", - "model": "Bank", + "model": "Accounting", "foreignKey": "bankFk" }, "worker": { diff --git a/modules/invoiceIn/back/models/invoice-in-due-day.json b/modules/invoiceIn/back/models/invoice-in-due-day.json index d2cffc81b..ca3616ef8 100644 --- a/modules/invoiceIn/back/models/invoice-in-due-day.json +++ b/modules/invoiceIn/back/models/invoice-in-due-day.json @@ -34,7 +34,7 @@ "relations": { "bank": { "type": "belongsTo", - "model": "Bank", + "model": "Accounting", "foreignKey": "bankFk" } } From 55ba315858a4400ccd0729d5a298638b912574e3 Mon Sep 17 00:00:00 2001 From: guillermo Date: Tue, 5 Mar 2024 10:30:25 +0100 Subject: [PATCH 120/173] refactor: refs #6948 Bank to Accouting --- db/versions/10928-orangeEucalyptus/00-firstScript.sql | 3 +++ front/salix/components/user-popover/index.html | 2 +- modules/client/front/balance/create/index.html | 2 +- modules/invoiceIn/front/dueDay/index.html | 2 +- 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/db/versions/10928-orangeEucalyptus/00-firstScript.sql b/db/versions/10928-orangeEucalyptus/00-firstScript.sql index 5f56f580b..58d3605de 100644 --- a/db/versions/10928-orangeEucalyptus/00-firstScript.sql +++ b/db/versions/10928-orangeEucalyptus/00-firstScript.sql @@ -1,2 +1,5 @@ REVOKE SELECT ON TABLE vn.bank FROM administrative, hr; GRANT SELECT ON TABLE vn.accounting TO administrative, hr; +UPDATE salix.ACL + SET model = 'Accounting' + WHERE model = 'Bank'; diff --git a/front/salix/components/user-popover/index.html b/front/salix/components/user-popover/index.html index 0fa6800c5..06a4af1e0 100644 --- a/front/salix/components/user-popover/index.html +++ b/front/salix/components/user-popover/index.html @@ -58,7 +58,7 @@ label="Local bank" id="localBank" ng-model="$ctrl.localBankFk" - url="Banks" + url="Accountings" select-fields="['id','bank']" show-field="bank" order="id" diff --git a/modules/client/front/balance/create/index.html b/modules/client/front/balance/create/index.html index 27b182c9a..25789b01a 100644 --- a/modules/client/front/balance/create/index.html +++ b/modules/client/front/balance/create/index.html @@ -29,7 +29,7 @@ Date: Tue, 5 Mar 2024 10:37:15 +0100 Subject: [PATCH 121/173] refs #6607 feat:[checking boxes] --- db/routines/vn/procedures/sale_getFromTicketOrCollection.sql | 3 +++ 1 file changed, 3 insertions(+) diff --git a/db/routines/vn/procedures/sale_getFromTicketOrCollection.sql b/db/routines/vn/procedures/sale_getFromTicketOrCollection.sql index e0cff202f..39c82d4ca 100644 --- a/db/routines/vn/procedures/sale_getFromTicketOrCollection.sql +++ b/db/routines/vn/procedures/sale_getFromTicketOrCollection.sql @@ -80,6 +80,9 @@ DECLARE vIsCollection BOOL; MIN(iss.created) picked, IF(sm.id, TRUE, FALSE) hasMistake, sg.sectorFk + b.packing, + b.grouping, + o.code FROM tmp.ticket t JOIN sale s ON s.ticketFk = t.id JOIN ticket tt ON tt.id = t.id From cf181521d66f82c6a9e62e8be439ec4aaecb922c Mon Sep 17 00:00:00 2001 From: sergiodt Date: Tue, 5 Mar 2024 11:53:57 +0100 Subject: [PATCH 122/173] refs #6078 feat:add workeractivity --- back/models/workerActivity.json | 12 ++++++--- db/versions/10905-grayIvy/00-firstScript.sql | 27 ++++++++------------ 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/back/models/workerActivity.json b/back/models/workerActivity.json index 34f375586..e3b994f77 100644 --- a/back/models/workerActivity.json +++ b/back/models/workerActivity.json @@ -11,12 +11,18 @@ "id": true, "type": "number" }, - "workerActivityTypeFk": { - "type": "string" - }, "created": { "type": "date" }, + "model": { + "type": "string" + }, + "event": { + "type": "string" + }, + "description": { + "type": "string" + }, "relations": { "workerFk": { "type": "belongsTo", diff --git a/db/versions/10905-grayIvy/00-firstScript.sql b/db/versions/10905-grayIvy/00-firstScript.sql index a85efd836..a7c3c4c17 100644 --- a/db/versions/10905-grayIvy/00-firstScript.sql +++ b/db/versions/10905-grayIvy/00-firstScript.sql @@ -4,22 +4,6 @@ CREATE OR REPLACE TABLE `workerActivityType` ( PRIMARY KEY (`code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; - -CREATE OR REPLACE TABLE `workerActivity` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `workerFk` int(10) unsigned NOT NULL, - `workerActivityTypeFk` varchar(20) NOT NULL, - `created` datetime NOT NULL DEFAULT current_timestamp(), - PRIMARY KEY (`id`), - KEY `workerActivity_worker_FK` (`workerFk`), - KEY `workerActivity_workerActivityType_FK` (`workerActivityTypeFk`), - CONSTRAINT `workerActivity_workerActivityType_FK` FOREIGN KEY (`workerActivityTypeFk`) REFERENCES `workerActivityType` (`code`) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT `workerActivity_worker_FK` FOREIGN KEY (`workerFk`) REFERENCES `worker` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='Registros actividades por los trabajadores'; - --- vn.workerMistakeType definition - - ALTER TABLE vn.department ADD workerActivityTypeFk varchar(20) NULL COMMENT 'Indica la actitividad que desempeña por defecto ese departamento'; ALTER TABLE vn.department ADD CONSTRAINT department_workerActivityType_FK FOREIGN KEY (workerActivityTypeFk) REFERENCES vn.workerActivityType(code) ON DELETE CASCADE ON UPDATE CASCADE; @@ -38,4 +22,13 @@ INSERT INTO vn.workerActivityType (code, description) VALUES('STOP', 'PARADA'); INSERT INTO salix.ACL ( model, property, accessType, permission, principalType, principalId) VALUES('WorkerActivityType', '*', 'READ', 'ALLOW', 'ROLE', 'production'); -INSERT INTO salix.ACL ( model, property, accessType, permission, principalType, principalId) VALUES('WorkerActivity', '*', '*', 'ALLOW', 'ROLE', 'production'); \ No newline at end of file +INSERT INTO salix.ACL ( model, property, accessType, permission, principalType, principalId) VALUES('WorkerActivity', '*', '*', 'ALLOW', 'ROLE', 'production'); + + +ALTER TABLE vn.workerActivity MODIFY COLUMN event enum('open','close','insert','delete','update','refresh') CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL; +ALTER TABLE vn.workerActivity MODIFY COLUMN model enum('COM','ENT','TPV','ENC','LAB','ETI','APP') CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL; + + +ALTER TABLE vn.workerActivity ADD workerActivityTypeFk varchar(20) NULL; +ALTER TABLE vn.workerActivity ADD CONSTRAINT workerActivity_workerActivityType_FK FOREIGN KEY (workerActivityTypeFk) REFERENCES vn.workerActivityType(code) ON DELETE CASCADE ON UPDATE CASCADE; + From 03b7628ebaa637134ab7daafbf2fa2b5a33c4327 Mon Sep 17 00:00:00 2001 From: alexm Date: Tue, 5 Mar 2024 14:38:18 +0100 Subject: [PATCH 123/173] fix: try to fix puppeteer --- package.json | 2 +- pnpm-lock.yaml | 117 ++++++++++++++++++++++++++++++++++--------------- 2 files changed, 82 insertions(+), 37 deletions(-) diff --git a/package.json b/package.json index d7dea767e..e70315fa3 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "mysql": "2.18.1", "node-ssh": "^11.0.0", "object.pick": "^1.3.0", - "puppeteer": "^21.11.0", + "puppeteer": "^22.4.0", "read-chunk": "^3.2.0", "require-yaml": "0.0.1", "smbhash": "0.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 36bff2fe1..9736570fd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -93,8 +93,8 @@ dependencies: specifier: ^1.3.0 version: 1.3.0 puppeteer: - specifier: ^21.11.0 - version: 21.11.0 + specifier: ^22.4.0 + version: 22.4.0 read-chunk: specifier: ^3.2.0 version: 3.2.0 @@ -1916,16 +1916,17 @@ packages: dev: true optional: true - /@puppeteer/browsers@1.9.1: - resolution: {integrity: sha512-PuvK6xZzGhKPvlx3fpfdM2kYY3P/hB1URtK8wA7XUJ6prn6pp22zvJHu48th0SGcHL9SutbPHrFuQgfXTFobWA==} - engines: {node: '>=16.3.0'} + /@puppeteer/browsers@2.1.0: + resolution: {integrity: sha512-xloWvocjvryHdUjDam/ZuGMh7zn4Sn3ZAaV4Ah2e2EwEt90N3XphZlSsU3n0VDc1F7kggCjMuH0UuxfPQ5mD9w==} + engines: {node: '>=18'} hasBin: true dependencies: debug: 4.3.4(supports-color@6.1.0) extract-zip: 2.0.1 progress: 2.0.3 - proxy-agent: 6.3.1 - tar-fs: 3.0.4 + proxy-agent: 6.4.0 + semver: 7.6.0 + tar-fs: 3.0.5 unbzip2-stream: 1.4.3 yargs: 17.7.2 transitivePeerDependencies: @@ -3498,6 +3499,37 @@ packages: /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + /bare-events@2.2.1: + resolution: {integrity: sha512-9GYPpsPFvrWBkelIhOhTWtkeZxVxZOdb3VnFTCzlOo3OjvmTvzLoZFUT8kNFACx0vJej6QPney1Cf9BvzCNE/A==} + requiresBuild: true + dev: false + optional: true + + /bare-fs@2.2.1: + resolution: {integrity: sha512-+CjmZANQDFZWy4PGbVdmALIwmt33aJg8qTkVjClU6X4WmZkTPBDxRHiBn7fpqEWEfF3AC2io++erpViAIQbSjg==} + requiresBuild: true + dependencies: + bare-events: 2.2.1 + bare-os: 2.2.0 + bare-path: 2.1.0 + streamx: 2.15.6 + dev: false + optional: true + + /bare-os@2.2.0: + resolution: {integrity: sha512-hD0rOPfYWOMpVirTACt4/nK8mC55La12K5fY1ij8HAdfQakD62M+H4o4tpfKzVGLgRDTuk3vjA4GqGXXCeFbag==} + requiresBuild: true + dev: false + optional: true + + /bare-path@2.1.0: + resolution: {integrity: sha512-DIIg7ts8bdRKwJRJrUMy/PICEaQZaPGZ26lsSx9MJSwIhSrcdHn7/C8W+XmnG/rKi6BaRcz+JO00CjZteybDtw==} + requiresBuild: true + dependencies: + bare-os: 2.2.0 + dev: false + optional: true + /base64-js@0.0.2: resolution: {integrity: sha512-Pj9L87dCdGcKlSqPVUjD+q96pbIx1zQQLb2CUiWURfjiBELv84YX+0nGnKmyT/9KkC7PQk7UN1w+Al8bBozaxQ==} engines: {node: '>= 0.4'} @@ -4060,12 +4092,12 @@ packages: engines: {node: '>=6.0'} dev: true - /chromium-bidi@0.5.8(devtools-protocol@0.0.1232444): - resolution: {integrity: sha512-blqh+1cEQbHBKmok3rVJkBlBxt9beKBgOsxbFgs7UJcoVbbeZ+K7+6liAsjgpc8l1Xd55cQUy14fXZdGSb4zIw==} + /chromium-bidi@0.5.12(devtools-protocol@0.0.1249869): + resolution: {integrity: sha512-sZMgEBWKbupD0Q7lyFu8AWkrE+rs5ycE12jFkGwIgD/VS8lDPtelPlXM7LYaq4zrkZ/O2L3f4afHUHL0ICdKog==} peerDependencies: devtools-protocol: '*' dependencies: - devtools-protocol: 0.0.1232444 + devtools-protocol: 0.0.1249869 mitt: 3.0.1 urlpattern-polyfill: 10.0.0 dev: false @@ -5049,8 +5081,8 @@ packages: resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} dev: true - /devtools-protocol@0.0.1232444: - resolution: {integrity: sha512-pM27vqEfxSxRkTMnF+XCmxSEb6duO5R+t8A9DEEJgy4Wz2RVanje2mmj99B6A3zv2r/qGfYlOvYznUhuokizmg==} + /devtools-protocol@0.0.1249869: + resolution: {integrity: sha512-Ctp4hInA0BEavlUoRy9mhGq0i+JSo/AwVyX2EFgZmV1kYB+Zq+EMBAn52QWu6FbRr10hRb6pBl420upbp4++vg==} dev: false /diff-sequences@26.6.2: @@ -7288,8 +7320,8 @@ packages: - supports-color dev: true - /http-proxy-agent@7.0.0: - resolution: {integrity: sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==} + /http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} dependencies: agent-base: 7.1.0 @@ -7367,8 +7399,8 @@ packages: transitivePeerDependencies: - supports-color - /https-proxy-agent@7.0.2: - resolution: {integrity: sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==} + /https-proxy-agent@7.0.4: + resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} engines: {node: '>= 14'} dependencies: agent-base: 7.1.0 @@ -9780,7 +9812,9 @@ packages: /mkdirp-classic@0.5.3: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + requiresBuild: true dev: false + optional: true /mkdirp@0.3.0: resolution: {integrity: sha512-OHsdUcVAQ6pOtg5JYWpCBo9W/GySVuwvP9hueRMW7UqshC0tbfzLv8wjySTPm3tfUZ/21CE9E1pJagOA91Pxew==} @@ -10692,8 +10726,8 @@ packages: agent-base: 7.1.0 debug: 4.3.4(supports-color@6.1.0) get-uri: 6.0.2 - http-proxy-agent: 7.0.0 - https-proxy-agent: 7.0.2 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.4 pac-resolver: 7.0.0 socks-proxy-agent: 8.0.2 transitivePeerDependencies: @@ -11149,14 +11183,14 @@ packages: forwarded: 0.2.0 ipaddr.js: 1.9.1 - /proxy-agent@6.3.1: - resolution: {integrity: sha512-Rb5RVBy1iyqOtNl15Cw/llpeLH8bsb37gM1FUfKQ+Wck6xHlbAhWGUFiTRHtkjqGTA5pSHz6+0hrPW/oECihPQ==} + /proxy-agent@6.4.0: + resolution: {integrity: sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==} engines: {node: '>= 14'} dependencies: agent-base: 7.1.0 debug: 4.3.4(supports-color@6.1.0) - http-proxy-agent: 7.0.0 - https-proxy-agent: 7.0.2 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.4 lru-cache: 7.18.3 pac-proxy-agent: 7.0.1 proxy-from-env: 1.1.0 @@ -11222,15 +11256,15 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - /puppeteer-core@21.11.0: - resolution: {integrity: sha512-ArbnyA3U5SGHokEvkfWjW+O8hOxV1RSJxOgriX/3A4xZRqixt9ZFHD0yPgZQF05Qj0oAqi8H/7stDorjoHY90Q==} - engines: {node: '>=16.13.2'} + /puppeteer-core@22.4.0: + resolution: {integrity: sha512-MZttAbttrxi6O/B//rY6zQihjFe/vXeCLb5YvKH2xG6yrcVESo0Hc5/Cv49omwZyZzAJ1BK8BnDeatDsj+3hMw==} + engines: {node: '>=18'} dependencies: - '@puppeteer/browsers': 1.9.1 - chromium-bidi: 0.5.8(devtools-protocol@0.0.1232444) + '@puppeteer/browsers': 2.1.0 + chromium-bidi: 0.5.12(devtools-protocol@0.0.1249869) cross-fetch: 4.0.0 debug: 4.3.4(supports-color@6.1.0) - devtools-protocol: 0.0.1232444 + devtools-protocol: 0.0.1249869 ws: 8.16.0 transitivePeerDependencies: - bufferutil @@ -11239,15 +11273,15 @@ packages: - utf-8-validate dev: false - /puppeteer@21.11.0: - resolution: {integrity: sha512-9jTHuYe22TD3sNxy0nEIzC7ZrlRnDgeX3xPkbS7PnbdwYjl2o/z/YuCrRBwezdKpbTDTJ4VqIggzNyeRcKq3cg==} - engines: {node: '>=16.13.2'} + /puppeteer@22.4.0: + resolution: {integrity: sha512-tR+JsDbA2qD1DqRX4F9k9SxQhk6UzcaCN+Qux7+WrDceS7wcR7tlFmMNB8+g8zE4Fmr/iRTOtf5wNnTW9cGUFQ==} + engines: {node: '>=18'} hasBin: true requiresBuild: true dependencies: - '@puppeteer/browsers': 1.9.1 + '@puppeteer/browsers': 2.1.0 cosmiconfig: 9.0.0 - puppeteer-core: 21.11.0 + puppeteer-core: 22.4.0 transitivePeerDependencies: - bufferutil - encoding @@ -11288,6 +11322,7 @@ packages: /queue-tick@1.0.1: resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} + requiresBuild: true dev: false /quick-lru@4.0.1: @@ -11987,6 +12022,14 @@ packages: dependencies: lru-cache: 6.0.0 + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: false + /send@0.18.0(supports-color@6.1.0): resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} engines: {node: '>= 0.8.0'} @@ -12986,12 +13029,14 @@ packages: dev: false optional: true - /tar-fs@3.0.4: - resolution: {integrity: sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==} + /tar-fs@3.0.5: + resolution: {integrity: sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==} dependencies: - mkdirp-classic: 0.5.3 pump: 3.0.0 tar-stream: 3.1.7 + optionalDependencies: + bare-fs: 2.2.1 + bare-path: 2.1.0 dev: false /tar-stream@1.6.2: From f601c12468edb74cc81e9741baa0717ab855359a Mon Sep 17 00:00:00 2001 From: guillermo Date: Tue, 5 Mar 2024 15:02:09 +0100 Subject: [PATCH 124/173] refactor: refs #6948 Requested changes --- db/routines/sage/procedures/accountingMovements_add.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/routines/sage/procedures/accountingMovements_add.sql b/db/routines/sage/procedures/accountingMovements_add.sql index ffb20c3ee..575c63f6c 100644 --- a/db/routines/sage/procedures/accountingMovements_add.sql +++ b/db/routines/sage/procedures/accountingMovements_add.sql @@ -253,7 +253,7 @@ BEGIN LIMIT 10000000000000000000 ) sub GROUP BY ASIEN )sub2 ON sub2.ASIEN = x.ASIEN - LEFT JOIN ( SELECT DISTINCT(account),cu.code + LEFT JOIN ( SELECT DISTINCT(a.account),cu.code FROM vn.accounting a JOIN vn.currency cu ON cu.id = a.currencyFk WHERE cu.code <> 'EUR' -- no se informa cuando la divisa en EUR From d397980efb791b979bb41a0a79204c5c9980b67f Mon Sep 17 00:00:00 2001 From: sergiodt Date: Tue, 5 Mar 2024 16:10:56 +0100 Subject: [PATCH 125/173] refs #6607 feat:[checking boxes] --- db/routines/vn/procedures/sale_getFromTicketOrCollection.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/routines/vn/procedures/sale_getFromTicketOrCollection.sql b/db/routines/vn/procedures/sale_getFromTicketOrCollection.sql index 39c82d4ca..5308bdd28 100644 --- a/db/routines/vn/procedures/sale_getFromTicketOrCollection.sql +++ b/db/routines/vn/procedures/sale_getFromTicketOrCollection.sql @@ -79,7 +79,7 @@ DECLARE vIsCollection BOOL; IF(SUM(iss.quantity) IS NULL, 0, SUM(iss.quantity)) pickedQuantity, MIN(iss.created) picked, IF(sm.id, TRUE, FALSE) hasMistake, - sg.sectorFk + sg.sectorFk, b.packing, b.grouping, o.code From b80f2e305f4b81ad6f24bcce423ba7921f95b411 Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 6 Mar 2024 07:31:03 +0100 Subject: [PATCH 126/173] fix: try to fix puppeteer --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 9ca7f5d19..91dfb8aa8 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -71,7 +71,7 @@ pipeline { stage('Back') { steps { sh 'pnpm install --prefer-offline' - sh 'pnpx puppeteer browsers install chrome' + sh 'cd node_modules/puppeteer && pnpm i' } } stage('Print') { From 7ac4617f486b4af39b0aeeda5a5ab02f5635db11 Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 6 Mar 2024 07:34:39 +0100 Subject: [PATCH 127/173] fix: try to fix puppeteer --- Jenkinsfile | 1 - package.json | 2 +- pnpm-lock.yaml | 20 ++++++++++---------- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 91dfb8aa8..821316c87 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -71,7 +71,6 @@ pipeline { stage('Back') { steps { sh 'pnpm install --prefer-offline' - sh 'cd node_modules/puppeteer && pnpm i' } } stage('Print') { diff --git a/package.json b/package.json index e70315fa3..a8b974052 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "mysql": "2.18.1", "node-ssh": "^11.0.0", "object.pick": "^1.3.0", - "puppeteer": "^22.4.0", + "puppeteer": "^22.3.0", "read-chunk": "^3.2.0", "require-yaml": "0.0.1", "smbhash": "0.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9736570fd..5e617eacf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -93,7 +93,7 @@ dependencies: specifier: ^1.3.0 version: 1.3.0 puppeteer: - specifier: ^22.4.0 + specifier: ^22.3.0 version: 22.4.0 read-chunk: specifier: ^3.2.0 @@ -1880,7 +1880,7 @@ packages: resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} dependencies: '@gar/promisify': 1.1.3 - semver: 7.5.4 + semver: 7.6.0 dev: true /@npmcli/fs@2.1.2: @@ -1888,7 +1888,7 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: '@gar/promisify': 1.1.3 - semver: 7.5.4 + semver: 7.6.0 dev: true /@npmcli/move-file@1.1.2: @@ -8479,7 +8479,7 @@ packages: jest-resolve: 26.6.2 natural-compare: 1.4.0 pretty-format: 26.6.2 - semver: 7.5.4 + semver: 7.6.0 transitivePeerDependencies: - supports-color dev: true @@ -9344,7 +9344,7 @@ packages: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} dependencies: - semver: 7.5.4 + semver: 7.6.0 dev: true /make-fetch-happen@10.2.1: @@ -10071,7 +10071,7 @@ packages: engines: {node: '>=10'} requiresBuild: true dependencies: - semver: 7.5.4 + semver: 7.6.0 dev: false optional: true @@ -10138,7 +10138,7 @@ packages: nopt: 5.0.0 npmlog: 6.0.2 rimraf: 3.0.2 - semver: 7.5.4 + semver: 7.6.0 tar: 6.2.0 which: 2.0.2 transitivePeerDependencies: @@ -10156,7 +10156,7 @@ packages: dependencies: growly: 1.3.0 is-wsl: 2.2.0 - semver: 7.5.4 + semver: 7.6.0 shellwords: 0.1.1 uuid: 8.3.2 which: 2.0.2 @@ -10336,7 +10336,7 @@ packages: dependencies: hosted-git-info: 4.1.0 is-core-module: 2.13.1 - semver: 7.5.4 + semver: 7.6.0 validate-npm-package-license: 3.0.4 dev: true @@ -12021,6 +12021,7 @@ packages: hasBin: true dependencies: lru-cache: 6.0.0 + dev: true /semver@7.6.0: resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} @@ -12028,7 +12029,6 @@ packages: hasBin: true dependencies: lru-cache: 6.0.0 - dev: false /send@0.18.0(supports-color@6.1.0): resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} From 0d7a03f655a9c5c158ec0fc5a0c69334806d450a Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 6 Mar 2024 07:37:12 +0100 Subject: [PATCH 128/173] fix: try to fix puppeteer --- puppeteerrc.cjs | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 puppeteerrc.cjs diff --git a/puppeteerrc.cjs b/puppeteerrc.cjs new file mode 100644 index 000000000..a4ea4f7d0 --- /dev/null +++ b/puppeteerrc.cjs @@ -0,0 +1,5 @@ +const {join} = require('path'); + +module.exports = { + cacheDirectory: join(__dirname, '.cache', 'puppeteer'), +}; From 8e612aaddcb79b67ea4ae89385423c24972e8020 Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 6 Mar 2024 07:42:06 +0100 Subject: [PATCH 129/173] fix: try to fix puppeteer --- Jenkinsfile | 1 + puppeteerrc.cjs | 5 ----- 2 files changed, 1 insertion(+), 5 deletions(-) delete mode 100644 puppeteerrc.cjs diff --git a/Jenkinsfile b/Jenkinsfile index 821316c87..a64057f2c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -70,6 +70,7 @@ pipeline { parallel { stage('Back') { steps { + sh 'pnpp config set puppeteer_skip_chromium_download true -g' sh 'pnpm install --prefer-offline' } } diff --git a/puppeteerrc.cjs b/puppeteerrc.cjs deleted file mode 100644 index a4ea4f7d0..000000000 --- a/puppeteerrc.cjs +++ /dev/null @@ -1,5 +0,0 @@ -const {join} = require('path'); - -module.exports = { - cacheDirectory: join(__dirname, '.cache', 'puppeteer'), -}; From f055293d8ade7cb74be950e2b18d3dcfedda1fa7 Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 6 Mar 2024 07:43:10 +0100 Subject: [PATCH 130/173] fix: try to fix puppeteer --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index a64057f2c..f056bc8be 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -70,7 +70,6 @@ pipeline { parallel { stage('Back') { steps { - sh 'pnpp config set puppeteer_skip_chromium_download true -g' sh 'pnpm install --prefer-offline' } } @@ -104,6 +103,7 @@ pipeline { NODE_ENV = '' } steps { + sh 'pnpm config set puppeteer_skip_chromium_download true -g' sh 'node back/tests.js --ci --junit --network jenkins' } post { From 8326bfa75cf97ce2069a3372e4cc77f5786416eb Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 6 Mar 2024 07:44:25 +0100 Subject: [PATCH 131/173] fix: try to fix puppeteer --- Jenkinsfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index f056bc8be..b0f22e1b0 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -70,7 +70,9 @@ pipeline { parallel { stage('Back') { steps { + sh 'pnpm config set puppeteer_skip_chromium_download true -g' sh 'pnpm install --prefer-offline' + sh 'pnpx puppeteer browsers install chrome' } } stage('Print') { @@ -103,7 +105,6 @@ pipeline { NODE_ENV = '' } steps { - sh 'pnpm config set puppeteer_skip_chromium_download true -g' sh 'node back/tests.js --ci --junit --network jenkins' } post { From e7683b009c78e11880e9232f9898664a65f0c2a7 Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 6 Mar 2024 07:46:18 +0100 Subject: [PATCH 132/173] fix: try to fix puppeteer --- Jenkinsfile | 2 - package.json | 2 +- pnpm-lock.yaml | 137 ++++++++++++++++++++++++++++++------------------- 3 files changed, 85 insertions(+), 56 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index b0f22e1b0..821316c87 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -70,9 +70,7 @@ pipeline { parallel { stage('Back') { steps { - sh 'pnpm config set puppeteer_skip_chromium_download true -g' sh 'pnpm install --prefer-offline' - sh 'pnpx puppeteer browsers install chrome' } } stage('Print') { diff --git a/package.json b/package.json index a8b974052..69dc403d8 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,6 @@ "mysql": "2.18.1", "node-ssh": "^11.0.0", "object.pick": "^1.3.0", - "puppeteer": "^22.3.0", "read-chunk": "^3.2.0", "require-yaml": "0.0.1", "smbhash": "0.0.1", @@ -52,6 +51,7 @@ "xmldom": "^0.6.0" }, "devDependencies": { + "puppeteer": "^22.3.0", "@babel/core": "^7.7.7", "@babel/plugin-syntax-dynamic-import": "^7.7.4", "@babel/preset-env": "^7.11.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5e617eacf..9b561df49 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -92,9 +92,6 @@ dependencies: object.pick: specifier: ^1.3.0 version: 1.3.0 - puppeteer: - specifier: ^22.3.0 - version: 22.4.0 read-chunk: specifier: ^3.2.0 version: 3.2.0 @@ -244,6 +241,9 @@ devDependencies: plugin-error: specifier: ^1.0.1 version: 1.0.1 + puppeteer: + specifier: ^22.3.0 + version: 22.4.0 raw-loader: specifier: ^4.0.2 version: 4.0.2(webpack@5.90.1) @@ -302,6 +302,7 @@ packages: dependencies: '@babel/highlight': 7.23.4 chalk: 2.4.2 + dev: true /@babel/compat-data@7.23.5: resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} @@ -524,6 +525,7 @@ packages: /@babel/helper-validator-identifier@7.22.20: resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} + dev: true /@babel/helper-validator-option@7.23.5: resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} @@ -557,6 +559,7 @@ packages: '@babel/helper-validator-identifier': 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 + dev: true /@babel/parser@7.23.9: resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==} @@ -1931,7 +1934,7 @@ packages: yargs: 17.7.2 transitivePeerDependencies: - supports-color - dev: false + dev: true /@sindresorhus/is@2.1.1: resolution: {integrity: sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg==} @@ -2378,7 +2381,7 @@ packages: /@tootallnate/quickjs-emscripten@0.23.0: resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} - dev: false + dev: true /@types/babel__core@7.20.5: resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} @@ -2631,7 +2634,7 @@ packages: requiresBuild: true dependencies: '@types/node': 20.11.16 - dev: false + dev: true optional: true /@verdnatura/myt@1.6.8: @@ -2915,7 +2918,7 @@ packages: debug: 4.3.4(supports-color@6.1.0) transitivePeerDependencies: - supports-color - dev: false + dev: true /agentkeepalive@4.5.0: resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} @@ -3024,6 +3027,7 @@ packages: /ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} + dev: true /ansi-regex@6.0.1: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} @@ -3040,6 +3044,7 @@ packages: engines: {node: '>=4'} dependencies: color-convert: 1.9.3 + dev: true /ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} @@ -3244,7 +3249,7 @@ packages: engines: {node: '>=4'} dependencies: tslib: 2.6.2 - dev: false + dev: true /ast-types@0.9.6: resolution: {integrity: sha512-qEdtR2UH78yyHX/AUNfXmJTlM48XoFZKBdwi1nzkI1mJL21cmbu0cvjxjpkXJ5NENMq42H+hNs8VLJcqXLerBQ==} @@ -3348,7 +3353,7 @@ packages: /b4a@1.6.4: resolution: {integrity: sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==} - dev: false + dev: true /babel-jest@26.6.3(@babel/core@7.23.9): resolution: {integrity: sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==} @@ -3502,7 +3507,7 @@ packages: /bare-events@2.2.1: resolution: {integrity: sha512-9GYPpsPFvrWBkelIhOhTWtkeZxVxZOdb3VnFTCzlOo3OjvmTvzLoZFUT8kNFACx0vJej6QPney1Cf9BvzCNE/A==} requiresBuild: true - dev: false + dev: true optional: true /bare-fs@2.2.1: @@ -3513,13 +3518,13 @@ packages: bare-os: 2.2.0 bare-path: 2.1.0 streamx: 2.15.6 - dev: false + dev: true optional: true /bare-os@2.2.0: resolution: {integrity: sha512-hD0rOPfYWOMpVirTACt4/nK8mC55La12K5fY1ij8HAdfQakD62M+H4o4tpfKzVGLgRDTuk3vjA4GqGXXCeFbag==} requiresBuild: true - dev: false + dev: true optional: true /bare-path@2.1.0: @@ -3527,7 +3532,7 @@ packages: requiresBuild: true dependencies: bare-os: 2.2.0 - dev: false + dev: true optional: true /base64-js@0.0.2: @@ -3542,7 +3547,6 @@ packages: /base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - dev: false /base64url@3.0.1: resolution: {integrity: sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==} @@ -3565,7 +3569,7 @@ packages: /basic-ftp@5.0.4: resolution: {integrity: sha512-8PzkB0arJFV4jJWSGOYR+OEic6aeKMu/osRhBULN6RY0ykby6LKhbmuQ5ublvaas5BOwboah5D87nrHyuh8PPA==} engines: {node: '>=10.0.0'} - dev: false + dev: true /batch@0.6.1: resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} @@ -3792,7 +3796,7 @@ packages: /buffer-crc32@0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} - dev: false + dev: true /buffer-equal-constant-time@1.0.1: resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} @@ -3827,7 +3831,6 @@ packages: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 - dev: false /bufferstreams@1.0.1: resolution: {integrity: sha512-LZmiIfQprMLS6/k42w/PTc7awhU8AdNNcUerxTgr01WlP9agR2SgMv0wjlYYFD6eDOi8WvofrTX8RayjR/AeUQ==} @@ -3947,6 +3950,7 @@ packages: /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} + dev: true /camel-case@3.0.0: resolution: {integrity: sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==} @@ -4026,6 +4030,7 @@ packages: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 + dev: true /chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} @@ -4100,7 +4105,7 @@ packages: devtools-protocol: 0.0.1249869 mitt: 3.0.1 urlpattern-polyfill: 10.0.0 - dev: false + dev: true /ci-info@2.0.0: resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} @@ -4174,6 +4179,7 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + dev: true /clone-buffer@1.0.0: resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==} @@ -4264,6 +4270,7 @@ packages: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: color-name: 1.1.3 + dev: true /color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} @@ -4273,6 +4280,7 @@ packages: /color-name@1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + dev: true /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -4658,7 +4666,7 @@ packages: import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 - dev: false + dev: true /cross-fetch@4.0.0: resolution: {integrity: sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==} @@ -4666,7 +4674,7 @@ packages: node-fetch: 2.7.0 transitivePeerDependencies: - encoding - dev: false + dev: true /cross-spawn@4.0.2: resolution: {integrity: sha512-yAXz/pA1tD8Gtg2S98Ekf/sewp3Lcp3YoFKJ4Hkp5h5yLWnKVTDU0kwjKJ8NDCYcfTLfyGkzTikst+jWypT1iA==} @@ -4791,7 +4799,7 @@ packages: /data-uri-to-buffer@6.0.1: resolution: {integrity: sha512-MZd3VlchQkp8rdend6vrx7MmVDJzSNTBvghvKjirLkD+WTChA3KUf0jkE68Q4UyctNqI11zZO9/x2Yx+ub5Cvg==} engines: {node: '>= 14'} - dev: false + dev: true /data-urls@2.0.0: resolution: {integrity: sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==} @@ -4997,7 +5005,7 @@ packages: ast-types: 0.13.4 escodegen: 2.1.0 esprima: 4.0.1 - dev: false + dev: true /del@2.2.2: resolution: {integrity: sha512-Z4fzpbIRjOu7lO5jCETSWoqUDVe0IPOlfugBsF6suen2LKDlVb4QZpKEM9P+buNJ4KI1eN7I083w/pbKUpsrWQ==} @@ -5083,7 +5091,7 @@ packages: /devtools-protocol@0.0.1249869: resolution: {integrity: sha512-Ctp4hInA0BEavlUoRy9mhGq0i+JSo/AwVyX2EFgZmV1kYB+Zq+EMBAn52QWu6FbRr10hRb6pBl420upbp4++vg==} - dev: false + dev: true /diff-sequences@26.6.2: resolution: {integrity: sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==} @@ -5295,6 +5303,7 @@ packages: /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true /emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} @@ -5352,6 +5361,7 @@ packages: /env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} + dev: true /envinfo@7.11.0: resolution: {integrity: sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==} @@ -5374,6 +5384,7 @@ packages: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: is-arrayish: 0.2.1 + dev: true /errs@0.3.2: resolution: {integrity: sha512-r+/tydov04FSwTi+PrGd0IdY195Y1jZW2g27TJ+cErU8vvr9V4hHYxtRF8bMjv4zYEhap7wK7zBQ2i99LRo6kA==} @@ -5437,6 +5448,7 @@ packages: /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} + dev: true /escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} @@ -5449,6 +5461,7 @@ packages: /escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} + dev: true /escape-string-regexp@2.0.0: resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} @@ -5815,7 +5828,7 @@ packages: '@types/yauzl': 2.10.3 transitivePeerDependencies: - supports-color - dev: false + dev: true /extsprintf@1.3.0: resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} @@ -5849,7 +5862,7 @@ packages: /fast-fifo@1.3.2: resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} - dev: false + dev: true /fast-json-patch@2.2.1: resolution: {integrity: sha512-4j5uBaTnsYAV5ebkidvxiLUYOwjQ+JSFljeqfTxCrH9bDmlCQaOJFS84oDJ2rAXZq2yskmk3ORfoP9DCwqFNig==} @@ -5907,7 +5920,7 @@ packages: resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} dependencies: pend: 1.2.0 - dev: false + dev: true /feature-policy@0.3.0: resolution: {integrity: sha512-ZtijOTFN7TzCujt1fnNhfWPFPSHeZkesff9AXZj+UEjYBynWNUIYpC87Ve4wHzyexQsImicLu7WsC2LHq7/xrQ==} @@ -6229,7 +6242,7 @@ packages: graceful-fs: 4.2.11 jsonfile: 4.0.0 universalify: 0.1.2 - dev: false + dev: true /fs-minipass@1.2.7: resolution: {integrity: sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==} @@ -6401,6 +6414,7 @@ packages: /get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} + dev: true /get-intrinsic@1.2.2: resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} @@ -6447,7 +6461,7 @@ packages: fs-extra: 8.1.0 transitivePeerDependencies: - supports-color - dev: false + dev: true /get-value@2.0.6: resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} @@ -7328,7 +7342,7 @@ packages: debug: 4.3.4(supports-color@6.1.0) transitivePeerDependencies: - supports-color - dev: false + dev: true /http-proxy-middleware@0.19.1(debug@4.3.4)(supports-color@6.1.0): resolution: {integrity: sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==} @@ -7407,7 +7421,7 @@ packages: debug: 4.3.4(supports-color@6.1.0) transitivePeerDependencies: - supports-color - dev: false + dev: true /human-signals@1.1.1: resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} @@ -7468,7 +7482,6 @@ packages: /ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - dev: false /ignore-by-default@1.0.1: resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==} @@ -7507,6 +7520,7 @@ packages: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 + dev: true /import-local@2.0.0: resolution: {integrity: sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==} @@ -7607,6 +7621,7 @@ packages: /ip@2.0.0: resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} + dev: true /ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} @@ -7641,6 +7656,7 @@ packages: /is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: true /is-binary-path@1.0.1: resolution: {integrity: sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==} @@ -7747,6 +7763,7 @@ packages: /is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} + dev: true /is-generator-fn@2.1.0: resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} @@ -8578,6 +8595,7 @@ packages: /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: true /js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} @@ -8679,6 +8697,7 @@ packages: /json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: true /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} @@ -8910,6 +8929,7 @@ packages: /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true /load-json-file@1.1.0: resolution: {integrity: sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==} @@ -9313,6 +9333,7 @@ packages: /lru-cache@7.18.3: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} + dev: true /lru-cache@8.0.5: resolution: {integrity: sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==} @@ -9800,7 +9821,7 @@ packages: /mitt@3.0.1: resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} - dev: false + dev: true /mixin-deep@1.3.2: resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} @@ -10039,7 +10060,7 @@ packages: /netmask@2.0.2: resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} engines: {node: '>= 0.4.0'} - dev: false + dev: true /next-tick@1.1.0: resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} @@ -10102,7 +10123,6 @@ packages: optional: true dependencies: whatwg-url: 5.0.0 - dev: false /node-forge@0.10.0: resolution: {integrity: sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==} @@ -10732,7 +10752,7 @@ packages: socks-proxy-agent: 8.0.2 transitivePeerDependencies: - supports-color - dev: false + dev: true /pac-resolver@7.0.0: resolution: {integrity: sha512-Fd9lT9vJbHYRACT8OhCbZBbxr6KRSawSovFpy8nDGshaK99S/EBhVIHp9+crhxrsZOuvLpgL1n23iyPg6Rl2hg==} @@ -10741,7 +10761,7 @@ packages: degenerator: 5.0.1 ip: 1.1.8 netmask: 2.0.2 - dev: false + dev: true /pako@1.0.11: resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} @@ -10765,6 +10785,7 @@ packages: engines: {node: '>=6'} dependencies: callsites: 3.1.0 + dev: true /parse-filepath@1.0.2: resolution: {integrity: sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==} @@ -10790,6 +10811,7 @@ packages: error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 + dev: true /parse-node-version@1.0.1: resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} @@ -10895,7 +10917,7 @@ packages: /pend@1.2.0: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} - dev: false + dev: true /performance-now@2.1.0: resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} @@ -11150,6 +11172,7 @@ packages: /progress@2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} + dev: true /promise-inflight@1.0.1: resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} @@ -11197,11 +11220,10 @@ packages: socks-proxy-agent: 8.0.2 transitivePeerDependencies: - supports-color - dev: false + dev: true /proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - dev: false /prr@1.0.1: resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} @@ -11271,7 +11293,7 @@ packages: - encoding - supports-color - utf-8-validate - dev: false + dev: true /puppeteer@22.4.0: resolution: {integrity: sha512-tR+JsDbA2qD1DqRX4F9k9SxQhk6UzcaCN+Qux7+WrDceS7wcR7tlFmMNB8+g8zE4Fmr/iRTOtf5wNnTW9cGUFQ==} @@ -11288,7 +11310,7 @@ packages: - supports-color - typescript - utf-8-validate - dev: false + dev: true /qs@6.11.0: resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} @@ -11323,7 +11345,7 @@ packages: /queue-tick@1.0.1: resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} requiresBuild: true - dev: false + dev: true /quick-lru@4.0.1: resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} @@ -11710,6 +11732,7 @@ packages: /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} + dev: true /require-from-string@2.0.2: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} @@ -11762,6 +11785,7 @@ packages: /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} + dev: true /resolve-from@5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} @@ -12265,6 +12289,7 @@ packages: /smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + dev: true /smbhash@0.0.1: resolution: {integrity: sha512-ljrKSV3nUvsax+5HHo4Q4O8GNi2Bni7ZRAaVh9bPVxP1UKRXtR/kLhmHY4onVglKkfY0C/J+zljhn1Q6k16zgQ==} @@ -12368,7 +12393,7 @@ packages: socks: 2.7.1 transitivePeerDependencies: - supports-color - dev: false + dev: true /socks@2.7.1: resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==} @@ -12376,6 +12401,7 @@ packages: dependencies: ip: 2.0.0 smart-buffer: 4.2.0 + dev: true /source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} @@ -12633,7 +12659,7 @@ packages: dependencies: fast-fifo: 1.3.2 queue-tick: 1.0.1 - dev: false + dev: true /string-length@4.0.2: resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} @@ -12668,6 +12694,7 @@ packages: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 + dev: true /string-width@5.1.2: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} @@ -12717,6 +12744,7 @@ packages: engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 + dev: true /strip-ansi@7.1.0: resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} @@ -12922,6 +12950,7 @@ packages: engines: {node: '>=4'} dependencies: has-flag: 3.0.0 + dev: true /supports-color@6.1.0: resolution: {integrity: sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==} @@ -13037,7 +13066,7 @@ packages: optionalDependencies: bare-fs: 2.2.1 bare-path: 2.1.0 - dev: false + dev: true /tar-stream@1.6.2: resolution: {integrity: sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==} @@ -13071,7 +13100,7 @@ packages: b4a: 1.6.4 fast-fifo: 1.3.2 streamx: 2.15.6 - dev: false + dev: true /tar@4.4.19: resolution: {integrity: sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==} @@ -13318,7 +13347,6 @@ packages: /tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - dev: false /tr46@2.1.0: resolution: {integrity: sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==} @@ -13381,6 +13409,7 @@ packages: /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + dev: true /tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} @@ -13479,7 +13508,7 @@ packages: dependencies: buffer: 5.7.1 through: 2.3.8 - dev: false + dev: true /unc-path-regex@0.1.2: resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==} @@ -13690,7 +13719,7 @@ packages: /urlpattern-polyfill@10.0.0: resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==} - dev: false + dev: true /use@3.1.1: resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} @@ -13917,7 +13946,6 @@ packages: /webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - dev: false /webidl-conversions@5.0.0: resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==} @@ -14122,7 +14150,6 @@ packages: dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 - dev: false /whatwg-url@8.7.0: resolution: {integrity: sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==} @@ -14220,6 +14247,7 @@ packages: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 + dev: true /wrap-ansi@8.1.0: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} @@ -14287,7 +14315,7 @@ packages: optional: true utf-8-validate: optional: true - dev: false + dev: true /x-xss-protection@1.3.0: resolution: {integrity: sha512-kpyBI9TlVipZO4diReZMAHWtS0MMa/7Kgx8hwG/EuZLiA6sg4Ah/4TRdASHhRRN3boobzcYgFRUFSgHRge6Qhg==} @@ -14370,6 +14398,7 @@ packages: /y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} + dev: true /yallist@2.1.2: resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} @@ -14418,6 +14447,7 @@ packages: /yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} + dev: true /yargs-parser@5.0.1: resolution: {integrity: sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==} @@ -14469,6 +14499,7 @@ packages: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 + dev: true /yargs@7.1.2: resolution: {integrity: sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==} @@ -14493,4 +14524,4 @@ packages: dependencies: buffer-crc32: 0.2.13 fd-slicer: 1.1.0 - dev: false + dev: true From 37ddf3542074ba3e153d140dec9ca34ae4d9dd5e Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 6 Mar 2024 07:47:55 +0100 Subject: [PATCH 133/173] fix: try to fix puppeteer --- package.json | 2 +- pnpm-lock.yaml | 216 +++++++++++++++++-------------------------------- 2 files changed, 76 insertions(+), 142 deletions(-) diff --git a/package.json b/package.json index 69dc403d8..5ddec39b3 100644 --- a/package.json +++ b/package.json @@ -42,6 +42,7 @@ "mysql": "2.18.1", "node-ssh": "^11.0.0", "object.pick": "^1.3.0", + "puppeteer": "21.11.0", "read-chunk": "^3.2.0", "require-yaml": "0.0.1", "smbhash": "0.0.1", @@ -51,7 +52,6 @@ "xmldom": "^0.6.0" }, "devDependencies": { - "puppeteer": "^22.3.0", "@babel/core": "^7.7.7", "@babel/plugin-syntax-dynamic-import": "^7.7.4", "@babel/preset-env": "^7.11.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9b561df49..ff83364e8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -92,6 +92,9 @@ dependencies: object.pick: specifier: ^1.3.0 version: 1.3.0 + puppeteer: + specifier: 21.11.0 + version: 21.11.0 read-chunk: specifier: ^3.2.0 version: 3.2.0 @@ -241,9 +244,6 @@ devDependencies: plugin-error: specifier: ^1.0.1 version: 1.0.1 - puppeteer: - specifier: ^22.3.0 - version: 22.4.0 raw-loader: specifier: ^4.0.2 version: 4.0.2(webpack@5.90.1) @@ -302,7 +302,6 @@ packages: dependencies: '@babel/highlight': 7.23.4 chalk: 2.4.2 - dev: true /@babel/compat-data@7.23.5: resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} @@ -525,7 +524,6 @@ packages: /@babel/helper-validator-identifier@7.22.20: resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} - dev: true /@babel/helper-validator-option@7.23.5: resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} @@ -559,7 +557,6 @@ packages: '@babel/helper-validator-identifier': 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 - dev: true /@babel/parser@7.23.9: resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==} @@ -1919,22 +1916,21 @@ packages: dev: true optional: true - /@puppeteer/browsers@2.1.0: - resolution: {integrity: sha512-xloWvocjvryHdUjDam/ZuGMh7zn4Sn3ZAaV4Ah2e2EwEt90N3XphZlSsU3n0VDc1F7kggCjMuH0UuxfPQ5mD9w==} - engines: {node: '>=18'} + /@puppeteer/browsers@1.9.1: + resolution: {integrity: sha512-PuvK6xZzGhKPvlx3fpfdM2kYY3P/hB1URtK8wA7XUJ6prn6pp22zvJHu48th0SGcHL9SutbPHrFuQgfXTFobWA==} + engines: {node: '>=16.3.0'} hasBin: true dependencies: debug: 4.3.4(supports-color@6.1.0) extract-zip: 2.0.1 progress: 2.0.3 - proxy-agent: 6.4.0 - semver: 7.6.0 - tar-fs: 3.0.5 + proxy-agent: 6.3.1 + tar-fs: 3.0.4 unbzip2-stream: 1.4.3 yargs: 17.7.2 transitivePeerDependencies: - supports-color - dev: true + dev: false /@sindresorhus/is@2.1.1: resolution: {integrity: sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg==} @@ -2381,7 +2377,7 @@ packages: /@tootallnate/quickjs-emscripten@0.23.0: resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} - dev: true + dev: false /@types/babel__core@7.20.5: resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} @@ -2634,7 +2630,7 @@ packages: requiresBuild: true dependencies: '@types/node': 20.11.16 - dev: true + dev: false optional: true /@verdnatura/myt@1.6.8: @@ -2918,7 +2914,7 @@ packages: debug: 4.3.4(supports-color@6.1.0) transitivePeerDependencies: - supports-color - dev: true + dev: false /agentkeepalive@4.5.0: resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} @@ -3027,7 +3023,6 @@ packages: /ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - dev: true /ansi-regex@6.0.1: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} @@ -3044,7 +3039,6 @@ packages: engines: {node: '>=4'} dependencies: color-convert: 1.9.3 - dev: true /ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} @@ -3249,7 +3243,7 @@ packages: engines: {node: '>=4'} dependencies: tslib: 2.6.2 - dev: true + dev: false /ast-types@0.9.6: resolution: {integrity: sha512-qEdtR2UH78yyHX/AUNfXmJTlM48XoFZKBdwi1nzkI1mJL21cmbu0cvjxjpkXJ5NENMq42H+hNs8VLJcqXLerBQ==} @@ -3353,7 +3347,7 @@ packages: /b4a@1.6.4: resolution: {integrity: sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==} - dev: true + dev: false /babel-jest@26.6.3(@babel/core@7.23.9): resolution: {integrity: sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==} @@ -3504,37 +3498,6 @@ packages: /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - /bare-events@2.2.1: - resolution: {integrity: sha512-9GYPpsPFvrWBkelIhOhTWtkeZxVxZOdb3VnFTCzlOo3OjvmTvzLoZFUT8kNFACx0vJej6QPney1Cf9BvzCNE/A==} - requiresBuild: true - dev: true - optional: true - - /bare-fs@2.2.1: - resolution: {integrity: sha512-+CjmZANQDFZWy4PGbVdmALIwmt33aJg8qTkVjClU6X4WmZkTPBDxRHiBn7fpqEWEfF3AC2io++erpViAIQbSjg==} - requiresBuild: true - dependencies: - bare-events: 2.2.1 - bare-os: 2.2.0 - bare-path: 2.1.0 - streamx: 2.15.6 - dev: true - optional: true - - /bare-os@2.2.0: - resolution: {integrity: sha512-hD0rOPfYWOMpVirTACt4/nK8mC55La12K5fY1ij8HAdfQakD62M+H4o4tpfKzVGLgRDTuk3vjA4GqGXXCeFbag==} - requiresBuild: true - dev: true - optional: true - - /bare-path@2.1.0: - resolution: {integrity: sha512-DIIg7ts8bdRKwJRJrUMy/PICEaQZaPGZ26lsSx9MJSwIhSrcdHn7/C8W+XmnG/rKi6BaRcz+JO00CjZteybDtw==} - requiresBuild: true - dependencies: - bare-os: 2.2.0 - dev: true - optional: true - /base64-js@0.0.2: resolution: {integrity: sha512-Pj9L87dCdGcKlSqPVUjD+q96pbIx1zQQLb2CUiWURfjiBELv84YX+0nGnKmyT/9KkC7PQk7UN1w+Al8bBozaxQ==} engines: {node: '>= 0.4'} @@ -3547,6 +3510,7 @@ packages: /base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + dev: false /base64url@3.0.1: resolution: {integrity: sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==} @@ -3569,7 +3533,7 @@ packages: /basic-ftp@5.0.4: resolution: {integrity: sha512-8PzkB0arJFV4jJWSGOYR+OEic6aeKMu/osRhBULN6RY0ykby6LKhbmuQ5ublvaas5BOwboah5D87nrHyuh8PPA==} engines: {node: '>=10.0.0'} - dev: true + dev: false /batch@0.6.1: resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} @@ -3796,7 +3760,7 @@ packages: /buffer-crc32@0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} - dev: true + dev: false /buffer-equal-constant-time@1.0.1: resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} @@ -3831,6 +3795,7 @@ packages: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 + dev: false /bufferstreams@1.0.1: resolution: {integrity: sha512-LZmiIfQprMLS6/k42w/PTc7awhU8AdNNcUerxTgr01WlP9agR2SgMv0wjlYYFD6eDOi8WvofrTX8RayjR/AeUQ==} @@ -3950,7 +3915,6 @@ packages: /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - dev: true /camel-case@3.0.0: resolution: {integrity: sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==} @@ -4030,7 +3994,6 @@ packages: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 - dev: true /chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} @@ -4097,15 +4060,15 @@ packages: engines: {node: '>=6.0'} dev: true - /chromium-bidi@0.5.12(devtools-protocol@0.0.1249869): - resolution: {integrity: sha512-sZMgEBWKbupD0Q7lyFu8AWkrE+rs5ycE12jFkGwIgD/VS8lDPtelPlXM7LYaq4zrkZ/O2L3f4afHUHL0ICdKog==} + /chromium-bidi@0.5.8(devtools-protocol@0.0.1232444): + resolution: {integrity: sha512-blqh+1cEQbHBKmok3rVJkBlBxt9beKBgOsxbFgs7UJcoVbbeZ+K7+6liAsjgpc8l1Xd55cQUy14fXZdGSb4zIw==} peerDependencies: devtools-protocol: '*' dependencies: - devtools-protocol: 0.0.1249869 + devtools-protocol: 0.0.1232444 mitt: 3.0.1 urlpattern-polyfill: 10.0.0 - dev: true + dev: false /ci-info@2.0.0: resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} @@ -4179,7 +4142,6 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - dev: true /clone-buffer@1.0.0: resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==} @@ -4270,7 +4232,6 @@ packages: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: color-name: 1.1.3 - dev: true /color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} @@ -4280,7 +4241,6 @@ packages: /color-name@1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - dev: true /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -4666,7 +4626,7 @@ packages: import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 - dev: true + dev: false /cross-fetch@4.0.0: resolution: {integrity: sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==} @@ -4674,7 +4634,7 @@ packages: node-fetch: 2.7.0 transitivePeerDependencies: - encoding - dev: true + dev: false /cross-spawn@4.0.2: resolution: {integrity: sha512-yAXz/pA1tD8Gtg2S98Ekf/sewp3Lcp3YoFKJ4Hkp5h5yLWnKVTDU0kwjKJ8NDCYcfTLfyGkzTikst+jWypT1iA==} @@ -4799,7 +4759,7 @@ packages: /data-uri-to-buffer@6.0.1: resolution: {integrity: sha512-MZd3VlchQkp8rdend6vrx7MmVDJzSNTBvghvKjirLkD+WTChA3KUf0jkE68Q4UyctNqI11zZO9/x2Yx+ub5Cvg==} engines: {node: '>= 14'} - dev: true + dev: false /data-urls@2.0.0: resolution: {integrity: sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==} @@ -5005,7 +4965,7 @@ packages: ast-types: 0.13.4 escodegen: 2.1.0 esprima: 4.0.1 - dev: true + dev: false /del@2.2.2: resolution: {integrity: sha512-Z4fzpbIRjOu7lO5jCETSWoqUDVe0IPOlfugBsF6suen2LKDlVb4QZpKEM9P+buNJ4KI1eN7I083w/pbKUpsrWQ==} @@ -5089,9 +5049,9 @@ packages: resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} dev: true - /devtools-protocol@0.0.1249869: - resolution: {integrity: sha512-Ctp4hInA0BEavlUoRy9mhGq0i+JSo/AwVyX2EFgZmV1kYB+Zq+EMBAn52QWu6FbRr10hRb6pBl420upbp4++vg==} - dev: true + /devtools-protocol@0.0.1232444: + resolution: {integrity: sha512-pM27vqEfxSxRkTMnF+XCmxSEb6duO5R+t8A9DEEJgy4Wz2RVanje2mmj99B6A3zv2r/qGfYlOvYznUhuokizmg==} + dev: false /diff-sequences@26.6.2: resolution: {integrity: sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==} @@ -5303,7 +5263,6 @@ packages: /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - dev: true /emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} @@ -5361,7 +5320,6 @@ packages: /env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} - dev: true /envinfo@7.11.0: resolution: {integrity: sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==} @@ -5384,7 +5342,6 @@ packages: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: is-arrayish: 0.2.1 - dev: true /errs@0.3.2: resolution: {integrity: sha512-r+/tydov04FSwTi+PrGd0IdY195Y1jZW2g27TJ+cErU8vvr9V4hHYxtRF8bMjv4zYEhap7wK7zBQ2i99LRo6kA==} @@ -5448,7 +5405,6 @@ packages: /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} - dev: true /escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} @@ -5461,7 +5417,6 @@ packages: /escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} - dev: true /escape-string-regexp@2.0.0: resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} @@ -5828,7 +5783,7 @@ packages: '@types/yauzl': 2.10.3 transitivePeerDependencies: - supports-color - dev: true + dev: false /extsprintf@1.3.0: resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} @@ -5862,7 +5817,7 @@ packages: /fast-fifo@1.3.2: resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} - dev: true + dev: false /fast-json-patch@2.2.1: resolution: {integrity: sha512-4j5uBaTnsYAV5ebkidvxiLUYOwjQ+JSFljeqfTxCrH9bDmlCQaOJFS84oDJ2rAXZq2yskmk3ORfoP9DCwqFNig==} @@ -5920,7 +5875,7 @@ packages: resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} dependencies: pend: 1.2.0 - dev: true + dev: false /feature-policy@0.3.0: resolution: {integrity: sha512-ZtijOTFN7TzCujt1fnNhfWPFPSHeZkesff9AXZj+UEjYBynWNUIYpC87Ve4wHzyexQsImicLu7WsC2LHq7/xrQ==} @@ -6242,7 +6197,7 @@ packages: graceful-fs: 4.2.11 jsonfile: 4.0.0 universalify: 0.1.2 - dev: true + dev: false /fs-minipass@1.2.7: resolution: {integrity: sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==} @@ -6414,7 +6369,6 @@ packages: /get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - dev: true /get-intrinsic@1.2.2: resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} @@ -6461,7 +6415,7 @@ packages: fs-extra: 8.1.0 transitivePeerDependencies: - supports-color - dev: true + dev: false /get-value@2.0.6: resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} @@ -7342,7 +7296,7 @@ packages: debug: 4.3.4(supports-color@6.1.0) transitivePeerDependencies: - supports-color - dev: true + dev: false /http-proxy-middleware@0.19.1(debug@4.3.4)(supports-color@6.1.0): resolution: {integrity: sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==} @@ -7421,7 +7375,7 @@ packages: debug: 4.3.4(supports-color@6.1.0) transitivePeerDependencies: - supports-color - dev: true + dev: false /human-signals@1.1.1: resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} @@ -7482,6 +7436,7 @@ packages: /ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + dev: false /ignore-by-default@1.0.1: resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==} @@ -7520,7 +7475,6 @@ packages: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 - dev: true /import-local@2.0.0: resolution: {integrity: sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==} @@ -7621,7 +7575,6 @@ packages: /ip@2.0.0: resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} - dev: true /ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} @@ -7656,7 +7609,6 @@ packages: /is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - dev: true /is-binary-path@1.0.1: resolution: {integrity: sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==} @@ -7763,7 +7715,6 @@ packages: /is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - dev: true /is-generator-fn@2.1.0: resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} @@ -8595,7 +8546,6 @@ packages: /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - dev: true /js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} @@ -8697,7 +8647,6 @@ packages: /json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - dev: true /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} @@ -8929,7 +8878,6 @@ packages: /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - dev: true /load-json-file@1.1.0: resolution: {integrity: sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==} @@ -9333,7 +9281,6 @@ packages: /lru-cache@7.18.3: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} - dev: true /lru-cache@8.0.5: resolution: {integrity: sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==} @@ -9821,7 +9768,7 @@ packages: /mitt@3.0.1: resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} - dev: true + dev: false /mixin-deep@1.3.2: resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} @@ -9835,7 +9782,6 @@ packages: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} requiresBuild: true dev: false - optional: true /mkdirp@0.3.0: resolution: {integrity: sha512-OHsdUcVAQ6pOtg5JYWpCBo9W/GySVuwvP9hueRMW7UqshC0tbfzLv8wjySTPm3tfUZ/21CE9E1pJagOA91Pxew==} @@ -10060,7 +10006,7 @@ packages: /netmask@2.0.2: resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} engines: {node: '>= 0.4.0'} - dev: true + dev: false /next-tick@1.1.0: resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} @@ -10123,6 +10069,7 @@ packages: optional: true dependencies: whatwg-url: 5.0.0 + dev: false /node-forge@0.10.0: resolution: {integrity: sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==} @@ -10752,7 +10699,7 @@ packages: socks-proxy-agent: 8.0.2 transitivePeerDependencies: - supports-color - dev: true + dev: false /pac-resolver@7.0.0: resolution: {integrity: sha512-Fd9lT9vJbHYRACT8OhCbZBbxr6KRSawSovFpy8nDGshaK99S/EBhVIHp9+crhxrsZOuvLpgL1n23iyPg6Rl2hg==} @@ -10761,7 +10708,7 @@ packages: degenerator: 5.0.1 ip: 1.1.8 netmask: 2.0.2 - dev: true + dev: false /pako@1.0.11: resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} @@ -10785,7 +10732,6 @@ packages: engines: {node: '>=6'} dependencies: callsites: 3.1.0 - dev: true /parse-filepath@1.0.2: resolution: {integrity: sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==} @@ -10811,7 +10757,6 @@ packages: error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - dev: true /parse-node-version@1.0.1: resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} @@ -10917,7 +10862,7 @@ packages: /pend@1.2.0: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} - dev: true + dev: false /performance-now@2.1.0: resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} @@ -11172,7 +11117,6 @@ packages: /progress@2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} - dev: true /promise-inflight@1.0.1: resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} @@ -11206,8 +11150,8 @@ packages: forwarded: 0.2.0 ipaddr.js: 1.9.1 - /proxy-agent@6.4.0: - resolution: {integrity: sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==} + /proxy-agent@6.3.1: + resolution: {integrity: sha512-Rb5RVBy1iyqOtNl15Cw/llpeLH8bsb37gM1FUfKQ+Wck6xHlbAhWGUFiTRHtkjqGTA5pSHz6+0hrPW/oECihPQ==} engines: {node: '>= 14'} dependencies: agent-base: 7.1.0 @@ -11220,10 +11164,11 @@ packages: socks-proxy-agent: 8.0.2 transitivePeerDependencies: - supports-color - dev: true + dev: false /proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + dev: false /prr@1.0.1: resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} @@ -11278,39 +11223,39 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - /puppeteer-core@22.4.0: - resolution: {integrity: sha512-MZttAbttrxi6O/B//rY6zQihjFe/vXeCLb5YvKH2xG6yrcVESo0Hc5/Cv49omwZyZzAJ1BK8BnDeatDsj+3hMw==} - engines: {node: '>=18'} + /puppeteer-core@21.11.0: + resolution: {integrity: sha512-ArbnyA3U5SGHokEvkfWjW+O8hOxV1RSJxOgriX/3A4xZRqixt9ZFHD0yPgZQF05Qj0oAqi8H/7stDorjoHY90Q==} + engines: {node: '>=16.13.2'} dependencies: - '@puppeteer/browsers': 2.1.0 - chromium-bidi: 0.5.12(devtools-protocol@0.0.1249869) + '@puppeteer/browsers': 1.9.1 + chromium-bidi: 0.5.8(devtools-protocol@0.0.1232444) cross-fetch: 4.0.0 debug: 4.3.4(supports-color@6.1.0) - devtools-protocol: 0.0.1249869 + devtools-protocol: 0.0.1232444 ws: 8.16.0 transitivePeerDependencies: - bufferutil - encoding - supports-color - utf-8-validate - dev: true + dev: false - /puppeteer@22.4.0: - resolution: {integrity: sha512-tR+JsDbA2qD1DqRX4F9k9SxQhk6UzcaCN+Qux7+WrDceS7wcR7tlFmMNB8+g8zE4Fmr/iRTOtf5wNnTW9cGUFQ==} - engines: {node: '>=18'} + /puppeteer@21.11.0: + resolution: {integrity: sha512-9jTHuYe22TD3sNxy0nEIzC7ZrlRnDgeX3xPkbS7PnbdwYjl2o/z/YuCrRBwezdKpbTDTJ4VqIggzNyeRcKq3cg==} + engines: {node: '>=16.13.2'} hasBin: true requiresBuild: true dependencies: - '@puppeteer/browsers': 2.1.0 + '@puppeteer/browsers': 1.9.1 cosmiconfig: 9.0.0 - puppeteer-core: 22.4.0 + puppeteer-core: 21.11.0 transitivePeerDependencies: - bufferutil - encoding - supports-color - typescript - utf-8-validate - dev: true + dev: false /qs@6.11.0: resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} @@ -11345,7 +11290,7 @@ packages: /queue-tick@1.0.1: resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} requiresBuild: true - dev: true + dev: false /quick-lru@4.0.1: resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} @@ -11732,7 +11677,6 @@ packages: /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} - dev: true /require-from-string@2.0.2: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} @@ -11785,7 +11729,6 @@ packages: /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} - dev: true /resolve-from@5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} @@ -12289,7 +12232,6 @@ packages: /smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - dev: true /smbhash@0.0.1: resolution: {integrity: sha512-ljrKSV3nUvsax+5HHo4Q4O8GNi2Bni7ZRAaVh9bPVxP1UKRXtR/kLhmHY4onVglKkfY0C/J+zljhn1Q6k16zgQ==} @@ -12393,7 +12335,7 @@ packages: socks: 2.7.1 transitivePeerDependencies: - supports-color - dev: true + dev: false /socks@2.7.1: resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==} @@ -12401,7 +12343,6 @@ packages: dependencies: ip: 2.0.0 smart-buffer: 4.2.0 - dev: true /source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} @@ -12659,7 +12600,7 @@ packages: dependencies: fast-fifo: 1.3.2 queue-tick: 1.0.1 - dev: true + dev: false /string-length@4.0.2: resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} @@ -12694,7 +12635,6 @@ packages: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - dev: true /string-width@5.1.2: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} @@ -12744,7 +12684,6 @@ packages: engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 - dev: true /strip-ansi@7.1.0: resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} @@ -12950,7 +12889,6 @@ packages: engines: {node: '>=4'} dependencies: has-flag: 3.0.0 - dev: true /supports-color@6.1.0: resolution: {integrity: sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==} @@ -13058,15 +12996,13 @@ packages: dev: false optional: true - /tar-fs@3.0.5: - resolution: {integrity: sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==} + /tar-fs@3.0.4: + resolution: {integrity: sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==} dependencies: + mkdirp-classic: 0.5.3 pump: 3.0.0 tar-stream: 3.1.7 - optionalDependencies: - bare-fs: 2.2.1 - bare-path: 2.1.0 - dev: true + dev: false /tar-stream@1.6.2: resolution: {integrity: sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==} @@ -13100,7 +13036,7 @@ packages: b4a: 1.6.4 fast-fifo: 1.3.2 streamx: 2.15.6 - dev: true + dev: false /tar@4.4.19: resolution: {integrity: sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==} @@ -13347,6 +13283,7 @@ packages: /tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + dev: false /tr46@2.1.0: resolution: {integrity: sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==} @@ -13409,7 +13346,6 @@ packages: /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - dev: true /tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} @@ -13508,7 +13444,7 @@ packages: dependencies: buffer: 5.7.1 through: 2.3.8 - dev: true + dev: false /unc-path-regex@0.1.2: resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==} @@ -13719,7 +13655,7 @@ packages: /urlpattern-polyfill@10.0.0: resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==} - dev: true + dev: false /use@3.1.1: resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} @@ -13946,6 +13882,7 @@ packages: /webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + dev: false /webidl-conversions@5.0.0: resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==} @@ -14150,6 +14087,7 @@ packages: dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 + dev: false /whatwg-url@8.7.0: resolution: {integrity: sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==} @@ -14247,7 +14185,6 @@ packages: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - dev: true /wrap-ansi@8.1.0: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} @@ -14315,7 +14252,7 @@ packages: optional: true utf-8-validate: optional: true - dev: true + dev: false /x-xss-protection@1.3.0: resolution: {integrity: sha512-kpyBI9TlVipZO4diReZMAHWtS0MMa/7Kgx8hwG/EuZLiA6sg4Ah/4TRdASHhRRN3boobzcYgFRUFSgHRge6Qhg==} @@ -14398,7 +14335,6 @@ packages: /y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} - dev: true /yallist@2.1.2: resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} @@ -14447,7 +14383,6 @@ packages: /yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} - dev: true /yargs-parser@5.0.1: resolution: {integrity: sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==} @@ -14499,7 +14434,6 @@ packages: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 - dev: true /yargs@7.1.2: resolution: {integrity: sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==} @@ -14524,4 +14458,4 @@ packages: dependencies: buffer-crc32: 0.2.13 fd-slicer: 1.1.0 - dev: true + dev: false From 237ffd60d0d7d8ee593b5fb3dbb08d208dd65f2c Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 6 Mar 2024 07:51:58 +0100 Subject: [PATCH 134/173] fix: try to fix puppeteer --- Jenkinsfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Jenkinsfile b/Jenkinsfile index 821316c87..6ce3ab773 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -79,6 +79,7 @@ pipeline { } steps { sh 'pnpm install --prefer-offline --prefix=print' + sh 'pnpx puppeteer browsers install chrome --prefix=print`' } } stage('Front') { From 362722dd46cd950527912521a683e541040437a1 Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 6 Mar 2024 07:52:42 +0100 Subject: [PATCH 135/173] fix: try to fix puppeteer --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 6ce3ab773..5593ea5a0 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -79,7 +79,7 @@ pipeline { } steps { sh 'pnpm install --prefer-offline --prefix=print' - sh 'pnpx puppeteer browsers install chrome --prefix=print`' + sh 'pnpx puppeteer browsers install chrome --prefix=print' } } stage('Front') { From 6bdce1cc5daabadcbf1ea138c42afea069fdf199 Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 6 Mar 2024 07:55:38 +0100 Subject: [PATCH 136/173] fix: try to fix puppeteer --- print/package.json | 1 + print/pnpm-lock.yaml | 135 ++++++++++++++++++++++++++++++------------- 2 files changed, 95 insertions(+), 41 deletions(-) diff --git a/print/package.json b/print/package.json index 8a01312b0..2adb7f1e0 100755 --- a/print/package.json +++ b/print/package.json @@ -22,6 +22,7 @@ "log4js": "^6.7.0", "mysql2": "^1.7.0", "nodemailer": "^4.7.0", + "puppeteer": "^22.4.0", "puppeteer-cluster": "^0.23.0", "qrcode": "^1.4.2", "strftime": "^0.10.0", diff --git a/print/pnpm-lock.yaml b/print/pnpm-lock.yaml index ddf00f08d..185dd89de 100644 --- a/print/pnpm-lock.yaml +++ b/print/pnpm-lock.yaml @@ -32,9 +32,12 @@ dependencies: nodemailer: specifier: ^4.7.0 version: 4.7.0 + puppeteer: + specifier: ^22.4.0 + version: 22.4.0 puppeteer-cluster: specifier: ^0.23.0 - version: 0.23.0(puppeteer@21.10.0) + version: 0.23.0(puppeteer@22.4.0) qrcode: specifier: ^1.4.2 version: 1.5.3 @@ -100,16 +103,17 @@ packages: to-fast-properties: 2.0.0 dev: false - /@puppeteer/browsers@1.9.1: - resolution: {integrity: sha512-PuvK6xZzGhKPvlx3fpfdM2kYY3P/hB1URtK8wA7XUJ6prn6pp22zvJHu48th0SGcHL9SutbPHrFuQgfXTFobWA==} - engines: {node: '>=16.3.0'} + /@puppeteer/browsers@2.1.0: + resolution: {integrity: sha512-xloWvocjvryHdUjDam/ZuGMh7zn4Sn3ZAaV4Ah2e2EwEt90N3XphZlSsU3n0VDc1F7kggCjMuH0UuxfPQ5mD9w==} + engines: {node: '>=18'} hasBin: true dependencies: debug: 4.3.4 extract-zip: 2.0.1 progress: 2.0.3 - proxy-agent: 6.3.1 - tar-fs: 3.0.4 + proxy-agent: 6.4.0 + semver: 7.6.0 + tar-fs: 3.0.5 unbzip2-stream: 1.4.3 yargs: 17.7.2 transitivePeerDependencies: @@ -243,6 +247,37 @@ packages: resolution: {integrity: sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==} dev: false + /bare-events@2.2.1: + resolution: {integrity: sha512-9GYPpsPFvrWBkelIhOhTWtkeZxVxZOdb3VnFTCzlOo3OjvmTvzLoZFUT8kNFACx0vJej6QPney1Cf9BvzCNE/A==} + requiresBuild: true + dev: false + optional: true + + /bare-fs@2.2.1: + resolution: {integrity: sha512-+CjmZANQDFZWy4PGbVdmALIwmt33aJg8qTkVjClU6X4WmZkTPBDxRHiBn7fpqEWEfF3AC2io++erpViAIQbSjg==} + requiresBuild: true + dependencies: + bare-events: 2.2.1 + bare-os: 2.2.0 + bare-path: 2.1.0 + streamx: 2.15.6 + dev: false + optional: true + + /bare-os@2.2.0: + resolution: {integrity: sha512-hD0rOPfYWOMpVirTACt4/nK8mC55La12K5fY1ij8HAdfQakD62M+H4o4tpfKzVGLgRDTuk3vjA4GqGXXCeFbag==} + requiresBuild: true + dev: false + optional: true + + /bare-path@2.1.0: + resolution: {integrity: sha512-DIIg7ts8bdRKwJRJrUMy/PICEaQZaPGZ26lsSx9MJSwIhSrcdHn7/C8W+XmnG/rKi6BaRcz+JO00CjZteybDtw==} + requiresBuild: true + dependencies: + bare-os: 2.2.0 + dev: false + optional: true + /base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} dev: false @@ -326,12 +361,12 @@ packages: lodash.some: 4.6.0 dev: false - /chromium-bidi@0.5.6(devtools-protocol@0.0.1232444): - resolution: {integrity: sha512-ber8smgoAs4EqSUHRb0I8fpx371ZmvsdQav8HRM9oO4fk5Ox16vQiNYXlsZkRj4FfvVL2dCef+zBFQixp+79CA==} + /chromium-bidi@0.5.12(devtools-protocol@0.0.1249869): + resolution: {integrity: sha512-sZMgEBWKbupD0Q7lyFu8AWkrE+rs5ycE12jFkGwIgD/VS8lDPtelPlXM7LYaq4zrkZ/O2L3f4afHUHL0ICdKog==} peerDependencies: devtools-protocol: '*' dependencies: - devtools-protocol: 0.0.1232444 + devtools-protocol: 0.0.1249869 mitt: 3.0.1 urlpattern-polyfill: 10.0.0 dev: false @@ -545,8 +580,8 @@ packages: resolution: {integrity: sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==} dev: false - /devtools-protocol@0.0.1232444: - resolution: {integrity: sha512-pM27vqEfxSxRkTMnF+XCmxSEb6duO5R+t8A9DEEJgy4Wz2RVanje2mmj99B6A3zv2r/qGfYlOvYznUhuokizmg==} + /devtools-protocol@0.0.1249869: + resolution: {integrity: sha512-Ctp4hInA0BEavlUoRy9mhGq0i+JSo/AwVyX2EFgZmV1kYB+Zq+EMBAn52QWu6FbRr10hRb6pBl420upbp4++vg==} dev: false /dijkstrajs@1.0.3: @@ -968,8 +1003,8 @@ packages: statuses: 1.3.1 dev: false - /http-proxy-agent@7.0.0: - resolution: {integrity: sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==} + /http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} dependencies: agent-base: 7.1.0 @@ -987,8 +1022,8 @@ packages: sshpk: 1.18.0 dev: false - /https-proxy-agent@7.0.2: - resolution: {integrity: sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==} + /https-proxy-agent@7.0.4: + resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} engines: {node: '>= 14'} dependencies: agent-base: 7.1.0 @@ -1258,6 +1293,13 @@ packages: yallist: 3.1.1 dev: false + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: false + /lru-cache@7.18.3: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} @@ -1308,10 +1350,6 @@ packages: resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} dev: false - /mkdirp-classic@0.5.3: - resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} - dev: false - /ms@0.7.1: resolution: {integrity: sha512-lRLiIR9fSNpnP6TC4v8+4OU7oStC01esuNowdQ34L+Gk8e5Puoc88IqJ+XAY/B3Mn2ZKis8l8HX90oU8ivzUHg==} dev: false @@ -1432,8 +1470,8 @@ packages: agent-base: 7.1.0 debug: 4.3.4 get-uri: 6.0.2 - http-proxy-agent: 7.0.0 - https-proxy-agent: 7.0.2 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.4 pac-resolver: 7.0.0 socks-proxy-agent: 8.0.2 transitivePeerDependencies: @@ -1536,14 +1574,14 @@ packages: ipaddr.js: 1.4.0 dev: false - /proxy-agent@6.3.1: - resolution: {integrity: sha512-Rb5RVBy1iyqOtNl15Cw/llpeLH8bsb37gM1FUfKQ+Wck6xHlbAhWGUFiTRHtkjqGTA5pSHz6+0hrPW/oECihPQ==} + /proxy-agent@6.4.0: + resolution: {integrity: sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==} engines: {node: '>= 14'} dependencies: agent-base: 7.1.0 debug: 4.3.4 - http-proxy-agent: 7.0.0 - https-proxy-agent: 7.0.2 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.4 lru-cache: 7.18.3 pac-proxy-agent: 7.0.1 proxy-from-env: 1.1.0 @@ -1572,26 +1610,26 @@ packages: engines: {node: '>=6'} dev: false - /puppeteer-cluster@0.23.0(puppeteer@21.10.0): + /puppeteer-cluster@0.23.0(puppeteer@22.4.0): resolution: {integrity: sha512-108terIWDzPrQopmoYSPd5yDoy3FGJ2dNnoGMkGYPs6xtkdhgaECwpfZkzaRToMQPZibUOz0/dSSGgPEdXEhkQ==} peerDependencies: puppeteer: '>=1.5.0' dependencies: debug: 4.3.4 - puppeteer: 21.10.0 + puppeteer: 22.4.0 transitivePeerDependencies: - supports-color dev: false - /puppeteer-core@21.10.0: - resolution: {integrity: sha512-NVaqO3K462qwMuLO4Gurs/Mau1Wss+08QgNYzF0dIqZWMvpskrt/TbxbmHU+7zMTUOvPEq/lR4BLJmjMBgBGfQ==} - engines: {node: '>=16.13.2'} + /puppeteer-core@22.4.0: + resolution: {integrity: sha512-MZttAbttrxi6O/B//rY6zQihjFe/vXeCLb5YvKH2xG6yrcVESo0Hc5/Cv49omwZyZzAJ1BK8BnDeatDsj+3hMw==} + engines: {node: '>=18'} dependencies: - '@puppeteer/browsers': 1.9.1 - chromium-bidi: 0.5.6(devtools-protocol@0.0.1232444) + '@puppeteer/browsers': 2.1.0 + chromium-bidi: 0.5.12(devtools-protocol@0.0.1249869) cross-fetch: 4.0.0 debug: 4.3.4 - devtools-protocol: 0.0.1232444 + devtools-protocol: 0.0.1249869 ws: 8.16.0 transitivePeerDependencies: - bufferutil @@ -1600,15 +1638,15 @@ packages: - utf-8-validate dev: false - /puppeteer@21.10.0: - resolution: {integrity: sha512-Y1yQjcLE00hHTDAmv3M3A6hhW0Ytjdp6xr6nyjl7FZ7E7hzp/6Rsw80FbaTJzJHFCplBNi082wrgynbmD7RlYw==} - engines: {node: '>=16.13.2'} + /puppeteer@22.4.0: + resolution: {integrity: sha512-tR+JsDbA2qD1DqRX4F9k9SxQhk6UzcaCN+Qux7+WrDceS7wcR7tlFmMNB8+g8zE4Fmr/iRTOtf5wNnTW9cGUFQ==} + engines: {node: '>=18'} hasBin: true requiresBuild: true dependencies: - '@puppeteer/browsers': 1.9.1 + '@puppeteer/browsers': 2.1.0 cosmiconfig: 9.0.0 - puppeteer-core: 21.10.0 + puppeteer-core: 22.4.0 transitivePeerDependencies: - bufferutil - encoding @@ -1640,6 +1678,7 @@ packages: /queue-tick@1.0.1: resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} + requiresBuild: true dev: false /randombytes@2.1.0: @@ -1729,6 +1768,14 @@ packages: hasBin: true dev: false + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: false + /send@0.14.1: resolution: {integrity: sha512-1Ru269QpUVUgD32Y9jdyBXiX+pHYuYnTzR17w+DhyOWvGMPjJILrnLhl9c4LQjtIy2BSAa6Ykq0ZdGcAjaXlwQ==} engines: {node: '>= 0.8.0'} @@ -1950,12 +1997,14 @@ packages: engines: {node: '>= 0.4'} dev: false - /tar-fs@3.0.4: - resolution: {integrity: sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==} + /tar-fs@3.0.5: + resolution: {integrity: sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==} dependencies: - mkdirp-classic: 0.5.3 pump: 3.0.0 tar-stream: 3.1.7 + optionalDependencies: + bare-fs: 2.2.1 + bare-path: 2.1.0 dev: false /tar-stream@3.1.7: @@ -2200,6 +2249,10 @@ packages: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} dev: false + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: false + /yargs-parser@18.1.3: resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} engines: {node: '>=6'} From 40cf16cd0ac0df1438803c43941fdfc72aadc626 Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 6 Mar 2024 07:57:47 +0100 Subject: [PATCH 137/173] fix: try to fix puppeteer --- Jenkinsfile | 1 - 1 file changed, 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 5593ea5a0..821316c87 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -79,7 +79,6 @@ pipeline { } steps { sh 'pnpm install --prefer-offline --prefix=print' - sh 'pnpx puppeteer browsers install chrome --prefix=print' } } stage('Front') { From 322042086ed4cf03adfc4bb24c55110480196a64 Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 6 Mar 2024 08:01:23 +0100 Subject: [PATCH 138/173] fix: try to fix puppeteer --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5ddec39b3..d7dea767e 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "mysql": "2.18.1", "node-ssh": "^11.0.0", "object.pick": "^1.3.0", - "puppeteer": "21.11.0", + "puppeteer": "^21.11.0", "read-chunk": "^3.2.0", "require-yaml": "0.0.1", "smbhash": "0.0.1", From 51829f32ed020bc211e3087c8a4c30714f6eb8a6 Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 6 Mar 2024 08:02:22 +0100 Subject: [PATCH 139/173] fix: try to fix puppeteer --- pnpm-lock.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ff83364e8..ed52fd588 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -93,7 +93,7 @@ dependencies: specifier: ^1.3.0 version: 1.3.0 puppeteer: - specifier: 21.11.0 + specifier: ^21.11.0 version: 21.11.0 read-chunk: specifier: ^3.2.0 From 564a48dd92cc1e87a14414f98398204323f151fc Mon Sep 17 00:00:00 2001 From: robert Date: Wed, 6 Mar 2024 11:36:18 +0100 Subject: [PATCH 140/173] feat: cambios pnpm-lock --- pnpm-lock.yaml | 2243 ++++++++++++++++++++++++------------------------ 1 file changed, 1106 insertions(+), 1137 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ed52fd588..8042a4d4b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,7 +13,7 @@ dependencies: version: 3.0.1 body-parser: specifier: ^1.19.2 - version: 1.19.2 + version: 1.20.2(supports-color@6.1.0) compression: specifier: ^1.7.3 version: 1.7.4(supports-color@6.1.0) @@ -120,16 +120,16 @@ dependencies: devDependencies: '@babel/core': specifier: ^7.7.7 - version: 7.23.9 + version: 7.24.0 '@babel/plugin-syntax-dynamic-import': specifier: ^7.7.4 - version: 7.8.3(@babel/core@7.23.9) + version: 7.8.3(@babel/core@7.24.0) '@babel/preset-env': specifier: ^7.11.0 - version: 7.23.9(@babel/core@7.23.9) + version: 7.24.0(@babel/core@7.24.0) '@babel/register': specifier: ^7.7.7 - version: 7.23.7(@babel/core@7.23.9) + version: 7.23.7(@babel/core@7.24.0) '@verdnatura/myt': specifier: ^1.6.8 version: 1.6.8 @@ -138,16 +138,16 @@ devDependencies: version: 1.8.3 babel-jest: specifier: ^26.0.1 - version: 26.6.3(@babel/core@7.23.9) + version: 26.6.3(@babel/core@7.24.0) babel-loader: specifier: ^8.2.4 - version: 8.3.0(@babel/core@7.23.9)(webpack@5.90.1) + version: 8.3.0(@babel/core@7.24.0)(webpack@5.90.3) core-js: specifier: ^3.30.1 - version: 3.35.1 + version: 3.36.0 css-loader: specifier: ^6.7.4 - version: 6.10.0(webpack@5.90.1) + version: 6.10.0(webpack@5.90.3) del: specifier: ^2.2.2 version: 2.2.2 @@ -165,7 +165,7 @@ devDependencies: version: 1.3.3 file-loader: specifier: ^6.2.0 - version: 6.2.0(webpack@5.90.1) + version: 6.2.0(webpack@5.90.3) getopts: specifier: ^2.3.0 version: 2.3.0 @@ -207,13 +207,13 @@ devDependencies: version: 0.2.1 html-webpack-plugin: specifier: ^5.5.1 - version: 5.6.0(webpack@5.90.1) + version: 5.6.0(webpack@5.90.3) identity-obj-proxy: specifier: ^3.0.0 version: 3.0.0 jasmine: specifier: ^5.0.2 - version: 5.0.2 + version: 5.1.0 jasmine-reporters: specifier: ^2.4.0 version: 2.5.2 @@ -246,28 +246,28 @@ devDependencies: version: 1.0.1 raw-loader: specifier: ^4.0.2 - version: 4.0.2(webpack@5.90.1) + version: 4.0.2(webpack@5.90.3) regenerator-runtime: specifier: ^0.13.7 version: 0.13.11 sass: specifier: ^1.62.1 - version: 1.70.0 + version: 1.71.1 sass-loader: specifier: ^13.3.0 - version: 13.3.3(node-sass@9.0.0)(sass@1.70.0)(webpack@5.90.1) + version: 13.3.3(node-sass@9.0.0)(sass@1.71.1)(webpack@5.90.3) style-loader: specifier: ^3.3.3 - version: 3.3.4(webpack@5.90.1) + version: 3.3.4(webpack@5.90.3) webpack: specifier: ^5.83.1 - version: 5.90.1(webpack-cli@5.1.4) + version: 5.90.3(webpack-cli@5.1.4) webpack-cli: specifier: ^5.1.1 - version: 5.1.4(webpack-dev-server@3.11.3)(webpack@5.90.1) + version: 5.1.4(webpack-dev-server@3.11.3)(webpack@5.90.3) webpack-dev-server: specifier: ^3.11.0 - version: 3.11.3(webpack-cli@5.1.4)(webpack@5.90.1) + version: 3.11.3(webpack-cli@5.1.4)(webpack@5.90.3) webpack-merge: specifier: ^4.2.2 version: 4.2.2 @@ -282,12 +282,12 @@ packages: engines: {node: '>=0.10.0'} dev: true - /@ampproject/remapping@2.2.1: - resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} + /@ampproject/remapping@2.3.0: + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.22 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 dev: true /@babel/code-frame@7.12.11: @@ -308,20 +308,20 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/core@7.23.9: - resolution: {integrity: sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==} + /@babel/core@7.24.0: + resolution: {integrity: sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==} engines: {node: '>=6.9.0'} dependencies: - '@ampproject/remapping': 2.2.1 + '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.23.5 '@babel/generator': 7.23.6 '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) - '@babel/helpers': 7.23.9 - '@babel/parser': 7.23.9 - '@babel/template': 7.23.9 - '@babel/traverse': 7.23.9 - '@babel/types': 7.23.9 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) + '@babel/helpers': 7.24.0 + '@babel/parser': 7.24.0 + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.0 + '@babel/types': 7.24.0 convert-source-map: 2.0.0 debug: 4.3.4(supports-color@6.1.0) gensync: 1.0.0-beta.2 @@ -335,9 +335,9 @@ packages: resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.9 - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.22 + '@babel/types': 7.24.0 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 dev: true @@ -345,14 +345,14 @@ packages: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.9 + '@babel/types': 7.24.0 dev: true /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.9 + '@babel/types': 7.24.0 dev: true /@babel/helper-compilation-targets@7.23.6: @@ -361,49 +361,49 @@ packages: dependencies: '@babel/compat-data': 7.23.5 '@babel/helper-validator-option': 7.23.5 - browserslist: 4.22.3 + browserslist: 4.23.0 lru-cache: 5.1.1 semver: 6.3.1 dev: true - /@babel/helper-create-class-features-plugin@7.23.10(@babel/core@7.23.9): - resolution: {integrity: sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw==} + /@babel/helper-create-class-features-plugin@7.24.0(@babel/core@7.24.0): + resolution: {integrity: sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.0 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.9) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.0) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 dev: true - /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.9): + /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.0): resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.0 '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 dev: true - /@babel/helper-define-polyfill-provider@0.5.0(@babel/core@7.23.9): + /@babel/helper-define-polyfill-provider@0.5.0(@babel/core@7.24.0): resolution: {integrity: sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.0 '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-plugin-utils': 7.24.0 debug: 4.3.4(supports-color@6.1.0) lodash.debounce: 4.0.8 resolve: 1.22.8 @@ -420,38 +420,38 @@ packages: resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.23.9 - '@babel/types': 7.23.9 + '@babel/template': 7.24.0 + '@babel/types': 7.24.0 dev: true /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.9 + '@babel/types': 7.24.0 dev: true /@babel/helper-member-expression-to-functions@7.23.0: resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.9 + '@babel/types': 7.24.0 dev: true /@babel/helper-module-imports@7.22.15: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.9 + '@babel/types': 7.24.0 dev: true - /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.9): + /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.0 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 @@ -463,33 +463,33 @@ packages: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.9 + '@babel/types': 7.24.0 dev: true - /@babel/helper-plugin-utils@7.22.5: - resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} + /@babel/helper-plugin-utils@7.24.0: + resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.9): + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.0): resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.0 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-wrap-function': 7.22.20 dev: true - /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.9): + /@babel/helper-replace-supers@7.22.20(@babel/core@7.24.0): resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.0 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 @@ -499,21 +499,21 @@ packages: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.9 + '@babel/types': 7.24.0 dev: true /@babel/helper-skip-transparent-expression-wrappers@7.22.5: resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.9 + '@babel/types': 7.24.0 dev: true /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.9 + '@babel/types': 7.24.0 dev: true /@babel/helper-string-parser@7.23.4: @@ -535,17 +535,17 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/helper-function-name': 7.23.0 - '@babel/template': 7.23.9 - '@babel/types': 7.23.9 + '@babel/template': 7.24.0 + '@babel/types': 7.24.0 dev: true - /@babel/helpers@7.23.9: - resolution: {integrity: sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==} + /@babel/helpers@7.24.0: + resolution: {integrity: sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.23.9 - '@babel/traverse': 7.23.9 - '@babel/types': 7.23.9 + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.0 + '@babel/types': 7.24.0 transitivePeerDependencies: - supports-color dev: true @@ -558,875 +558,875 @@ packages: chalk: 2.4.2 js-tokens: 4.0.0 - /@babel/parser@7.23.9: - resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==} + /@babel/parser@7.24.0: + resolution: {integrity: sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.23.9 + '@babel/types': 7.24.0 dev: true - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.9): + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.9): + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.24.0) dev: true - /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7(@babel/core@7.23.9): + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7(@babel/core@7.24.0): resolution: {integrity: sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.0 '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.9): + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.0): resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.0 dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.9): + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.0): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.9): + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.0): resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.9): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.0): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.9): + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.0): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.9): + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.0): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.9): + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.0): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.9): + /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.9): + /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.9): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.0): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.9): + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.0): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.9): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.0): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.9): + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.0): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.9): + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.0): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.9): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.0): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.9): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.0): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.9): + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.0): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.9): + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.0): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.9): + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.0): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.9): + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.0): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.9): + /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-async-generator-functions@7.23.9(@babel/core@7.23.9): + /@babel/plugin-transform-async-generator-functions@7.23.9(@babel/core@7.24.0): resolution: {integrity: sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.0 '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.9) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.0) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.0) dev: true - /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.9): + /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.0 '@babel/helper-module-imports': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.0) dev: true - /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.9): + /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.9): + /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.24.0): resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.9): + /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.9): + /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.24.0): resolution: {integrity: sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.9) + '@babel/core': 7.24.0 + '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.0) dev: true - /@babel/plugin-transform-classes@7.23.8(@babel/core@7.23.9): + /@babel/plugin-transform-classes@7.23.8(@babel/core@7.24.0): resolution: {integrity: sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.0 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.0) '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 dev: true - /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.9): + /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/template': 7.23.9 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/template': 7.24.0 dev: true - /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.9): + /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.9): + /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.9): + /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.9): + /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.24.0): resolution: {integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.9) + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.0) dev: true - /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.9): + /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.0 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.9): + /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.24.0): resolution: {integrity: sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.9) + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.0) dev: true - /@babel/plugin-transform-for-of@7.23.6(@babel/core@7.23.9): + /@babel/plugin-transform-for-of@7.23.6(@babel/core@7.24.0): resolution: {integrity: sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.9): + /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.0 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.9): + /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.24.0): resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.9) + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.0) dev: true - /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.9): + /@babel/plugin-transform-literals@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.9): + /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.24.0): resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.9) + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.0) dev: true - /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.9): + /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.9): + /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.9): + /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-simple-access': 7.22.5 dev: true - /@babel/plugin-transform-modules-systemjs@7.23.9(@babel/core@7.23.9): + /@babel/plugin-transform-modules-systemjs@7.23.9(@babel/core@7.24.0): resolution: {integrity: sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.0 '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-validator-identifier': 7.22.20 dev: true - /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.9): + /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.9): + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.0): resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.9): + /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.9): + /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.24.0): resolution: {integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.9) + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.0) dev: true - /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.9): + /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.24.0): resolution: {integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.9) + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.0) dev: true - /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.9): - resolution: {integrity: sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==} + /@babel/plugin-transform-object-rest-spread@7.24.0(@babel/core@7.24.0): + resolution: {integrity: sha512-y/yKMm7buHpFFXfxVFS4Vk1ToRJDilIa6fKRioB9Vjichv58TDGXTvqV0dN7plobAmTW5eSEGXDngE+Mm+uO+w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.9 + '@babel/core': 7.24.0 '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.24.0) dev: true - /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.9): + /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.9) + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.0) dev: true - /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.9): + /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.24.0): resolution: {integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.9) + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.0) dev: true - /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.9): + /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.24.0): resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.0) dev: true - /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.9): + /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.9): + /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.9): + /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.24.0): resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.0 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.9) + '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.0) dev: true - /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.9): + /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.9): + /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 regenerator-transform: 0.15.2 dev: true - /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.9): + /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.9): + /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.9): + /@babel/plugin-transform-spread@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.9): + /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.9): + /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.9): + /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.9): + /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.9): + /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.9): + /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.9): + /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/preset-env@7.23.9(@babel/core@7.23.9): - resolution: {integrity: sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==} + /@babel/preset-env@7.24.0(@babel/core@7.24.0): + resolution: {integrity: sha512-ZxPEzV9IgvGn73iK0E6VB9/95Nd7aMFpbE0l8KQFDG70cOV9IxRP7Y2FUPmlK0v6ImlLqYX50iuZ3ZTVhOF2lA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.9 + '@babel/core': 7.24.0 '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.7(@babel/core@7.23.9) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.9) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.9) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.9) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.9) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.9) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.9) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.9) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.9) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.9) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.9) - '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-async-generator-functions': 7.23.9(@babel/core@7.23.9) - '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-classes': 7.23.8(@babel/core@7.23.9) - '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.23.9) - '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-modules-systemjs': 7.23.9(@babel/core@7.23.9) - '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.9) - '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.9) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.9) - babel-plugin-polyfill-corejs2: 0.4.8(@babel/core@7.23.9) - babel-plugin-polyfill-corejs3: 0.9.0(@babel/core@7.23.9) - babel-plugin-polyfill-regenerator: 0.5.5(@babel/core@7.23.9) - core-js-compat: 3.35.1 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.7(@babel/core@7.24.0) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.0) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.0) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.0) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.0) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.0) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.0) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.0) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.0) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.0) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.0) + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-async-generator-functions': 7.23.9(@babel/core@7.24.0) + '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.24.0) + '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.24.0) + '@babel/plugin-transform-classes': 7.23.8(@babel/core@7.24.0) + '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.24.0) + '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.24.0) + '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.24.0) + '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.24.0) + '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.24.0) + '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-modules-systemjs': 7.23.9(@babel/core@7.24.0) + '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.24.0) + '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.24.0) + '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.24.0) + '@babel/plugin-transform-object-rest-spread': 7.24.0(@babel/core@7.24.0) + '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.24.0) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.24.0) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.24.0) + '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.24.0) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.0) + babel-plugin-polyfill-corejs2: 0.4.8(@babel/core@7.24.0) + babel-plugin-polyfill-corejs3: 0.9.0(@babel/core@7.24.0) + babel-plugin-polyfill-regenerator: 0.5.5(@babel/core@7.24.0) + core-js-compat: 3.36.0 semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.9): + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.0): resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/types': 7.23.9 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/types': 7.24.0 esutils: 2.0.3 dev: true - /@babel/register@7.23.7(@babel/core@7.23.9): + /@babel/register@7.23.7(@babel/core@7.24.0): resolution: {integrity: sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.0 clone-deep: 4.0.1 find-cache-dir: 2.1.0 make-dir: 2.1.0 @@ -1438,32 +1438,32 @@ packages: resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} dev: true - /@babel/runtime-corejs3@7.23.9: - resolution: {integrity: sha512-oeOFTrYWdWXCvXGB5orvMTJ6gCZ9I6FBjR+M38iKNXCsPxr4xT0RTdg5uz1H7QP8pp74IzPtwritEr+JscqHXQ==} + /@babel/runtime-corejs3@7.24.0: + resolution: {integrity: sha512-HxiRMOncx3ly6f3fcZ1GVKf+/EROcI9qwPgmij8Czqy6Okm/0T37T4y2ZIlLUuEUFjtM7NRsfdCO8Y3tAiJZew==} engines: {node: '>=6.9.0'} dependencies: - core-js-pure: 3.35.1 + core-js-pure: 3.36.0 regenerator-runtime: 0.14.1 dev: false - /@babel/runtime@7.23.9: - resolution: {integrity: sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==} + /@babel/runtime@7.24.0: + resolution: {integrity: sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.1 dev: true - /@babel/template@7.23.9: - resolution: {integrity: sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==} + /@babel/template@7.24.0: + resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.23.5 - '@babel/parser': 7.23.9 - '@babel/types': 7.23.9 + '@babel/parser': 7.24.0 + '@babel/types': 7.24.0 dev: true - /@babel/traverse@7.23.9: - resolution: {integrity: sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==} + /@babel/traverse@7.24.0: + resolution: {integrity: sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.23.5 @@ -1472,16 +1472,16 @@ packages: '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.9 - '@babel/types': 7.23.9 + '@babel/parser': 7.24.0 + '@babel/types': 7.24.0 debug: 4.3.4(supports-color@6.1.0) globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types@7.23.9: - resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==} + /@babel/types@7.24.0: + resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.23.4 @@ -1524,11 +1524,6 @@ packages: - supports-color dev: true - /@fastify/busboy@2.1.0: - resolution: {integrity: sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==} - engines: {node: '>=14'} - dev: false - /@gar/promisify@1.1.3: resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} dev: true @@ -1648,7 +1643,7 @@ packages: engines: {node: '>= 10.14.2'} dependencies: '@jest/types': 26.6.2 - '@types/node': 20.11.16 + '@types/node': 20.11.24 chalk: 4.1.2 jest-message-util: 26.6.2 jest-util: 26.6.2 @@ -1664,7 +1659,7 @@ packages: '@jest/test-result': 26.6.2 '@jest/transform': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 20.11.16 + '@types/node': 20.11.24 ansi-escapes: 4.3.2 chalk: 4.1.2 exit: 0.1.2 @@ -1701,7 +1696,7 @@ packages: dependencies: '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 20.11.16 + '@types/node': 20.11.24 jest-mock: 26.6.2 dev: true @@ -1711,7 +1706,7 @@ packages: dependencies: '@jest/types': 26.6.2 '@sinonjs/fake-timers': 6.0.1 - '@types/node': 20.11.16 + '@types/node': 20.11.24 jest-message-util: 26.6.2 jest-mock: 26.6.2 jest-util: 26.6.2 @@ -1744,7 +1739,7 @@ packages: istanbul-lib-instrument: 4.0.3 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.6 + istanbul-reports: 3.1.7 jest-haste-map: 26.6.2 jest-resolve: 26.6.2 jest-util: 26.6.2 @@ -1800,7 +1795,7 @@ packages: resolution: {integrity: sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==} engines: {node: '>= 10.14.2'} dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.0 '@jest/types': 26.6.2 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 @@ -1834,45 +1829,45 @@ packages: dependencies: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.11.16 + '@types/node': 20.11.24 '@types/yargs': 15.0.19 chalk: 4.1.2 dev: true - /@jridgewell/gen-mapping@0.3.3: - resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + /@jridgewell/gen-mapping@0.3.5: + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} dependencies: - '@jridgewell/set-array': 1.1.2 + '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.22 + '@jridgewell/trace-mapping': 0.3.25 dev: true - /@jridgewell/resolve-uri@3.1.1: - resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + /@jridgewell/resolve-uri@3.1.2: + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} dev: true - /@jridgewell/set-array@1.1.2: - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + /@jridgewell/set-array@1.2.1: + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} engines: {node: '>=6.0.0'} dev: true /@jridgewell/source-map@0.3.5: resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.22 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 dev: true /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} dev: true - /@jridgewell/trace-mapping@0.3.22: - resolution: {integrity: sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==} + /@jridgewell/trace-mapping@0.3.25: + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} dependencies: - '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 dev: true @@ -1952,24 +1947,24 @@ packages: resolution: {integrity: sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==} dev: true - /@swagger-api/apidom-ast@0.93.0: - resolution: {integrity: sha512-iGrhEXdlgFEQYX4bAootcX+FaeLXruoJnHCFTO6IQ7yKlml3QIl1G9l2KwTzHybHQ70u3nfgE3ovLGOiy8NM5g==} + /@swagger-api/apidom-ast@0.96.0: + resolution: {integrity: sha512-JaXro7IH2yPHomA/t6R1wj551GmKl/qjRkQ1729l7umssmubO2yprAbH8GEF5SqtTEicihXF2DlwgUMs/+YyNg==} dependencies: - '@babel/runtime-corejs3': 7.23.9 - '@swagger-api/apidom-error': 0.93.0 - '@types/ramda': 0.29.10 + '@babel/runtime-corejs3': 7.24.0 + '@swagger-api/apidom-error': 0.96.0 + '@types/ramda': 0.29.11 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) unraw: 3.0.0 dev: false - /@swagger-api/apidom-core@0.93.0: - resolution: {integrity: sha512-OxbLBcnJQ8seFmeKqM2KDMkLJox0YTEhnLq3DnCyvOXnzVHdau+wNIhYSUc1+ZzrjsWqJLU0ntS3LEPb7ttnGw==} + /@swagger-api/apidom-core@0.96.0: + resolution: {integrity: sha512-FOZqbH/2H5f7UiTvN2b7O5r0MCCUiICimhNVi5bbaf3ATWFDpL7AKtGFd3EmW8Er8ajpcxI13iZpoBFPtUtnsQ==} dependencies: - '@babel/runtime-corejs3': 7.23.9 - '@swagger-api/apidom-ast': 0.93.0 - '@swagger-api/apidom-error': 0.93.0 - '@types/ramda': 0.29.10 + '@babel/runtime-corejs3': 7.24.0 + '@swagger-api/apidom-ast': 0.96.0 + '@swagger-api/apidom-error': 0.96.0 + '@types/ramda': 0.29.11 minim: 0.23.8 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) @@ -1977,343 +1972,343 @@ packages: stampit: 4.3.2 dev: false - /@swagger-api/apidom-error@0.93.0: - resolution: {integrity: sha512-vJiG0IZS8lOhXn8ZPSsKMh0mun6lOB7m4I8Ju6XeWR0khB7dbp15PAtk6xiFjekbWDa7hPn9584hp0YqXb6p5Q==} + /@swagger-api/apidom-error@0.96.0: + resolution: {integrity: sha512-dDaGOUVx5pp/mm0c6Y5aBIXVMvVdL3jP6SnnPCGXq20AqkDNDyihJU28VsBrPjl05/tMV4IAHW26qQAMztvahA==} dependencies: - '@babel/runtime-corejs3': 7.23.9 + '@babel/runtime-corejs3': 7.24.0 dev: false - /@swagger-api/apidom-json-pointer@0.93.0: - resolution: {integrity: sha512-DnZb/xNKzgBtjKk+5KFMEp5olCeH1wEHbx1YaNY4DDRRtnafphtMxd5/xmapWKj7Glfjfswxi3Uo4m/FAasKPA==} + /@swagger-api/apidom-json-pointer@0.96.0: + resolution: {integrity: sha512-AesKhx3PhicgrIbal4X5MLgX5s/Lom50AlYy9r4sFAu8ke3H+IIvGoJ5so2X6UcJJ17CURiEks+oAEM2pMnBUA==} dependencies: - '@babel/runtime-corejs3': 7.23.9 - '@swagger-api/apidom-core': 0.93.0 - '@swagger-api/apidom-error': 0.93.0 - '@types/ramda': 0.29.10 + '@babel/runtime-corejs3': 7.24.0 + '@swagger-api/apidom-core': 0.96.0 + '@swagger-api/apidom-error': 0.96.0 + '@types/ramda': 0.29.11 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) dev: false - /@swagger-api/apidom-ns-api-design-systems@0.93.0: - resolution: {integrity: sha512-f3RcUBmZjqmADubnV+yslvtbOJGV3jeMpQuzM9ByS3ASVg+XU1YxKkH5em8BcW3SDj0lqDiQ2ggA9kfPLSuV8A==} + /@swagger-api/apidom-ns-api-design-systems@0.96.0: + resolution: {integrity: sha512-TTZAIiOAZz6NXtGiTQ/XIHE6VuRlqI25ehzM3GDXur+r74/rPmzGH9E0CEzfj+bprd2QXCrus50pqwyGMPJd9Q==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.23.9 - '@swagger-api/apidom-core': 0.93.0 - '@swagger-api/apidom-error': 0.93.0 - '@swagger-api/apidom-ns-openapi-3-1': 0.93.0 - '@types/ramda': 0.29.10 + '@babel/runtime-corejs3': 7.24.0 + '@swagger-api/apidom-core': 0.96.0 + '@swagger-api/apidom-error': 0.96.0 + '@swagger-api/apidom-ns-openapi-3-1': 0.96.0 + '@types/ramda': 0.29.11 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) - ts-mixer: 6.0.3 + ts-mixer: 6.0.4 dev: false optional: true - /@swagger-api/apidom-ns-asyncapi-2@0.93.0: - resolution: {integrity: sha512-cEAFsVo/CiPFlw9FAeu/9WR6WixQKxH50SHNvmy8OsCOgYcl5VHF06majZTFCrgZlpCNXPJh9m5A2pUoHtxxUw==} + /@swagger-api/apidom-ns-asyncapi-2@0.96.0: + resolution: {integrity: sha512-I+1Bc+U0U/yaYEBNmEe58tr/ca7HMJiN2DHXFKcuZrub27Anwp389LxrknkeMoeb1PBTcJqRis4fVXiQF06EJQ==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.23.9 - '@swagger-api/apidom-core': 0.93.0 - '@swagger-api/apidom-ns-json-schema-draft-7': 0.93.0 - '@types/ramda': 0.29.10 + '@babel/runtime-corejs3': 7.24.0 + '@swagger-api/apidom-core': 0.96.0 + '@swagger-api/apidom-ns-json-schema-draft-7': 0.96.0 + '@types/ramda': 0.29.11 + ramda: 0.29.1 + ramda-adjunct: 4.1.1(ramda@0.29.1) + ts-mixer: 6.0.4 + dev: false + optional: true + + /@swagger-api/apidom-ns-json-schema-draft-4@0.96.0: + resolution: {integrity: sha512-bEQI/u15L6NLF7IW3DHEstJW64f8DSYqDR4vHdgrJ/GyA/c+N4K1St1LhKfA+WuBs7DX3JNKNZ3APAkq5gqWTA==} + dependencies: + '@babel/runtime-corejs3': 7.24.0 + '@swagger-api/apidom-ast': 0.96.0 + '@swagger-api/apidom-core': 0.96.0 + '@types/ramda': 0.29.11 + ramda: 0.29.1 + ramda-adjunct: 4.1.1(ramda@0.29.1) + stampit: 4.3.2 + dev: false + + /@swagger-api/apidom-ns-json-schema-draft-6@0.96.0: + resolution: {integrity: sha512-F6AsqMQjQd9NlR8AJd3fpsV1nFPAGgsw9g7DyY8uhbj77wUfoYhQTiTexBnq4GlhbXref4SQjnGZvi6AWwV3vw==} + requiresBuild: true + dependencies: + '@babel/runtime-corejs3': 7.24.0 + '@swagger-api/apidom-core': 0.96.0 + '@swagger-api/apidom-error': 0.96.0 + '@swagger-api/apidom-ns-json-schema-draft-4': 0.96.0 + '@types/ramda': 0.29.11 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) stampit: 4.3.2 dev: false optional: true - /@swagger-api/apidom-ns-json-schema-draft-4@0.93.0: - resolution: {integrity: sha512-dBY7LHrWZ+ydsgD00fQtRq/wOAZjdUh2+PE7/Xe3tYPeD1tv3DZ4F1tcVQeiyGBskF7vReUxUwnQo4uPJipPzA==} - dependencies: - '@babel/runtime-corejs3': 7.23.9 - '@swagger-api/apidom-ast': 0.93.0 - '@swagger-api/apidom-core': 0.93.0 - '@types/ramda': 0.29.10 - ramda: 0.29.1 - ramda-adjunct: 4.1.1(ramda@0.29.1) - stampit: 4.3.2 - dev: false - - /@swagger-api/apidom-ns-json-schema-draft-6@0.93.0: - resolution: {integrity: sha512-u0e0Nq9nuuZyGoOCEjVQJKe5NdsIWezH+q8ev3dABlUNEiWMbtFLS9TvHFBeU11plCsyxjJyYRg8TjnI2Q8xzQ==} + /@swagger-api/apidom-ns-json-schema-draft-7@0.96.0: + resolution: {integrity: sha512-9yTNy4zDpoaTuCYsmliHh12ScyXgLyUuegXRVEE0ca0G0MqkVWIN5Si3EYnGIK5THGbz3c+NP1caHI8sl0+QMw==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.23.9 - '@swagger-api/apidom-core': 0.93.0 - '@swagger-api/apidom-error': 0.93.0 - '@swagger-api/apidom-ns-json-schema-draft-4': 0.93.0 - '@types/ramda': 0.29.10 + '@babel/runtime-corejs3': 7.24.0 + '@swagger-api/apidom-core': 0.96.0 + '@swagger-api/apidom-error': 0.96.0 + '@swagger-api/apidom-ns-json-schema-draft-6': 0.96.0 + '@types/ramda': 0.29.11 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) stampit: 4.3.2 dev: false optional: true - /@swagger-api/apidom-ns-json-schema-draft-7@0.93.0: - resolution: {integrity: sha512-NkHhyezG5ghx5FhclbIzCwo1wH4gmI8KwMnEuorsXJhanmnkl+JXzDSrpCM3Orvezl+4DEnBeMLyLfbnQMMknw==} + /@swagger-api/apidom-ns-openapi-2@0.96.0: + resolution: {integrity: sha512-Q85DT8OMkvP9cm8+CmHHZxBS1+uu/GJVZ0ypwW60aDysUkBNcbcEexCRvlGxF5QBr7sx2sQS+86qPusU4oMFmA==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.23.9 - '@swagger-api/apidom-core': 0.93.0 - '@swagger-api/apidom-error': 0.93.0 - '@swagger-api/apidom-ns-json-schema-draft-6': 0.93.0 - '@types/ramda': 0.29.10 + '@babel/runtime-corejs3': 7.24.0 + '@swagger-api/apidom-core': 0.96.0 + '@swagger-api/apidom-error': 0.96.0 + '@swagger-api/apidom-ns-json-schema-draft-4': 0.96.0 + '@types/ramda': 0.29.11 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) - stampit: 4.3.2 + ts-mixer: 6.0.4 dev: false optional: true - /@swagger-api/apidom-ns-openapi-2@0.93.0: - resolution: {integrity: sha512-sUZgGyuraLP7rarBp8CISdDLuO8n8L9Q+G8XMiYgl53HGRUY5a7HSGnybcQPpyNPQSNTFKigytSjvsSu8h33ZQ==} - requiresBuild: true + /@swagger-api/apidom-ns-openapi-3-0@0.96.0: + resolution: {integrity: sha512-xiO+u/VtKRNi/KD8rkqcezUXY6JxVcPEpEIiTWkjy6LwamNu01futS/bsn6CnTN5ZbGO+Ikm5GQyYtlruy5fTw==} dependencies: - '@babel/runtime-corejs3': 7.23.9 - '@swagger-api/apidom-core': 0.93.0 - '@swagger-api/apidom-error': 0.93.0 - '@swagger-api/apidom-ns-json-schema-draft-4': 0.93.0 - '@types/ramda': 0.29.10 + '@babel/runtime-corejs3': 7.24.0 + '@swagger-api/apidom-core': 0.96.0 + '@swagger-api/apidom-error': 0.96.0 + '@swagger-api/apidom-ns-json-schema-draft-4': 0.96.0 + '@types/ramda': 0.29.11 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) - stampit: 4.3.2 + ts-mixer: 6.0.4 + dev: false + + /@swagger-api/apidom-ns-openapi-3-1@0.96.0: + resolution: {integrity: sha512-B9fviQaokRZhds3+rSYMHYI8pen/MAShRbfRlQRLvDEXnOy+Fo7cV8lbBbaG35ldnLPG2rHl0LS0qhyJd8z3Eg==} + dependencies: + '@babel/runtime-corejs3': 7.24.0 + '@swagger-api/apidom-ast': 0.96.0 + '@swagger-api/apidom-core': 0.96.0 + '@swagger-api/apidom-ns-openapi-3-0': 0.96.0 + '@types/ramda': 0.29.11 + ramda: 0.29.1 + ramda-adjunct: 4.1.1(ramda@0.29.1) + ts-mixer: 6.0.4 + dev: false + + /@swagger-api/apidom-ns-workflows-1@0.96.0: + resolution: {integrity: sha512-PaVIcCFuZfVcVOsuk2Vk9p1EmMgkx5OYXGG0QlsJI94OiJiLPxJBUYCELYtKFwbjCPKqbe2T7uyyVEEAo8OyJQ==} + requiresBuild: true + dependencies: + '@babel/runtime-corejs3': 7.24.0 + '@swagger-api/apidom-core': 0.96.0 + '@swagger-api/apidom-ns-openapi-3-1': 0.96.0 + '@types/ramda': 0.29.11 + ramda: 0.29.1 + ramda-adjunct: 4.1.1(ramda@0.29.1) + ts-mixer: 6.0.4 dev: false optional: true - /@swagger-api/apidom-ns-openapi-3-0@0.93.0: - resolution: {integrity: sha512-zmyMUg9+BocHxJuNbUmJCYi/ArOv38Am3/oSkh/5+ANAYOzB1O+ukVvdy7pHDxfZId6KRiP9ZWW6M7VBxz/t/g==} - dependencies: - '@babel/runtime-corejs3': 7.23.9 - '@swagger-api/apidom-core': 0.93.0 - '@swagger-api/apidom-error': 0.93.0 - '@swagger-api/apidom-ns-json-schema-draft-4': 0.93.0 - '@types/ramda': 0.29.10 - ramda: 0.29.1 - ramda-adjunct: 4.1.1(ramda@0.29.1) - stampit: 4.3.2 - dev: false - - /@swagger-api/apidom-ns-openapi-3-1@0.93.0: - resolution: {integrity: sha512-kUkdcNmJloqqhvEDIAGvamyh1fQrITKGFUqRj5v0YWch/hKrfYk61eHG7igWxnVv3r/wDdM9T3uDWlBefMsj1g==} - dependencies: - '@babel/runtime-corejs3': 7.23.9 - '@swagger-api/apidom-ast': 0.93.0 - '@swagger-api/apidom-core': 0.93.0 - '@swagger-api/apidom-ns-openapi-3-0': 0.93.0 - '@types/ramda': 0.29.10 - ramda: 0.29.1 - ramda-adjunct: 4.1.1(ramda@0.29.1) - stampit: 4.3.2 - dev: false - - /@swagger-api/apidom-ns-workflows-1@0.93.0: - resolution: {integrity: sha512-dL92YBMULuI6HiuOVnB24ozOp4P02xN6Zw8tWzTm/H/W5EWVdso8krq5utjuSTFcurj4rODkPQxY8WRKuIuMDw==} + /@swagger-api/apidom-parser-adapter-api-design-systems-json@0.96.0: + resolution: {integrity: sha512-nmOc5f37Jcu8W1KNUnWPEUPHBhlInlxA+gzCcKG/3kyedKm+Oh8x4fDqhaW/MXUiWuI6K0QZ8MTxaYUqez2ztA==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.23.9 - '@swagger-api/apidom-core': 0.93.0 - '@swagger-api/apidom-ns-openapi-3-1': 0.93.0 - '@types/ramda': 0.29.10 - ramda: 0.29.1 - ramda-adjunct: 4.1.1(ramda@0.29.1) - stampit: 4.3.2 - dev: false - optional: true - - /@swagger-api/apidom-parser-adapter-api-design-systems-json@0.93.0: - resolution: {integrity: sha512-lKaSt9YOXbhiBMTJcSCIF0C1fjyWLxKrTWkvbFwwqCcjeMt5vg8N/0nKqQeQm4mcZ946mqnssRVpPbJfWEoIWA==} - requiresBuild: true - dependencies: - '@babel/runtime-corejs3': 7.23.9 - '@swagger-api/apidom-core': 0.93.0 - '@swagger-api/apidom-ns-api-design-systems': 0.93.0 - '@swagger-api/apidom-parser-adapter-json': 0.93.0 - '@types/ramda': 0.29.10 + '@babel/runtime-corejs3': 7.24.0 + '@swagger-api/apidom-core': 0.96.0 + '@swagger-api/apidom-ns-api-design-systems': 0.96.0 + '@swagger-api/apidom-parser-adapter-json': 0.96.0 + '@types/ramda': 0.29.11 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) dev: false optional: true - /@swagger-api/apidom-parser-adapter-api-design-systems-yaml@0.93.0: - resolution: {integrity: sha512-fjIQs0vRP/46M8kwQ3UGpq8piMboIXvrJqu1lDTylS5PYzE9qXpx1BhESZPtBwuoR9kvVYbumlD+BgjCuyzc8g==} + /@swagger-api/apidom-parser-adapter-api-design-systems-yaml@0.96.0: + resolution: {integrity: sha512-2Mv320Cmhs8u79GykuxbwhRUgy1MoOcEmeyLjHPftpEZI7BrsSQn9CbN/J/5tga5Z8Un/KgU9YffN/XSvLhOKg==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.23.9 - '@swagger-api/apidom-core': 0.93.0 - '@swagger-api/apidom-ns-api-design-systems': 0.93.0 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 0.93.0 - '@types/ramda': 0.29.10 + '@babel/runtime-corejs3': 7.24.0 + '@swagger-api/apidom-core': 0.96.0 + '@swagger-api/apidom-ns-api-design-systems': 0.96.0 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 0.96.0 + '@types/ramda': 0.29.11 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) dev: false optional: true - /@swagger-api/apidom-parser-adapter-asyncapi-json-2@0.93.0: - resolution: {integrity: sha512-65Io5+Zy5LBJTvRt3yKBXXfk5M/DCq3mDUSiVcZuyRPHGNi9ViMTdEFCH3rzF0x2v0omG+6OqryndIBVAXEo/g==} + /@swagger-api/apidom-parser-adapter-asyncapi-json-2@0.96.0: + resolution: {integrity: sha512-ABfbr8ho6s4Edu6P1kNF8WTIPSlzGQ45T36Vg/AvPpmMoKOjZPeUKqs10Nw7Eoe91LJvdm8PlofNG19o8aRFsA==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.23.9 - '@swagger-api/apidom-core': 0.93.0 - '@swagger-api/apidom-ns-asyncapi-2': 0.93.0 - '@swagger-api/apidom-parser-adapter-json': 0.93.0 - '@types/ramda': 0.29.10 + '@babel/runtime-corejs3': 7.24.0 + '@swagger-api/apidom-core': 0.96.0 + '@swagger-api/apidom-ns-asyncapi-2': 0.96.0 + '@swagger-api/apidom-parser-adapter-json': 0.96.0 + '@types/ramda': 0.29.11 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) dev: false optional: true - /@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@0.93.0: - resolution: {integrity: sha512-WwGH6StA7kplkTAaV43MziJeJonnJCW6pBOp1bwoEhGaeYO/Yd/dpoFZVDfxAnXJYmDnzk7pqjJm3U6A9BCPcw==} + /@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@0.96.0: + resolution: {integrity: sha512-6xJedcLukkO/ZvUZnMPxZ5t/pcIjVOSzzysTNNcDKEsI4oNfoV2YjT315m+fUM/79W6e+aA9IlKygzj0s6ysVg==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.23.9 - '@swagger-api/apidom-core': 0.93.0 - '@swagger-api/apidom-ns-asyncapi-2': 0.93.0 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 0.93.0 - '@types/ramda': 0.29.10 + '@babel/runtime-corejs3': 7.24.0 + '@swagger-api/apidom-core': 0.96.0 + '@swagger-api/apidom-ns-asyncapi-2': 0.96.0 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 0.96.0 + '@types/ramda': 0.29.11 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) dev: false optional: true - /@swagger-api/apidom-parser-adapter-json@0.93.0: - resolution: {integrity: sha512-FNA36GAqG1EMErkRhMFb4GeW8fuYdzRkOwQmTLWZfKIUzLYOvVMbki8R2dE8ruNs/Gf5VhiQH85mLaCyLwp3xw==} + /@swagger-api/apidom-parser-adapter-json@0.96.0: + resolution: {integrity: sha512-k/XdEKP2+LJupwLvKtxkM6Ol7pYei3XinvhTsU+F1u8VQUpYTOHMVQ3vC5p/wtISOq+7Q0zHR0QANHVMbOudQg==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.23.9 - '@swagger-api/apidom-ast': 0.93.0 - '@swagger-api/apidom-core': 0.93.0 - '@swagger-api/apidom-error': 0.93.0 - '@types/ramda': 0.29.10 + '@babel/runtime-corejs3': 7.24.0 + '@swagger-api/apidom-ast': 0.96.0 + '@swagger-api/apidom-core': 0.96.0 + '@swagger-api/apidom-error': 0.96.0 + '@types/ramda': 0.29.11 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) tree-sitter: 0.20.4 - tree-sitter-json: 0.20.1 + tree-sitter-json: 0.20.2 web-tree-sitter: 0.20.3 dev: false optional: true - /@swagger-api/apidom-parser-adapter-openapi-json-2@0.93.0: - resolution: {integrity: sha512-bBEYiZdiYQQoubZVdkHw3I/qwgI3nvCcrbFAlqELvpFgRZywJzXssxqHqFOR8clvoX8+JVYx5E/MgSC6Rn77uQ==} + /@swagger-api/apidom-parser-adapter-openapi-json-2@0.96.0: + resolution: {integrity: sha512-bReqp5ncvgxD+nkX8cj7ILE0Xp3Vzocei96CMtwn1OU6FGSIu8IfjfJ0qSDavSJMxxhMXuCW85U+oZ+j9BzMLQ==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.23.9 - '@swagger-api/apidom-core': 0.93.0 - '@swagger-api/apidom-ns-openapi-2': 0.93.0 - '@swagger-api/apidom-parser-adapter-json': 0.93.0 - '@types/ramda': 0.29.10 + '@babel/runtime-corejs3': 7.24.0 + '@swagger-api/apidom-core': 0.96.0 + '@swagger-api/apidom-ns-openapi-2': 0.96.0 + '@swagger-api/apidom-parser-adapter-json': 0.96.0 + '@types/ramda': 0.29.11 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) dev: false optional: true - /@swagger-api/apidom-parser-adapter-openapi-json-3-0@0.93.0: - resolution: {integrity: sha512-UlM924syGaSa5c35OuDC614xBsjIm5DaWUqshFf6DmmP5iDZFQUh0cyIfLDD5/n1wZvAtiIL040zwfTBrK0Udw==} + /@swagger-api/apidom-parser-adapter-openapi-json-3-0@0.96.0: + resolution: {integrity: sha512-T07rPrjUBCCFuh3Xr7CGu+pjphokioMaxuAvQqtn7XgRCBbL76XFONlS1OSl3WATtrW7Sq+yxN5R3/f5C9evgA==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.23.9 - '@swagger-api/apidom-core': 0.93.0 - '@swagger-api/apidom-ns-openapi-3-0': 0.93.0 - '@swagger-api/apidom-parser-adapter-json': 0.93.0 - '@types/ramda': 0.29.10 + '@babel/runtime-corejs3': 7.24.0 + '@swagger-api/apidom-core': 0.96.0 + '@swagger-api/apidom-ns-openapi-3-0': 0.96.0 + '@swagger-api/apidom-parser-adapter-json': 0.96.0 + '@types/ramda': 0.29.11 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) dev: false optional: true - /@swagger-api/apidom-parser-adapter-openapi-json-3-1@0.93.0: - resolution: {integrity: sha512-9rqOLv0ip7knvbdmk8hNa1aN/kaeIIoUKdwO6GaMW9eFh2cvIDyriLxp+FwTatnwhlJjWMwp7Mfyv62WT0cfKQ==} + /@swagger-api/apidom-parser-adapter-openapi-json-3-1@0.96.0: + resolution: {integrity: sha512-ovbpHrFuN6l2zJdUOmjF5y6wIZB13SanhvQpaOIALW8J9KYxkjhQH+h3lceYKUdTWfrdPkmmV150DAlcOy2alQ==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.23.9 - '@swagger-api/apidom-core': 0.93.0 - '@swagger-api/apidom-ns-openapi-3-1': 0.93.0 - '@swagger-api/apidom-parser-adapter-json': 0.93.0 - '@types/ramda': 0.29.10 + '@babel/runtime-corejs3': 7.24.0 + '@swagger-api/apidom-core': 0.96.0 + '@swagger-api/apidom-ns-openapi-3-1': 0.96.0 + '@swagger-api/apidom-parser-adapter-json': 0.96.0 + '@types/ramda': 0.29.11 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) dev: false optional: true - /@swagger-api/apidom-parser-adapter-openapi-yaml-2@0.93.0: - resolution: {integrity: sha512-8laGpR9MrFBsBDmGNSexKdvLvGnr5QnjhqOSqFIViK/WFG+zEpE5SsWyJkCQJE4EJ5IvxVA8BfBrjjUqe0Z5uA==} + /@swagger-api/apidom-parser-adapter-openapi-yaml-2@0.96.0: + resolution: {integrity: sha512-wJmq0/jQVzjxMqJMGWL8u/HyeVaaa7ImQcGe4z+eOR2vhLji0qbNu3S1WSP+n5OAhotHWAMfhHHZkoi0y+O5kQ==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.23.9 - '@swagger-api/apidom-core': 0.93.0 - '@swagger-api/apidom-ns-openapi-2': 0.93.0 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 0.93.0 - '@types/ramda': 0.29.10 + '@babel/runtime-corejs3': 7.24.0 + '@swagger-api/apidom-core': 0.96.0 + '@swagger-api/apidom-ns-openapi-2': 0.96.0 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 0.96.0 + '@types/ramda': 0.29.11 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) dev: false optional: true - /@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@0.93.0: - resolution: {integrity: sha512-Tf8eX+MzTsCijXbE5lkfF0/wG5VkvCPGg7hZV7ZGYrzQ584R/Z0xkgHEu3Atqu3Ji9XPGP0u6LqWM/wATuWK0A==} + /@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@0.96.0: + resolution: {integrity: sha512-7Q82o/6XbiX9o+pqDC4iRr8onsx2HZoo6O54FA0YGc2nW9V5vEWXDZxp76psPlQA6oShkOT3ehd/wjz7ERUysA==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.23.9 - '@swagger-api/apidom-core': 0.93.0 - '@swagger-api/apidom-ns-openapi-3-0': 0.93.0 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 0.93.0 - '@types/ramda': 0.29.10 + '@babel/runtime-corejs3': 7.24.0 + '@swagger-api/apidom-core': 0.96.0 + '@swagger-api/apidom-ns-openapi-3-0': 0.96.0 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 0.96.0 + '@types/ramda': 0.29.11 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) dev: false optional: true - /@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@0.93.0: - resolution: {integrity: sha512-1Yt3SmgV2x5PAV8NeXIztuRWbIMhAU3cs3SIDJlObzFxXitnsf3cVIRrFTNrK28mqhHU3XNVTat5GrGtlJeD8Q==} + /@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@0.96.0: + resolution: {integrity: sha512-T2Z1X8iuxTkx8nhFKaW2RbJlytWqetXTzqMvCfjZsvFI9iyi1fVKeIkPNa06mFvGPWTeNuzd1tJOjZZjS/ljNA==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.23.9 - '@swagger-api/apidom-core': 0.93.0 - '@swagger-api/apidom-ns-openapi-3-1': 0.93.0 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 0.93.0 - '@types/ramda': 0.29.10 + '@babel/runtime-corejs3': 7.24.0 + '@swagger-api/apidom-core': 0.96.0 + '@swagger-api/apidom-ns-openapi-3-1': 0.96.0 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 0.96.0 + '@types/ramda': 0.29.11 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) dev: false optional: true - /@swagger-api/apidom-parser-adapter-workflows-json-1@0.93.0: - resolution: {integrity: sha512-tUm049GrXtBHoP8rcLTp+yz5EbJkq/stSgHb4nUNyFH00MKtMkP3j3KnXSCQz2w6br5gzv54DDCKwqPAh7IjuA==} + /@swagger-api/apidom-parser-adapter-workflows-json-1@0.96.0: + resolution: {integrity: sha512-DY2CaEmM0VQ1nbNJAU1HHyHbCSPKRihhVx+5BTd1L4l8/092e0wXbNip0xLxH8jgJaOkAU85I8DXTIanlPsSvg==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.23.9 - '@swagger-api/apidom-core': 0.93.0 - '@swagger-api/apidom-ns-workflows-1': 0.93.0 - '@swagger-api/apidom-parser-adapter-json': 0.93.0 - '@types/ramda': 0.29.10 + '@babel/runtime-corejs3': 7.24.0 + '@swagger-api/apidom-core': 0.96.0 + '@swagger-api/apidom-ns-workflows-1': 0.96.0 + '@swagger-api/apidom-parser-adapter-json': 0.96.0 + '@types/ramda': 0.29.11 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) dev: false optional: true - /@swagger-api/apidom-parser-adapter-workflows-yaml-1@0.93.0: - resolution: {integrity: sha512-8knwzutGHH+69061yHY0xUwmMW/wWUP5jjn4CVDctxYS7BYXb9iaH84VuKJRuDm5M5L/C6yJHgdoWo4IHnpVBw==} + /@swagger-api/apidom-parser-adapter-workflows-yaml-1@0.96.0: + resolution: {integrity: sha512-Mj55ejT5TncLzANHw9VvopnN+xPjAeBhyw7Vt6FlDnPRJXpFwffhMmHZJo78N3gbwggM9gKPJsJLLjnW57Rt8Q==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.23.9 - '@swagger-api/apidom-core': 0.93.0 - '@swagger-api/apidom-ns-workflows-1': 0.93.0 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 0.93.0 - '@types/ramda': 0.29.10 + '@babel/runtime-corejs3': 7.24.0 + '@swagger-api/apidom-core': 0.96.0 + '@swagger-api/apidom-ns-workflows-1': 0.96.0 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 0.96.0 + '@types/ramda': 0.29.11 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) dev: false optional: true - /@swagger-api/apidom-parser-adapter-yaml-1-2@0.93.0: - resolution: {integrity: sha512-0z/d/t19f78o4CTxtpMMLdi+7js+JNz7s4/WSJXZ0Q0k5O4pEhlARMMEqJXE4qUXxTGnoXbi4sQY9FV/yA5V0Q==} + /@swagger-api/apidom-parser-adapter-yaml-1-2@0.96.0: + resolution: {integrity: sha512-FI8uQEAU191TVz/cartkQO5uu+Psv+YxrCo7d/JrY5JsODIo+PuLfoTuOHM3rnZckWGCIgCIo2LWX4A58nEpiQ==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.23.9 - '@swagger-api/apidom-ast': 0.93.0 - '@swagger-api/apidom-core': 0.93.0 - '@swagger-api/apidom-error': 0.93.0 - '@types/ramda': 0.29.10 + '@babel/runtime-corejs3': 7.24.0 + '@swagger-api/apidom-ast': 0.96.0 + '@swagger-api/apidom-core': 0.96.0 + '@swagger-api/apidom-error': 0.96.0 + '@types/ramda': 0.29.11 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) tree-sitter: 0.20.4 @@ -2322,12 +2317,12 @@ packages: dev: false optional: true - /@swagger-api/apidom-reference@0.93.0(debug@3.2.7): - resolution: {integrity: sha512-kii8DqU3v+Fqv4gLi/3pTEYqR0AhjogcJnJUuKZqs1G/UiGk2RiEN4i/VyJQn0iwL4w4UyFcLOG4kyYxNgDAJw==} + /@swagger-api/apidom-reference@0.96.0(debug@3.2.7): + resolution: {integrity: sha512-hzEP3yX8ruoqDK3nmhIycdktzlA80vp2NBKmsgbCg3d+pnYjcSBWIkCp4922yxTNnrYbpQgioWIQ0sUJukjjEw==} dependencies: - '@babel/runtime-corejs3': 7.23.9 - '@swagger-api/apidom-core': 0.93.0 - '@types/ramda': 0.29.10 + '@babel/runtime-corejs3': 7.24.0 + '@swagger-api/apidom-core': 0.96.0 + '@types/ramda': 0.29.11 axios: 1.6.7(debug@3.2.7) minimatch: 7.4.6 process: 0.11.10 @@ -2335,27 +2330,27 @@ packages: ramda-adjunct: 4.1.1(ramda@0.29.1) stampit: 4.3.2 optionalDependencies: - '@swagger-api/apidom-error': 0.93.0 - '@swagger-api/apidom-json-pointer': 0.93.0 - '@swagger-api/apidom-ns-asyncapi-2': 0.93.0 - '@swagger-api/apidom-ns-openapi-2': 0.93.0 - '@swagger-api/apidom-ns-openapi-3-0': 0.93.0 - '@swagger-api/apidom-ns-openapi-3-1': 0.93.0 - '@swagger-api/apidom-ns-workflows-1': 0.93.0 - '@swagger-api/apidom-parser-adapter-api-design-systems-json': 0.93.0 - '@swagger-api/apidom-parser-adapter-api-design-systems-yaml': 0.93.0 - '@swagger-api/apidom-parser-adapter-asyncapi-json-2': 0.93.0 - '@swagger-api/apidom-parser-adapter-asyncapi-yaml-2': 0.93.0 - '@swagger-api/apidom-parser-adapter-json': 0.93.0 - '@swagger-api/apidom-parser-adapter-openapi-json-2': 0.93.0 - '@swagger-api/apidom-parser-adapter-openapi-json-3-0': 0.93.0 - '@swagger-api/apidom-parser-adapter-openapi-json-3-1': 0.93.0 - '@swagger-api/apidom-parser-adapter-openapi-yaml-2': 0.93.0 - '@swagger-api/apidom-parser-adapter-openapi-yaml-3-0': 0.93.0 - '@swagger-api/apidom-parser-adapter-openapi-yaml-3-1': 0.93.0 - '@swagger-api/apidom-parser-adapter-workflows-json-1': 0.93.0 - '@swagger-api/apidom-parser-adapter-workflows-yaml-1': 0.93.0 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 0.93.0 + '@swagger-api/apidom-error': 0.96.0 + '@swagger-api/apidom-json-pointer': 0.96.0 + '@swagger-api/apidom-ns-asyncapi-2': 0.96.0 + '@swagger-api/apidom-ns-openapi-2': 0.96.0 + '@swagger-api/apidom-ns-openapi-3-0': 0.96.0 + '@swagger-api/apidom-ns-openapi-3-1': 0.96.0 + '@swagger-api/apidom-ns-workflows-1': 0.96.0 + '@swagger-api/apidom-parser-adapter-api-design-systems-json': 0.96.0 + '@swagger-api/apidom-parser-adapter-api-design-systems-yaml': 0.96.0 + '@swagger-api/apidom-parser-adapter-asyncapi-json-2': 0.96.0 + '@swagger-api/apidom-parser-adapter-asyncapi-yaml-2': 0.96.0 + '@swagger-api/apidom-parser-adapter-json': 0.96.0 + '@swagger-api/apidom-parser-adapter-openapi-json-2': 0.96.0 + '@swagger-api/apidom-parser-adapter-openapi-json-3-0': 0.96.0 + '@swagger-api/apidom-parser-adapter-openapi-json-3-1': 0.96.0 + '@swagger-api/apidom-parser-adapter-openapi-yaml-2': 0.96.0 + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-0': 0.96.0 + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-1': 0.96.0 + '@swagger-api/apidom-parser-adapter-workflows-json-1': 0.96.0 + '@swagger-api/apidom-parser-adapter-workflows-yaml-1': 0.96.0 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 0.96.0 transitivePeerDependencies: - debug dev: false @@ -2382,8 +2377,8 @@ packages: /@types/babel__core@7.20.5: resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: - '@babel/parser': 7.23.9 - '@babel/types': 7.23.9 + '@babel/parser': 7.24.0 + '@babel/types': 7.24.0 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.5 @@ -2392,27 +2387,27 @@ packages: /@types/babel__generator@7.6.8: resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} dependencies: - '@babel/types': 7.23.9 + '@babel/types': 7.24.0 dev: true /@types/babel__template@7.4.4: resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} dependencies: - '@babel/parser': 7.23.9 - '@babel/types': 7.23.9 + '@babel/parser': 7.24.0 + '@babel/types': 7.24.0 dev: true /@types/babel__traverse@7.20.5: resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} dependencies: - '@babel/types': 7.23.9 + '@babel/types': 7.24.0 dev: true /@types/body-parser@1.19.5: resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 - '@types/node': 20.11.16 + '@types/node': 20.11.24 dev: false /@types/cacheable-request@6.0.3: @@ -2420,7 +2415,7 @@ packages: dependencies: '@types/http-cache-semantics': 4.0.4 '@types/keyv': 3.1.4 - '@types/node': 20.11.16 + '@types/node': 20.11.24 '@types/responselike': 1.0.3 /@types/caseless@0.12.5: @@ -2430,18 +2425,18 @@ packages: /@types/connect@3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 20.11.16 + '@types/node': 20.11.24 dev: false /@types/eslint-scope@3.7.7: resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} dependencies: - '@types/eslint': 8.56.2 + '@types/eslint': 8.56.5 '@types/estree': 1.0.5 dev: true - /@types/eslint@8.56.2: - resolution: {integrity: sha512-uQDwm1wFHmbBbCZCqAlq6Do9LYwByNZHWzXppSnay9SuwJ+VRbjkbLABer54kcPnMSlG6Fdiy2yaFXm/z9Z5gw==} + /@types/eslint@8.56.5: + resolution: {integrity: sha512-u5/YPJHo1tvkSF2CE0USEkxon82Z5DBy2xR+qfyYNszpX9qcs4sT6uq2kBbj4BXY1+DBGDPnrhMZV3pKWGNukw==} dependencies: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 @@ -2451,11 +2446,11 @@ packages: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} dev: true - /@types/express-serve-static-core@4.17.42: - resolution: {integrity: sha512-ckM3jm2bf/MfB3+spLPWYPUH573plBFwpOhqQ2WottxYV85j1HQFlxmnTq57X1yHY9awZPig06hL/cLMgNWHIQ==} + /@types/express-serve-static-core@4.17.43: + resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==} dependencies: - '@types/node': 20.11.16 - '@types/qs': 6.9.11 + '@types/node': 20.11.24 + '@types/qs': 6.9.12 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 dev: false @@ -2464,8 +2459,8 @@ packages: resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} dependencies: '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.17.42 - '@types/qs': 6.9.11 + '@types/express-serve-static-core': 4.17.43 + '@types/qs': 6.9.12 '@types/serve-static': 1.15.5 dev: false @@ -2473,13 +2468,13 @@ packages: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.11.16 + '@types/node': 20.11.24 dev: true /@types/graceful-fs@4.1.9: resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} dependencies: - '@types/node': 20.11.16 + '@types/node': 20.11.24 dev: true /@types/html-minifier-terser@6.1.0: @@ -2523,7 +2518,7 @@ packages: /@types/keyv@3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: - '@types/node': 20.11.16 + '@types/node': 20.11.24 /@types/mime@1.3.5: resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} @@ -2545,8 +2540,8 @@ packages: resolution: {integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==} dev: false - /@types/node@20.11.16: - resolution: {integrity: sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==} + /@types/node@20.11.24: + resolution: {integrity: sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long==} dependencies: undici-types: 5.26.5 @@ -2558,14 +2553,14 @@ packages: resolution: {integrity: sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==} dev: true - /@types/qs@6.9.11: - resolution: {integrity: sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==} + /@types/qs@6.9.12: + resolution: {integrity: sha512-bZcOkJ6uWrL0Qb2NAWKa7TBU+mJHPzhx9jjLL1KHF+XpzEcR7EXHvjbHlGtR/IsP1vyPrehuS6XqkmaePy//mg==} dev: false - /@types/ramda@0.29.10: - resolution: {integrity: sha512-0BzWVKtSEtignlk+XBuK88Il5wzQwbRVfEkzE8iKm02NYHMGQ/9ffB05M+zXhTCqo50DOIAT9pNSJsjFMMG4rQ==} + /@types/ramda@0.29.11: + resolution: {integrity: sha512-jm1+PmNOpE7aPS+mMcuB4a72VkCXUJqPSaQRu2YqR8MbsFfaowYXgKxc7bluYdDpRHNXT5Z+xu+Lgr3/ml6wSA==} dependencies: - types-ramda: 0.29.7 + types-ramda: 0.29.9 dev: false /@types/range-parser@1.2.7: @@ -2576,7 +2571,7 @@ packages: resolution: {integrity: sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==} dependencies: '@types/caseless': 0.12.5 - '@types/node': 20.11.16 + '@types/node': 20.11.24 '@types/tough-cookie': 4.0.5 form-data: 2.5.1 dev: false @@ -2584,13 +2579,13 @@ packages: /@types/responselike@1.0.3: resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} dependencies: - '@types/node': 20.11.16 + '@types/node': 20.11.24 /@types/send@0.17.4: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 - '@types/node': 20.11.16 + '@types/node': 20.11.24 dev: false /@types/serve-static@1.15.5: @@ -2598,7 +2593,7 @@ packages: dependencies: '@types/http-errors': 2.0.4 '@types/mime': 3.0.4 - '@types/node': 20.11.16 + '@types/node': 20.11.24 dev: false /@types/stack-utils@2.0.3: @@ -2629,7 +2624,7 @@ packages: resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} requiresBuild: true dependencies: - '@types/node': 20.11.16 + '@types/node': 20.11.24 dev: false optional: true @@ -2642,8 +2637,8 @@ packages: ejs: 3.1.9 fs-extra: 11.2.0 getopts: 2.3.0 - ini: 4.1.1 - mysql2: 3.9.1 + ini: 4.1.2 + mysql2: 3.9.2 nodegit: 0.27.0 require-yaml: 0.0.1 sha.js: 2.4.11 @@ -2757,29 +2752,29 @@ packages: '@xtuc/long': 4.2.2 dev: true - /@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.90.1): + /@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.90.3): resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==} engines: {node: '>=14.15.0'} peerDependencies: webpack: 5.x.x webpack-cli: 5.x.x dependencies: - webpack: 5.90.1(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack-dev-server@3.11.3)(webpack@5.90.1) + webpack: 5.90.3(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack-dev-server@3.11.3)(webpack@5.90.3) dev: true - /@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.90.1): + /@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.90.3): resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==} engines: {node: '>=14.15.0'} peerDependencies: webpack: 5.x.x webpack-cli: 5.x.x dependencies: - webpack: 5.90.1(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack-dev-server@3.11.3)(webpack@5.90.1) + webpack: 5.90.3(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack-dev-server@3.11.3)(webpack@5.90.3) dev: true - /@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@3.11.3)(webpack@5.90.1): + /@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@3.11.3)(webpack@5.90.3): resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==} engines: {node: '>=14.15.0'} peerDependencies: @@ -2790,9 +2785,9 @@ packages: webpack-dev-server: optional: true dependencies: - webpack: 5.90.1(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack-dev-server@3.11.3)(webpack@5.90.1) - webpack-dev-server: 3.11.3(webpack-cli@5.1.4)(webpack@5.90.1) + webpack: 5.90.3(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack-dev-server@3.11.3)(webpack@5.90.3) + webpack-dev-server: 3.11.3(webpack-cli@5.1.4)(webpack@5.90.3) dev: true /@xmldom/xmldom@0.8.10: @@ -3308,13 +3303,15 @@ packages: hasBin: true dev: true - /available-typed-arrays@1.0.6: - resolution: {integrity: sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==} + /available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} + dependencies: + possible-typed-array-names: 1.0.0 dev: false - /aws-sdk@2.1549.0: - resolution: {integrity: sha512-SoVfrrV3A2mxH+NV2tA0eMtG301glhewvhL3Ob4107qLWjvwjy/CoWLclMLmfXniTGxbI8tsgN0r5mLZUKey3Q==} + /aws-sdk@2.1571.0: + resolution: {integrity: sha512-Hixs1aD+7IwsP/Bkb7StFCrOC9ejmw8zBv8xVqEtEughRX6AF8bLKFRoJRbD4V6TrM+gPGpCqoFlpa84HLHkSA==} engines: {node: '>= 10.0.0'} dependencies: buffer: 4.9.2 @@ -3345,22 +3342,22 @@ packages: - debug dev: false - /b4a@1.6.4: - resolution: {integrity: sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==} + /b4a@1.6.6: + resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==} dev: false - /babel-jest@26.6.3(@babel/core@7.23.9): + /babel-jest@26.6.3(@babel/core@7.24.0): resolution: {integrity: sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==} engines: {node: '>= 10.14.2'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.0 '@jest/transform': 26.6.2 '@jest/types': 26.6.2 '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 26.6.2(@babel/core@7.23.9) + babel-preset-jest: 26.6.2(@babel/core@7.24.0) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -3368,26 +3365,26 @@ packages: - supports-color dev: true - /babel-loader@8.3.0(@babel/core@7.23.9)(webpack@5.90.1): + /babel-loader@8.3.0(@babel/core@7.24.0)(webpack@5.90.3): resolution: {integrity: sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==} engines: {node: '>= 8.9'} peerDependencies: '@babel/core': ^7.0.0 webpack: '>=2' dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.0 find-cache-dir: 3.3.2 loader-utils: 2.0.4 make-dir: 3.1.0 schema-utils: 2.7.1 - webpack: 5.90.1(webpack-cli@5.1.4) + webpack: 5.90.3(webpack-cli@5.1.4) dev: true /babel-plugin-istanbul@6.1.1: resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} engines: {node: '>=8'} dependencies: - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-plugin-utils': 7.24.0 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-instrument: 5.2.1 @@ -3400,77 +3397,77 @@ packages: resolution: {integrity: sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==} engines: {node: '>= 10.14.2'} dependencies: - '@babel/template': 7.23.9 - '@babel/types': 7.23.9 + '@babel/template': 7.24.0 + '@babel/types': 7.24.0 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.5 dev: true - /babel-plugin-polyfill-corejs2@0.4.8(@babel/core@7.23.9): + /babel-plugin-polyfill-corejs2@0.4.8(@babel/core@7.24.0): resolution: {integrity: sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.9 - '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.9) + '@babel/core': 7.24.0 + '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.24.0) semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-corejs3@0.9.0(@babel/core@7.23.9): + /babel-plugin-polyfill-corejs3@0.9.0(@babel/core@7.24.0): resolution: {integrity: sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.9) - core-js-compat: 3.35.1 + '@babel/core': 7.24.0 + '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.24.0) + core-js-compat: 3.36.0 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-regenerator@0.5.5(@babel/core@7.23.9): + /babel-plugin-polyfill-regenerator@0.5.5(@babel/core@7.24.0): resolution: {integrity: sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.9 - '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.9) + '@babel/core': 7.24.0 + '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.24.0) transitivePeerDependencies: - supports-color dev: true - /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.9): + /babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.0): resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.9 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.9) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.9) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.9) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.9) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.9) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.9) + '@babel/core': 7.24.0 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.0) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.0) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.0) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.0) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.0) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.0) dev: true - /babel-preset-jest@26.6.2(@babel/core@7.23.9): + /babel-preset-jest@26.6.2(@babel/core@7.24.0): resolution: {integrity: sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==} engines: {node: '>= 10.14.2'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.0 babel-plugin-jest-hoist: 26.6.2 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.9) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.0) dev: true /bach@1.2.0: @@ -3498,6 +3495,12 @@ packages: /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + /bare-events@2.2.1: + resolution: {integrity: sha512-9GYPpsPFvrWBkelIhOhTWtkeZxVxZOdb3VnFTCzlOo3OjvmTvzLoZFUT8kNFACx0vJej6QPney1Cf9BvzCNE/A==} + requiresBuild: true + dev: false + optional: true + /base64-js@0.0.2: resolution: {integrity: sha512-Pj9L87dCdGcKlSqPVUjD+q96pbIx1zQQLb2CUiWURfjiBELv84YX+0nGnKmyT/9KkC7PQk7UN1w+Al8bBozaxQ==} engines: {node: '>= 0.4'} @@ -3530,8 +3533,8 @@ packages: pascalcase: 0.1.1 dev: true - /basic-ftp@5.0.4: - resolution: {integrity: sha512-8PzkB0arJFV4jJWSGOYR+OEic6aeKMu/osRhBULN6RY0ykby6LKhbmuQ5ublvaas5BOwboah5D87nrHyuh8PPA==} + /basic-ftp@5.0.5: + resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} engines: {node: '>=10.0.0'} dev: false @@ -3621,26 +3624,8 @@ packages: /bluebird@3.7.2: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} - /body-parser@1.19.2: - resolution: {integrity: sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==} - engines: {node: '>= 0.8'} - dependencies: - bytes: 3.1.2 - content-type: 1.0.5 - debug: 2.6.9(supports-color@6.1.0) - depd: 1.1.2 - http-errors: 1.8.1 - iconv-lite: 0.4.24 - on-finished: 2.3.0 - qs: 6.9.7 - raw-body: 2.4.3 - type-is: 1.6.18 - transitivePeerDependencies: - - supports-color - dev: false - - /body-parser@1.20.1(supports-color@6.1.0): - resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} + /body-parser@1.20.2(supports-color@6.1.0): + resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} dependencies: bytes: 3.1.2 @@ -3652,7 +3637,7 @@ packages: iconv-lite: 0.4.24 on-finished: 2.4.1 qs: 6.11.0 - raw-body: 2.5.1 + raw-body: 2.5.2 type-is: 1.6.18 unpipe: 1.0.0 transitivePeerDependencies: @@ -3730,15 +3715,15 @@ packages: /browser-process-hrtime@1.0.0: resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} - /browserslist@4.22.3: - resolution: {integrity: sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==} + /browserslist@4.23.0: + resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001582 - electron-to-chromium: 1.4.654 + caniuse-lite: 1.0.30001594 + electron-to-chromium: 1.4.693 node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.22.3) + update-browserslist-db: 1.0.13(browserslist@4.23.0) dev: true /bser@2.1.1: @@ -3905,12 +3890,15 @@ packages: normalize-url: 6.1.0 responselike: 2.0.1 - /call-bind@1.0.5: - resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} + /call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.2 - set-function-length: 1.2.0 + get-intrinsic: 1.2.4 + set-function-length: 1.2.1 /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} @@ -3958,8 +3946,8 @@ packages: resolution: {integrity: sha512-W2lPwkBkMZwFlPCXhIlYgxu+7gC/NUlCtdK652DAJ1JdgV0sTrvuPFshNPrFa1TY2JOkLhgdeEBplB4ezEa+xg==} dev: false - /caniuse-lite@1.0.30001582: - resolution: {integrity: sha512-vsJG3V5vgfduaQGVxL53uSX/HUzxyr2eA8xCo36OLal7sRcSZbibJtLeh0qja4sFOr/QQGt4opB4tOy+eOgAxg==} + /caniuse-lite@1.0.30001594: + resolution: {integrity: sha512-VblSX6nYqyJVs8DKFMldE2IVCJjZ225LW00ydtUWwh5hk9IfkTOffO6r8gJNsH0qqqeAF8KrbMYA2VEwTlGW5g==} dev: true /canonical-json@0.0.4: @@ -4032,8 +4020,8 @@ packages: - supports-color dev: true - /chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + /chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} dependencies: anymatch: 3.1.3 @@ -4591,19 +4579,19 @@ packages: is-plain-object: 5.0.0 dev: true - /core-js-compat@3.35.1: - resolution: {integrity: sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw==} + /core-js-compat@3.36.0: + resolution: {integrity: sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==} dependencies: - browserslist: 4.22.3 + browserslist: 4.23.0 dev: true - /core-js-pure@3.35.1: - resolution: {integrity: sha512-zcIdi/CL3MWbBJYo5YCeVAAx+Sy9yJE9I3/u9LkFABwbeaPhTMRWraM8mYFp9jW5Z50hOy7FVzCc8dCrpZqtIQ==} + /core-js-pure@3.36.0: + resolution: {integrity: sha512-cN28qmhRNgbMZZMc/RFu5w8pK9VJzpb2rJVR/lHuZJKwmXnoWOpXmMkxqBB514igkp1Hu8WGROsiOAzUcKdHOQ==} requiresBuild: true dev: false - /core-js@3.35.1: - resolution: {integrity: sha512-IgdsbxNyMskrTFxa9lWHyMwAJU5gXOPP+1yO+K59d50VLVAIDAbs7gIv705KzALModfK3ZrSZTPNpC0PQgIZuw==} + /core-js@3.36.0: + resolution: {integrity: sha512-mt7+TUBbTFg5+GngsAxeKBTl5/VS0guFeJacYge9OmHb+m058UwwIm41SE9T4Den7ClatV57B6TYTuJ0CX1MAw==} requiresBuild: true dev: true @@ -4678,7 +4666,7 @@ packages: engines: {node: '>=4'} dev: false - /css-loader@6.10.0(webpack@5.90.1): + /css-loader@6.10.0(webpack@5.90.3): resolution: {integrity: sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -4690,15 +4678,15 @@ packages: webpack: optional: true dependencies: - icss-utils: 5.1.0(postcss@8.4.33) - postcss: 8.4.33 - postcss-modules-extract-imports: 3.0.0(postcss@8.4.33) - postcss-modules-local-by-default: 4.0.4(postcss@8.4.33) - postcss-modules-scope: 3.1.1(postcss@8.4.33) - postcss-modules-values: 4.0.0(postcss@8.4.33) + icss-utils: 5.1.0(postcss@8.4.35) + postcss: 8.4.35 + postcss-modules-extract-imports: 3.0.0(postcss@8.4.35) + postcss-modules-local-by-default: 4.0.4(postcss@8.4.35) + postcss-modules-scope: 3.1.1(postcss@8.4.35) + postcss-modules-values: 4.0.0(postcss@8.4.35) postcss-value-parser: 4.2.0 - semver: 7.5.4 - webpack: 5.90.1(webpack-cli@5.1.4) + semver: 7.6.0 + webpack: 5.90.3(webpack-cli@5.1.4) dev: true /css-select@4.3.0: @@ -4734,11 +4722,12 @@ packages: dependencies: cssom: 0.3.8 - /d@1.0.1: - resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==} + /d@1.0.2: + resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==} + engines: {node: '>=0.12'} dependencies: - es5-ext: 0.10.62 - type: 1.2.0 + es5-ext: 0.10.64 + type: 2.7.2 dev: true /dargs@5.1.0: @@ -4756,8 +4745,8 @@ packages: resolution: {integrity: sha512-APql/TZ6FdLEpf2z7/X2a2zyqK8juYtqaSVqxw9mYoQ64CXkfU15AeLh8pUszT8+fnYjgm6t0aIYpWKJbnLkuA==} dev: false - /data-uri-to-buffer@6.0.1: - resolution: {integrity: sha512-MZd3VlchQkp8rdend6vrx7MmVDJzSNTBvghvKjirLkD+WTChA3KUf0jkE68Q4UyctNqI11zZO9/x2Yx+ub5Cvg==} + /data-uri-to-buffer@6.0.2: + resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} engines: {node: '>= 14'} dev: false @@ -4878,9 +4867,9 @@ packages: is-arguments: 1.1.1 is-date-object: 1.0.5 is-regex: 1.1.4 - object-is: 1.1.5 + object-is: 1.1.6 object-keys: 1.1.1 - regexp.prototype.flags: 1.5.1 + regexp.prototype.flags: 1.5.2 dev: true /deep-extend@0.6.0: @@ -4919,20 +4908,20 @@ packages: resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} engines: {node: '>=10'} - /define-data-property@1.1.1: - resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} + /define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.2 + es-define-property: 1.0.0 + es-errors: 1.3.0 gopd: 1.0.1 - has-property-descriptors: 1.0.1 /define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} dependencies: - define-data-property: 1.1.1 - has-property-descriptors: 1.0.1 + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 object-keys: 1.1.1 dev: true @@ -5070,7 +5059,7 @@ packages: /dns-packet@1.3.4: resolution: {integrity: sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==} dependencies: - ip: 1.1.8 + ip: 1.1.9 safe-buffer: 5.2.1 dev: true @@ -5242,8 +5231,8 @@ packages: dependencies: jake: 10.8.7 - /electron-to-chromium@1.4.654: - resolution: {integrity: sha512-hjfFa+Vj4WGLRVTlCQa+IivBkpcp+boGxMQfusOC/me5Y5NfU4wX7wyw+K9p8Cw4tl0BVIZGH2n7y/jMc3w4pg==} + /electron-to-chromium@1.4.693: + resolution: {integrity: sha512-/if4Ueg0GUQlhCrW2ZlXwDAm40ipuKo+OgeHInlL8sbjt+hzISxZK949fZeJaVsheamrzANXvw1zQTvbxTvSHw==} dev: true /emitter-listener@1.1.2: @@ -5290,8 +5279,8 @@ packages: dependencies: once: 1.4.0 - /enhanced-resolve@5.15.0: - resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} + /enhanced-resolve@5.15.1: + resolution: {integrity: sha512-3d3JRbwsCLJsYgvb6NuWEG44jjPSOMuS73L/6+7BZuoKm3W+qXnSoIYVHi8dG7Qcg4inAY4jbzkZ7MnskePeDg==} engines: {node: '>=10.13.0'} dependencies: graceful-fs: 4.2.11 @@ -5321,8 +5310,8 @@ packages: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} - /envinfo@7.11.0: - resolution: {integrity: sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==} + /envinfo@7.11.1: + resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==} engines: {node: '>=4'} hasBin: true dev: true @@ -5348,26 +5337,37 @@ packages: engines: {node: '>= 0.4.0'} dev: false + /es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + /es-module-lexer@1.4.1: resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==} dev: true - /es5-ext@0.10.62: - resolution: {integrity: sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==} + /es5-ext@0.10.64: + resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==} engines: {node: '>=0.10'} requiresBuild: true dependencies: es6-iterator: 2.0.3 - es6-symbol: 3.1.3 + es6-symbol: 3.1.4 + esniff: 2.0.1 next-tick: 1.1.0 dev: true /es6-iterator@2.0.3: resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} dependencies: - d: 1.0.1 - es5-ext: 0.10.62 - es6-symbol: 3.1.3 + d: 1.0.2 + es5-ext: 0.10.64 + es6-symbol: 3.1.4 dev: true /es6-promise@4.2.8: @@ -5379,10 +5379,11 @@ packages: es6-promise: 4.2.8 dev: false - /es6-symbol@3.1.3: - resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==} + /es6-symbol@3.1.4: + resolution: {integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==} + engines: {node: '>=0.12'} dependencies: - d: 1.0.1 + d: 1.0.2 ext: 1.7.0 dev: true @@ -5396,14 +5397,14 @@ packages: /es6-weak-map@2.0.3: resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==} dependencies: - d: 1.0.1 - es5-ext: 0.10.62 + d: 1.0.2 + es5-ext: 0.10.64 es6-iterator: 2.0.3 - es6-symbol: 3.1.3 + es6-symbol: 3.1.4 dev: true - /escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + /escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} /escape-html@1.0.3: @@ -5516,7 +5517,7 @@ packages: optionator: 0.9.3 progress: 2.0.3 regexpp: 3.2.0 - semver: 7.5.4 + semver: 7.6.0 strip-ansi: 6.0.1 strip-json-comments: 3.1.1 table: 6.8.1 @@ -5526,6 +5527,16 @@ packages: - supports-color dev: true + /esniff@2.0.1: + resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==} + engines: {node: '>=0.10'} + dependencies: + d: 1.0.2 + es5-ext: 0.10.64 + event-emitter: 0.3.5 + type: 2.7.2 + dev: true + /espree@7.3.1: resolution: {integrity: sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==} engines: {node: ^10.12.0 || >=12.0.0} @@ -5576,6 +5587,13 @@ packages: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} + /event-emitter@0.3.5: + resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} + dependencies: + d: 1.0.2 + es5-ext: 0.10.64 + dev: true + /event-target-shim@5.0.1: resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} engines: {node: '>=6'} @@ -5693,13 +5711,13 @@ packages: jest-regex-util: 26.0.0 dev: true - /express@4.18.2(supports-color@6.1.0): - resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} + /express@4.18.3(supports-color@6.1.0): + resolution: {integrity: sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw==} engines: {node: '>= 0.10.0'} dependencies: accepts: 1.3.8 array-flatten: 1.1.1 - body-parser: 1.20.1(supports-color@6.1.0) + body-parser: 1.20.2(supports-color@6.1.0) content-disposition: 0.5.4 content-type: 1.0.5 cookie: 0.5.0 @@ -5889,7 +5907,7 @@ packages: flat-cache: 3.2.0 dev: true - /file-loader@6.2.0(webpack@5.90.1): + /file-loader@6.2.0(webpack@5.90.3): resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -5897,7 +5915,7 @@ packages: dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.90.1(webpack-cli@5.1.4) + webpack: 5.90.3(webpack-cli@5.1.4) dev: true /file-uri-to-path@1.0.0: @@ -6033,7 +6051,7 @@ packages: resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flatted: 3.2.9 + flatted: 3.3.1 keyv: 4.5.4 rimraf: 3.0.2 dev: true @@ -6043,8 +6061,8 @@ packages: hasBin: true dev: true - /flatted@3.2.9: - resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + /flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} dev: true /flush-write-stream@1.1.1: @@ -6171,7 +6189,6 @@ packages: graceful-fs: 4.2.11 jsonfile: 6.1.0 universalify: 2.0.1 - dev: true /fs-extra@5.0.0: resolution: {integrity: sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==} @@ -6190,15 +6207,6 @@ packages: universalify: 0.1.2 dev: true - /fs-extra@8.1.0: - resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} - engines: {node: '>=6 <7 || >=8'} - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 - dev: false - /fs-minipass@1.2.7: resolution: {integrity: sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==} dependencies: @@ -6272,7 +6280,7 @@ packages: resolution: {integrity: sha512-ykVjThha+dGKAR/F31kCUxMn7vu1JrmUkDxMs+h7TvjGbQoNx29hsw618GQKm9eT4Qo6E+8zJAnt0BT3gMtggQ==} engines: {node: '>=4'} dependencies: - swagger-client: 3.25.0(debug@3.2.7) + swagger-client: 3.25.4(debug@3.2.7) transitivePeerDependencies: - debug dev: false @@ -6370,13 +6378,15 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - /get-intrinsic@1.2.2: - resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} dependencies: + es-errors: 1.3.0 function-bind: 1.1.2 - has-proto: 1.0.1 + has-proto: 1.0.3 has-symbols: 1.0.3 - hasown: 2.0.0 + hasown: 2.0.1 /get-package-type@0.1.0: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} @@ -6405,14 +6415,14 @@ packages: dependencies: pump: 3.0.0 - /get-uri@6.0.2: - resolution: {integrity: sha512-5KLucCJobh8vBY1K07EFV4+cPZH3mrV9YeAruUseCQKHB58SGjjT2l9/eA9LD082IiuMjSlFJEcdJ27TXvbZNw==} + /get-uri@6.0.3: + resolution: {integrity: sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==} engines: {node: '>= 14'} dependencies: - basic-ftp: 5.0.4 - data-uri-to-buffer: 6.0.1 + basic-ftp: 5.0.5 + data-uri-to-buffer: 6.0.2 debug: 4.3.4(supports-color@6.1.0) - fs-extra: 8.1.0 + fs-extra: 11.2.0 transitivePeerDependencies: - supports-color dev: false @@ -6655,7 +6665,7 @@ packages: /gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.4 /got@10.7.0: resolution: {integrity: sha512-aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg==} @@ -6968,13 +6978,13 @@ packages: sparkles: 1.0.1 dev: true - /has-property-descriptors@1.0.1: - resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} + /has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} dependencies: - get-intrinsic: 1.2.2 + es-define-property: 1.0.0 - /has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + /has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} engines: {node: '>= 0.4'} /has-symbols@1.0.3: @@ -7031,8 +7041,8 @@ packages: resolution: {integrity: sha512-Gjzu0Xn7IagXVkSu9cSFuK1fqzwtLwFhNhVL8IFJijRNMgUttFbBSIAzKuSIrsFMO1+g1RlsoN49zPIbwPDMGQ==} dev: false - /hasown@2.0.0: - resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + /hasown@2.0.1: + resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==} engines: {node: '>= 0.4'} dependencies: function-bind: 1.1.2 @@ -7168,7 +7178,7 @@ packages: he: 1.2.0 param-case: 3.0.4 relateurl: 0.2.7 - terser: 5.27.0 + terser: 5.28.1 dev: true /html-minifier@3.5.21: @@ -7185,7 +7195,7 @@ packages: uglify-js: 3.4.10 dev: true - /html-webpack-plugin@5.6.0(webpack@5.90.1): + /html-webpack-plugin@5.6.0(webpack@5.90.3): resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==} engines: {node: '>=10.13.0'} peerDependencies: @@ -7202,7 +7212,7 @@ packages: lodash: 4.17.21 pretty-error: 4.0.0 tapable: 2.2.1 - webpack: 5.90.1(webpack-cli@5.1.4) + webpack: 5.90.3(webpack-cli@5.1.4) dev: true /htmlparser2@3.10.1: @@ -7242,17 +7252,6 @@ packages: statuses: 1.5.0 dev: true - /http-errors@1.8.1: - resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==} - engines: {node: '>= 0.6'} - dependencies: - depd: 1.1.2 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 1.5.0 - toidentifier: 1.0.1 - dev: false - /http-errors@2.0.0: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} @@ -7330,8 +7329,8 @@ packages: jsprim: 1.4.2 sshpk: 1.18.0 - /http-status@1.7.3: - resolution: {integrity: sha512-GS8tL1qHT2nBCMJDYMHGkkkKQLNkIAHz37vgO68XKvzv+XyqB4oh/DfmMHdtRzfqSJPj1xKG2TaELZtlCz6BEQ==} + /http-status@1.7.4: + resolution: {integrity: sha512-c2qSwNtTlHVYAhMj9JpGdyo0No/+DiKXCJ9pHtZ2Yf3QmPnBIytKSRT7BuyIiQ7icXLynavGmxUqkOjSrAuMuA==} engines: {node: '>= 0.4.0'} dev: false @@ -7414,13 +7413,13 @@ packages: safer-buffer: 2.1.2 dev: true - /icss-utils@5.1.0(postcss@8.4.33): + /icss-utils@5.1.0(postcss@8.4.35): resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 dev: true /identity-obj-proxy@3.0.0: @@ -7528,8 +7527,8 @@ packages: /ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - /ini@4.1.1: - resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} + /ini@4.1.2: + resolution: {integrity: sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true @@ -7565,16 +7564,20 @@ packages: engines: {node: '>=8'} dev: false + /ip-address@9.0.5: + resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} + engines: {node: '>= 12'} + dependencies: + jsbn: 1.1.0 + sprintf-js: 1.1.3 + /ip-regex@2.1.0: resolution: {integrity: sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==} engines: {node: '>=4'} dev: true - /ip@1.1.8: - resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==} - - /ip@2.0.0: - resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} + /ip@1.1.9: + resolution: {integrity: sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==} /ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} @@ -7597,14 +7600,14 @@ packages: resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==} engines: {node: '>= 0.10'} dependencies: - hasown: 2.0.0 + hasown: 2.0.1 dev: true /is-arguments@1.1.1: resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 has-tostringtag: 1.0.2 /is-arrayish@0.2.1: @@ -7642,14 +7645,14 @@ packages: /is-core-module@2.13.1: resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} dependencies: - hasown: 2.0.0 + hasown: 2.0.1 dev: true /is-data-descriptor@1.0.1: resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==} engines: {node: '>= 0.4'} dependencies: - hasown: 2.0.0 + hasown: 2.0.1 dev: true /is-date-object@1.0.5: @@ -7838,7 +7841,7 @@ packages: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 has-tostringtag: 1.0.2 dev: true @@ -7949,7 +7952,7 @@ packages: resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -7961,8 +7964,8 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.23.9 - '@babel/parser': 7.23.9 + '@babel/core': 7.24.0 + '@babel/parser': 7.24.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -7990,8 +7993,8 @@ packages: - supports-color dev: true - /istanbul-reports@3.1.6: - resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} + /istanbul-reports@3.1.7: + resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} engines: {node: '>=8'} dependencies: html-escaper: 2.0.2 @@ -8026,8 +8029,8 @@ packages: filelist: 1.0.4 minimatch: 3.1.2 - /jasmine-core@5.0.1: - resolution: {integrity: sha512-D4bRej8CplwNtNGyTPD++cafJlZUphzZNV+MSAnbD3er4D0NjL4x9V+mu/SI+5129utnCBen23JwEuBZA9vlpQ==} + /jasmine-core@5.1.2: + resolution: {integrity: sha512-2oIUMGn00FdUiqz6epiiJr7xcFyNYj3rDcfmnzfkBnHyBQ3cBQUs4mmyGsOb7TTLb9kxk7dBcmEmqhDKkBoDyA==} dev: true /jasmine-reporters@2.5.2: @@ -8043,12 +8046,12 @@ packages: colors: 1.4.0 dev: true - /jasmine@5.0.2: - resolution: {integrity: sha512-fXgPcWfDhENJJVktFZc/JJ+TpdOQIMJTbn6BgSOIneBagrHtKvnyA8Ag6uD8eF2m7cSESG7K/Hfj/Hk5asAwNg==} + /jasmine@5.1.0: + resolution: {integrity: sha512-prmJlC1dbLhti4nE4XAPDWmfJesYO15sjGXVp7Cs7Ym5I9Xtwa/hUHxxJXjnpfLO72+ySttA0Ztf8g/RiVnUKw==} hasBin: true dependencies: glob: 10.3.10 - jasmine-core: 5.0.1 + jasmine-core: 5.1.2 dev: true /jayson@2.1.2: @@ -8109,10 +8112,10 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.24.0 '@jest/test-sequencer': 26.6.3 '@jest/types': 26.6.2 - babel-jest: 26.6.3(@babel/core@7.23.9) + babel-jest: 26.6.3(@babel/core@7.24.0) chalk: 4.1.2 deepmerge: 4.3.1 glob: 7.2.3 @@ -8169,7 +8172,7 @@ packages: '@jest/environment': 26.6.2 '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 20.11.16 + '@types/node': 20.11.24 jest-mock: 26.6.2 jest-util: 26.6.2 jsdom: 16.7.0 @@ -8187,7 +8190,7 @@ packages: '@jest/environment': 26.6.2 '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 20.11.16 + '@types/node': 20.11.24 jest-mock: 26.6.2 jest-util: 26.6.2 dev: true @@ -8208,7 +8211,7 @@ packages: dependencies: '@jest/types': 26.6.2 '@types/graceful-fs': 4.1.9 - '@types/node': 20.11.16 + '@types/node': 20.11.24 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -8229,12 +8232,12 @@ packages: resolution: {integrity: sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==} engines: {node: '>= 10.14.2'} dependencies: - '@babel/traverse': 7.23.9 + '@babel/traverse': 7.24.0 '@jest/environment': 26.6.2 '@jest/source-map': 26.6.2 '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 20.11.16 + '@types/node': 20.11.24 chalk: 4.1.2 co: 4.6.0 expect: 26.6.2 @@ -8303,7 +8306,7 @@ packages: engines: {node: '>= 10.14.2'} dependencies: '@jest/types': 26.6.2 - '@types/node': 20.11.16 + '@types/node': 20.11.24 dev: true /jest-pnp-resolver@1.2.3(jest-resolve@26.6.2): @@ -8356,7 +8359,7 @@ packages: '@jest/environment': 26.6.2 '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 20.11.16 + '@types/node': 20.11.24 chalk: 4.1.2 emittery: 0.7.2 exit: 0.1.2 @@ -8424,7 +8427,7 @@ packages: resolution: {integrity: sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==} engines: {node: '>= 10.14.2'} dependencies: - '@types/node': 20.11.16 + '@types/node': 20.11.24 graceful-fs: 4.2.11 dev: true @@ -8432,7 +8435,7 @@ packages: resolution: {integrity: sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==} engines: {node: '>= 10.14.2'} dependencies: - '@babel/types': 7.23.9 + '@babel/types': 7.24.0 '@jest/types': 26.6.2 '@types/babel__traverse': 7.20.5 '@types/prettier': 2.7.3 @@ -8457,7 +8460,7 @@ packages: engines: {node: '>= 10.14.2'} dependencies: '@jest/types': 26.6.2 - '@types/node': 20.11.16 + '@types/node': 20.11.24 chalk: 4.1.2 graceful-fs: 4.2.11 is-ci: 2.0.0 @@ -8494,7 +8497,7 @@ packages: dependencies: '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 20.11.16 + '@types/node': 20.11.24 ansi-escapes: 4.3.2 chalk: 4.1.2 jest-util: 26.6.2 @@ -8505,7 +8508,7 @@ packages: resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 20.11.16 + '@types/node': 20.11.24 merge-stream: 2.0.0 supports-color: 7.2.0 dev: true @@ -8514,7 +8517,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 20.11.16 + '@types/node': 20.11.24 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true @@ -8576,6 +8579,9 @@ packages: /jsbn@0.1.1: resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} + /jsbn@1.1.0: + resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} + /jsdom@16.7.0: resolution: {integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==} engines: {node: '>=10'} @@ -8689,7 +8695,6 @@ packages: universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.11 - dev: true /jsonparse@1.3.1: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} @@ -9212,19 +9217,19 @@ packages: async: 2.6.4 bcryptjs: 2.4.3 bluebird: 3.7.2 - body-parser: 1.19.2 + body-parser: 1.20.2(supports-color@6.1.0) canonical-json: 0.0.4 debug: 2.6.9(supports-color@6.1.0) depd: 1.1.2 ejs: 2.3.1 - express: 4.18.2(supports-color@6.1.0) + express: 4.18.3(supports-color@6.1.0) inflection: 1.13.4 isemail: 3.2.0 loopback-connector-remote: 3.4.1 loopback-datasource-juggler: 3.36.1 loopback-filters: 1.1.1 loopback-phase: 3.4.0 - nodemailer: 6.9.9 + nodemailer: 6.9.11 nodemailer-direct-transport: 3.3.2 nodemailer-stub-transport: 1.1.0 serve-favicon: 2.5.0 @@ -9780,7 +9785,6 @@ packages: /mkdirp-classic@0.5.3: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} - requiresBuild: true dev: false /mkdirp@0.3.0: @@ -9910,8 +9914,8 @@ packages: xtend: 1.0.3 dev: false - /mysql2@3.9.1: - resolution: {integrity: sha512-3njoWAAhGBYy0tWBabqUQcLtczZUxrmmtc2vszQUekg3kTJyZ5/IeLC3Fo04u6y6Iy5Sba7pIIa2P/gs8D3ZeQ==} + /mysql2@3.9.2: + resolution: {integrity: sha512-3Cwg/UuRkAv/wm6RhtPE5L7JlPB877vwSF6gfLAS68H+zhH+u5oa3AieqEd0D0/kC3W7qIhYbH419f7O9i/5nw==} engines: {node: '>= 8.0'} dependencies: denque: 2.1.0 @@ -10033,8 +10037,8 @@ packages: engines: {node: '>=4.0.0'} dev: false - /node-abi@3.54.0: - resolution: {integrity: sha512-p7eGEiQil0YUV3ItH4/tBb781L5impVmmx2E9FRKF7d18XXzp4PGT2tdYMFY6wQqgxD0IwNZOiSJ0/K0fSi/OA==} + /node-abi@3.56.0: + resolution: {integrity: sha512-fZjdhDOeRcaS+rcpve7XuwHBmktS1nS1gzgghwKUQQ8nTy2FdSDr6ZT8k6YhvlJeHmmQMYiT/IH9hfco5zeW2Q==} engines: {node: '>=10'} requiresBuild: true dependencies: @@ -10056,7 +10060,7 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: node-domexception: 1.0.0 - web-streams-polyfill: 3.3.2 + web-streams-polyfill: 3.3.3 dev: false /node-fetch@2.7.0: @@ -10236,8 +10240,8 @@ packages: resolution: {integrity: sha512-4fwl2f+647IIyuNuf6wuEMqK4oEU9FMJSYme8kPckVSr1rXIXcmI6BNcIWO+1cAK8XeexYKxYoFztam0jAwjkA==} dev: false - /nodemailer@6.9.9: - resolution: {integrity: sha512-dexTll8zqQoVJEZPwQAKzxxtFn0qTnjdQTchoU6Re9BUUGBJiOy3YMn/0ShTW6J5M0dfQ1NeDeRTTl4oIWgQMA==} + /nodemailer@6.9.11: + resolution: {integrity: sha512-UiAkgiERuG94kl/3bKfE8o10epvDnl0vokNEtZDPTq9BWzIl6EFT9336SbIT4oaTBD8NmmUTLsQyXHV82eXSWg==} engines: {node: '>=6.0.0'} dev: false @@ -10246,7 +10250,7 @@ packages: engines: {node: '>=8.10.0'} hasBin: true dependencies: - chokidar: 3.5.3 + chokidar: 3.6.0 debug: 3.2.7(supports-color@5.5.0) ignore-by-default: 1.0.1 minimatch: 3.1.2 @@ -10418,11 +10422,11 @@ packages: /object-inspect@1.13.1: resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} - /object-is@1.1.5: - resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} + /object-is@1.1.6: + resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 dev: true @@ -10446,7 +10450,7 @@ packages: resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 @@ -10488,13 +10492,6 @@ packages: resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} dev: true - /on-finished@2.3.0: - resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} - engines: {node: '>= 0.8'} - dependencies: - ee-first: 1.1.1 - dev: false - /on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} @@ -10692,21 +10689,20 @@ packages: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.0 debug: 4.3.4(supports-color@6.1.0) - get-uri: 6.0.2 + get-uri: 6.0.3 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.4 - pac-resolver: 7.0.0 + pac-resolver: 7.0.1 socks-proxy-agent: 8.0.2 transitivePeerDependencies: - supports-color dev: false - /pac-resolver@7.0.0: - resolution: {integrity: sha512-Fd9lT9vJbHYRACT8OhCbZBbxr6KRSawSovFpy8nDGshaK99S/EBhVIHp9+crhxrsZOuvLpgL1n23iyPg6Rl2hg==} + /pac-resolver@7.0.1: + resolution: {integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==} engines: {node: '>= 14'} dependencies: degenerator: 5.0.1 - ip: 1.1.8 netmask: 2.0.2 dev: false @@ -10927,12 +10923,12 @@ packages: dependencies: '@google-cloud/storage': 2.5.0 async: 2.6.4 - aws-sdk: 2.1549.0 + aws-sdk: 2.1571.0 errs: 0.3.2 eventemitter2: 5.0.1 fast-json-patch: 2.2.1 filed-mimefix: 0.1.3 - ip: 1.1.8 + ip: 1.1.9 liboneandone: 1.2.0 lodash: 4.17.21 mime: 2.6.0 @@ -10976,45 +10972,50 @@ packages: resolution: {integrity: sha512-BbGTiH8MOWAuc6h5yITkSn9k3HP4+QOCV9t6I5F62OrH7zqTHRo08QNsgELRreTBxcvRhbSpMoUnAx77Dz4yUA==} dev: false - /postcss-modules-extract-imports@3.0.0(postcss@8.4.33): + /possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + dev: false + + /postcss-modules-extract-imports@3.0.0(postcss@8.4.35): resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /postcss-modules-local-by-default@4.0.4(postcss@8.4.33): + /postcss-modules-local-by-default@4.0.4(postcss@8.4.35): resolution: {integrity: sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.33) - postcss: 8.4.33 + icss-utils: 5.1.0(postcss@8.4.35) + postcss: 8.4.35 postcss-selector-parser: 6.0.15 postcss-value-parser: 4.2.0 dev: true - /postcss-modules-scope@3.1.1(postcss@8.4.33): + /postcss-modules-scope@3.1.1(postcss@8.4.35): resolution: {integrity: sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-selector-parser: 6.0.15 dev: true - /postcss-modules-values@4.0.0(postcss@8.4.33): + /postcss-modules-values@4.0.0(postcss@8.4.35): resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.33) - postcss: 8.4.33 + icss-utils: 5.1.0(postcss@8.4.35) + postcss: 8.4.35 dev: true /postcss-selector-parser@6.0.15: @@ -11029,8 +11030,8 @@ packages: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: true - /postcss@8.4.33: - resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==} + /postcss@8.4.35: + resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 @@ -11038,8 +11039,8 @@ packages: source-map-js: 1.0.2 dev: true - /prebuild-install@7.1.1: - resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==} + /prebuild-install@7.1.2: + resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==} engines: {node: '>=10'} hasBin: true requiresBuild: true @@ -11050,7 +11051,7 @@ packages: minimist: 1.2.8 mkdirp-classic: 0.5.3 napi-build-utils: 1.0.2 - node-abi: 3.54.0 + node-abi: 3.56.0 pump: 3.0.0 rc: 1.2.8 simple-get: 4.0.1 @@ -11261,23 +11262,18 @@ packages: resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} engines: {node: '>=0.6'} dependencies: - side-channel: 1.0.4 + side-channel: 1.0.6 /qs@6.11.2: resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} engines: {node: '>=0.6'} dependencies: - side-channel: 1.0.4 + side-channel: 1.0.6 /qs@6.5.3: resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} engines: {node: '>=0.6'} - /qs@6.9.7: - resolution: {integrity: sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==} - engines: {node: '>=0.6'} - dev: false - /querystring@0.2.0: resolution: {integrity: sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==} engines: {node: '>=0.4.x'} @@ -11289,7 +11285,6 @@ packages: /queue-tick@1.0.1: resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} - requiresBuild: true dev: false /quick-lru@4.0.1: @@ -11324,18 +11319,8 @@ packages: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} - /raw-body@2.4.3: - resolution: {integrity: sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==} - engines: {node: '>= 0.8'} - dependencies: - bytes: 3.1.2 - http-errors: 1.8.1 - iconv-lite: 0.4.24 - unpipe: 1.0.0 - dev: false - - /raw-body@2.5.1: - resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} + /raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} engines: {node: '>= 0.8'} dependencies: bytes: 3.1.2 @@ -11343,7 +11328,7 @@ packages: iconv-lite: 0.4.24 unpipe: 1.0.0 - /raw-loader@4.0.2(webpack@5.90.1): + /raw-loader@4.0.2(webpack@5.90.3): resolution: {integrity: sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -11351,7 +11336,7 @@ packages: dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.90.1(webpack-cli@5.1.4) + webpack: 5.90.3(webpack-cli@5.1.4) dev: true /rc@1.2.8: @@ -11539,7 +11524,7 @@ packages: /regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.0 dev: true /regex-not@1.0.2: @@ -11550,13 +11535,14 @@ packages: safe-regex: 1.1.0 dev: true - /regexp.prototype.flags@1.5.1: - resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} + /regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - set-function-name: 2.0.1 + es-errors: 1.3.0 + set-function-name: 2.0.2 dev: true /regexpp@3.2.0: @@ -11854,7 +11840,7 @@ packages: yargs: 17.7.2 dev: true - /sass-loader@13.3.3(node-sass@9.0.0)(sass@1.70.0)(webpack@5.90.1): + /sass-loader@13.3.3(node-sass@9.0.0)(sass@1.71.1)(webpack@5.90.3): resolution: {integrity: sha512-mt5YN2F1MOZr3d/wBRcZxeFgwgkH44wVc2zohO2YF6JiOMkiXe4BYRZpSu2sO1g71mo/j16txzUhsKZlqjVGzA==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -11875,16 +11861,16 @@ packages: dependencies: neo-async: 2.6.2 node-sass: 9.0.0 - sass: 1.70.0 - webpack: 5.90.1(webpack-cli@5.1.4) + sass: 1.71.1 + webpack: 5.90.3(webpack-cli@5.1.4) dev: true - /sass@1.70.0: - resolution: {integrity: sha512-uUxNQ3zAHeAx5nRFskBnrWzDUJrrvpCPD5FNAoRvTi0WwremlheES3tg+56PaVtCs5QDRX5CBLxxKMDJMEa1WQ==} + /sass@1.71.1: + resolution: {integrity: sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg==} engines: {node: '>=14.0.0'} hasBin: true dependencies: - chokidar: 3.5.3 + chokidar: 3.6.0 immutable: 4.3.5 source-map-js: 1.0.2 dev: true @@ -11982,14 +11968,6 @@ packages: hasBin: true dev: true - /semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - dev: true - /semver@7.6.0: resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} engines: {node: '>=10'} @@ -12068,23 +12046,25 @@ packages: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} dev: true - /set-function-length@1.2.0: - resolution: {integrity: sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==} + /set-function-length@1.2.1: + resolution: {integrity: sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==} engines: {node: '>= 0.4'} dependencies: - define-data-property: 1.1.1 + define-data-property: 1.1.4 + es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.4 gopd: 1.0.1 - has-property-descriptors: 1.0.1 + has-property-descriptors: 1.0.2 - /set-function-name@2.0.1: - resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + /set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} engines: {node: '>= 0.4'} dependencies: - define-data-property: 1.1.1 + define-data-property: 1.1.4 + es-errors: 1.3.0 functions-have-names: 1.2.3 - has-property-descriptors: 1.0.1 + has-property-descriptors: 1.0.2 dev: true /set-value@2.0.1: @@ -12169,11 +12149,13 @@ packages: nanoid: 2.1.11 dev: false - /side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + /side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 object-inspect: 1.13.1 /sigmund@1.0.1: @@ -12310,7 +12292,7 @@ packages: dependencies: agent-base: 6.0.2 debug: 4.3.4(supports-color@6.1.0) - socks: 2.7.1 + socks: 2.8.1 transitivePeerDependencies: - supports-color dev: true @@ -12321,7 +12303,7 @@ packages: dependencies: agent-base: 6.0.2 debug: 4.3.4(supports-color@6.1.0) - socks: 2.7.1 + socks: 2.8.1 transitivePeerDependencies: - supports-color dev: true @@ -12332,16 +12314,16 @@ packages: dependencies: agent-base: 7.1.0 debug: 4.3.4(supports-color@6.1.0) - socks: 2.7.1 + socks: 2.8.1 transitivePeerDependencies: - supports-color dev: false - /socks@2.7.1: - resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==} - engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} + /socks@2.8.1: + resolution: {integrity: sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==} + engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} dependencies: - ip: 2.0.0 + ip-address: 9.0.5 smart-buffer: 4.2.0 /source-map-js@1.0.2: @@ -12395,22 +12377,22 @@ packages: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.16 + spdx-license-ids: 3.0.17 dev: true - /spdx-exceptions@2.4.0: - resolution: {integrity: sha512-hcjppoJ68fhxA/cjbN4T8N6uCUejN8yFw69ttpqtBeCbF3u13n7mb31NB9jKwGTTWWnt9IbRA/mf1FprYS8wfw==} + /spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} dev: true /spdx-expression-parse@3.0.1: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: - spdx-exceptions: 2.4.0 - spdx-license-ids: 3.0.16 + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.17 dev: true - /spdx-license-ids@3.0.16: - resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} + /spdx-license-ids@3.0.17: + resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} dev: true /spdy-transport@3.0.0(supports-color@6.1.0): @@ -12457,7 +12439,6 @@ packages: /sprintf-js@1.1.3: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} - dev: false /sqlstring@2.3.1: resolution: {integrity: sha512-ooAzh/7dxIG5+uDik1z/Rd1vli0+38izZhGzSa34FwR7IbelPWCCKSNIl8jlL/F7ERvy8CB2jNeM1E9i9mXMAQ==} @@ -12556,6 +12537,7 @@ packages: /statuses@1.5.0: resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} engines: {node: '>= 0.6'} + dev: true /statuses@2.0.1: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} @@ -12595,11 +12577,13 @@ packages: engines: {node: '>=0.8.0'} dev: false - /streamx@2.15.6: - resolution: {integrity: sha512-q+vQL4AAz+FdfT137VF69Cc/APqUbxy+MDOImRrMvchJpigHj9GksgDU2LYbO9rx7RX6osWgxJB2WxhYv4SZAw==} + /streamx@2.16.1: + resolution: {integrity: sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==} dependencies: fast-fifo: 1.3.2 queue-tick: 1.0.1 + optionalDependencies: + bare-events: 2.2.1 dev: false /string-length@4.0.2: @@ -12735,7 +12719,7 @@ packages: accepts: 1.3.8 debug: 2.6.9(supports-color@6.1.0) ejs: 2.7.4 - http-status: 1.7.3 + http-status: 1.7.4 js2xmlparser: 3.0.0 strong-globalize: 3.3.0 transitivePeerDependencies: @@ -12751,7 +12735,7 @@ packages: debug: 4.3.4(supports-color@6.1.0) ejs: 3.1.9 fast-safe-stringify: 2.1.1 - http-status: 1.7.3 + http-status: 1.7.4 js2xmlparser: 4.0.2 strong-globalize: 6.0.6 transitivePeerDependencies: @@ -12837,12 +12821,12 @@ packages: engines: {node: '>=8'} dependencies: async: 3.2.5 - body-parser: 1.19.2 + body-parser: 1.20.2(supports-color@6.1.0) debug: 4.3.4(supports-color@6.1.0) depd: 2.0.0 escape-string-regexp: 2.0.0 eventemitter2: 5.0.1 - express: 4.18.2(supports-color@6.1.0) + express: 4.18.3(supports-color@6.1.0) inflection: 1.13.4 jayson: 2.1.2 js2xmlparser: 3.0.0 @@ -12864,13 +12848,13 @@ packages: resolution: {integrity: sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==} dev: false - /style-loader@3.3.4(webpack@5.90.1): + /style-loader@3.3.4(webpack@5.90.3): resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==} engines: {node: '>= 12.13.0'} peerDependencies: webpack: ^5.0.0 dependencies: - webpack: 5.90.1(webpack-cli@5.1.4) + webpack: 5.90.3(webpack-cli@5.1.4) dev: true /supports-color@1.2.0: @@ -12926,18 +12910,18 @@ packages: resolution: {integrity: sha512-aFTHfmjwizMNlNE6dsGmoAM4lHjL0CyiobWaFiXWSlD7cIxshW422Nb8KbXCmR6z+0ZEPY+daXJrDyh/vuwTyg==} dependencies: es6-iterator: 2.0.3 - es6-symbol: 3.1.3 + es6-symbol: 3.1.4 dev: true - /swagger-client@3.25.0(debug@3.2.7): - resolution: {integrity: sha512-p143zWkIhgyh2E5+3HPFMlCw3WkV9RbX9HyftfBdiccCbOlmHdcJC0XEJZxcm+ZA+80DORs0F30/mzk7sx4iwA==} + /swagger-client@3.25.4(debug@3.2.7): + resolution: {integrity: sha512-pq9Zs6yf6Giy5JLnkUSeH+y1AQrhomDCkmVYpMY5Rkx6u70jnyiuRWwkGW6cgsPY+/8N38jRGieoWzJYPPGIuA==} dependencies: - '@babel/runtime-corejs3': 7.23.9 - '@swagger-api/apidom-core': 0.93.0 - '@swagger-api/apidom-error': 0.93.0 - '@swagger-api/apidom-json-pointer': 0.93.0 - '@swagger-api/apidom-ns-openapi-3-1': 0.93.0 - '@swagger-api/apidom-reference': 0.93.0(debug@3.2.7) + '@babel/runtime-corejs3': 7.24.0 + '@swagger-api/apidom-core': 0.96.0 + '@swagger-api/apidom-error': 0.96.0 + '@swagger-api/apidom-json-pointer': 0.96.0 + '@swagger-api/apidom-ns-openapi-3-1': 0.96.0 + '@swagger-api/apidom-reference': 0.96.0(debug@3.2.7) cookie: 0.6.0 deepmerge: 4.3.1 fast-json-patch: 3.1.1 @@ -12947,7 +12931,6 @@ packages: node-fetch-commonjs: 3.3.2 qs: 6.11.2 traverse: 0.6.8 - undici: 5.28.2 transitivePeerDependencies: - debug dev: false @@ -13033,9 +13016,9 @@ packages: /tar-stream@3.1.7: resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} dependencies: - b4a: 1.6.4 + b4a: 1.6.6 fast-fifo: 1.3.2 - streamx: 2.15.6 + streamx: 2.16.1 dev: false /tar@4.4.19: @@ -13082,7 +13065,7 @@ packages: supports-hyperlinks: 2.3.0 dev: true - /terser-webpack-plugin@5.3.10(webpack@5.90.1): + /terser-webpack-plugin@5.3.10(webpack@5.90.3): resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -13098,16 +13081,16 @@ packages: uglify-js: optional: true dependencies: - '@jridgewell/trace-mapping': 0.3.22 + '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 - terser: 5.27.0 - webpack: 5.90.1(webpack-cli@5.1.4) + terser: 5.28.1 + webpack: 5.90.3(webpack-cli@5.1.4) dev: true - /terser@5.27.0: - resolution: {integrity: sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==} + /terser@5.28.1: + resolution: {integrity: sha512-wM+bZp54v/E9eRRGXb5ZFDvinrJIOaTapx3WUokyVGZu5ucVCK55zEgGd5Dl2fSr3jUo5sDiERErUWLY6QPFyA==} engines: {node: '>=10'} hasBin: true dependencies: @@ -13296,8 +13279,8 @@ packages: engines: {node: '>= 0.4'} dev: false - /tree-sitter-json@0.20.1: - resolution: {integrity: sha512-482hf7J+aBwhksSw8yWaqI8nyP1DrSwnS4IMBShsnkFWD3SE8oalHnsEik59fEVi3orcTCUtMzSjZx+0Tpa6Vw==} + /tree-sitter-json@0.20.2: + resolution: {integrity: sha512-eUxrowp4F1QEGk/i7Sa+Xl8Crlfp7J0AXxX1QdJEQKQYMWhgMbCIgyQvpO3Q0P9oyTrNQxRLlRipDS44a8EtRw==} requiresBuild: true dependencies: nan: 2.18.0 @@ -13317,7 +13300,7 @@ packages: requiresBuild: true dependencies: nan: 2.18.0 - prebuild-install: 7.1.1 + prebuild-install: 7.1.2 dev: false optional: true @@ -13334,11 +13317,9 @@ packages: resolution: {integrity: sha512-6C5h3CE+0qjGp+YKYTs74xR0k/Nw/ePtl/Lp6CCf44hqBQ66qnH1sDFR5mV/Gc48EsrHLB53lCFSffQCkka3kg==} dev: true - /ts-mixer@6.0.3: - resolution: {integrity: sha512-k43M7uCG1AkTyxgnmI5MPwKoUvS/bRvLvUb7+Pgpdlmok8AoqmUaZxUUw8zKM5B1lqZrt41GjYgnvAi0fppqgQ==} - requiresBuild: true + /ts-mixer@6.0.4: + resolution: {integrity: sha512-ufKpbmrugz5Aou4wcr5Wc1UUFWOLhq+Fm6qa6P0w0K5Qw2yhaUoiWszhCVuNQyNwrlGiscHOmqYoAox1PtvgjA==} dev: false - optional: true /ts-toolbelt@9.6.0: resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==} @@ -13403,10 +13384,6 @@ packages: media-typer: 0.3.0 mime-types: 2.1.35 - /type@1.2.0: - resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==} - dev: true - /type@2.7.2: resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} dev: true @@ -13420,8 +13397,8 @@ packages: /typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - /types-ramda@0.29.7: - resolution: {integrity: sha512-8KBxZGJwUF3MpRkkJauSpvfHXk8Ssq15QXGuCBTDGeKd9PfheokkC3wAKRV3djej9O31Qa5M7Owsg8hF0GjtAw==} + /types-ramda@0.29.9: + resolution: {integrity: sha512-B+VbLtW68J4ncG/rccKaYDhlirKlVH/Izh2JZUfaPJv+3Tl2jbbgYsB1pvole1vXKSgaPlAe/wgEdOnMdAu52A==} dependencies: ts-toolbelt: 9.6.0 dev: false @@ -13490,13 +13467,6 @@ packages: /undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - /undici@5.28.2: - resolution: {integrity: sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==} - engines: {node: '>=14.0'} - dependencies: - '@fastify/busboy': 2.1.0 - dev: false - /unicode-canonical-property-names-ecmascript@2.0.0: resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} engines: {node: '>=4'} @@ -13581,7 +13551,6 @@ packages: /universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} - dev: true /unpipe@1.0.0: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} @@ -13604,14 +13573,14 @@ packages: engines: {node: '>=4'} dev: true - /update-browserslist-db@1.0.13(browserslist@4.22.3): + /update-browserslist-db@1.0.13(browserslist@4.23.0): resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.22.3 - escalade: 3.1.1 + browserslist: 4.23.0 + escalade: 3.1.2 picocolors: 1.0.0 dev: true @@ -13869,8 +13838,8 @@ packages: minimalistic-assert: 1.0.1 dev: true - /web-streams-polyfill@3.3.2: - resolution: {integrity: sha512-3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ==} + /web-streams-polyfill@3.3.3: + resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} dev: false @@ -13892,7 +13861,7 @@ packages: resolution: {integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==} engines: {node: '>=10.4'} - /webpack-cli@5.1.4(webpack-dev-server@3.11.3)(webpack@5.90.1): + /webpack-cli@5.1.4(webpack-dev-server@3.11.3)(webpack@5.90.3): resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==} engines: {node: '>=14.15.0'} hasBin: true @@ -13910,23 +13879,23 @@ packages: optional: true dependencies: '@discoveryjs/json-ext': 0.5.7 - '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.90.1) - '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.90.1) - '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack-dev-server@3.11.3)(webpack@5.90.1) + '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.90.3) + '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.90.3) + '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack-dev-server@3.11.3)(webpack@5.90.3) colorette: 2.0.20 commander: 10.0.1 cross-spawn: 7.0.3 - envinfo: 7.11.0 + envinfo: 7.11.1 fastest-levenshtein: 1.0.16 import-local: 3.1.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.90.1(webpack-cli@5.1.4) - webpack-dev-server: 3.11.3(webpack-cli@5.1.4)(webpack@5.90.1) + webpack: 5.90.3(webpack-cli@5.1.4) + webpack-dev-server: 3.11.3(webpack-cli@5.1.4)(webpack@5.90.3) webpack-merge: 5.10.0 dev: true - /webpack-dev-middleware@3.7.3(webpack@5.90.1): + /webpack-dev-middleware@3.7.3(webpack@5.90.3): resolution: {integrity: sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==} engines: {node: '>= 6'} peerDependencies: @@ -13936,11 +13905,11 @@ packages: mime: 2.6.0 mkdirp: 0.5.6 range-parser: 1.2.1 - webpack: 5.90.1(webpack-cli@5.1.4) + webpack: 5.90.3(webpack-cli@5.1.4) webpack-log: 2.0.0 dev: true - /webpack-dev-server@3.11.3(webpack-cli@5.1.4)(webpack@5.90.1): + /webpack-dev-server@3.11.3(webpack-cli@5.1.4)(webpack@5.90.3): resolution: {integrity: sha512-3x31rjbEQWKMNzacUZRE6wXvUFuGpH7vr0lIEbYpMAG9BOxi0928QU1BBswOAP3kg3H1O4hiS+sq4YyAn6ANnA==} engines: {node: '>= 6.11.5'} hasBin: true @@ -13958,12 +13927,12 @@ packages: connect-history-api-fallback: 1.6.0 debug: 4.3.4(supports-color@6.1.0) del: 4.1.1 - express: 4.18.2(supports-color@6.1.0) + express: 4.18.3(supports-color@6.1.0) html-entities: 1.4.0 http-proxy-middleware: 0.19.1(debug@4.3.4)(supports-color@6.1.0) import-local: 2.0.0 internal-ip: 4.3.0 - ip: 1.1.8 + ip: 1.1.9 is-absolute-url: 3.0.3 killable: 1.0.1 loglevel: 1.9.1 @@ -13980,9 +13949,9 @@ packages: strip-ansi: 3.0.1 supports-color: 6.1.0 url: 0.11.3 - webpack: 5.90.1(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack-dev-server@3.11.3)(webpack@5.90.1) - webpack-dev-middleware: 3.7.3(webpack@5.90.1) + webpack: 5.90.3(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack-dev-server@3.11.3)(webpack@5.90.3) + webpack-dev-middleware: 3.7.3(webpack@5.90.3) webpack-log: 2.0.0 ws: 6.2.2 yargs: 13.3.2 @@ -14019,8 +13988,8 @@ packages: engines: {node: '>=10.13.0'} dev: true - /webpack@5.90.1(webpack-cli@5.1.4): - resolution: {integrity: sha512-SstPdlAC5IvgFnhiRok8hqJo/+ArAbNv7rhU4fnWGHNVfN59HSQFaxZDSAL3IFG2YmqxuRs+IU33milSxbPlog==} + /webpack@5.90.3(webpack-cli@5.1.4): + resolution: {integrity: sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -14036,9 +14005,9 @@ packages: '@webassemblyjs/wasm-parser': 1.11.6 acorn: 8.11.3 acorn-import-assertions: 1.9.0(acorn@8.11.3) - browserslist: 4.22.3 + browserslist: 4.23.0 chrome-trace-event: 1.0.3 - enhanced-resolve: 5.15.0 + enhanced-resolve: 5.15.1 es-module-lexer: 1.4.1 eslint-scope: 5.1.1 events: 3.3.0 @@ -14050,9 +14019,9 @@ packages: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(webpack@5.90.1) + terser-webpack-plugin: 5.3.10(webpack@5.90.3) watchpack: 2.4.0 - webpack-cli: 5.1.4(webpack-dev-server@3.11.3)(webpack@5.90.1) + webpack-cli: 5.1.4(webpack-dev-server@3.11.3)(webpack@5.90.3) webpack-sources: 3.2.3 transitivePeerDependencies: - '@swc/core' @@ -14109,8 +14078,8 @@ packages: resolution: {integrity: sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==} engines: {node: '>= 0.4'} dependencies: - available-typed-arrays: 1.0.6 - call-bind: 1.0.5 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.2 @@ -14428,7 +14397,7 @@ packages: engines: {node: '>=12'} dependencies: cliui: 8.0.1 - escalade: 3.1.1 + escalade: 3.1.2 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 From 78c88eb783d1e78d66848d459ffbdb03f553814b Mon Sep 17 00:00:00 2001 From: robert Date: Wed, 6 Mar 2024 11:37:53 +0100 Subject: [PATCH 141/173] feat: cambios pnpm-lock --- pnpm-lock.yaml | 2267 ++++++++++++++++++++++++------------------------ 1 file changed, 1144 insertions(+), 1123 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8042a4d4b..36bff2fe1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,7 +13,7 @@ dependencies: version: 3.0.1 body-parser: specifier: ^1.19.2 - version: 1.20.2(supports-color@6.1.0) + version: 1.19.2 compression: specifier: ^1.7.3 version: 1.7.4(supports-color@6.1.0) @@ -120,16 +120,16 @@ dependencies: devDependencies: '@babel/core': specifier: ^7.7.7 - version: 7.24.0 + version: 7.23.9 '@babel/plugin-syntax-dynamic-import': specifier: ^7.7.4 - version: 7.8.3(@babel/core@7.24.0) + version: 7.8.3(@babel/core@7.23.9) '@babel/preset-env': specifier: ^7.11.0 - version: 7.24.0(@babel/core@7.24.0) + version: 7.23.9(@babel/core@7.23.9) '@babel/register': specifier: ^7.7.7 - version: 7.23.7(@babel/core@7.24.0) + version: 7.23.7(@babel/core@7.23.9) '@verdnatura/myt': specifier: ^1.6.8 version: 1.6.8 @@ -138,16 +138,16 @@ devDependencies: version: 1.8.3 babel-jest: specifier: ^26.0.1 - version: 26.6.3(@babel/core@7.24.0) + version: 26.6.3(@babel/core@7.23.9) babel-loader: specifier: ^8.2.4 - version: 8.3.0(@babel/core@7.24.0)(webpack@5.90.3) + version: 8.3.0(@babel/core@7.23.9)(webpack@5.90.1) core-js: specifier: ^3.30.1 - version: 3.36.0 + version: 3.35.1 css-loader: specifier: ^6.7.4 - version: 6.10.0(webpack@5.90.3) + version: 6.10.0(webpack@5.90.1) del: specifier: ^2.2.2 version: 2.2.2 @@ -165,7 +165,7 @@ devDependencies: version: 1.3.3 file-loader: specifier: ^6.2.0 - version: 6.2.0(webpack@5.90.3) + version: 6.2.0(webpack@5.90.1) getopts: specifier: ^2.3.0 version: 2.3.0 @@ -207,13 +207,13 @@ devDependencies: version: 0.2.1 html-webpack-plugin: specifier: ^5.5.1 - version: 5.6.0(webpack@5.90.3) + version: 5.6.0(webpack@5.90.1) identity-obj-proxy: specifier: ^3.0.0 version: 3.0.0 jasmine: specifier: ^5.0.2 - version: 5.1.0 + version: 5.0.2 jasmine-reporters: specifier: ^2.4.0 version: 2.5.2 @@ -246,28 +246,28 @@ devDependencies: version: 1.0.1 raw-loader: specifier: ^4.0.2 - version: 4.0.2(webpack@5.90.3) + version: 4.0.2(webpack@5.90.1) regenerator-runtime: specifier: ^0.13.7 version: 0.13.11 sass: specifier: ^1.62.1 - version: 1.71.1 + version: 1.70.0 sass-loader: specifier: ^13.3.0 - version: 13.3.3(node-sass@9.0.0)(sass@1.71.1)(webpack@5.90.3) + version: 13.3.3(node-sass@9.0.0)(sass@1.70.0)(webpack@5.90.1) style-loader: specifier: ^3.3.3 - version: 3.3.4(webpack@5.90.3) + version: 3.3.4(webpack@5.90.1) webpack: specifier: ^5.83.1 - version: 5.90.3(webpack-cli@5.1.4) + version: 5.90.1(webpack-cli@5.1.4) webpack-cli: specifier: ^5.1.1 - version: 5.1.4(webpack-dev-server@3.11.3)(webpack@5.90.3) + version: 5.1.4(webpack-dev-server@3.11.3)(webpack@5.90.1) webpack-dev-server: specifier: ^3.11.0 - version: 3.11.3(webpack-cli@5.1.4)(webpack@5.90.3) + version: 3.11.3(webpack-cli@5.1.4)(webpack@5.90.1) webpack-merge: specifier: ^4.2.2 version: 4.2.2 @@ -282,12 +282,12 @@ packages: engines: {node: '>=0.10.0'} dev: true - /@ampproject/remapping@2.3.0: - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + /@ampproject/remapping@2.2.1: + resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} engines: {node: '>=6.0.0'} dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.22 dev: true /@babel/code-frame@7.12.11: @@ -308,20 +308,20 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/core@7.24.0: - resolution: {integrity: sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==} + /@babel/core@7.23.9: + resolution: {integrity: sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==} engines: {node: '>=6.9.0'} dependencies: - '@ampproject/remapping': 2.3.0 + '@ampproject/remapping': 2.2.1 '@babel/code-frame': 7.23.5 '@babel/generator': 7.23.6 '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) - '@babel/helpers': 7.24.0 - '@babel/parser': 7.24.0 - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.0 - '@babel/types': 7.24.0 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) + '@babel/helpers': 7.23.9 + '@babel/parser': 7.23.9 + '@babel/template': 7.23.9 + '@babel/traverse': 7.23.9 + '@babel/types': 7.23.9 convert-source-map: 2.0.0 debug: 4.3.4(supports-color@6.1.0) gensync: 1.0.0-beta.2 @@ -335,9 +335,9 @@ packages: resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 + '@babel/types': 7.23.9 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.22 jsesc: 2.5.2 dev: true @@ -345,14 +345,14 @@ packages: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.23.9 dev: true /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.23.9 dev: true /@babel/helper-compilation-targets@7.23.6: @@ -361,49 +361,49 @@ packages: dependencies: '@babel/compat-data': 7.23.5 '@babel/helper-validator-option': 7.23.5 - browserslist: 4.23.0 + browserslist: 4.22.3 lru-cache: 5.1.1 semver: 6.3.1 dev: true - /@babel/helper-create-class-features-plugin@7.24.0(@babel/core@7.24.0): - resolution: {integrity: sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g==} + /@babel/helper-create-class-features-plugin@7.23.10(@babel/core@7.23.9): + resolution: {integrity: sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.23.9 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.0) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.9) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 dev: true - /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.0): + /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.9): resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.23.9 '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 dev: true - /@babel/helper-define-polyfill-provider@0.5.0(@babel/core@7.24.0): + /@babel/helper-define-polyfill-provider@0.5.0(@babel/core@7.23.9): resolution: {integrity: sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.23.9 '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.22.5 debug: 4.3.4(supports-color@6.1.0) lodash.debounce: 4.0.8 resolve: 1.22.8 @@ -420,38 +420,38 @@ packages: resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.24.0 - '@babel/types': 7.24.0 + '@babel/template': 7.23.9 + '@babel/types': 7.23.9 dev: true /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.23.9 dev: true /@babel/helper-member-expression-to-functions@7.23.0: resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.23.9 dev: true /@babel/helper-module-imports@7.22.15: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.23.9 dev: true - /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.0): + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.23.9 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 @@ -463,33 +463,33 @@ packages: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.23.9 dev: true - /@babel/helper-plugin-utils@7.24.0: - resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} + /@babel/helper-plugin-utils@7.22.5: + resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.0): + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.9): resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.23.9 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-wrap-function': 7.22.20 dev: true - /@babel/helper-replace-supers@7.22.20(@babel/core@7.24.0): + /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.9): resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.23.9 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 @@ -499,21 +499,21 @@ packages: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.23.9 dev: true /@babel/helper-skip-transparent-expression-wrappers@7.22.5: resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.23.9 dev: true /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.23.9 dev: true /@babel/helper-string-parser@7.23.4: @@ -535,17 +535,17 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/helper-function-name': 7.23.0 - '@babel/template': 7.24.0 - '@babel/types': 7.24.0 + '@babel/template': 7.23.9 + '@babel/types': 7.23.9 dev: true - /@babel/helpers@7.24.0: - resolution: {integrity: sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==} + /@babel/helpers@7.23.9: + resolution: {integrity: sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.0 - '@babel/types': 7.24.0 + '@babel/template': 7.23.9 + '@babel/traverse': 7.23.9 + '@babel/types': 7.23.9 transitivePeerDependencies: - supports-color dev: true @@ -558,875 +558,875 @@ packages: chalk: 2.4.2 js-tokens: 4.0.0 - /@babel/parser@7.24.0: - resolution: {integrity: sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==} + /@babel/parser@7.23.9: + resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.23.9 dev: true - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.24.0): + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.24.0): + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.24.0) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.9) dev: true - /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7(@babel/core@7.24.0): + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7(@babel/core@7.23.9): resolution: {integrity: sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.23.9 '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.0): + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.9): resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.23.9 dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.0): + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.9): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.0): + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.9): resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.0): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.9): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.0): + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.9): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.0): + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.9): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.0): + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.9): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.24.0): + /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.24.0): + /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.0): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.9): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.0): + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.9): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.0): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.9): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.0): + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.9): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.0): + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.9): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.0): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.9): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.0): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.9): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.0): + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.9): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.0): + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.9): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.0): + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.9): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.0): + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.9): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.24.0): + /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-async-generator-functions@7.23.9(@babel/core@7.24.0): + /@babel/plugin-transform-async-generator-functions@7.23.9(@babel/core@7.23.9): resolution: {integrity: sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.23.9 '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.0) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.9) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.24.0): + /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.23.9 '@babel/helper-module-imports': 7.22.15 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.24.0): + /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.24.0): + /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.24.0): + /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.24.0): + /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.0) + '@babel/core': 7.23.9 + '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-classes@7.23.8(@babel/core@7.24.0): + /@babel/plugin-transform-classes@7.23.8(@babel/core@7.23.9): resolution: {integrity: sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.23.9 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.9) '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 dev: true - /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.24.0): + /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/template': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/template': 7.23.9 dev: true - /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.24.0): + /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.24.0): + /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.24.0): + /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.24.0): + /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.0) + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.24.0): + /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.23.9 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.24.0): + /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.0) + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-for-of@7.23.6(@babel/core@7.24.0): + /@babel/plugin-transform-for-of@7.23.6(@babel/core@7.23.9): resolution: {integrity: sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.24.0): + /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.23.9 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.24.0): + /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.0) + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-literals@7.23.3(@babel/core@7.24.0): + /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.24.0): + /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.0) + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.24.0): + /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.24.0): + /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.24.0): + /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 dev: true - /@babel/plugin-transform-modules-systemjs@7.23.9(@babel/core@7.24.0): + /@babel/plugin-transform-modules-systemjs@7.23.9(@babel/core@7.23.9): resolution: {integrity: sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.23.9 '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-identifier': 7.22.20 dev: true - /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.24.0): + /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.0): + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.9): resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.24.0): + /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.24.0): + /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.0) + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.24.0): + /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.0) + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-object-rest-spread@7.24.0(@babel/core@7.24.0): - resolution: {integrity: sha512-y/yKMm7buHpFFXfxVFS4Vk1ToRJDilIa6fKRioB9Vjichv58TDGXTvqV0dN7plobAmTW5eSEGXDngE+Mm+uO+w==} + /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.9): + resolution: {integrity: sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.23.5 - '@babel/core': 7.24.0 + '@babel/core': 7.23.9 '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.24.0): + /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.0) + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.24.0): + /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.0) + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.24.0): + /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.24.0): + /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.24.0): + /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.24.0): + /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.23.9 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.0) + '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.24.0): + /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.24.0): + /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 regenerator-transform: 0.15.2 dev: true - /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.24.0): + /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.24.0): + /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-spread@7.23.3(@babel/core@7.24.0): + /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.24.0): + /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.24.0): + /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.24.0): + /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.24.0): + /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.24.0): + /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.24.0): + /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.24.0): + /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/preset-env@7.24.0(@babel/core@7.24.0): - resolution: {integrity: sha512-ZxPEzV9IgvGn73iK0E6VB9/95Nd7aMFpbE0l8KQFDG70cOV9IxRP7Y2FUPmlK0v6ImlLqYX50iuZ3ZTVhOF2lA==} + /@babel/preset-env@7.23.9(@babel/core@7.23.9): + resolution: {integrity: sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.23.5 - '@babel/core': 7.24.0 + '@babel/core': 7.23.9 '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.7(@babel/core@7.24.0) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.0) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.0) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.0) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.0) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.0) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.0) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.0) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.0) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.0) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.0) - '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-async-generator-functions': 7.23.9(@babel/core@7.24.0) - '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.24.0) - '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.24.0) - '@babel/plugin-transform-classes': 7.23.8(@babel/core@7.24.0) - '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.24.0) - '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.24.0) - '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.24.0) - '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.24.0) - '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.24.0) - '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-modules-systemjs': 7.23.9(@babel/core@7.24.0) - '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.24.0) - '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.24.0) - '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.24.0) - '@babel/plugin-transform-object-rest-spread': 7.24.0(@babel/core@7.24.0) - '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.24.0) - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.24.0) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.24.0) - '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.24.0) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.0) - babel-plugin-polyfill-corejs2: 0.4.8(@babel/core@7.24.0) - babel-plugin-polyfill-corejs3: 0.9.0(@babel/core@7.24.0) - babel-plugin-polyfill-regenerator: 0.5.5(@babel/core@7.24.0) - core-js-compat: 3.36.0 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.7(@babel/core@7.23.9) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.9) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.9) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.9) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.9) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.9) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.9) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.9) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.9) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.9) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.9) + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-async-generator-functions': 7.23.9(@babel/core@7.23.9) + '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-classes': 7.23.8(@babel/core@7.23.9) + '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.23.9) + '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-modules-systemjs': 7.23.9(@babel/core@7.23.9) + '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.9) + '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.9) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.9) + babel-plugin-polyfill-corejs2: 0.4.8(@babel/core@7.23.9) + babel-plugin-polyfill-corejs3: 0.9.0(@babel/core@7.23.9) + babel-plugin-polyfill-regenerator: 0.5.5(@babel/core@7.23.9) + core-js-compat: 3.35.1 semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.0): + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.9): resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/types': 7.24.0 + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/types': 7.23.9 esutils: 2.0.3 dev: true - /@babel/register@7.23.7(@babel/core@7.24.0): + /@babel/register@7.23.7(@babel/core@7.23.9): resolution: {integrity: sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.23.9 clone-deep: 4.0.1 find-cache-dir: 2.1.0 make-dir: 2.1.0 @@ -1438,32 +1438,32 @@ packages: resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} dev: true - /@babel/runtime-corejs3@7.24.0: - resolution: {integrity: sha512-HxiRMOncx3ly6f3fcZ1GVKf+/EROcI9qwPgmij8Czqy6Okm/0T37T4y2ZIlLUuEUFjtM7NRsfdCO8Y3tAiJZew==} + /@babel/runtime-corejs3@7.23.9: + resolution: {integrity: sha512-oeOFTrYWdWXCvXGB5orvMTJ6gCZ9I6FBjR+M38iKNXCsPxr4xT0RTdg5uz1H7QP8pp74IzPtwritEr+JscqHXQ==} engines: {node: '>=6.9.0'} dependencies: - core-js-pure: 3.36.0 + core-js-pure: 3.35.1 regenerator-runtime: 0.14.1 dev: false - /@babel/runtime@7.24.0: - resolution: {integrity: sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==} + /@babel/runtime@7.23.9: + resolution: {integrity: sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.1 dev: true - /@babel/template@7.24.0: - resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} + /@babel/template@7.23.9: + resolution: {integrity: sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.23.5 - '@babel/parser': 7.24.0 - '@babel/types': 7.24.0 + '@babel/parser': 7.23.9 + '@babel/types': 7.23.9 dev: true - /@babel/traverse@7.24.0: - resolution: {integrity: sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==} + /@babel/traverse@7.23.9: + resolution: {integrity: sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.23.5 @@ -1472,16 +1472,16 @@ packages: '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.24.0 - '@babel/types': 7.24.0 + '@babel/parser': 7.23.9 + '@babel/types': 7.23.9 debug: 4.3.4(supports-color@6.1.0) globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types@7.24.0: - resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} + /@babel/types@7.23.9: + resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.23.4 @@ -1524,6 +1524,11 @@ packages: - supports-color dev: true + /@fastify/busboy@2.1.0: + resolution: {integrity: sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==} + engines: {node: '>=14'} + dev: false + /@gar/promisify@1.1.3: resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} dev: true @@ -1643,7 +1648,7 @@ packages: engines: {node: '>= 10.14.2'} dependencies: '@jest/types': 26.6.2 - '@types/node': 20.11.24 + '@types/node': 20.11.16 chalk: 4.1.2 jest-message-util: 26.6.2 jest-util: 26.6.2 @@ -1659,7 +1664,7 @@ packages: '@jest/test-result': 26.6.2 '@jest/transform': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 20.11.24 + '@types/node': 20.11.16 ansi-escapes: 4.3.2 chalk: 4.1.2 exit: 0.1.2 @@ -1696,7 +1701,7 @@ packages: dependencies: '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 20.11.24 + '@types/node': 20.11.16 jest-mock: 26.6.2 dev: true @@ -1706,7 +1711,7 @@ packages: dependencies: '@jest/types': 26.6.2 '@sinonjs/fake-timers': 6.0.1 - '@types/node': 20.11.24 + '@types/node': 20.11.16 jest-message-util: 26.6.2 jest-mock: 26.6.2 jest-util: 26.6.2 @@ -1739,7 +1744,7 @@ packages: istanbul-lib-instrument: 4.0.3 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.7 + istanbul-reports: 3.1.6 jest-haste-map: 26.6.2 jest-resolve: 26.6.2 jest-util: 26.6.2 @@ -1795,7 +1800,7 @@ packages: resolution: {integrity: sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==} engines: {node: '>= 10.14.2'} dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.23.9 '@jest/types': 26.6.2 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 @@ -1829,45 +1834,45 @@ packages: dependencies: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.11.24 + '@types/node': 20.11.16 '@types/yargs': 15.0.19 chalk: 4.1.2 dev: true - /@jridgewell/gen-mapping@0.3.5: - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} engines: {node: '>=6.0.0'} dependencies: - '@jridgewell/set-array': 1.2.1 + '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.22 dev: true - /@jridgewell/resolve-uri@3.1.2: - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} engines: {node: '>=6.0.0'} dev: true - /@jridgewell/set-array@1.2.1: - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} engines: {node: '>=6.0.0'} dev: true /@jridgewell/source-map@0.3.5: resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.22 dev: true /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} dev: true - /@jridgewell/trace-mapping@0.3.25: - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + /@jridgewell/trace-mapping@0.3.22: + resolution: {integrity: sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==} dependencies: - '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 dev: true @@ -1875,7 +1880,7 @@ packages: resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} dependencies: '@gar/promisify': 1.1.3 - semver: 7.6.0 + semver: 7.5.4 dev: true /@npmcli/fs@2.1.2: @@ -1883,7 +1888,7 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: '@gar/promisify': 1.1.3 - semver: 7.6.0 + semver: 7.5.4 dev: true /@npmcli/move-file@1.1.2: @@ -1947,24 +1952,24 @@ packages: resolution: {integrity: sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==} dev: true - /@swagger-api/apidom-ast@0.96.0: - resolution: {integrity: sha512-JaXro7IH2yPHomA/t6R1wj551GmKl/qjRkQ1729l7umssmubO2yprAbH8GEF5SqtTEicihXF2DlwgUMs/+YyNg==} + /@swagger-api/apidom-ast@0.93.0: + resolution: {integrity: sha512-iGrhEXdlgFEQYX4bAootcX+FaeLXruoJnHCFTO6IQ7yKlml3QIl1G9l2KwTzHybHQ70u3nfgE3ovLGOiy8NM5g==} dependencies: - '@babel/runtime-corejs3': 7.24.0 - '@swagger-api/apidom-error': 0.96.0 - '@types/ramda': 0.29.11 + '@babel/runtime-corejs3': 7.23.9 + '@swagger-api/apidom-error': 0.93.0 + '@types/ramda': 0.29.10 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) unraw: 3.0.0 dev: false - /@swagger-api/apidom-core@0.96.0: - resolution: {integrity: sha512-FOZqbH/2H5f7UiTvN2b7O5r0MCCUiICimhNVi5bbaf3ATWFDpL7AKtGFd3EmW8Er8ajpcxI13iZpoBFPtUtnsQ==} + /@swagger-api/apidom-core@0.93.0: + resolution: {integrity: sha512-OxbLBcnJQ8seFmeKqM2KDMkLJox0YTEhnLq3DnCyvOXnzVHdau+wNIhYSUc1+ZzrjsWqJLU0ntS3LEPb7ttnGw==} dependencies: - '@babel/runtime-corejs3': 7.24.0 - '@swagger-api/apidom-ast': 0.96.0 - '@swagger-api/apidom-error': 0.96.0 - '@types/ramda': 0.29.11 + '@babel/runtime-corejs3': 7.23.9 + '@swagger-api/apidom-ast': 0.93.0 + '@swagger-api/apidom-error': 0.93.0 + '@types/ramda': 0.29.10 minim: 0.23.8 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) @@ -1972,343 +1977,343 @@ packages: stampit: 4.3.2 dev: false - /@swagger-api/apidom-error@0.96.0: - resolution: {integrity: sha512-dDaGOUVx5pp/mm0c6Y5aBIXVMvVdL3jP6SnnPCGXq20AqkDNDyihJU28VsBrPjl05/tMV4IAHW26qQAMztvahA==} + /@swagger-api/apidom-error@0.93.0: + resolution: {integrity: sha512-vJiG0IZS8lOhXn8ZPSsKMh0mun6lOB7m4I8Ju6XeWR0khB7dbp15PAtk6xiFjekbWDa7hPn9584hp0YqXb6p5Q==} dependencies: - '@babel/runtime-corejs3': 7.24.0 + '@babel/runtime-corejs3': 7.23.9 dev: false - /@swagger-api/apidom-json-pointer@0.96.0: - resolution: {integrity: sha512-AesKhx3PhicgrIbal4X5MLgX5s/Lom50AlYy9r4sFAu8ke3H+IIvGoJ5so2X6UcJJ17CURiEks+oAEM2pMnBUA==} + /@swagger-api/apidom-json-pointer@0.93.0: + resolution: {integrity: sha512-DnZb/xNKzgBtjKk+5KFMEp5olCeH1wEHbx1YaNY4DDRRtnafphtMxd5/xmapWKj7Glfjfswxi3Uo4m/FAasKPA==} dependencies: - '@babel/runtime-corejs3': 7.24.0 - '@swagger-api/apidom-core': 0.96.0 - '@swagger-api/apidom-error': 0.96.0 - '@types/ramda': 0.29.11 + '@babel/runtime-corejs3': 7.23.9 + '@swagger-api/apidom-core': 0.93.0 + '@swagger-api/apidom-error': 0.93.0 + '@types/ramda': 0.29.10 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) dev: false - /@swagger-api/apidom-ns-api-design-systems@0.96.0: - resolution: {integrity: sha512-TTZAIiOAZz6NXtGiTQ/XIHE6VuRlqI25ehzM3GDXur+r74/rPmzGH9E0CEzfj+bprd2QXCrus50pqwyGMPJd9Q==} + /@swagger-api/apidom-ns-api-design-systems@0.93.0: + resolution: {integrity: sha512-f3RcUBmZjqmADubnV+yslvtbOJGV3jeMpQuzM9ByS3ASVg+XU1YxKkH5em8BcW3SDj0lqDiQ2ggA9kfPLSuV8A==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.24.0 - '@swagger-api/apidom-core': 0.96.0 - '@swagger-api/apidom-error': 0.96.0 - '@swagger-api/apidom-ns-openapi-3-1': 0.96.0 - '@types/ramda': 0.29.11 + '@babel/runtime-corejs3': 7.23.9 + '@swagger-api/apidom-core': 0.93.0 + '@swagger-api/apidom-error': 0.93.0 + '@swagger-api/apidom-ns-openapi-3-1': 0.93.0 + '@types/ramda': 0.29.10 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) - ts-mixer: 6.0.4 + ts-mixer: 6.0.3 dev: false optional: true - /@swagger-api/apidom-ns-asyncapi-2@0.96.0: - resolution: {integrity: sha512-I+1Bc+U0U/yaYEBNmEe58tr/ca7HMJiN2DHXFKcuZrub27Anwp389LxrknkeMoeb1PBTcJqRis4fVXiQF06EJQ==} + /@swagger-api/apidom-ns-asyncapi-2@0.93.0: + resolution: {integrity: sha512-cEAFsVo/CiPFlw9FAeu/9WR6WixQKxH50SHNvmy8OsCOgYcl5VHF06majZTFCrgZlpCNXPJh9m5A2pUoHtxxUw==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.24.0 - '@swagger-api/apidom-core': 0.96.0 - '@swagger-api/apidom-ns-json-schema-draft-7': 0.96.0 - '@types/ramda': 0.29.11 - ramda: 0.29.1 - ramda-adjunct: 4.1.1(ramda@0.29.1) - ts-mixer: 6.0.4 - dev: false - optional: true - - /@swagger-api/apidom-ns-json-schema-draft-4@0.96.0: - resolution: {integrity: sha512-bEQI/u15L6NLF7IW3DHEstJW64f8DSYqDR4vHdgrJ/GyA/c+N4K1St1LhKfA+WuBs7DX3JNKNZ3APAkq5gqWTA==} - dependencies: - '@babel/runtime-corejs3': 7.24.0 - '@swagger-api/apidom-ast': 0.96.0 - '@swagger-api/apidom-core': 0.96.0 - '@types/ramda': 0.29.11 - ramda: 0.29.1 - ramda-adjunct: 4.1.1(ramda@0.29.1) - stampit: 4.3.2 - dev: false - - /@swagger-api/apidom-ns-json-schema-draft-6@0.96.0: - resolution: {integrity: sha512-F6AsqMQjQd9NlR8AJd3fpsV1nFPAGgsw9g7DyY8uhbj77wUfoYhQTiTexBnq4GlhbXref4SQjnGZvi6AWwV3vw==} - requiresBuild: true - dependencies: - '@babel/runtime-corejs3': 7.24.0 - '@swagger-api/apidom-core': 0.96.0 - '@swagger-api/apidom-error': 0.96.0 - '@swagger-api/apidom-ns-json-schema-draft-4': 0.96.0 - '@types/ramda': 0.29.11 + '@babel/runtime-corejs3': 7.23.9 + '@swagger-api/apidom-core': 0.93.0 + '@swagger-api/apidom-ns-json-schema-draft-7': 0.93.0 + '@types/ramda': 0.29.10 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) stampit: 4.3.2 dev: false optional: true - /@swagger-api/apidom-ns-json-schema-draft-7@0.96.0: - resolution: {integrity: sha512-9yTNy4zDpoaTuCYsmliHh12ScyXgLyUuegXRVEE0ca0G0MqkVWIN5Si3EYnGIK5THGbz3c+NP1caHI8sl0+QMw==} + /@swagger-api/apidom-ns-json-schema-draft-4@0.93.0: + resolution: {integrity: sha512-dBY7LHrWZ+ydsgD00fQtRq/wOAZjdUh2+PE7/Xe3tYPeD1tv3DZ4F1tcVQeiyGBskF7vReUxUwnQo4uPJipPzA==} + dependencies: + '@babel/runtime-corejs3': 7.23.9 + '@swagger-api/apidom-ast': 0.93.0 + '@swagger-api/apidom-core': 0.93.0 + '@types/ramda': 0.29.10 + ramda: 0.29.1 + ramda-adjunct: 4.1.1(ramda@0.29.1) + stampit: 4.3.2 + dev: false + + /@swagger-api/apidom-ns-json-schema-draft-6@0.93.0: + resolution: {integrity: sha512-u0e0Nq9nuuZyGoOCEjVQJKe5NdsIWezH+q8ev3dABlUNEiWMbtFLS9TvHFBeU11plCsyxjJyYRg8TjnI2Q8xzQ==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.24.0 - '@swagger-api/apidom-core': 0.96.0 - '@swagger-api/apidom-error': 0.96.0 - '@swagger-api/apidom-ns-json-schema-draft-6': 0.96.0 - '@types/ramda': 0.29.11 + '@babel/runtime-corejs3': 7.23.9 + '@swagger-api/apidom-core': 0.93.0 + '@swagger-api/apidom-error': 0.93.0 + '@swagger-api/apidom-ns-json-schema-draft-4': 0.93.0 + '@types/ramda': 0.29.10 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) stampit: 4.3.2 dev: false optional: true - /@swagger-api/apidom-ns-openapi-2@0.96.0: - resolution: {integrity: sha512-Q85DT8OMkvP9cm8+CmHHZxBS1+uu/GJVZ0ypwW60aDysUkBNcbcEexCRvlGxF5QBr7sx2sQS+86qPusU4oMFmA==} + /@swagger-api/apidom-ns-json-schema-draft-7@0.93.0: + resolution: {integrity: sha512-NkHhyezG5ghx5FhclbIzCwo1wH4gmI8KwMnEuorsXJhanmnkl+JXzDSrpCM3Orvezl+4DEnBeMLyLfbnQMMknw==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.24.0 - '@swagger-api/apidom-core': 0.96.0 - '@swagger-api/apidom-error': 0.96.0 - '@swagger-api/apidom-ns-json-schema-draft-4': 0.96.0 - '@types/ramda': 0.29.11 + '@babel/runtime-corejs3': 7.23.9 + '@swagger-api/apidom-core': 0.93.0 + '@swagger-api/apidom-error': 0.93.0 + '@swagger-api/apidom-ns-json-schema-draft-6': 0.93.0 + '@types/ramda': 0.29.10 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) - ts-mixer: 6.0.4 + stampit: 4.3.2 dev: false optional: true - /@swagger-api/apidom-ns-openapi-3-0@0.96.0: - resolution: {integrity: sha512-xiO+u/VtKRNi/KD8rkqcezUXY6JxVcPEpEIiTWkjy6LwamNu01futS/bsn6CnTN5ZbGO+Ikm5GQyYtlruy5fTw==} - dependencies: - '@babel/runtime-corejs3': 7.24.0 - '@swagger-api/apidom-core': 0.96.0 - '@swagger-api/apidom-error': 0.96.0 - '@swagger-api/apidom-ns-json-schema-draft-4': 0.96.0 - '@types/ramda': 0.29.11 - ramda: 0.29.1 - ramda-adjunct: 4.1.1(ramda@0.29.1) - ts-mixer: 6.0.4 - dev: false - - /@swagger-api/apidom-ns-openapi-3-1@0.96.0: - resolution: {integrity: sha512-B9fviQaokRZhds3+rSYMHYI8pen/MAShRbfRlQRLvDEXnOy+Fo7cV8lbBbaG35ldnLPG2rHl0LS0qhyJd8z3Eg==} - dependencies: - '@babel/runtime-corejs3': 7.24.0 - '@swagger-api/apidom-ast': 0.96.0 - '@swagger-api/apidom-core': 0.96.0 - '@swagger-api/apidom-ns-openapi-3-0': 0.96.0 - '@types/ramda': 0.29.11 - ramda: 0.29.1 - ramda-adjunct: 4.1.1(ramda@0.29.1) - ts-mixer: 6.0.4 - dev: false - - /@swagger-api/apidom-ns-workflows-1@0.96.0: - resolution: {integrity: sha512-PaVIcCFuZfVcVOsuk2Vk9p1EmMgkx5OYXGG0QlsJI94OiJiLPxJBUYCELYtKFwbjCPKqbe2T7uyyVEEAo8OyJQ==} + /@swagger-api/apidom-ns-openapi-2@0.93.0: + resolution: {integrity: sha512-sUZgGyuraLP7rarBp8CISdDLuO8n8L9Q+G8XMiYgl53HGRUY5a7HSGnybcQPpyNPQSNTFKigytSjvsSu8h33ZQ==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.24.0 - '@swagger-api/apidom-core': 0.96.0 - '@swagger-api/apidom-ns-openapi-3-1': 0.96.0 - '@types/ramda': 0.29.11 + '@babel/runtime-corejs3': 7.23.9 + '@swagger-api/apidom-core': 0.93.0 + '@swagger-api/apidom-error': 0.93.0 + '@swagger-api/apidom-ns-json-schema-draft-4': 0.93.0 + '@types/ramda': 0.29.10 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) - ts-mixer: 6.0.4 + stampit: 4.3.2 dev: false optional: true - /@swagger-api/apidom-parser-adapter-api-design-systems-json@0.96.0: - resolution: {integrity: sha512-nmOc5f37Jcu8W1KNUnWPEUPHBhlInlxA+gzCcKG/3kyedKm+Oh8x4fDqhaW/MXUiWuI6K0QZ8MTxaYUqez2ztA==} + /@swagger-api/apidom-ns-openapi-3-0@0.93.0: + resolution: {integrity: sha512-zmyMUg9+BocHxJuNbUmJCYi/ArOv38Am3/oSkh/5+ANAYOzB1O+ukVvdy7pHDxfZId6KRiP9ZWW6M7VBxz/t/g==} + dependencies: + '@babel/runtime-corejs3': 7.23.9 + '@swagger-api/apidom-core': 0.93.0 + '@swagger-api/apidom-error': 0.93.0 + '@swagger-api/apidom-ns-json-schema-draft-4': 0.93.0 + '@types/ramda': 0.29.10 + ramda: 0.29.1 + ramda-adjunct: 4.1.1(ramda@0.29.1) + stampit: 4.3.2 + dev: false + + /@swagger-api/apidom-ns-openapi-3-1@0.93.0: + resolution: {integrity: sha512-kUkdcNmJloqqhvEDIAGvamyh1fQrITKGFUqRj5v0YWch/hKrfYk61eHG7igWxnVv3r/wDdM9T3uDWlBefMsj1g==} + dependencies: + '@babel/runtime-corejs3': 7.23.9 + '@swagger-api/apidom-ast': 0.93.0 + '@swagger-api/apidom-core': 0.93.0 + '@swagger-api/apidom-ns-openapi-3-0': 0.93.0 + '@types/ramda': 0.29.10 + ramda: 0.29.1 + ramda-adjunct: 4.1.1(ramda@0.29.1) + stampit: 4.3.2 + dev: false + + /@swagger-api/apidom-ns-workflows-1@0.93.0: + resolution: {integrity: sha512-dL92YBMULuI6HiuOVnB24ozOp4P02xN6Zw8tWzTm/H/W5EWVdso8krq5utjuSTFcurj4rODkPQxY8WRKuIuMDw==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.24.0 - '@swagger-api/apidom-core': 0.96.0 - '@swagger-api/apidom-ns-api-design-systems': 0.96.0 - '@swagger-api/apidom-parser-adapter-json': 0.96.0 - '@types/ramda': 0.29.11 + '@babel/runtime-corejs3': 7.23.9 + '@swagger-api/apidom-core': 0.93.0 + '@swagger-api/apidom-ns-openapi-3-1': 0.93.0 + '@types/ramda': 0.29.10 + ramda: 0.29.1 + ramda-adjunct: 4.1.1(ramda@0.29.1) + stampit: 4.3.2 + dev: false + optional: true + + /@swagger-api/apidom-parser-adapter-api-design-systems-json@0.93.0: + resolution: {integrity: sha512-lKaSt9YOXbhiBMTJcSCIF0C1fjyWLxKrTWkvbFwwqCcjeMt5vg8N/0nKqQeQm4mcZ946mqnssRVpPbJfWEoIWA==} + requiresBuild: true + dependencies: + '@babel/runtime-corejs3': 7.23.9 + '@swagger-api/apidom-core': 0.93.0 + '@swagger-api/apidom-ns-api-design-systems': 0.93.0 + '@swagger-api/apidom-parser-adapter-json': 0.93.0 + '@types/ramda': 0.29.10 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) dev: false optional: true - /@swagger-api/apidom-parser-adapter-api-design-systems-yaml@0.96.0: - resolution: {integrity: sha512-2Mv320Cmhs8u79GykuxbwhRUgy1MoOcEmeyLjHPftpEZI7BrsSQn9CbN/J/5tga5Z8Un/KgU9YffN/XSvLhOKg==} + /@swagger-api/apidom-parser-adapter-api-design-systems-yaml@0.93.0: + resolution: {integrity: sha512-fjIQs0vRP/46M8kwQ3UGpq8piMboIXvrJqu1lDTylS5PYzE9qXpx1BhESZPtBwuoR9kvVYbumlD+BgjCuyzc8g==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.24.0 - '@swagger-api/apidom-core': 0.96.0 - '@swagger-api/apidom-ns-api-design-systems': 0.96.0 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 0.96.0 - '@types/ramda': 0.29.11 + '@babel/runtime-corejs3': 7.23.9 + '@swagger-api/apidom-core': 0.93.0 + '@swagger-api/apidom-ns-api-design-systems': 0.93.0 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 0.93.0 + '@types/ramda': 0.29.10 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) dev: false optional: true - /@swagger-api/apidom-parser-adapter-asyncapi-json-2@0.96.0: - resolution: {integrity: sha512-ABfbr8ho6s4Edu6P1kNF8WTIPSlzGQ45T36Vg/AvPpmMoKOjZPeUKqs10Nw7Eoe91LJvdm8PlofNG19o8aRFsA==} + /@swagger-api/apidom-parser-adapter-asyncapi-json-2@0.93.0: + resolution: {integrity: sha512-65Io5+Zy5LBJTvRt3yKBXXfk5M/DCq3mDUSiVcZuyRPHGNi9ViMTdEFCH3rzF0x2v0omG+6OqryndIBVAXEo/g==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.24.0 - '@swagger-api/apidom-core': 0.96.0 - '@swagger-api/apidom-ns-asyncapi-2': 0.96.0 - '@swagger-api/apidom-parser-adapter-json': 0.96.0 - '@types/ramda': 0.29.11 + '@babel/runtime-corejs3': 7.23.9 + '@swagger-api/apidom-core': 0.93.0 + '@swagger-api/apidom-ns-asyncapi-2': 0.93.0 + '@swagger-api/apidom-parser-adapter-json': 0.93.0 + '@types/ramda': 0.29.10 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) dev: false optional: true - /@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@0.96.0: - resolution: {integrity: sha512-6xJedcLukkO/ZvUZnMPxZ5t/pcIjVOSzzysTNNcDKEsI4oNfoV2YjT315m+fUM/79W6e+aA9IlKygzj0s6ysVg==} + /@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@0.93.0: + resolution: {integrity: sha512-WwGH6StA7kplkTAaV43MziJeJonnJCW6pBOp1bwoEhGaeYO/Yd/dpoFZVDfxAnXJYmDnzk7pqjJm3U6A9BCPcw==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.24.0 - '@swagger-api/apidom-core': 0.96.0 - '@swagger-api/apidom-ns-asyncapi-2': 0.96.0 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 0.96.0 - '@types/ramda': 0.29.11 + '@babel/runtime-corejs3': 7.23.9 + '@swagger-api/apidom-core': 0.93.0 + '@swagger-api/apidom-ns-asyncapi-2': 0.93.0 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 0.93.0 + '@types/ramda': 0.29.10 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) dev: false optional: true - /@swagger-api/apidom-parser-adapter-json@0.96.0: - resolution: {integrity: sha512-k/XdEKP2+LJupwLvKtxkM6Ol7pYei3XinvhTsU+F1u8VQUpYTOHMVQ3vC5p/wtISOq+7Q0zHR0QANHVMbOudQg==} + /@swagger-api/apidom-parser-adapter-json@0.93.0: + resolution: {integrity: sha512-FNA36GAqG1EMErkRhMFb4GeW8fuYdzRkOwQmTLWZfKIUzLYOvVMbki8R2dE8ruNs/Gf5VhiQH85mLaCyLwp3xw==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.24.0 - '@swagger-api/apidom-ast': 0.96.0 - '@swagger-api/apidom-core': 0.96.0 - '@swagger-api/apidom-error': 0.96.0 - '@types/ramda': 0.29.11 + '@babel/runtime-corejs3': 7.23.9 + '@swagger-api/apidom-ast': 0.93.0 + '@swagger-api/apidom-core': 0.93.0 + '@swagger-api/apidom-error': 0.93.0 + '@types/ramda': 0.29.10 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) tree-sitter: 0.20.4 - tree-sitter-json: 0.20.2 + tree-sitter-json: 0.20.1 web-tree-sitter: 0.20.3 dev: false optional: true - /@swagger-api/apidom-parser-adapter-openapi-json-2@0.96.0: - resolution: {integrity: sha512-bReqp5ncvgxD+nkX8cj7ILE0Xp3Vzocei96CMtwn1OU6FGSIu8IfjfJ0qSDavSJMxxhMXuCW85U+oZ+j9BzMLQ==} + /@swagger-api/apidom-parser-adapter-openapi-json-2@0.93.0: + resolution: {integrity: sha512-bBEYiZdiYQQoubZVdkHw3I/qwgI3nvCcrbFAlqELvpFgRZywJzXssxqHqFOR8clvoX8+JVYx5E/MgSC6Rn77uQ==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.24.0 - '@swagger-api/apidom-core': 0.96.0 - '@swagger-api/apidom-ns-openapi-2': 0.96.0 - '@swagger-api/apidom-parser-adapter-json': 0.96.0 - '@types/ramda': 0.29.11 + '@babel/runtime-corejs3': 7.23.9 + '@swagger-api/apidom-core': 0.93.0 + '@swagger-api/apidom-ns-openapi-2': 0.93.0 + '@swagger-api/apidom-parser-adapter-json': 0.93.0 + '@types/ramda': 0.29.10 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) dev: false optional: true - /@swagger-api/apidom-parser-adapter-openapi-json-3-0@0.96.0: - resolution: {integrity: sha512-T07rPrjUBCCFuh3Xr7CGu+pjphokioMaxuAvQqtn7XgRCBbL76XFONlS1OSl3WATtrW7Sq+yxN5R3/f5C9evgA==} + /@swagger-api/apidom-parser-adapter-openapi-json-3-0@0.93.0: + resolution: {integrity: sha512-UlM924syGaSa5c35OuDC614xBsjIm5DaWUqshFf6DmmP5iDZFQUh0cyIfLDD5/n1wZvAtiIL040zwfTBrK0Udw==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.24.0 - '@swagger-api/apidom-core': 0.96.0 - '@swagger-api/apidom-ns-openapi-3-0': 0.96.0 - '@swagger-api/apidom-parser-adapter-json': 0.96.0 - '@types/ramda': 0.29.11 + '@babel/runtime-corejs3': 7.23.9 + '@swagger-api/apidom-core': 0.93.0 + '@swagger-api/apidom-ns-openapi-3-0': 0.93.0 + '@swagger-api/apidom-parser-adapter-json': 0.93.0 + '@types/ramda': 0.29.10 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) dev: false optional: true - /@swagger-api/apidom-parser-adapter-openapi-json-3-1@0.96.0: - resolution: {integrity: sha512-ovbpHrFuN6l2zJdUOmjF5y6wIZB13SanhvQpaOIALW8J9KYxkjhQH+h3lceYKUdTWfrdPkmmV150DAlcOy2alQ==} + /@swagger-api/apidom-parser-adapter-openapi-json-3-1@0.93.0: + resolution: {integrity: sha512-9rqOLv0ip7knvbdmk8hNa1aN/kaeIIoUKdwO6GaMW9eFh2cvIDyriLxp+FwTatnwhlJjWMwp7Mfyv62WT0cfKQ==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.24.0 - '@swagger-api/apidom-core': 0.96.0 - '@swagger-api/apidom-ns-openapi-3-1': 0.96.0 - '@swagger-api/apidom-parser-adapter-json': 0.96.0 - '@types/ramda': 0.29.11 + '@babel/runtime-corejs3': 7.23.9 + '@swagger-api/apidom-core': 0.93.0 + '@swagger-api/apidom-ns-openapi-3-1': 0.93.0 + '@swagger-api/apidom-parser-adapter-json': 0.93.0 + '@types/ramda': 0.29.10 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) dev: false optional: true - /@swagger-api/apidom-parser-adapter-openapi-yaml-2@0.96.0: - resolution: {integrity: sha512-wJmq0/jQVzjxMqJMGWL8u/HyeVaaa7ImQcGe4z+eOR2vhLji0qbNu3S1WSP+n5OAhotHWAMfhHHZkoi0y+O5kQ==} + /@swagger-api/apidom-parser-adapter-openapi-yaml-2@0.93.0: + resolution: {integrity: sha512-8laGpR9MrFBsBDmGNSexKdvLvGnr5QnjhqOSqFIViK/WFG+zEpE5SsWyJkCQJE4EJ5IvxVA8BfBrjjUqe0Z5uA==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.24.0 - '@swagger-api/apidom-core': 0.96.0 - '@swagger-api/apidom-ns-openapi-2': 0.96.0 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 0.96.0 - '@types/ramda': 0.29.11 + '@babel/runtime-corejs3': 7.23.9 + '@swagger-api/apidom-core': 0.93.0 + '@swagger-api/apidom-ns-openapi-2': 0.93.0 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 0.93.0 + '@types/ramda': 0.29.10 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) dev: false optional: true - /@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@0.96.0: - resolution: {integrity: sha512-7Q82o/6XbiX9o+pqDC4iRr8onsx2HZoo6O54FA0YGc2nW9V5vEWXDZxp76psPlQA6oShkOT3ehd/wjz7ERUysA==} + /@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@0.93.0: + resolution: {integrity: sha512-Tf8eX+MzTsCijXbE5lkfF0/wG5VkvCPGg7hZV7ZGYrzQ584R/Z0xkgHEu3Atqu3Ji9XPGP0u6LqWM/wATuWK0A==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.24.0 - '@swagger-api/apidom-core': 0.96.0 - '@swagger-api/apidom-ns-openapi-3-0': 0.96.0 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 0.96.0 - '@types/ramda': 0.29.11 + '@babel/runtime-corejs3': 7.23.9 + '@swagger-api/apidom-core': 0.93.0 + '@swagger-api/apidom-ns-openapi-3-0': 0.93.0 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 0.93.0 + '@types/ramda': 0.29.10 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) dev: false optional: true - /@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@0.96.0: - resolution: {integrity: sha512-T2Z1X8iuxTkx8nhFKaW2RbJlytWqetXTzqMvCfjZsvFI9iyi1fVKeIkPNa06mFvGPWTeNuzd1tJOjZZjS/ljNA==} + /@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@0.93.0: + resolution: {integrity: sha512-1Yt3SmgV2x5PAV8NeXIztuRWbIMhAU3cs3SIDJlObzFxXitnsf3cVIRrFTNrK28mqhHU3XNVTat5GrGtlJeD8Q==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.24.0 - '@swagger-api/apidom-core': 0.96.0 - '@swagger-api/apidom-ns-openapi-3-1': 0.96.0 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 0.96.0 - '@types/ramda': 0.29.11 + '@babel/runtime-corejs3': 7.23.9 + '@swagger-api/apidom-core': 0.93.0 + '@swagger-api/apidom-ns-openapi-3-1': 0.93.0 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 0.93.0 + '@types/ramda': 0.29.10 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) dev: false optional: true - /@swagger-api/apidom-parser-adapter-workflows-json-1@0.96.0: - resolution: {integrity: sha512-DY2CaEmM0VQ1nbNJAU1HHyHbCSPKRihhVx+5BTd1L4l8/092e0wXbNip0xLxH8jgJaOkAU85I8DXTIanlPsSvg==} + /@swagger-api/apidom-parser-adapter-workflows-json-1@0.93.0: + resolution: {integrity: sha512-tUm049GrXtBHoP8rcLTp+yz5EbJkq/stSgHb4nUNyFH00MKtMkP3j3KnXSCQz2w6br5gzv54DDCKwqPAh7IjuA==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.24.0 - '@swagger-api/apidom-core': 0.96.0 - '@swagger-api/apidom-ns-workflows-1': 0.96.0 - '@swagger-api/apidom-parser-adapter-json': 0.96.0 - '@types/ramda': 0.29.11 + '@babel/runtime-corejs3': 7.23.9 + '@swagger-api/apidom-core': 0.93.0 + '@swagger-api/apidom-ns-workflows-1': 0.93.0 + '@swagger-api/apidom-parser-adapter-json': 0.93.0 + '@types/ramda': 0.29.10 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) dev: false optional: true - /@swagger-api/apidom-parser-adapter-workflows-yaml-1@0.96.0: - resolution: {integrity: sha512-Mj55ejT5TncLzANHw9VvopnN+xPjAeBhyw7Vt6FlDnPRJXpFwffhMmHZJo78N3gbwggM9gKPJsJLLjnW57Rt8Q==} + /@swagger-api/apidom-parser-adapter-workflows-yaml-1@0.93.0: + resolution: {integrity: sha512-8knwzutGHH+69061yHY0xUwmMW/wWUP5jjn4CVDctxYS7BYXb9iaH84VuKJRuDm5M5L/C6yJHgdoWo4IHnpVBw==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.24.0 - '@swagger-api/apidom-core': 0.96.0 - '@swagger-api/apidom-ns-workflows-1': 0.96.0 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 0.96.0 - '@types/ramda': 0.29.11 + '@babel/runtime-corejs3': 7.23.9 + '@swagger-api/apidom-core': 0.93.0 + '@swagger-api/apidom-ns-workflows-1': 0.93.0 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 0.93.0 + '@types/ramda': 0.29.10 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) dev: false optional: true - /@swagger-api/apidom-parser-adapter-yaml-1-2@0.96.0: - resolution: {integrity: sha512-FI8uQEAU191TVz/cartkQO5uu+Psv+YxrCo7d/JrY5JsODIo+PuLfoTuOHM3rnZckWGCIgCIo2LWX4A58nEpiQ==} + /@swagger-api/apidom-parser-adapter-yaml-1-2@0.93.0: + resolution: {integrity: sha512-0z/d/t19f78o4CTxtpMMLdi+7js+JNz7s4/WSJXZ0Q0k5O4pEhlARMMEqJXE4qUXxTGnoXbi4sQY9FV/yA5V0Q==} requiresBuild: true dependencies: - '@babel/runtime-corejs3': 7.24.0 - '@swagger-api/apidom-ast': 0.96.0 - '@swagger-api/apidom-core': 0.96.0 - '@swagger-api/apidom-error': 0.96.0 - '@types/ramda': 0.29.11 + '@babel/runtime-corejs3': 7.23.9 + '@swagger-api/apidom-ast': 0.93.0 + '@swagger-api/apidom-core': 0.93.0 + '@swagger-api/apidom-error': 0.93.0 + '@types/ramda': 0.29.10 ramda: 0.29.1 ramda-adjunct: 4.1.1(ramda@0.29.1) tree-sitter: 0.20.4 @@ -2317,12 +2322,12 @@ packages: dev: false optional: true - /@swagger-api/apidom-reference@0.96.0(debug@3.2.7): - resolution: {integrity: sha512-hzEP3yX8ruoqDK3nmhIycdktzlA80vp2NBKmsgbCg3d+pnYjcSBWIkCp4922yxTNnrYbpQgioWIQ0sUJukjjEw==} + /@swagger-api/apidom-reference@0.93.0(debug@3.2.7): + resolution: {integrity: sha512-kii8DqU3v+Fqv4gLi/3pTEYqR0AhjogcJnJUuKZqs1G/UiGk2RiEN4i/VyJQn0iwL4w4UyFcLOG4kyYxNgDAJw==} dependencies: - '@babel/runtime-corejs3': 7.24.0 - '@swagger-api/apidom-core': 0.96.0 - '@types/ramda': 0.29.11 + '@babel/runtime-corejs3': 7.23.9 + '@swagger-api/apidom-core': 0.93.0 + '@types/ramda': 0.29.10 axios: 1.6.7(debug@3.2.7) minimatch: 7.4.6 process: 0.11.10 @@ -2330,27 +2335,27 @@ packages: ramda-adjunct: 4.1.1(ramda@0.29.1) stampit: 4.3.2 optionalDependencies: - '@swagger-api/apidom-error': 0.96.0 - '@swagger-api/apidom-json-pointer': 0.96.0 - '@swagger-api/apidom-ns-asyncapi-2': 0.96.0 - '@swagger-api/apidom-ns-openapi-2': 0.96.0 - '@swagger-api/apidom-ns-openapi-3-0': 0.96.0 - '@swagger-api/apidom-ns-openapi-3-1': 0.96.0 - '@swagger-api/apidom-ns-workflows-1': 0.96.0 - '@swagger-api/apidom-parser-adapter-api-design-systems-json': 0.96.0 - '@swagger-api/apidom-parser-adapter-api-design-systems-yaml': 0.96.0 - '@swagger-api/apidom-parser-adapter-asyncapi-json-2': 0.96.0 - '@swagger-api/apidom-parser-adapter-asyncapi-yaml-2': 0.96.0 - '@swagger-api/apidom-parser-adapter-json': 0.96.0 - '@swagger-api/apidom-parser-adapter-openapi-json-2': 0.96.0 - '@swagger-api/apidom-parser-adapter-openapi-json-3-0': 0.96.0 - '@swagger-api/apidom-parser-adapter-openapi-json-3-1': 0.96.0 - '@swagger-api/apidom-parser-adapter-openapi-yaml-2': 0.96.0 - '@swagger-api/apidom-parser-adapter-openapi-yaml-3-0': 0.96.0 - '@swagger-api/apidom-parser-adapter-openapi-yaml-3-1': 0.96.0 - '@swagger-api/apidom-parser-adapter-workflows-json-1': 0.96.0 - '@swagger-api/apidom-parser-adapter-workflows-yaml-1': 0.96.0 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 0.96.0 + '@swagger-api/apidom-error': 0.93.0 + '@swagger-api/apidom-json-pointer': 0.93.0 + '@swagger-api/apidom-ns-asyncapi-2': 0.93.0 + '@swagger-api/apidom-ns-openapi-2': 0.93.0 + '@swagger-api/apidom-ns-openapi-3-0': 0.93.0 + '@swagger-api/apidom-ns-openapi-3-1': 0.93.0 + '@swagger-api/apidom-ns-workflows-1': 0.93.0 + '@swagger-api/apidom-parser-adapter-api-design-systems-json': 0.93.0 + '@swagger-api/apidom-parser-adapter-api-design-systems-yaml': 0.93.0 + '@swagger-api/apidom-parser-adapter-asyncapi-json-2': 0.93.0 + '@swagger-api/apidom-parser-adapter-asyncapi-yaml-2': 0.93.0 + '@swagger-api/apidom-parser-adapter-json': 0.93.0 + '@swagger-api/apidom-parser-adapter-openapi-json-2': 0.93.0 + '@swagger-api/apidom-parser-adapter-openapi-json-3-0': 0.93.0 + '@swagger-api/apidom-parser-adapter-openapi-json-3-1': 0.93.0 + '@swagger-api/apidom-parser-adapter-openapi-yaml-2': 0.93.0 + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-0': 0.93.0 + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-1': 0.93.0 + '@swagger-api/apidom-parser-adapter-workflows-json-1': 0.93.0 + '@swagger-api/apidom-parser-adapter-workflows-yaml-1': 0.93.0 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 0.93.0 transitivePeerDependencies: - debug dev: false @@ -2377,8 +2382,8 @@ packages: /@types/babel__core@7.20.5: resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: - '@babel/parser': 7.24.0 - '@babel/types': 7.24.0 + '@babel/parser': 7.23.9 + '@babel/types': 7.23.9 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.5 @@ -2387,27 +2392,27 @@ packages: /@types/babel__generator@7.6.8: resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.23.9 dev: true /@types/babel__template@7.4.4: resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} dependencies: - '@babel/parser': 7.24.0 - '@babel/types': 7.24.0 + '@babel/parser': 7.23.9 + '@babel/types': 7.23.9 dev: true /@types/babel__traverse@7.20.5: resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.23.9 dev: true /@types/body-parser@1.19.5: resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 - '@types/node': 20.11.24 + '@types/node': 20.11.16 dev: false /@types/cacheable-request@6.0.3: @@ -2415,7 +2420,7 @@ packages: dependencies: '@types/http-cache-semantics': 4.0.4 '@types/keyv': 3.1.4 - '@types/node': 20.11.24 + '@types/node': 20.11.16 '@types/responselike': 1.0.3 /@types/caseless@0.12.5: @@ -2425,18 +2430,18 @@ packages: /@types/connect@3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 20.11.24 + '@types/node': 20.11.16 dev: false /@types/eslint-scope@3.7.7: resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} dependencies: - '@types/eslint': 8.56.5 + '@types/eslint': 8.56.2 '@types/estree': 1.0.5 dev: true - /@types/eslint@8.56.5: - resolution: {integrity: sha512-u5/YPJHo1tvkSF2CE0USEkxon82Z5DBy2xR+qfyYNszpX9qcs4sT6uq2kBbj4BXY1+DBGDPnrhMZV3pKWGNukw==} + /@types/eslint@8.56.2: + resolution: {integrity: sha512-uQDwm1wFHmbBbCZCqAlq6Do9LYwByNZHWzXppSnay9SuwJ+VRbjkbLABer54kcPnMSlG6Fdiy2yaFXm/z9Z5gw==} dependencies: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 @@ -2446,11 +2451,11 @@ packages: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} dev: true - /@types/express-serve-static-core@4.17.43: - resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==} + /@types/express-serve-static-core@4.17.42: + resolution: {integrity: sha512-ckM3jm2bf/MfB3+spLPWYPUH573plBFwpOhqQ2WottxYV85j1HQFlxmnTq57X1yHY9awZPig06hL/cLMgNWHIQ==} dependencies: - '@types/node': 20.11.24 - '@types/qs': 6.9.12 + '@types/node': 20.11.16 + '@types/qs': 6.9.11 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 dev: false @@ -2459,8 +2464,8 @@ packages: resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} dependencies: '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.17.43 - '@types/qs': 6.9.12 + '@types/express-serve-static-core': 4.17.42 + '@types/qs': 6.9.11 '@types/serve-static': 1.15.5 dev: false @@ -2468,13 +2473,13 @@ packages: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.11.24 + '@types/node': 20.11.16 dev: true /@types/graceful-fs@4.1.9: resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} dependencies: - '@types/node': 20.11.24 + '@types/node': 20.11.16 dev: true /@types/html-minifier-terser@6.1.0: @@ -2518,7 +2523,7 @@ packages: /@types/keyv@3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: - '@types/node': 20.11.24 + '@types/node': 20.11.16 /@types/mime@1.3.5: resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} @@ -2540,8 +2545,8 @@ packages: resolution: {integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==} dev: false - /@types/node@20.11.24: - resolution: {integrity: sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long==} + /@types/node@20.11.16: + resolution: {integrity: sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==} dependencies: undici-types: 5.26.5 @@ -2553,14 +2558,14 @@ packages: resolution: {integrity: sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==} dev: true - /@types/qs@6.9.12: - resolution: {integrity: sha512-bZcOkJ6uWrL0Qb2NAWKa7TBU+mJHPzhx9jjLL1KHF+XpzEcR7EXHvjbHlGtR/IsP1vyPrehuS6XqkmaePy//mg==} + /@types/qs@6.9.11: + resolution: {integrity: sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==} dev: false - /@types/ramda@0.29.11: - resolution: {integrity: sha512-jm1+PmNOpE7aPS+mMcuB4a72VkCXUJqPSaQRu2YqR8MbsFfaowYXgKxc7bluYdDpRHNXT5Z+xu+Lgr3/ml6wSA==} + /@types/ramda@0.29.10: + resolution: {integrity: sha512-0BzWVKtSEtignlk+XBuK88Il5wzQwbRVfEkzE8iKm02NYHMGQ/9ffB05M+zXhTCqo50DOIAT9pNSJsjFMMG4rQ==} dependencies: - types-ramda: 0.29.9 + types-ramda: 0.29.7 dev: false /@types/range-parser@1.2.7: @@ -2571,7 +2576,7 @@ packages: resolution: {integrity: sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==} dependencies: '@types/caseless': 0.12.5 - '@types/node': 20.11.24 + '@types/node': 20.11.16 '@types/tough-cookie': 4.0.5 form-data: 2.5.1 dev: false @@ -2579,13 +2584,13 @@ packages: /@types/responselike@1.0.3: resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} dependencies: - '@types/node': 20.11.24 + '@types/node': 20.11.16 /@types/send@0.17.4: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 - '@types/node': 20.11.24 + '@types/node': 20.11.16 dev: false /@types/serve-static@1.15.5: @@ -2593,7 +2598,7 @@ packages: dependencies: '@types/http-errors': 2.0.4 '@types/mime': 3.0.4 - '@types/node': 20.11.24 + '@types/node': 20.11.16 dev: false /@types/stack-utils@2.0.3: @@ -2624,7 +2629,7 @@ packages: resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} requiresBuild: true dependencies: - '@types/node': 20.11.24 + '@types/node': 20.11.16 dev: false optional: true @@ -2637,8 +2642,8 @@ packages: ejs: 3.1.9 fs-extra: 11.2.0 getopts: 2.3.0 - ini: 4.1.2 - mysql2: 3.9.2 + ini: 4.1.1 + mysql2: 3.9.1 nodegit: 0.27.0 require-yaml: 0.0.1 sha.js: 2.4.11 @@ -2752,29 +2757,29 @@ packages: '@xtuc/long': 4.2.2 dev: true - /@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.90.3): + /@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.90.1): resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==} engines: {node: '>=14.15.0'} peerDependencies: webpack: 5.x.x webpack-cli: 5.x.x dependencies: - webpack: 5.90.3(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack-dev-server@3.11.3)(webpack@5.90.3) + webpack: 5.90.1(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack-dev-server@3.11.3)(webpack@5.90.1) dev: true - /@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.90.3): + /@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.90.1): resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==} engines: {node: '>=14.15.0'} peerDependencies: webpack: 5.x.x webpack-cli: 5.x.x dependencies: - webpack: 5.90.3(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack-dev-server@3.11.3)(webpack@5.90.3) + webpack: 5.90.1(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack-dev-server@3.11.3)(webpack@5.90.1) dev: true - /@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@3.11.3)(webpack@5.90.3): + /@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@3.11.3)(webpack@5.90.1): resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==} engines: {node: '>=14.15.0'} peerDependencies: @@ -2785,9 +2790,9 @@ packages: webpack-dev-server: optional: true dependencies: - webpack: 5.90.3(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack-dev-server@3.11.3)(webpack@5.90.3) - webpack-dev-server: 3.11.3(webpack-cli@5.1.4)(webpack@5.90.3) + webpack: 5.90.1(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack-dev-server@3.11.3)(webpack@5.90.1) + webpack-dev-server: 3.11.3(webpack-cli@5.1.4)(webpack@5.90.1) dev: true /@xmldom/xmldom@0.8.10: @@ -3303,15 +3308,13 @@ packages: hasBin: true dev: true - /available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + /available-typed-arrays@1.0.6: + resolution: {integrity: sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==} engines: {node: '>= 0.4'} - dependencies: - possible-typed-array-names: 1.0.0 dev: false - /aws-sdk@2.1571.0: - resolution: {integrity: sha512-Hixs1aD+7IwsP/Bkb7StFCrOC9ejmw8zBv8xVqEtEughRX6AF8bLKFRoJRbD4V6TrM+gPGpCqoFlpa84HLHkSA==} + /aws-sdk@2.1549.0: + resolution: {integrity: sha512-SoVfrrV3A2mxH+NV2tA0eMtG301glhewvhL3Ob4107qLWjvwjy/CoWLclMLmfXniTGxbI8tsgN0r5mLZUKey3Q==} engines: {node: '>= 10.0.0'} dependencies: buffer: 4.9.2 @@ -3342,22 +3345,22 @@ packages: - debug dev: false - /b4a@1.6.6: - resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==} + /b4a@1.6.4: + resolution: {integrity: sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==} dev: false - /babel-jest@26.6.3(@babel/core@7.24.0): + /babel-jest@26.6.3(@babel/core@7.23.9): resolution: {integrity: sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==} engines: {node: '>= 10.14.2'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.23.9 '@jest/transform': 26.6.2 '@jest/types': 26.6.2 '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 26.6.2(@babel/core@7.24.0) + babel-preset-jest: 26.6.2(@babel/core@7.23.9) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -3365,26 +3368,26 @@ packages: - supports-color dev: true - /babel-loader@8.3.0(@babel/core@7.24.0)(webpack@5.90.3): + /babel-loader@8.3.0(@babel/core@7.23.9)(webpack@5.90.1): resolution: {integrity: sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==} engines: {node: '>= 8.9'} peerDependencies: '@babel/core': ^7.0.0 webpack: '>=2' dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.23.9 find-cache-dir: 3.3.2 loader-utils: 2.0.4 make-dir: 3.1.0 schema-utils: 2.7.1 - webpack: 5.90.3(webpack-cli@5.1.4) + webpack: 5.90.1(webpack-cli@5.1.4) dev: true /babel-plugin-istanbul@6.1.1: resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} engines: {node: '>=8'} dependencies: - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.22.5 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-instrument: 5.2.1 @@ -3397,77 +3400,77 @@ packages: resolution: {integrity: sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==} engines: {node: '>= 10.14.2'} dependencies: - '@babel/template': 7.24.0 - '@babel/types': 7.24.0 + '@babel/template': 7.23.9 + '@babel/types': 7.23.9 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.5 dev: true - /babel-plugin-polyfill-corejs2@0.4.8(@babel/core@7.24.0): + /babel-plugin-polyfill-corejs2@0.4.8(@babel/core@7.23.9): resolution: {integrity: sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/compat-data': 7.23.5 - '@babel/core': 7.24.0 - '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.24.0) + '@babel/core': 7.23.9 + '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.9) semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-corejs3@0.9.0(@babel/core@7.24.0): + /babel-plugin-polyfill-corejs3@0.9.0(@babel/core@7.23.9): resolution: {integrity: sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.24.0) - core-js-compat: 3.36.0 + '@babel/core': 7.23.9 + '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.9) + core-js-compat: 3.35.1 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-regenerator@0.5.5(@babel/core@7.24.0): + /babel-plugin-polyfill-regenerator@0.5.5(@babel/core@7.23.9): resolution: {integrity: sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.24.0 - '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.24.0) + '@babel/core': 7.23.9 + '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.9) transitivePeerDependencies: - supports-color dev: true - /babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.0): + /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.9): resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.0 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.0) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.0) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.0) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.0) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.0) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.0) + '@babel/core': 7.23.9 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.9) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.9) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.9) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.9) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.9) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.9) dev: true - /babel-preset-jest@26.6.2(@babel/core@7.24.0): + /babel-preset-jest@26.6.2(@babel/core@7.23.9): resolution: {integrity: sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==} engines: {node: '>= 10.14.2'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.23.9 babel-plugin-jest-hoist: 26.6.2 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.0) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.9) dev: true /bach@1.2.0: @@ -3495,12 +3498,6 @@ packages: /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - /bare-events@2.2.1: - resolution: {integrity: sha512-9GYPpsPFvrWBkelIhOhTWtkeZxVxZOdb3VnFTCzlOo3OjvmTvzLoZFUT8kNFACx0vJej6QPney1Cf9BvzCNE/A==} - requiresBuild: true - dev: false - optional: true - /base64-js@0.0.2: resolution: {integrity: sha512-Pj9L87dCdGcKlSqPVUjD+q96pbIx1zQQLb2CUiWURfjiBELv84YX+0nGnKmyT/9KkC7PQk7UN1w+Al8bBozaxQ==} engines: {node: '>= 0.4'} @@ -3533,8 +3530,8 @@ packages: pascalcase: 0.1.1 dev: true - /basic-ftp@5.0.5: - resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} + /basic-ftp@5.0.4: + resolution: {integrity: sha512-8PzkB0arJFV4jJWSGOYR+OEic6aeKMu/osRhBULN6RY0ykby6LKhbmuQ5ublvaas5BOwboah5D87nrHyuh8PPA==} engines: {node: '>=10.0.0'} dev: false @@ -3624,8 +3621,26 @@ packages: /bluebird@3.7.2: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} - /body-parser@1.20.2(supports-color@6.1.0): - resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} + /body-parser@1.19.2: + resolution: {integrity: sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==} + engines: {node: '>= 0.8'} + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9(supports-color@6.1.0) + depd: 1.1.2 + http-errors: 1.8.1 + iconv-lite: 0.4.24 + on-finished: 2.3.0 + qs: 6.9.7 + raw-body: 2.4.3 + type-is: 1.6.18 + transitivePeerDependencies: + - supports-color + dev: false + + /body-parser@1.20.1(supports-color@6.1.0): + resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} dependencies: bytes: 3.1.2 @@ -3637,7 +3652,7 @@ packages: iconv-lite: 0.4.24 on-finished: 2.4.1 qs: 6.11.0 - raw-body: 2.5.2 + raw-body: 2.5.1 type-is: 1.6.18 unpipe: 1.0.0 transitivePeerDependencies: @@ -3715,15 +3730,15 @@ packages: /browser-process-hrtime@1.0.0: resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} - /browserslist@4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} + /browserslist@4.22.3: + resolution: {integrity: sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001594 - electron-to-chromium: 1.4.693 + caniuse-lite: 1.0.30001582 + electron-to-chromium: 1.4.654 node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.23.0) + update-browserslist-db: 1.0.13(browserslist@4.22.3) dev: true /bser@2.1.1: @@ -3890,15 +3905,12 @@ packages: normalize-url: 6.1.0 responselike: 2.0.1 - /call-bind@1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} - engines: {node: '>= 0.4'} + /call-bind@1.0.5: + resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} dependencies: - es-define-property: 1.0.0 - es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.4 - set-function-length: 1.2.1 + get-intrinsic: 1.2.2 + set-function-length: 1.2.0 /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} @@ -3946,8 +3958,8 @@ packages: resolution: {integrity: sha512-W2lPwkBkMZwFlPCXhIlYgxu+7gC/NUlCtdK652DAJ1JdgV0sTrvuPFshNPrFa1TY2JOkLhgdeEBplB4ezEa+xg==} dev: false - /caniuse-lite@1.0.30001594: - resolution: {integrity: sha512-VblSX6nYqyJVs8DKFMldE2IVCJjZ225LW00ydtUWwh5hk9IfkTOffO6r8gJNsH0qqqeAF8KrbMYA2VEwTlGW5g==} + /caniuse-lite@1.0.30001582: + resolution: {integrity: sha512-vsJG3V5vgfduaQGVxL53uSX/HUzxyr2eA8xCo36OLal7sRcSZbibJtLeh0qja4sFOr/QQGt4opB4tOy+eOgAxg==} dev: true /canonical-json@0.0.4: @@ -4020,8 +4032,8 @@ packages: - supports-color dev: true - /chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} dependencies: anymatch: 3.1.3 @@ -4579,19 +4591,19 @@ packages: is-plain-object: 5.0.0 dev: true - /core-js-compat@3.36.0: - resolution: {integrity: sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==} + /core-js-compat@3.35.1: + resolution: {integrity: sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw==} dependencies: - browserslist: 4.23.0 + browserslist: 4.22.3 dev: true - /core-js-pure@3.36.0: - resolution: {integrity: sha512-cN28qmhRNgbMZZMc/RFu5w8pK9VJzpb2rJVR/lHuZJKwmXnoWOpXmMkxqBB514igkp1Hu8WGROsiOAzUcKdHOQ==} + /core-js-pure@3.35.1: + resolution: {integrity: sha512-zcIdi/CL3MWbBJYo5YCeVAAx+Sy9yJE9I3/u9LkFABwbeaPhTMRWraM8mYFp9jW5Z50hOy7FVzCc8dCrpZqtIQ==} requiresBuild: true dev: false - /core-js@3.36.0: - resolution: {integrity: sha512-mt7+TUBbTFg5+GngsAxeKBTl5/VS0guFeJacYge9OmHb+m058UwwIm41SE9T4Den7ClatV57B6TYTuJ0CX1MAw==} + /core-js@3.35.1: + resolution: {integrity: sha512-IgdsbxNyMskrTFxa9lWHyMwAJU5gXOPP+1yO+K59d50VLVAIDAbs7gIv705KzALModfK3ZrSZTPNpC0PQgIZuw==} requiresBuild: true dev: true @@ -4666,7 +4678,7 @@ packages: engines: {node: '>=4'} dev: false - /css-loader@6.10.0(webpack@5.90.3): + /css-loader@6.10.0(webpack@5.90.1): resolution: {integrity: sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -4678,15 +4690,15 @@ packages: webpack: optional: true dependencies: - icss-utils: 5.1.0(postcss@8.4.35) - postcss: 8.4.35 - postcss-modules-extract-imports: 3.0.0(postcss@8.4.35) - postcss-modules-local-by-default: 4.0.4(postcss@8.4.35) - postcss-modules-scope: 3.1.1(postcss@8.4.35) - postcss-modules-values: 4.0.0(postcss@8.4.35) + icss-utils: 5.1.0(postcss@8.4.33) + postcss: 8.4.33 + postcss-modules-extract-imports: 3.0.0(postcss@8.4.33) + postcss-modules-local-by-default: 4.0.4(postcss@8.4.33) + postcss-modules-scope: 3.1.1(postcss@8.4.33) + postcss-modules-values: 4.0.0(postcss@8.4.33) postcss-value-parser: 4.2.0 - semver: 7.6.0 - webpack: 5.90.3(webpack-cli@5.1.4) + semver: 7.5.4 + webpack: 5.90.1(webpack-cli@5.1.4) dev: true /css-select@4.3.0: @@ -4722,12 +4734,11 @@ packages: dependencies: cssom: 0.3.8 - /d@1.0.2: - resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==} - engines: {node: '>=0.12'} + /d@1.0.1: + resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==} dependencies: - es5-ext: 0.10.64 - type: 2.7.2 + es5-ext: 0.10.62 + type: 1.2.0 dev: true /dargs@5.1.0: @@ -4745,8 +4756,8 @@ packages: resolution: {integrity: sha512-APql/TZ6FdLEpf2z7/X2a2zyqK8juYtqaSVqxw9mYoQ64CXkfU15AeLh8pUszT8+fnYjgm6t0aIYpWKJbnLkuA==} dev: false - /data-uri-to-buffer@6.0.2: - resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} + /data-uri-to-buffer@6.0.1: + resolution: {integrity: sha512-MZd3VlchQkp8rdend6vrx7MmVDJzSNTBvghvKjirLkD+WTChA3KUf0jkE68Q4UyctNqI11zZO9/x2Yx+ub5Cvg==} engines: {node: '>= 14'} dev: false @@ -4867,9 +4878,9 @@ packages: is-arguments: 1.1.1 is-date-object: 1.0.5 is-regex: 1.1.4 - object-is: 1.1.6 + object-is: 1.1.5 object-keys: 1.1.1 - regexp.prototype.flags: 1.5.2 + regexp.prototype.flags: 1.5.1 dev: true /deep-extend@0.6.0: @@ -4908,20 +4919,20 @@ packages: resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} engines: {node: '>=10'} - /define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + /define-data-property@1.1.1: + resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} engines: {node: '>= 0.4'} dependencies: - es-define-property: 1.0.0 - es-errors: 1.3.0 + get-intrinsic: 1.2.2 gopd: 1.0.1 + has-property-descriptors: 1.0.1 /define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} dependencies: - define-data-property: 1.1.4 - has-property-descriptors: 1.0.2 + define-data-property: 1.1.1 + has-property-descriptors: 1.0.1 object-keys: 1.1.1 dev: true @@ -5059,7 +5070,7 @@ packages: /dns-packet@1.3.4: resolution: {integrity: sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==} dependencies: - ip: 1.1.9 + ip: 1.1.8 safe-buffer: 5.2.1 dev: true @@ -5231,8 +5242,8 @@ packages: dependencies: jake: 10.8.7 - /electron-to-chromium@1.4.693: - resolution: {integrity: sha512-/if4Ueg0GUQlhCrW2ZlXwDAm40ipuKo+OgeHInlL8sbjt+hzISxZK949fZeJaVsheamrzANXvw1zQTvbxTvSHw==} + /electron-to-chromium@1.4.654: + resolution: {integrity: sha512-hjfFa+Vj4WGLRVTlCQa+IivBkpcp+boGxMQfusOC/me5Y5NfU4wX7wyw+K9p8Cw4tl0BVIZGH2n7y/jMc3w4pg==} dev: true /emitter-listener@1.1.2: @@ -5279,8 +5290,8 @@ packages: dependencies: once: 1.4.0 - /enhanced-resolve@5.15.1: - resolution: {integrity: sha512-3d3JRbwsCLJsYgvb6NuWEG44jjPSOMuS73L/6+7BZuoKm3W+qXnSoIYVHi8dG7Qcg4inAY4jbzkZ7MnskePeDg==} + /enhanced-resolve@5.15.0: + resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} engines: {node: '>=10.13.0'} dependencies: graceful-fs: 4.2.11 @@ -5310,8 +5321,8 @@ packages: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} - /envinfo@7.11.1: - resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==} + /envinfo@7.11.0: + resolution: {integrity: sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==} engines: {node: '>=4'} hasBin: true dev: true @@ -5337,37 +5348,26 @@ packages: engines: {node: '>= 0.4.0'} dev: false - /es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.4 - - /es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - /es-module-lexer@1.4.1: resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==} dev: true - /es5-ext@0.10.64: - resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==} + /es5-ext@0.10.62: + resolution: {integrity: sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==} engines: {node: '>=0.10'} requiresBuild: true dependencies: es6-iterator: 2.0.3 - es6-symbol: 3.1.4 - esniff: 2.0.1 + es6-symbol: 3.1.3 next-tick: 1.1.0 dev: true /es6-iterator@2.0.3: resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} dependencies: - d: 1.0.2 - es5-ext: 0.10.64 - es6-symbol: 3.1.4 + d: 1.0.1 + es5-ext: 0.10.62 + es6-symbol: 3.1.3 dev: true /es6-promise@4.2.8: @@ -5379,11 +5379,10 @@ packages: es6-promise: 4.2.8 dev: false - /es6-symbol@3.1.4: - resolution: {integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==} - engines: {node: '>=0.12'} + /es6-symbol@3.1.3: + resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==} dependencies: - d: 1.0.2 + d: 1.0.1 ext: 1.7.0 dev: true @@ -5397,14 +5396,14 @@ packages: /es6-weak-map@2.0.3: resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==} dependencies: - d: 1.0.2 - es5-ext: 0.10.64 + d: 1.0.1 + es5-ext: 0.10.62 es6-iterator: 2.0.3 - es6-symbol: 3.1.4 + es6-symbol: 3.1.3 dev: true - /escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} /escape-html@1.0.3: @@ -5517,7 +5516,7 @@ packages: optionator: 0.9.3 progress: 2.0.3 regexpp: 3.2.0 - semver: 7.6.0 + semver: 7.5.4 strip-ansi: 6.0.1 strip-json-comments: 3.1.1 table: 6.8.1 @@ -5527,16 +5526,6 @@ packages: - supports-color dev: true - /esniff@2.0.1: - resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==} - engines: {node: '>=0.10'} - dependencies: - d: 1.0.2 - es5-ext: 0.10.64 - event-emitter: 0.3.5 - type: 2.7.2 - dev: true - /espree@7.3.1: resolution: {integrity: sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==} engines: {node: ^10.12.0 || >=12.0.0} @@ -5587,13 +5576,6 @@ packages: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} - /event-emitter@0.3.5: - resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} - dependencies: - d: 1.0.2 - es5-ext: 0.10.64 - dev: true - /event-target-shim@5.0.1: resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} engines: {node: '>=6'} @@ -5711,13 +5693,13 @@ packages: jest-regex-util: 26.0.0 dev: true - /express@4.18.3(supports-color@6.1.0): - resolution: {integrity: sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw==} + /express@4.18.2(supports-color@6.1.0): + resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} engines: {node: '>= 0.10.0'} dependencies: accepts: 1.3.8 array-flatten: 1.1.1 - body-parser: 1.20.2(supports-color@6.1.0) + body-parser: 1.20.1(supports-color@6.1.0) content-disposition: 0.5.4 content-type: 1.0.5 cookie: 0.5.0 @@ -5907,7 +5889,7 @@ packages: flat-cache: 3.2.0 dev: true - /file-loader@6.2.0(webpack@5.90.3): + /file-loader@6.2.0(webpack@5.90.1): resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -5915,7 +5897,7 @@ packages: dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.90.3(webpack-cli@5.1.4) + webpack: 5.90.1(webpack-cli@5.1.4) dev: true /file-uri-to-path@1.0.0: @@ -6051,7 +6033,7 @@ packages: resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flatted: 3.3.1 + flatted: 3.2.9 keyv: 4.5.4 rimraf: 3.0.2 dev: true @@ -6061,8 +6043,8 @@ packages: hasBin: true dev: true - /flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + /flatted@3.2.9: + resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} dev: true /flush-write-stream@1.1.1: @@ -6189,6 +6171,7 @@ packages: graceful-fs: 4.2.11 jsonfile: 6.1.0 universalify: 2.0.1 + dev: true /fs-extra@5.0.0: resolution: {integrity: sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==} @@ -6207,6 +6190,15 @@ packages: universalify: 0.1.2 dev: true + /fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + dev: false + /fs-minipass@1.2.7: resolution: {integrity: sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==} dependencies: @@ -6280,7 +6272,7 @@ packages: resolution: {integrity: sha512-ykVjThha+dGKAR/F31kCUxMn7vu1JrmUkDxMs+h7TvjGbQoNx29hsw618GQKm9eT4Qo6E+8zJAnt0BT3gMtggQ==} engines: {node: '>=4'} dependencies: - swagger-client: 3.25.4(debug@3.2.7) + swagger-client: 3.25.0(debug@3.2.7) transitivePeerDependencies: - debug dev: false @@ -6378,15 +6370,13 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - /get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} - engines: {node: '>= 0.4'} + /get-intrinsic@1.2.2: + resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} dependencies: - es-errors: 1.3.0 function-bind: 1.1.2 - has-proto: 1.0.3 + has-proto: 1.0.1 has-symbols: 1.0.3 - hasown: 2.0.1 + hasown: 2.0.0 /get-package-type@0.1.0: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} @@ -6415,14 +6405,14 @@ packages: dependencies: pump: 3.0.0 - /get-uri@6.0.3: - resolution: {integrity: sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==} + /get-uri@6.0.2: + resolution: {integrity: sha512-5KLucCJobh8vBY1K07EFV4+cPZH3mrV9YeAruUseCQKHB58SGjjT2l9/eA9LD082IiuMjSlFJEcdJ27TXvbZNw==} engines: {node: '>= 14'} dependencies: - basic-ftp: 5.0.5 - data-uri-to-buffer: 6.0.2 + basic-ftp: 5.0.4 + data-uri-to-buffer: 6.0.1 debug: 4.3.4(supports-color@6.1.0) - fs-extra: 11.2.0 + fs-extra: 8.1.0 transitivePeerDependencies: - supports-color dev: false @@ -6665,7 +6655,7 @@ packages: /gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: - get-intrinsic: 1.2.4 + get-intrinsic: 1.2.2 /got@10.7.0: resolution: {integrity: sha512-aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg==} @@ -6978,13 +6968,13 @@ packages: sparkles: 1.0.1 dev: true - /has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + /has-property-descriptors@1.0.1: + resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} dependencies: - es-define-property: 1.0.0 + get-intrinsic: 1.2.2 - /has-proto@1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} engines: {node: '>= 0.4'} /has-symbols@1.0.3: @@ -7041,8 +7031,8 @@ packages: resolution: {integrity: sha512-Gjzu0Xn7IagXVkSu9cSFuK1fqzwtLwFhNhVL8IFJijRNMgUttFbBSIAzKuSIrsFMO1+g1RlsoN49zPIbwPDMGQ==} dev: false - /hasown@2.0.1: - resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==} + /hasown@2.0.0: + resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} engines: {node: '>= 0.4'} dependencies: function-bind: 1.1.2 @@ -7178,7 +7168,7 @@ packages: he: 1.2.0 param-case: 3.0.4 relateurl: 0.2.7 - terser: 5.28.1 + terser: 5.27.0 dev: true /html-minifier@3.5.21: @@ -7195,7 +7185,7 @@ packages: uglify-js: 3.4.10 dev: true - /html-webpack-plugin@5.6.0(webpack@5.90.3): + /html-webpack-plugin@5.6.0(webpack@5.90.1): resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==} engines: {node: '>=10.13.0'} peerDependencies: @@ -7212,7 +7202,7 @@ packages: lodash: 4.17.21 pretty-error: 4.0.0 tapable: 2.2.1 - webpack: 5.90.3(webpack-cli@5.1.4) + webpack: 5.90.1(webpack-cli@5.1.4) dev: true /htmlparser2@3.10.1: @@ -7252,6 +7242,17 @@ packages: statuses: 1.5.0 dev: true + /http-errors@1.8.1: + resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==} + engines: {node: '>= 0.6'} + dependencies: + depd: 1.1.2 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 1.5.0 + toidentifier: 1.0.1 + dev: false + /http-errors@2.0.0: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} @@ -7287,8 +7288,8 @@ packages: - supports-color dev: true - /http-proxy-agent@7.0.2: - resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + /http-proxy-agent@7.0.0: + resolution: {integrity: sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==} engines: {node: '>= 14'} dependencies: agent-base: 7.1.0 @@ -7329,8 +7330,8 @@ packages: jsprim: 1.4.2 sshpk: 1.18.0 - /http-status@1.7.4: - resolution: {integrity: sha512-c2qSwNtTlHVYAhMj9JpGdyo0No/+DiKXCJ9pHtZ2Yf3QmPnBIytKSRT7BuyIiQ7icXLynavGmxUqkOjSrAuMuA==} + /http-status@1.7.3: + resolution: {integrity: sha512-GS8tL1qHT2nBCMJDYMHGkkkKQLNkIAHz37vgO68XKvzv+XyqB4oh/DfmMHdtRzfqSJPj1xKG2TaELZtlCz6BEQ==} engines: {node: '>= 0.4.0'} dev: false @@ -7366,8 +7367,8 @@ packages: transitivePeerDependencies: - supports-color - /https-proxy-agent@7.0.4: - resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} + /https-proxy-agent@7.0.2: + resolution: {integrity: sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==} engines: {node: '>= 14'} dependencies: agent-base: 7.1.0 @@ -7413,13 +7414,13 @@ packages: safer-buffer: 2.1.2 dev: true - /icss-utils@5.1.0(postcss@8.4.35): + /icss-utils@5.1.0(postcss@8.4.33): resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.35 + postcss: 8.4.33 dev: true /identity-obj-proxy@3.0.0: @@ -7527,8 +7528,8 @@ packages: /ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - /ini@4.1.2: - resolution: {integrity: sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==} + /ini@4.1.1: + resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true @@ -7564,20 +7565,16 @@ packages: engines: {node: '>=8'} dev: false - /ip-address@9.0.5: - resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} - engines: {node: '>= 12'} - dependencies: - jsbn: 1.1.0 - sprintf-js: 1.1.3 - /ip-regex@2.1.0: resolution: {integrity: sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==} engines: {node: '>=4'} dev: true - /ip@1.1.9: - resolution: {integrity: sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==} + /ip@1.1.8: + resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==} + + /ip@2.0.0: + resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} /ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} @@ -7600,14 +7597,14 @@ packages: resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==} engines: {node: '>= 0.10'} dependencies: - hasown: 2.0.1 + hasown: 2.0.0 dev: true /is-arguments@1.1.1: resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.5 has-tostringtag: 1.0.2 /is-arrayish@0.2.1: @@ -7645,14 +7642,14 @@ packages: /is-core-module@2.13.1: resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} dependencies: - hasown: 2.0.1 + hasown: 2.0.0 dev: true /is-data-descriptor@1.0.1: resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==} engines: {node: '>= 0.4'} dependencies: - hasown: 2.0.1 + hasown: 2.0.0 dev: true /is-date-object@1.0.5: @@ -7841,7 +7838,7 @@ packages: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.5 has-tostringtag: 1.0.2 dev: true @@ -7952,7 +7949,7 @@ packages: resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.23.9 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -7964,8 +7961,8 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.24.0 - '@babel/parser': 7.24.0 + '@babel/core': 7.23.9 + '@babel/parser': 7.23.9 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -7993,8 +7990,8 @@ packages: - supports-color dev: true - /istanbul-reports@3.1.7: - resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + /istanbul-reports@3.1.6: + resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} engines: {node: '>=8'} dependencies: html-escaper: 2.0.2 @@ -8029,8 +8026,8 @@ packages: filelist: 1.0.4 minimatch: 3.1.2 - /jasmine-core@5.1.2: - resolution: {integrity: sha512-2oIUMGn00FdUiqz6epiiJr7xcFyNYj3rDcfmnzfkBnHyBQ3cBQUs4mmyGsOb7TTLb9kxk7dBcmEmqhDKkBoDyA==} + /jasmine-core@5.0.1: + resolution: {integrity: sha512-D4bRej8CplwNtNGyTPD++cafJlZUphzZNV+MSAnbD3er4D0NjL4x9V+mu/SI+5129utnCBen23JwEuBZA9vlpQ==} dev: true /jasmine-reporters@2.5.2: @@ -8046,12 +8043,12 @@ packages: colors: 1.4.0 dev: true - /jasmine@5.1.0: - resolution: {integrity: sha512-prmJlC1dbLhti4nE4XAPDWmfJesYO15sjGXVp7Cs7Ym5I9Xtwa/hUHxxJXjnpfLO72+ySttA0Ztf8g/RiVnUKw==} + /jasmine@5.0.2: + resolution: {integrity: sha512-fXgPcWfDhENJJVktFZc/JJ+TpdOQIMJTbn6BgSOIneBagrHtKvnyA8Ag6uD8eF2m7cSESG7K/Hfj/Hk5asAwNg==} hasBin: true dependencies: glob: 10.3.10 - jasmine-core: 5.1.2 + jasmine-core: 5.0.1 dev: true /jayson@2.1.2: @@ -8112,10 +8109,10 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.23.9 '@jest/test-sequencer': 26.6.3 '@jest/types': 26.6.2 - babel-jest: 26.6.3(@babel/core@7.24.0) + babel-jest: 26.6.3(@babel/core@7.23.9) chalk: 4.1.2 deepmerge: 4.3.1 glob: 7.2.3 @@ -8172,7 +8169,7 @@ packages: '@jest/environment': 26.6.2 '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 20.11.24 + '@types/node': 20.11.16 jest-mock: 26.6.2 jest-util: 26.6.2 jsdom: 16.7.0 @@ -8190,7 +8187,7 @@ packages: '@jest/environment': 26.6.2 '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 20.11.24 + '@types/node': 20.11.16 jest-mock: 26.6.2 jest-util: 26.6.2 dev: true @@ -8211,7 +8208,7 @@ packages: dependencies: '@jest/types': 26.6.2 '@types/graceful-fs': 4.1.9 - '@types/node': 20.11.24 + '@types/node': 20.11.16 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -8232,12 +8229,12 @@ packages: resolution: {integrity: sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==} engines: {node: '>= 10.14.2'} dependencies: - '@babel/traverse': 7.24.0 + '@babel/traverse': 7.23.9 '@jest/environment': 26.6.2 '@jest/source-map': 26.6.2 '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 20.11.24 + '@types/node': 20.11.16 chalk: 4.1.2 co: 4.6.0 expect: 26.6.2 @@ -8306,7 +8303,7 @@ packages: engines: {node: '>= 10.14.2'} dependencies: '@jest/types': 26.6.2 - '@types/node': 20.11.24 + '@types/node': 20.11.16 dev: true /jest-pnp-resolver@1.2.3(jest-resolve@26.6.2): @@ -8359,7 +8356,7 @@ packages: '@jest/environment': 26.6.2 '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 20.11.24 + '@types/node': 20.11.16 chalk: 4.1.2 emittery: 0.7.2 exit: 0.1.2 @@ -8427,7 +8424,7 @@ packages: resolution: {integrity: sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==} engines: {node: '>= 10.14.2'} dependencies: - '@types/node': 20.11.24 + '@types/node': 20.11.16 graceful-fs: 4.2.11 dev: true @@ -8435,7 +8432,7 @@ packages: resolution: {integrity: sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==} engines: {node: '>= 10.14.2'} dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.23.9 '@jest/types': 26.6.2 '@types/babel__traverse': 7.20.5 '@types/prettier': 2.7.3 @@ -8450,7 +8447,7 @@ packages: jest-resolve: 26.6.2 natural-compare: 1.4.0 pretty-format: 26.6.2 - semver: 7.6.0 + semver: 7.5.4 transitivePeerDependencies: - supports-color dev: true @@ -8460,7 +8457,7 @@ packages: engines: {node: '>= 10.14.2'} dependencies: '@jest/types': 26.6.2 - '@types/node': 20.11.24 + '@types/node': 20.11.16 chalk: 4.1.2 graceful-fs: 4.2.11 is-ci: 2.0.0 @@ -8497,7 +8494,7 @@ packages: dependencies: '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 20.11.24 + '@types/node': 20.11.16 ansi-escapes: 4.3.2 chalk: 4.1.2 jest-util: 26.6.2 @@ -8508,7 +8505,7 @@ packages: resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 20.11.24 + '@types/node': 20.11.16 merge-stream: 2.0.0 supports-color: 7.2.0 dev: true @@ -8517,7 +8514,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 20.11.24 + '@types/node': 20.11.16 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true @@ -8579,9 +8576,6 @@ packages: /jsbn@0.1.1: resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} - /jsbn@1.1.0: - resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} - /jsdom@16.7.0: resolution: {integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==} engines: {node: '>=10'} @@ -8695,6 +8689,7 @@ packages: universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.11 + dev: true /jsonparse@1.3.1: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} @@ -9217,19 +9212,19 @@ packages: async: 2.6.4 bcryptjs: 2.4.3 bluebird: 3.7.2 - body-parser: 1.20.2(supports-color@6.1.0) + body-parser: 1.19.2 canonical-json: 0.0.4 debug: 2.6.9(supports-color@6.1.0) depd: 1.1.2 ejs: 2.3.1 - express: 4.18.3(supports-color@6.1.0) + express: 4.18.2(supports-color@6.1.0) inflection: 1.13.4 isemail: 3.2.0 loopback-connector-remote: 3.4.1 loopback-datasource-juggler: 3.36.1 loopback-filters: 1.1.1 loopback-phase: 3.4.0 - nodemailer: 6.9.11 + nodemailer: 6.9.9 nodemailer-direct-transport: 3.3.2 nodemailer-stub-transport: 1.1.0 serve-favicon: 2.5.0 @@ -9317,7 +9312,7 @@ packages: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} dependencies: - semver: 7.6.0 + semver: 7.5.4 dev: true /make-fetch-happen@10.2.1: @@ -9914,8 +9909,8 @@ packages: xtend: 1.0.3 dev: false - /mysql2@3.9.2: - resolution: {integrity: sha512-3Cwg/UuRkAv/wm6RhtPE5L7JlPB877vwSF6gfLAS68H+zhH+u5oa3AieqEd0D0/kC3W7qIhYbH419f7O9i/5nw==} + /mysql2@3.9.1: + resolution: {integrity: sha512-3njoWAAhGBYy0tWBabqUQcLtczZUxrmmtc2vszQUekg3kTJyZ5/IeLC3Fo04u6y6Iy5Sba7pIIa2P/gs8D3ZeQ==} engines: {node: '>= 8.0'} dependencies: denque: 2.1.0 @@ -10037,12 +10032,12 @@ packages: engines: {node: '>=4.0.0'} dev: false - /node-abi@3.56.0: - resolution: {integrity: sha512-fZjdhDOeRcaS+rcpve7XuwHBmktS1nS1gzgghwKUQQ8nTy2FdSDr6ZT8k6YhvlJeHmmQMYiT/IH9hfco5zeW2Q==} + /node-abi@3.54.0: + resolution: {integrity: sha512-p7eGEiQil0YUV3ItH4/tBb781L5impVmmx2E9FRKF7d18XXzp4PGT2tdYMFY6wQqgxD0IwNZOiSJ0/K0fSi/OA==} engines: {node: '>=10'} requiresBuild: true dependencies: - semver: 7.6.0 + semver: 7.5.4 dev: false optional: true @@ -10060,7 +10055,7 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: node-domexception: 1.0.0 - web-streams-polyfill: 3.3.3 + web-streams-polyfill: 3.3.2 dev: false /node-fetch@2.7.0: @@ -10109,7 +10104,7 @@ packages: nopt: 5.0.0 npmlog: 6.0.2 rimraf: 3.0.2 - semver: 7.6.0 + semver: 7.5.4 tar: 6.2.0 which: 2.0.2 transitivePeerDependencies: @@ -10127,7 +10122,7 @@ packages: dependencies: growly: 1.3.0 is-wsl: 2.2.0 - semver: 7.6.0 + semver: 7.5.4 shellwords: 0.1.1 uuid: 8.3.2 which: 2.0.2 @@ -10240,8 +10235,8 @@ packages: resolution: {integrity: sha512-4fwl2f+647IIyuNuf6wuEMqK4oEU9FMJSYme8kPckVSr1rXIXcmI6BNcIWO+1cAK8XeexYKxYoFztam0jAwjkA==} dev: false - /nodemailer@6.9.11: - resolution: {integrity: sha512-UiAkgiERuG94kl/3bKfE8o10epvDnl0vokNEtZDPTq9BWzIl6EFT9336SbIT4oaTBD8NmmUTLsQyXHV82eXSWg==} + /nodemailer@6.9.9: + resolution: {integrity: sha512-dexTll8zqQoVJEZPwQAKzxxtFn0qTnjdQTchoU6Re9BUUGBJiOy3YMn/0ShTW6J5M0dfQ1NeDeRTTl4oIWgQMA==} engines: {node: '>=6.0.0'} dev: false @@ -10250,7 +10245,7 @@ packages: engines: {node: '>=8.10.0'} hasBin: true dependencies: - chokidar: 3.6.0 + chokidar: 3.5.3 debug: 3.2.7(supports-color@5.5.0) ignore-by-default: 1.0.1 minimatch: 3.1.2 @@ -10307,7 +10302,7 @@ packages: dependencies: hosted-git-info: 4.1.0 is-core-module: 2.13.1 - semver: 7.6.0 + semver: 7.5.4 validate-npm-package-license: 3.0.4 dev: true @@ -10422,11 +10417,11 @@ packages: /object-inspect@1.13.1: resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} - /object-is@1.1.6: - resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} + /object-is@1.1.5: + resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.5 define-properties: 1.2.1 dev: true @@ -10450,7 +10445,7 @@ packages: resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.5 define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 @@ -10492,6 +10487,13 @@ packages: resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} dev: true + /on-finished@2.3.0: + resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} + engines: {node: '>= 0.8'} + dependencies: + ee-first: 1.1.1 + dev: false + /on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} @@ -10689,20 +10691,21 @@ packages: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.0 debug: 4.3.4(supports-color@6.1.0) - get-uri: 6.0.3 - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.4 - pac-resolver: 7.0.1 + get-uri: 6.0.2 + http-proxy-agent: 7.0.0 + https-proxy-agent: 7.0.2 + pac-resolver: 7.0.0 socks-proxy-agent: 8.0.2 transitivePeerDependencies: - supports-color dev: false - /pac-resolver@7.0.1: - resolution: {integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==} + /pac-resolver@7.0.0: + resolution: {integrity: sha512-Fd9lT9vJbHYRACT8OhCbZBbxr6KRSawSovFpy8nDGshaK99S/EBhVIHp9+crhxrsZOuvLpgL1n23iyPg6Rl2hg==} engines: {node: '>= 14'} dependencies: degenerator: 5.0.1 + ip: 1.1.8 netmask: 2.0.2 dev: false @@ -10923,12 +10926,12 @@ packages: dependencies: '@google-cloud/storage': 2.5.0 async: 2.6.4 - aws-sdk: 2.1571.0 + aws-sdk: 2.1549.0 errs: 0.3.2 eventemitter2: 5.0.1 fast-json-patch: 2.2.1 filed-mimefix: 0.1.3 - ip: 1.1.9 + ip: 1.1.8 liboneandone: 1.2.0 lodash: 4.17.21 mime: 2.6.0 @@ -10972,50 +10975,45 @@ packages: resolution: {integrity: sha512-BbGTiH8MOWAuc6h5yITkSn9k3HP4+QOCV9t6I5F62OrH7zqTHRo08QNsgELRreTBxcvRhbSpMoUnAx77Dz4yUA==} dev: false - /possible-typed-array-names@1.0.0: - resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} - engines: {node: '>= 0.4'} - dev: false - - /postcss-modules-extract-imports@3.0.0(postcss@8.4.35): + /postcss-modules-extract-imports@3.0.0(postcss@8.4.33): resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.35 + postcss: 8.4.33 dev: true - /postcss-modules-local-by-default@4.0.4(postcss@8.4.35): + /postcss-modules-local-by-default@4.0.4(postcss@8.4.33): resolution: {integrity: sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.35) - postcss: 8.4.35 + icss-utils: 5.1.0(postcss@8.4.33) + postcss: 8.4.33 postcss-selector-parser: 6.0.15 postcss-value-parser: 4.2.0 dev: true - /postcss-modules-scope@3.1.1(postcss@8.4.35): + /postcss-modules-scope@3.1.1(postcss@8.4.33): resolution: {integrity: sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.35 + postcss: 8.4.33 postcss-selector-parser: 6.0.15 dev: true - /postcss-modules-values@4.0.0(postcss@8.4.35): + /postcss-modules-values@4.0.0(postcss@8.4.33): resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.35) - postcss: 8.4.35 + icss-utils: 5.1.0(postcss@8.4.33) + postcss: 8.4.33 dev: true /postcss-selector-parser@6.0.15: @@ -11030,8 +11028,8 @@ packages: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: true - /postcss@8.4.35: - resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} + /postcss@8.4.33: + resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 @@ -11039,8 +11037,8 @@ packages: source-map-js: 1.0.2 dev: true - /prebuild-install@7.1.2: - resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==} + /prebuild-install@7.1.1: + resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==} engines: {node: '>=10'} hasBin: true requiresBuild: true @@ -11051,7 +11049,7 @@ packages: minimist: 1.2.8 mkdirp-classic: 0.5.3 napi-build-utils: 1.0.2 - node-abi: 3.56.0 + node-abi: 3.54.0 pump: 3.0.0 rc: 1.2.8 simple-get: 4.0.1 @@ -11157,8 +11155,8 @@ packages: dependencies: agent-base: 7.1.0 debug: 4.3.4(supports-color@6.1.0) - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.4 + http-proxy-agent: 7.0.0 + https-proxy-agent: 7.0.2 lru-cache: 7.18.3 pac-proxy-agent: 7.0.1 proxy-from-env: 1.1.0 @@ -11262,18 +11260,23 @@ packages: resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} engines: {node: '>=0.6'} dependencies: - side-channel: 1.0.6 + side-channel: 1.0.4 /qs@6.11.2: resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} engines: {node: '>=0.6'} dependencies: - side-channel: 1.0.6 + side-channel: 1.0.4 /qs@6.5.3: resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} engines: {node: '>=0.6'} + /qs@6.9.7: + resolution: {integrity: sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==} + engines: {node: '>=0.6'} + dev: false + /querystring@0.2.0: resolution: {integrity: sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==} engines: {node: '>=0.4.x'} @@ -11319,8 +11322,18 @@ packages: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} - /raw-body@2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + /raw-body@2.4.3: + resolution: {integrity: sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==} + engines: {node: '>= 0.8'} + dependencies: + bytes: 3.1.2 + http-errors: 1.8.1 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + dev: false + + /raw-body@2.5.1: + resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} engines: {node: '>= 0.8'} dependencies: bytes: 3.1.2 @@ -11328,7 +11341,7 @@ packages: iconv-lite: 0.4.24 unpipe: 1.0.0 - /raw-loader@4.0.2(webpack@5.90.3): + /raw-loader@4.0.2(webpack@5.90.1): resolution: {integrity: sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -11336,7 +11349,7 @@ packages: dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.90.3(webpack-cli@5.1.4) + webpack: 5.90.1(webpack-cli@5.1.4) dev: true /rc@1.2.8: @@ -11524,7 +11537,7 @@ packages: /regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} dependencies: - '@babel/runtime': 7.24.0 + '@babel/runtime': 7.23.9 dev: true /regex-not@1.0.2: @@ -11535,14 +11548,13 @@ packages: safe-regex: 1.1.0 dev: true - /regexp.prototype.flags@1.5.2: - resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + /regexp.prototype.flags@1.5.1: + resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.5 define-properties: 1.2.1 - es-errors: 1.3.0 - set-function-name: 2.0.2 + set-function-name: 2.0.1 dev: true /regexpp@3.2.0: @@ -11840,7 +11852,7 @@ packages: yargs: 17.7.2 dev: true - /sass-loader@13.3.3(node-sass@9.0.0)(sass@1.71.1)(webpack@5.90.3): + /sass-loader@13.3.3(node-sass@9.0.0)(sass@1.70.0)(webpack@5.90.1): resolution: {integrity: sha512-mt5YN2F1MOZr3d/wBRcZxeFgwgkH44wVc2zohO2YF6JiOMkiXe4BYRZpSu2sO1g71mo/j16txzUhsKZlqjVGzA==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -11861,16 +11873,16 @@ packages: dependencies: neo-async: 2.6.2 node-sass: 9.0.0 - sass: 1.71.1 - webpack: 5.90.3(webpack-cli@5.1.4) + sass: 1.70.0 + webpack: 5.90.1(webpack-cli@5.1.4) dev: true - /sass@1.71.1: - resolution: {integrity: sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg==} + /sass@1.70.0: + resolution: {integrity: sha512-uUxNQ3zAHeAx5nRFskBnrWzDUJrrvpCPD5FNAoRvTi0WwremlheES3tg+56PaVtCs5QDRX5CBLxxKMDJMEa1WQ==} engines: {node: '>=14.0.0'} hasBin: true dependencies: - chokidar: 3.6.0 + chokidar: 3.5.3 immutable: 4.3.5 source-map-js: 1.0.2 dev: true @@ -11968,8 +11980,8 @@ packages: hasBin: true dev: true - /semver@7.6.0: - resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} engines: {node: '>=10'} hasBin: true dependencies: @@ -12046,25 +12058,23 @@ packages: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} dev: true - /set-function-length@1.2.1: - resolution: {integrity: sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==} + /set-function-length@1.2.0: + resolution: {integrity: sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==} engines: {node: '>= 0.4'} dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 + define-data-property: 1.1.1 function-bind: 1.1.2 - get-intrinsic: 1.2.4 + get-intrinsic: 1.2.2 gopd: 1.0.1 - has-property-descriptors: 1.0.2 + has-property-descriptors: 1.0.1 - /set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + /set-function-name@2.0.1: + resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} engines: {node: '>= 0.4'} dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 + define-data-property: 1.1.1 functions-have-names: 1.2.3 - has-property-descriptors: 1.0.2 + has-property-descriptors: 1.0.1 dev: true /set-value@2.0.1: @@ -12149,13 +12159,11 @@ packages: nanoid: 2.1.11 dev: false - /side-channel@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} - engines: {node: '>= 0.4'} + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - get-intrinsic: 1.2.4 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 object-inspect: 1.13.1 /sigmund@1.0.1: @@ -12292,7 +12300,7 @@ packages: dependencies: agent-base: 6.0.2 debug: 4.3.4(supports-color@6.1.0) - socks: 2.8.1 + socks: 2.7.1 transitivePeerDependencies: - supports-color dev: true @@ -12303,7 +12311,7 @@ packages: dependencies: agent-base: 6.0.2 debug: 4.3.4(supports-color@6.1.0) - socks: 2.8.1 + socks: 2.7.1 transitivePeerDependencies: - supports-color dev: true @@ -12314,16 +12322,16 @@ packages: dependencies: agent-base: 7.1.0 debug: 4.3.4(supports-color@6.1.0) - socks: 2.8.1 + socks: 2.7.1 transitivePeerDependencies: - supports-color dev: false - /socks@2.8.1: - resolution: {integrity: sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==} - engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + /socks@2.7.1: + resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==} + engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} dependencies: - ip-address: 9.0.5 + ip: 2.0.0 smart-buffer: 4.2.0 /source-map-js@1.0.2: @@ -12377,22 +12385,22 @@ packages: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.17 + spdx-license-ids: 3.0.16 dev: true - /spdx-exceptions@2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + /spdx-exceptions@2.4.0: + resolution: {integrity: sha512-hcjppoJ68fhxA/cjbN4T8N6uCUejN8yFw69ttpqtBeCbF3u13n7mb31NB9jKwGTTWWnt9IbRA/mf1FprYS8wfw==} dev: true /spdx-expression-parse@3.0.1: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: - spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.17 + spdx-exceptions: 2.4.0 + spdx-license-ids: 3.0.16 dev: true - /spdx-license-ids@3.0.17: - resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} + /spdx-license-ids@3.0.16: + resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} dev: true /spdy-transport@3.0.0(supports-color@6.1.0): @@ -12439,6 +12447,7 @@ packages: /sprintf-js@1.1.3: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + dev: false /sqlstring@2.3.1: resolution: {integrity: sha512-ooAzh/7dxIG5+uDik1z/Rd1vli0+38izZhGzSa34FwR7IbelPWCCKSNIl8jlL/F7ERvy8CB2jNeM1E9i9mXMAQ==} @@ -12537,7 +12546,6 @@ packages: /statuses@1.5.0: resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} engines: {node: '>= 0.6'} - dev: true /statuses@2.0.1: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} @@ -12577,13 +12585,11 @@ packages: engines: {node: '>=0.8.0'} dev: false - /streamx@2.16.1: - resolution: {integrity: sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==} + /streamx@2.15.6: + resolution: {integrity: sha512-q+vQL4AAz+FdfT137VF69Cc/APqUbxy+MDOImRrMvchJpigHj9GksgDU2LYbO9rx7RX6osWgxJB2WxhYv4SZAw==} dependencies: fast-fifo: 1.3.2 queue-tick: 1.0.1 - optionalDependencies: - bare-events: 2.2.1 dev: false /string-length@4.0.2: @@ -12719,7 +12725,7 @@ packages: accepts: 1.3.8 debug: 2.6.9(supports-color@6.1.0) ejs: 2.7.4 - http-status: 1.7.4 + http-status: 1.7.3 js2xmlparser: 3.0.0 strong-globalize: 3.3.0 transitivePeerDependencies: @@ -12735,7 +12741,7 @@ packages: debug: 4.3.4(supports-color@6.1.0) ejs: 3.1.9 fast-safe-stringify: 2.1.1 - http-status: 1.7.4 + http-status: 1.7.3 js2xmlparser: 4.0.2 strong-globalize: 6.0.6 transitivePeerDependencies: @@ -12821,12 +12827,12 @@ packages: engines: {node: '>=8'} dependencies: async: 3.2.5 - body-parser: 1.20.2(supports-color@6.1.0) + body-parser: 1.19.2 debug: 4.3.4(supports-color@6.1.0) depd: 2.0.0 escape-string-regexp: 2.0.0 eventemitter2: 5.0.1 - express: 4.18.3(supports-color@6.1.0) + express: 4.18.2(supports-color@6.1.0) inflection: 1.13.4 jayson: 2.1.2 js2xmlparser: 3.0.0 @@ -12848,13 +12854,13 @@ packages: resolution: {integrity: sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==} dev: false - /style-loader@3.3.4(webpack@5.90.3): + /style-loader@3.3.4(webpack@5.90.1): resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==} engines: {node: '>= 12.13.0'} peerDependencies: webpack: ^5.0.0 dependencies: - webpack: 5.90.3(webpack-cli@5.1.4) + webpack: 5.90.1(webpack-cli@5.1.4) dev: true /supports-color@1.2.0: @@ -12910,18 +12916,18 @@ packages: resolution: {integrity: sha512-aFTHfmjwizMNlNE6dsGmoAM4lHjL0CyiobWaFiXWSlD7cIxshW422Nb8KbXCmR6z+0ZEPY+daXJrDyh/vuwTyg==} dependencies: es6-iterator: 2.0.3 - es6-symbol: 3.1.4 + es6-symbol: 3.1.3 dev: true - /swagger-client@3.25.4(debug@3.2.7): - resolution: {integrity: sha512-pq9Zs6yf6Giy5JLnkUSeH+y1AQrhomDCkmVYpMY5Rkx6u70jnyiuRWwkGW6cgsPY+/8N38jRGieoWzJYPPGIuA==} + /swagger-client@3.25.0(debug@3.2.7): + resolution: {integrity: sha512-p143zWkIhgyh2E5+3HPFMlCw3WkV9RbX9HyftfBdiccCbOlmHdcJC0XEJZxcm+ZA+80DORs0F30/mzk7sx4iwA==} dependencies: - '@babel/runtime-corejs3': 7.24.0 - '@swagger-api/apidom-core': 0.96.0 - '@swagger-api/apidom-error': 0.96.0 - '@swagger-api/apidom-json-pointer': 0.96.0 - '@swagger-api/apidom-ns-openapi-3-1': 0.96.0 - '@swagger-api/apidom-reference': 0.96.0(debug@3.2.7) + '@babel/runtime-corejs3': 7.23.9 + '@swagger-api/apidom-core': 0.93.0 + '@swagger-api/apidom-error': 0.93.0 + '@swagger-api/apidom-json-pointer': 0.93.0 + '@swagger-api/apidom-ns-openapi-3-1': 0.93.0 + '@swagger-api/apidom-reference': 0.93.0(debug@3.2.7) cookie: 0.6.0 deepmerge: 4.3.1 fast-json-patch: 3.1.1 @@ -12931,6 +12937,7 @@ packages: node-fetch-commonjs: 3.3.2 qs: 6.11.2 traverse: 0.6.8 + undici: 5.28.2 transitivePeerDependencies: - debug dev: false @@ -13016,9 +13023,9 @@ packages: /tar-stream@3.1.7: resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} dependencies: - b4a: 1.6.6 + b4a: 1.6.4 fast-fifo: 1.3.2 - streamx: 2.16.1 + streamx: 2.15.6 dev: false /tar@4.4.19: @@ -13065,7 +13072,7 @@ packages: supports-hyperlinks: 2.3.0 dev: true - /terser-webpack-plugin@5.3.10(webpack@5.90.3): + /terser-webpack-plugin@5.3.10(webpack@5.90.1): resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -13081,16 +13088,16 @@ packages: uglify-js: optional: true dependencies: - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.22 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 - terser: 5.28.1 - webpack: 5.90.3(webpack-cli@5.1.4) + terser: 5.27.0 + webpack: 5.90.1(webpack-cli@5.1.4) dev: true - /terser@5.28.1: - resolution: {integrity: sha512-wM+bZp54v/E9eRRGXb5ZFDvinrJIOaTapx3WUokyVGZu5ucVCK55zEgGd5Dl2fSr3jUo5sDiERErUWLY6QPFyA==} + /terser@5.27.0: + resolution: {integrity: sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==} engines: {node: '>=10'} hasBin: true dependencies: @@ -13279,8 +13286,8 @@ packages: engines: {node: '>= 0.4'} dev: false - /tree-sitter-json@0.20.2: - resolution: {integrity: sha512-eUxrowp4F1QEGk/i7Sa+Xl8Crlfp7J0AXxX1QdJEQKQYMWhgMbCIgyQvpO3Q0P9oyTrNQxRLlRipDS44a8EtRw==} + /tree-sitter-json@0.20.1: + resolution: {integrity: sha512-482hf7J+aBwhksSw8yWaqI8nyP1DrSwnS4IMBShsnkFWD3SE8oalHnsEik59fEVi3orcTCUtMzSjZx+0Tpa6Vw==} requiresBuild: true dependencies: nan: 2.18.0 @@ -13300,7 +13307,7 @@ packages: requiresBuild: true dependencies: nan: 2.18.0 - prebuild-install: 7.1.2 + prebuild-install: 7.1.1 dev: false optional: true @@ -13317,9 +13324,11 @@ packages: resolution: {integrity: sha512-6C5h3CE+0qjGp+YKYTs74xR0k/Nw/ePtl/Lp6CCf44hqBQ66qnH1sDFR5mV/Gc48EsrHLB53lCFSffQCkka3kg==} dev: true - /ts-mixer@6.0.4: - resolution: {integrity: sha512-ufKpbmrugz5Aou4wcr5Wc1UUFWOLhq+Fm6qa6P0w0K5Qw2yhaUoiWszhCVuNQyNwrlGiscHOmqYoAox1PtvgjA==} + /ts-mixer@6.0.3: + resolution: {integrity: sha512-k43M7uCG1AkTyxgnmI5MPwKoUvS/bRvLvUb7+Pgpdlmok8AoqmUaZxUUw8zKM5B1lqZrt41GjYgnvAi0fppqgQ==} + requiresBuild: true dev: false + optional: true /ts-toolbelt@9.6.0: resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==} @@ -13384,6 +13393,10 @@ packages: media-typer: 0.3.0 mime-types: 2.1.35 + /type@1.2.0: + resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==} + dev: true + /type@2.7.2: resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} dev: true @@ -13397,8 +13410,8 @@ packages: /typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - /types-ramda@0.29.9: - resolution: {integrity: sha512-B+VbLtW68J4ncG/rccKaYDhlirKlVH/Izh2JZUfaPJv+3Tl2jbbgYsB1pvole1vXKSgaPlAe/wgEdOnMdAu52A==} + /types-ramda@0.29.7: + resolution: {integrity: sha512-8KBxZGJwUF3MpRkkJauSpvfHXk8Ssq15QXGuCBTDGeKd9PfheokkC3wAKRV3djej9O31Qa5M7Owsg8hF0GjtAw==} dependencies: ts-toolbelt: 9.6.0 dev: false @@ -13467,6 +13480,13 @@ packages: /undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + /undici@5.28.2: + resolution: {integrity: sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==} + engines: {node: '>=14.0'} + dependencies: + '@fastify/busboy': 2.1.0 + dev: false + /unicode-canonical-property-names-ecmascript@2.0.0: resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} engines: {node: '>=4'} @@ -13551,6 +13571,7 @@ packages: /universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} + dev: true /unpipe@1.0.0: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} @@ -13573,14 +13594,14 @@ packages: engines: {node: '>=4'} dev: true - /update-browserslist-db@1.0.13(browserslist@4.23.0): + /update-browserslist-db@1.0.13(browserslist@4.22.3): resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.23.0 - escalade: 3.1.2 + browserslist: 4.22.3 + escalade: 3.1.1 picocolors: 1.0.0 dev: true @@ -13838,8 +13859,8 @@ packages: minimalistic-assert: 1.0.1 dev: true - /web-streams-polyfill@3.3.3: - resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} + /web-streams-polyfill@3.3.2: + resolution: {integrity: sha512-3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ==} engines: {node: '>= 8'} dev: false @@ -13861,7 +13882,7 @@ packages: resolution: {integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==} engines: {node: '>=10.4'} - /webpack-cli@5.1.4(webpack-dev-server@3.11.3)(webpack@5.90.3): + /webpack-cli@5.1.4(webpack-dev-server@3.11.3)(webpack@5.90.1): resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==} engines: {node: '>=14.15.0'} hasBin: true @@ -13879,23 +13900,23 @@ packages: optional: true dependencies: '@discoveryjs/json-ext': 0.5.7 - '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.90.3) - '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.90.3) - '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack-dev-server@3.11.3)(webpack@5.90.3) + '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.90.1) + '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.90.1) + '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack-dev-server@3.11.3)(webpack@5.90.1) colorette: 2.0.20 commander: 10.0.1 cross-spawn: 7.0.3 - envinfo: 7.11.1 + envinfo: 7.11.0 fastest-levenshtein: 1.0.16 import-local: 3.1.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.90.3(webpack-cli@5.1.4) - webpack-dev-server: 3.11.3(webpack-cli@5.1.4)(webpack@5.90.3) + webpack: 5.90.1(webpack-cli@5.1.4) + webpack-dev-server: 3.11.3(webpack-cli@5.1.4)(webpack@5.90.1) webpack-merge: 5.10.0 dev: true - /webpack-dev-middleware@3.7.3(webpack@5.90.3): + /webpack-dev-middleware@3.7.3(webpack@5.90.1): resolution: {integrity: sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==} engines: {node: '>= 6'} peerDependencies: @@ -13905,11 +13926,11 @@ packages: mime: 2.6.0 mkdirp: 0.5.6 range-parser: 1.2.1 - webpack: 5.90.3(webpack-cli@5.1.4) + webpack: 5.90.1(webpack-cli@5.1.4) webpack-log: 2.0.0 dev: true - /webpack-dev-server@3.11.3(webpack-cli@5.1.4)(webpack@5.90.3): + /webpack-dev-server@3.11.3(webpack-cli@5.1.4)(webpack@5.90.1): resolution: {integrity: sha512-3x31rjbEQWKMNzacUZRE6wXvUFuGpH7vr0lIEbYpMAG9BOxi0928QU1BBswOAP3kg3H1O4hiS+sq4YyAn6ANnA==} engines: {node: '>= 6.11.5'} hasBin: true @@ -13927,12 +13948,12 @@ packages: connect-history-api-fallback: 1.6.0 debug: 4.3.4(supports-color@6.1.0) del: 4.1.1 - express: 4.18.3(supports-color@6.1.0) + express: 4.18.2(supports-color@6.1.0) html-entities: 1.4.0 http-proxy-middleware: 0.19.1(debug@4.3.4)(supports-color@6.1.0) import-local: 2.0.0 internal-ip: 4.3.0 - ip: 1.1.9 + ip: 1.1.8 is-absolute-url: 3.0.3 killable: 1.0.1 loglevel: 1.9.1 @@ -13949,9 +13970,9 @@ packages: strip-ansi: 3.0.1 supports-color: 6.1.0 url: 0.11.3 - webpack: 5.90.3(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack-dev-server@3.11.3)(webpack@5.90.3) - webpack-dev-middleware: 3.7.3(webpack@5.90.3) + webpack: 5.90.1(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack-dev-server@3.11.3)(webpack@5.90.1) + webpack-dev-middleware: 3.7.3(webpack@5.90.1) webpack-log: 2.0.0 ws: 6.2.2 yargs: 13.3.2 @@ -13988,8 +14009,8 @@ packages: engines: {node: '>=10.13.0'} dev: true - /webpack@5.90.3(webpack-cli@5.1.4): - resolution: {integrity: sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==} + /webpack@5.90.1(webpack-cli@5.1.4): + resolution: {integrity: sha512-SstPdlAC5IvgFnhiRok8hqJo/+ArAbNv7rhU4fnWGHNVfN59HSQFaxZDSAL3IFG2YmqxuRs+IU33milSxbPlog==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -14005,9 +14026,9 @@ packages: '@webassemblyjs/wasm-parser': 1.11.6 acorn: 8.11.3 acorn-import-assertions: 1.9.0(acorn@8.11.3) - browserslist: 4.23.0 + browserslist: 4.22.3 chrome-trace-event: 1.0.3 - enhanced-resolve: 5.15.1 + enhanced-resolve: 5.15.0 es-module-lexer: 1.4.1 eslint-scope: 5.1.1 events: 3.3.0 @@ -14019,9 +14040,9 @@ packages: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(webpack@5.90.3) + terser-webpack-plugin: 5.3.10(webpack@5.90.1) watchpack: 2.4.0 - webpack-cli: 5.1.4(webpack-dev-server@3.11.3)(webpack@5.90.3) + webpack-cli: 5.1.4(webpack-dev-server@3.11.3)(webpack@5.90.1) webpack-sources: 3.2.3 transitivePeerDependencies: - '@swc/core' @@ -14078,8 +14099,8 @@ packages: resolution: {integrity: sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==} engines: {node: '>= 0.4'} dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.7 + available-typed-arrays: 1.0.6 + call-bind: 1.0.5 for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.2 @@ -14397,7 +14418,7 @@ packages: engines: {node: '>=12'} dependencies: cliui: 8.0.1 - escalade: 3.1.2 + escalade: 3.1.1 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 From 492c6f4dd6aa596f2e2b10b0c96c1604fee3e2f7 Mon Sep 17 00:00:00 2001 From: ivanm Date: Wed, 6 Mar 2024 12:50:44 +0100 Subject: [PATCH 142/173] refs #6969 test --- db/routines/vn/procedures/buyUltimateFromInterval.sql | 1 + 1 file changed, 1 insertion(+) diff --git a/db/routines/vn/procedures/buyUltimateFromInterval.sql b/db/routines/vn/procedures/buyUltimateFromInterval.sql index f78174482..e264b500d 100644 --- a/db/routines/vn/procedures/buyUltimateFromInterval.sql +++ b/db/routines/vn/procedures/buyUltimateFromInterval.sql @@ -43,6 +43,7 @@ BEGIN LIMIT 10000000000000000000) sub GROUP BY itemFk, warehouseFk; + INSERT IGNORE INTO tmp.buyUltimateFromInterval(itemFk, warehouseFk, buyFk, landed, isIgnored) SELECT b.itemFk, From c81749da78e6878afa400e35dfd22312a04a39ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Andr=C3=A9s?= Date: Wed, 6 Mar 2024 16:38:34 +0100 Subject: [PATCH 143/173] feat: add column department.pbxQueue refs #6387 --- db/versions/10940-aquaLilium/00-firstScript.sql | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 db/versions/10940-aquaLilium/00-firstScript.sql diff --git a/db/versions/10940-aquaLilium/00-firstScript.sql b/db/versions/10940-aquaLilium/00-firstScript.sql new file mode 100644 index 000000000..fb4fa33ff --- /dev/null +++ b/db/versions/10940-aquaLilium/00-firstScript.sql @@ -0,0 +1,8 @@ + + ALTER TABLE vn.department + ADD COLUMN pbxQueue varchar(128) CHARACTER + SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL NULL; + + ALTER TABLE vn.department + ADD CONSTRAINT department_queue_FK + FOREIGN KEY (pbxQueue) REFERENCES pbx.queue(name) ON DELETE RESTRICT ON UPDATE CASCADE; From cd40bd47e58486405f2f3a90a18672fb451543ad Mon Sep 17 00:00:00 2001 From: guillermo Date: Thu, 7 Mar 2024 07:08:40 +0100 Subject: [PATCH 144/173] refactor: refs #6495 Deleted procs --- .../vn/procedures/client_mailSales.sql | 101 ------------------ .../procedures/client_mailSalesLauncher.sql | 30 ------ .../10918-wheatRose/00-firstScript.sql | 4 +- 3 files changed, 1 insertion(+), 134 deletions(-) delete mode 100644 db/routines/vn/procedures/client_mailSales.sql delete mode 100644 db/routines/vn/procedures/client_mailSalesLauncher.sql diff --git a/db/routines/vn/procedures/client_mailSales.sql b/db/routines/vn/procedures/client_mailSales.sql deleted file mode 100644 index 7178d981f..000000000 --- a/db/routines/vn/procedures/client_mailSales.sql +++ /dev/null @@ -1,101 +0,0 @@ -DELIMITER $$ -CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`client_mailSales`( - vSelf INT, - vDated DATE -) -proc: BEGIN -/** - * Envia un correo electrónico con un resumen de los pedidos - * preparados para un cliente. - * - * @param vSelf Id del cliente - * @param vDated Fecha de preparación - */ - DECLARE vTicketFk INT; - DECLARE vAlias VARCHAR(50); - DECLARE vStreet VARCHAR(255); - DECLARE vCity VARCHAR(25); - DECLARE vAmount DOUBLE; - DECLARE vMailTo VARCHAR(250); - DECLARE vString TEXT; - DECLARE vDone BOOL DEFAULT FALSE; - DECLARE vTickets CURSOR FOR - SELECT t.id, - t.nickname, - CAST(sub.amount AS DECIMAL(10,2)) amount, - a.street, - a.city - FROM ticket t - JOIN `address` a ON t.addressFk = a.id - JOIN ( - SELECT s.ticketFk, - SUM( - s.quantity * s.price * (100 - s.discount) / 100 - ) amount - FROM sale s - JOIN ticket t ON t.id = s.ticketFk - WHERE t.shipped >= util.VN_CURDATE() - INTERVAL 6 MONTH - GROUP BY s.ticketFk - ) sub ON sub.ticketFk = t.id - WHERE t.shipped BETWEEN vDated AND util.dayEnd(vDated) - AND t.clientFk = vSelf; - DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE; - - SET vDated = IFNULL(vDated, util.yesterday()); - - SET vString = CONCAT('

', - '

Relación de envíos.

', - '

Dia: ', vDated, '

'); - - OPEN vTickets; - l: LOOP - SET vDone = FALSE; - FETCH vTickets INTO vTicketFk, vAlias, vAmount, vStreet, vCity; - - IF vDone THEN - LEAVE l; - END IF; - - SET vString = CONCAT(vString, '

', - ' - - - - - - -
- Ticket ', vTicketFk,' ', vAmount, ' €
', - ' ', vAlias, '
', - ' ', vStreet, '(', vCity, ')'); - END LOOP; - - IF vTicketFk IS NULL THEN - LEAVE proc; - END IF; - - SET vString = CONCAT( - vString, - '', - '', - '
', - '

Puede acceder al detalle de los albaranes haciendo click sobre el número de Ticket', - '

Muchas gracias por su confianza

', - '

'); - - SELECT email INTO vMailTo - FROM client - WHERE id = vSelf - AND email <> ''; - - -- Envío del email - IF vMailTo IS NOT NULL THEN - CALL mail_insert( - vMailTo, - NULL, - 'Resumen de pedidos preparados', - vString - ); - END IF; -END$$ -DELIMITER ; diff --git a/db/routines/vn/procedures/client_mailSalesLauncher.sql b/db/routines/vn/procedures/client_mailSalesLauncher.sql deleted file mode 100644 index 89337b5c8..000000000 --- a/db/routines/vn/procedures/client_mailSalesLauncher.sql +++ /dev/null @@ -1,30 +0,0 @@ -DELIMITER $$ -CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`client_mailSalesLauncher`() -BEGIN -/** - * Lanza el envío de correos electrónicos con el resumen de pedidos - * preparados para todos los clientes con el campo eypbc a TRUE. - * - * @param vSelf Id del cliente - * @param vDated Fecha de preparación - */ - DECLARE vDone BOOL DEFAULT FALSE; - DECLARE vClientFk INT; - DECLARE vClients CURSOR FOR - SELECT id - FROM client - WHERE eypbc; - DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE; - - OPEN vClients; - l: LOOP - SET vDone = FALSE; - FETCH vClients INTO vClientFk; - - IF vDone THEN - LEAVE l; - END IF; - CALL client_mailSales(vClientFk, util.yesterday()); - END LOOP; -END$$ -DELIMITER ; diff --git a/db/versions/10918-wheatRose/00-firstScript.sql b/db/versions/10918-wheatRose/00-firstScript.sql index c915e909a..5d0fb1c32 100644 --- a/db/versions/10918-wheatRose/00-firstScript.sql +++ b/db/versions/10918-wheatRose/00-firstScript.sql @@ -1,4 +1,2 @@ -UPDATE IGNORE bs.nightTask - SET `procedure` = 'client_mailSalesLauncher', - `schema` = 'vn' +DELETE FROM bs.nightTask WHERE `procedure` = 'emailYesterdayPurchasesLauncher'; From a59d45b28c2ab93dfcb6e6a923131ef9d5b80a90 Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 7 Mar 2024 07:26:31 +0100 Subject: [PATCH 145/173] refs #6990 hotFix: puppeteer cluster --- package.json | 2 +- pnpm-lock.yaml | 2 +- print/package.json | 64 +++++++++++++++++++++++----------------------- 3 files changed, 34 insertions(+), 34 deletions(-) diff --git a/package.json b/package.json index 302738524..6956cabeb 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "mysql": "2.18.1", "node-ssh": "^11.0.0", "object.pick": "^1.3.0", - "puppeteer": "^21.11.0", + "puppeteer": "21.11.0", "read-chunk": "^3.2.0", "require-yaml": "0.0.1", "smbhash": "0.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3e335c06c..b1f68378d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -93,7 +93,7 @@ dependencies: specifier: ^1.3.0 version: 1.3.0 puppeteer: - specifier: ^21.11.0 + specifier: 21.11.0 version: 21.11.0 read-chunk: specifier: ^3.2.0 diff --git a/print/package.json b/print/package.json index 2adb7f1e0..408990706 100755 --- a/print/package.json +++ b/print/package.json @@ -1,34 +1,34 @@ { - "name": "vn-print", - "version": "2.0.0", - "description": "Print service", - "scripts": { - "start": "node server/server.js", - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "https://git.verdnatura.es/salix" - }, - "license": "GPL-3.0", - "packageManager": "pnpm@8.15.1", - "dependencies": { - "express": "4.14.0", - "fs-extra": "^7.0.1", - "intl": "^1.2.5", - "js-yaml": "^3.13.1", - "jsbarcode": "^3.11.5", - "juice": "^5.2.0", - "log4js": "^6.7.0", - "mysql2": "^1.7.0", - "nodemailer": "^4.7.0", - "puppeteer": "^22.4.0", - "puppeteer-cluster": "^0.23.0", - "qrcode": "^1.4.2", - "strftime": "^0.10.0", - "vue": "^2.6.10", - "vue-i18n": "^8.15.0", - "vue-server-renderer": "^2.6.10", - "xmldom": "^0.6.0" - } + "name": "vn-print", + "version": "2.0.0", + "description": "Print service", + "scripts": { + "start": "node server/server.js", + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "https://git.verdnatura.es/salix" + }, + "license": "GPL-3.0", + "packageManager": "pnpm@8.15.1", + "dependencies": { + "express": "4.14.0", + "fs-extra": "^7.0.1", + "intl": "^1.2.5", + "js-yaml": "^3.13.1", + "jsbarcode": "^3.11.5", + "juice": "^5.2.0", + "log4js": "^6.7.0", + "mysql2": "^1.7.0", + "nodemailer": "^4.7.0", + "puppeteer": "22.4.0", + "puppeteer-cluster": "0.23.0", + "qrcode": "^1.4.2", + "strftime": "^0.10.0", + "vue": "^2.6.10", + "vue-i18n": "^8.15.0", + "vue-server-renderer": "^2.6.10", + "xmldom": "^0.6.0" + } } From e127457ed6deb0252f4d33d79987c6de6974b23f Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 7 Mar 2024 07:27:18 +0100 Subject: [PATCH 146/173] refs #6990 hotFix: puppeteer cluster --- print/pnpm-lock.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/print/pnpm-lock.yaml b/print/pnpm-lock.yaml index 185dd89de..5f0b8cd02 100644 --- a/print/pnpm-lock.yaml +++ b/print/pnpm-lock.yaml @@ -33,10 +33,10 @@ dependencies: specifier: ^4.7.0 version: 4.7.0 puppeteer: - specifier: ^22.4.0 + specifier: 22.4.0 version: 22.4.0 puppeteer-cluster: - specifier: ^0.23.0 + specifier: 0.23.0 version: 0.23.0(puppeteer@22.4.0) qrcode: specifier: ^1.4.2 From 702792ace09e9e6605141a802a92d83717a71b76 Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 7 Mar 2024 07:28:55 +0100 Subject: [PATCH 147/173] refs #6990 hotFix: puppeteer cluster --- print/package.json | 2 +- print/pnpm-lock.yaml | 119 +++++++++++++------------------------------ 2 files changed, 36 insertions(+), 85 deletions(-) diff --git a/print/package.json b/print/package.json index 408990706..ea0e37f99 100755 --- a/print/package.json +++ b/print/package.json @@ -22,7 +22,7 @@ "log4js": "^6.7.0", "mysql2": "^1.7.0", "nodemailer": "^4.7.0", - "puppeteer": "22.4.0", + "puppeteer": "21.11.0", "puppeteer-cluster": "0.23.0", "qrcode": "^1.4.2", "strftime": "^0.10.0", diff --git a/print/pnpm-lock.yaml b/print/pnpm-lock.yaml index 5f0b8cd02..13b2fe827 100644 --- a/print/pnpm-lock.yaml +++ b/print/pnpm-lock.yaml @@ -33,11 +33,11 @@ dependencies: specifier: ^4.7.0 version: 4.7.0 puppeteer: - specifier: 22.4.0 - version: 22.4.0 + specifier: 21.11.0 + version: 21.11.0 puppeteer-cluster: specifier: 0.23.0 - version: 0.23.0(puppeteer@22.4.0) + version: 0.23.0(puppeteer@21.11.0) qrcode: specifier: ^1.4.2 version: 1.5.3 @@ -103,17 +103,16 @@ packages: to-fast-properties: 2.0.0 dev: false - /@puppeteer/browsers@2.1.0: - resolution: {integrity: sha512-xloWvocjvryHdUjDam/ZuGMh7zn4Sn3ZAaV4Ah2e2EwEt90N3XphZlSsU3n0VDc1F7kggCjMuH0UuxfPQ5mD9w==} - engines: {node: '>=18'} + /@puppeteer/browsers@1.9.1: + resolution: {integrity: sha512-PuvK6xZzGhKPvlx3fpfdM2kYY3P/hB1URtK8wA7XUJ6prn6pp22zvJHu48th0SGcHL9SutbPHrFuQgfXTFobWA==} + engines: {node: '>=16.3.0'} hasBin: true dependencies: debug: 4.3.4 extract-zip: 2.0.1 progress: 2.0.3 - proxy-agent: 6.4.0 - semver: 7.6.0 - tar-fs: 3.0.5 + proxy-agent: 6.3.1 + tar-fs: 3.0.4 unbzip2-stream: 1.4.3 yargs: 17.7.2 transitivePeerDependencies: @@ -247,37 +246,6 @@ packages: resolution: {integrity: sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==} dev: false - /bare-events@2.2.1: - resolution: {integrity: sha512-9GYPpsPFvrWBkelIhOhTWtkeZxVxZOdb3VnFTCzlOo3OjvmTvzLoZFUT8kNFACx0vJej6QPney1Cf9BvzCNE/A==} - requiresBuild: true - dev: false - optional: true - - /bare-fs@2.2.1: - resolution: {integrity: sha512-+CjmZANQDFZWy4PGbVdmALIwmt33aJg8qTkVjClU6X4WmZkTPBDxRHiBn7fpqEWEfF3AC2io++erpViAIQbSjg==} - requiresBuild: true - dependencies: - bare-events: 2.2.1 - bare-os: 2.2.0 - bare-path: 2.1.0 - streamx: 2.15.6 - dev: false - optional: true - - /bare-os@2.2.0: - resolution: {integrity: sha512-hD0rOPfYWOMpVirTACt4/nK8mC55La12K5fY1ij8HAdfQakD62M+H4o4tpfKzVGLgRDTuk3vjA4GqGXXCeFbag==} - requiresBuild: true - dev: false - optional: true - - /bare-path@2.1.0: - resolution: {integrity: sha512-DIIg7ts8bdRKwJRJrUMy/PICEaQZaPGZ26lsSx9MJSwIhSrcdHn7/C8W+XmnG/rKi6BaRcz+JO00CjZteybDtw==} - requiresBuild: true - dependencies: - bare-os: 2.2.0 - dev: false - optional: true - /base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} dev: false @@ -361,12 +329,12 @@ packages: lodash.some: 4.6.0 dev: false - /chromium-bidi@0.5.12(devtools-protocol@0.0.1249869): - resolution: {integrity: sha512-sZMgEBWKbupD0Q7lyFu8AWkrE+rs5ycE12jFkGwIgD/VS8lDPtelPlXM7LYaq4zrkZ/O2L3f4afHUHL0ICdKog==} + /chromium-bidi@0.5.8(devtools-protocol@0.0.1232444): + resolution: {integrity: sha512-blqh+1cEQbHBKmok3rVJkBlBxt9beKBgOsxbFgs7UJcoVbbeZ+K7+6liAsjgpc8l1Xd55cQUy14fXZdGSb4zIw==} peerDependencies: devtools-protocol: '*' dependencies: - devtools-protocol: 0.0.1249869 + devtools-protocol: 0.0.1232444 mitt: 3.0.1 urlpattern-polyfill: 10.0.0 dev: false @@ -580,8 +548,8 @@ packages: resolution: {integrity: sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==} dev: false - /devtools-protocol@0.0.1249869: - resolution: {integrity: sha512-Ctp4hInA0BEavlUoRy9mhGq0i+JSo/AwVyX2EFgZmV1kYB+Zq+EMBAn52QWu6FbRr10hRb6pBl420upbp4++vg==} + /devtools-protocol@0.0.1232444: + resolution: {integrity: sha512-pM27vqEfxSxRkTMnF+XCmxSEb6duO5R+t8A9DEEJgy4Wz2RVanje2mmj99B6A3zv2r/qGfYlOvYznUhuokizmg==} dev: false /dijkstrajs@1.0.3: @@ -1293,13 +1261,6 @@ packages: yallist: 3.1.1 dev: false - /lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - dependencies: - yallist: 4.0.0 - dev: false - /lru-cache@7.18.3: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} @@ -1350,6 +1311,10 @@ packages: resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} dev: false + /mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + dev: false + /ms@0.7.1: resolution: {integrity: sha512-lRLiIR9fSNpnP6TC4v8+4OU7oStC01esuNowdQ34L+Gk8e5Puoc88IqJ+XAY/B3Mn2ZKis8l8HX90oU8ivzUHg==} dev: false @@ -1574,8 +1539,8 @@ packages: ipaddr.js: 1.4.0 dev: false - /proxy-agent@6.4.0: - resolution: {integrity: sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==} + /proxy-agent@6.3.1: + resolution: {integrity: sha512-Rb5RVBy1iyqOtNl15Cw/llpeLH8bsb37gM1FUfKQ+Wck6xHlbAhWGUFiTRHtkjqGTA5pSHz6+0hrPW/oECihPQ==} engines: {node: '>= 14'} dependencies: agent-base: 7.1.0 @@ -1610,26 +1575,26 @@ packages: engines: {node: '>=6'} dev: false - /puppeteer-cluster@0.23.0(puppeteer@22.4.0): + /puppeteer-cluster@0.23.0(puppeteer@21.11.0): resolution: {integrity: sha512-108terIWDzPrQopmoYSPd5yDoy3FGJ2dNnoGMkGYPs6xtkdhgaECwpfZkzaRToMQPZibUOz0/dSSGgPEdXEhkQ==} peerDependencies: puppeteer: '>=1.5.0' dependencies: debug: 4.3.4 - puppeteer: 22.4.0 + puppeteer: 21.11.0 transitivePeerDependencies: - supports-color dev: false - /puppeteer-core@22.4.0: - resolution: {integrity: sha512-MZttAbttrxi6O/B//rY6zQihjFe/vXeCLb5YvKH2xG6yrcVESo0Hc5/Cv49omwZyZzAJ1BK8BnDeatDsj+3hMw==} - engines: {node: '>=18'} + /puppeteer-core@21.11.0: + resolution: {integrity: sha512-ArbnyA3U5SGHokEvkfWjW+O8hOxV1RSJxOgriX/3A4xZRqixt9ZFHD0yPgZQF05Qj0oAqi8H/7stDorjoHY90Q==} + engines: {node: '>=16.13.2'} dependencies: - '@puppeteer/browsers': 2.1.0 - chromium-bidi: 0.5.12(devtools-protocol@0.0.1249869) + '@puppeteer/browsers': 1.9.1 + chromium-bidi: 0.5.8(devtools-protocol@0.0.1232444) cross-fetch: 4.0.0 debug: 4.3.4 - devtools-protocol: 0.0.1249869 + devtools-protocol: 0.0.1232444 ws: 8.16.0 transitivePeerDependencies: - bufferutil @@ -1638,15 +1603,15 @@ packages: - utf-8-validate dev: false - /puppeteer@22.4.0: - resolution: {integrity: sha512-tR+JsDbA2qD1DqRX4F9k9SxQhk6UzcaCN+Qux7+WrDceS7wcR7tlFmMNB8+g8zE4Fmr/iRTOtf5wNnTW9cGUFQ==} - engines: {node: '>=18'} + /puppeteer@21.11.0: + resolution: {integrity: sha512-9jTHuYe22TD3sNxy0nEIzC7ZrlRnDgeX3xPkbS7PnbdwYjl2o/z/YuCrRBwezdKpbTDTJ4VqIggzNyeRcKq3cg==} + engines: {node: '>=16.13.2'} hasBin: true requiresBuild: true dependencies: - '@puppeteer/browsers': 2.1.0 + '@puppeteer/browsers': 1.9.1 cosmiconfig: 9.0.0 - puppeteer-core: 22.4.0 + puppeteer-core: 21.11.0 transitivePeerDependencies: - bufferutil - encoding @@ -1768,14 +1733,6 @@ packages: hasBin: true dev: false - /semver@7.6.0: - resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - dev: false - /send@0.14.1: resolution: {integrity: sha512-1Ru269QpUVUgD32Y9jdyBXiX+pHYuYnTzR17w+DhyOWvGMPjJILrnLhl9c4LQjtIy2BSAa6Ykq0ZdGcAjaXlwQ==} engines: {node: '>= 0.8.0'} @@ -1997,14 +1954,12 @@ packages: engines: {node: '>= 0.4'} dev: false - /tar-fs@3.0.5: - resolution: {integrity: sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==} + /tar-fs@3.0.4: + resolution: {integrity: sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==} dependencies: + mkdirp-classic: 0.5.3 pump: 3.0.0 tar-stream: 3.1.7 - optionalDependencies: - bare-fs: 2.2.1 - bare-path: 2.1.0 dev: false /tar-stream@3.1.7: @@ -2249,10 +2204,6 @@ packages: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} dev: false - /yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - dev: false - /yargs-parser@18.1.3: resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} engines: {node: '>=6'} From dd732297c4e671a6f5b3d54c097a4cdd3e87ebf7 Mon Sep 17 00:00:00 2001 From: sergiodt Date: Thu, 7 Mar 2024 07:31:04 +0100 Subject: [PATCH 148/173] Merge branch 'dev' into 6078_workerActivty --- back/model-config.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/back/model-config.json b/back/model-config.json index 6a85fac71..8e4ef901d 100644 --- a/back/model-config.json +++ b/back/model-config.json @@ -94,6 +94,9 @@ "Module": { "dataSource": "vn" }, + "MrwConfig": { + "dataSource": "vn" + }, "Notification": { "dataSource": "vn" }, From b8f09f363fb062a20c28213601a1b7fa710f35ae Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 7 Mar 2024 09:33:32 +0100 Subject: [PATCH 149/173] fix: refs #6995 restore vn2008.jerarquia --- db/versions/10941-limePaniculata/00-restoreVn2008Jerarquia.sql | 1 + 1 file changed, 1 insertion(+) create mode 100644 db/versions/10941-limePaniculata/00-restoreVn2008Jerarquia.sql diff --git a/db/versions/10941-limePaniculata/00-restoreVn2008Jerarquia.sql b/db/versions/10941-limePaniculata/00-restoreVn2008Jerarquia.sql new file mode 100644 index 000000000..3f6a52bef --- /dev/null +++ b/db/versions/10941-limePaniculata/00-restoreVn2008Jerarquia.sql @@ -0,0 +1 @@ +ALTER TABLE IF EXISTS vn2008.jerarquia__ RENAME vn2008.jerarquia; From 572a09f704bf0aae7d52bde90674277a40c8ea68 Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 7 Mar 2024 09:55:29 +0100 Subject: [PATCH 150/173] fix: refs #6995 restore vn.exchangeInsuranceInPrevious --- db/routines/vn/views/exchangeInsuranceInPrevious.sql | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 db/routines/vn/views/exchangeInsuranceInPrevious.sql diff --git a/db/routines/vn/views/exchangeInsuranceInPrevious.sql b/db/routines/vn/views/exchangeInsuranceInPrevious.sql new file mode 100644 index 000000000..097728bc7 --- /dev/null +++ b/db/routines/vn/views/exchangeInsuranceInPrevious.sql @@ -0,0 +1,9 @@ +CREATE OR REPLACE DEFINER=`root`@`localhost` + SQL SECURITY DEFINER + VIEW `vn`.`exchangeInsuranceInPrevious` +AS SELECT `ei`.`finished` AS `dated`, + `ei`.`amount` AS `amount`, + `ei`.`rate` AS `rate` +FROM `vn`.`exchangeInsurance` `ei` +WHERE `ei`.`amount` <> 0 + AND `ei`.`financialProductTypefk` = 'SC' From 99c9ad77d23cb848ac6d3b22693047b11756c58c Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 7 Mar 2024 10:07:42 +0100 Subject: [PATCH 151/173] fix: refs #6995 restore vn.exchangeInsuranceInPrevious --- db/routines/vn/views/exchangeInsuranceInPrevious.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/routines/vn/views/exchangeInsuranceInPrevious.sql b/db/routines/vn/views/exchangeInsuranceInPrevious.sql index 097728bc7..3f997e8bf 100644 --- a/db/routines/vn/views/exchangeInsuranceInPrevious.sql +++ b/db/routines/vn/views/exchangeInsuranceInPrevious.sql @@ -1,7 +1,7 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `vn`.`exchangeInsuranceInPrevious` -AS SELECT `ei`.`finished` AS `dated`, +AS SELECT `ei`.`dueDated` AS `dated`, `ei`.`amount` AS `amount`, `ei`.`rate` AS `rate` FROM `vn`.`exchangeInsurance` `ei` From 3bfaa97ddd1b048b04aa4e09f5b5d019ba74f31c Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 7 Mar 2024 10:18:30 +0100 Subject: [PATCH 152/173] fix: refs #6995remove preparation_exception --- db/routines/vn/views/preparationException.sql | 7 ------- 1 file changed, 7 deletions(-) delete mode 100644 db/routines/vn/views/preparationException.sql diff --git a/db/routines/vn/views/preparationException.sql b/db/routines/vn/views/preparationException.sql deleted file mode 100644 index ba624ad27..000000000 --- a/db/routines/vn/views/preparationException.sql +++ /dev/null @@ -1,7 +0,0 @@ -CREATE OR REPLACE DEFINER=`root`@`localhost` - SQL SECURITY DEFINER - VIEW `vn`.`preparationException` -AS SELECT `p`.`exception_day` AS `exceptionDay`, - `p`.`warehouse_id` AS `warehouseFk`, - `p`.`percentage` AS `percentage` -FROM `vn2008`.`preparation_exception` `p` From 00355aba3ad3ad3e8cb65a7d1f77fdcc0bc572e7 Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 7 Mar 2024 10:24:18 +0100 Subject: [PATCH 153/173] fix: refs #6995 desdeprecar unary y unary_scan --- db/versions/10942-turquoiseCyca/00-firstScript.sql | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 db/versions/10942-turquoiseCyca/00-firstScript.sql diff --git a/db/versions/10942-turquoiseCyca/00-firstScript.sql b/db/versions/10942-turquoiseCyca/00-firstScript.sql new file mode 100644 index 000000000..1b1ffca2f --- /dev/null +++ b/db/versions/10942-turquoiseCyca/00-firstScript.sql @@ -0,0 +1,3 @@ +-- Place your SQL code here +ALTER TABLE IF EXISTS vn2008.unary__ RENAME vn2008.unary; +ALTER TABLE IF EXISTS vn2008.unary_scan__ RENAME vn2008.unary_scan; From fbdebad12c9b306004dee3fba252c1fc4613584e Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 7 Mar 2024 10:29:31 +0100 Subject: [PATCH 154/173] fix: refs #6995 desdeprecar unary_scan, unary_scan_line, unary_scan_line_buy, unary_scan_line_expedition --- db/versions/10943-greenOrchid/00-firstScript.sql | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 db/versions/10943-greenOrchid/00-firstScript.sql diff --git a/db/versions/10943-greenOrchid/00-firstScript.sql b/db/versions/10943-greenOrchid/00-firstScript.sql new file mode 100644 index 000000000..d244c6762 --- /dev/null +++ b/db/versions/10943-greenOrchid/00-firstScript.sql @@ -0,0 +1,4 @@ +ALTER TABLE IF EXISTS vn2008.unary_scan__ RENAME vn2008.unary_scan; +ALTER TABLE IF EXISTS vn2008.unary_scan_line__ RENAME vn2008.unary_scan_line; +ALTER TABLE IF EXISTS vn2008.unary_scan_line_buy__ RENAME vn2008.unary_scan_line_buy; +ALTER TABLE IF EXISTS vn2008.unary_scan_line_expedition__ RENAME vn2008.unary_scan_line_expedition; From f29212cb6546aa26bf6c9371e9f094c67de81c05 Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 7 Mar 2024 10:34:24 +0100 Subject: [PATCH 155/173] deploy: refs #6995 production dump --- db/dump/.dump/data.sql | 154 ++- db/dump/.dump/privileges.sql | 68 +- db/dump/.dump/structure.sql | 1972 +++++++++++++++++----------------- db/dump/.dump/triggers.sql | 212 +++- 4 files changed, 1293 insertions(+), 1113 deletions(-) diff --git a/db/dump/.dump/data.sql b/db/dump/.dump/data.sql index d7e99a4ee..e9801647e 100644 --- a/db/dump/.dump/data.sql +++ b/db/dump/.dump/data.sql @@ -3,7 +3,7 @@ USE `util`; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; -INSERT INTO `version` VALUES ('vn-database','10889','03550573b07783c82b290df4ebaeb91c1030bc18','2024-02-23 09:55:56','10906'); +INSERT INTO `version` VALUES ('vn-database','10943','fbdebad12c9b306004dee3fba252c1fc4613584e','2024-03-07 10:29:57','10943'); INSERT INTO `versionLog` VALUES ('vn-database','10107','00-firstScript.sql','jenkins@10.0.2.69','2022-04-23 10:53:53',NULL,NULL); INSERT INTO `versionLog` VALUES ('vn-database','10112','00-firstScript.sql','jenkins@10.0.2.69','2022-05-09 09:14:53',NULL,NULL); @@ -621,6 +621,7 @@ INSERT INTO `versionLog` VALUES ('vn-database','10835','32-definitivo.sql','jenk INSERT INTO `versionLog` VALUES ('vn-database','10835','33-dropTables.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-02-22 08:32:55',NULL,NULL); INSERT INTO `versionLog` VALUES ('vn-database','10835','34-permisos.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-02-22 08:32:57',NULL,NULL); INSERT INTO `versionLog` VALUES ('vn-database','10838','00-createInventoryConfig.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-02-07 22:36:27',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10841','00-entryDms.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-03-07 08:12:55',NULL,NULL); INSERT INTO `versionLog` VALUES ('vn-database','10845','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2024-02-15 09:45:55',NULL,NULL); INSERT INTO `versionLog` VALUES ('vn-database','10848','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2024-02-15 09:45:55',NULL,NULL); INSERT INTO `versionLog` VALUES ('vn-database','10849','00-roleLog.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2024-02-15 09:45:55',NULL,NULL); @@ -650,6 +651,14 @@ INSERT INTO `versionLog` VALUES ('vn-database','10856','00-cloneAcl.sql','jenkin INSERT INTO `versionLog` VALUES ('vn-database','10857','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-02-22 08:32:57',NULL,NULL); INSERT INTO `versionLog` VALUES ('vn-database','10858','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2024-02-15 09:46:06',NULL,NULL); INSERT INTO `versionLog` VALUES ('vn-database','10861','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2024-02-15 09:46:06',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10862','00-alterAgencyTermConfig.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-03-07 08:12:55',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10862','00-alterGastosResumen.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-03-07 08:12:55',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10862','00-alterInvoiceOutTaxConfig.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-03-07 08:12:55',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10862','00-alterItemGroupToOffer.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-03-07 08:12:55',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10862','01-ventasContablesPk.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-03-07 08:12:57',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10862','02-updateExpenseRegularize.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-03-07 08:12:57',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10862','03-updateExpense.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-03-07 08:12:57',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10862','04-updateExpenseConflict.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-03-07 08:12:57',NULL,NULL); INSERT INTO `versionLog` VALUES ('vn-database','10863','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-02-22 08:32:59',NULL,NULL); INSERT INTO `versionLog` VALUES ('vn-database','10865','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-02-22 08:32:59',NULL,NULL); INSERT INTO `versionLog` VALUES ('vn-database','10867','00-createAclInvoiceIn.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-02-22 08:32:59',NULL,NULL); @@ -666,10 +675,37 @@ INSERT INTO `versionLog` VALUES ('vn-database','10879','00-firstScript.sql','jen INSERT INTO `versionLog` VALUES ('vn-database','10882','00-vehicle.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-02-22 08:33:01',NULL,NULL); INSERT INTO `versionLog` VALUES ('vn-database','10883','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-02-22 08:33:01',NULL,NULL); INSERT INTO `versionLog` VALUES ('vn-database','10884','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-02-22 08:33:01',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10885','00-revokeUpdateClient.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-03-07 08:12:57',NULL,NULL); INSERT INTO `versionLog` VALUES ('vn-database','10888','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-02-16 07:39:57',NULL,NULL); INSERT INTO `versionLog` VALUES ('vn-database','10889','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-02-23 09:55:56',NULL,NULL); INSERT INTO `versionLog` VALUES ('vn-database','10890','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-02-22 08:33:01',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10891','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-03-07 08:12:58',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10896','01-financialProductType.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-03-07 08:12:58',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10896','02-flight.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-03-07 08:12:58',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10896','03-gastos_resumen.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-03-07 08:13:00',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10896','04-integra2.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-03-07 08:13:01',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10896','05-integra2_province.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-03-07 08:13:01',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10896','06-intervalos__delete.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-03-07 08:13:01',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10896','10-mail_templates__delete.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-03-07 08:13:01',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10896','12-ticket_location__delete.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-03-07 08:13:01',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10896','13-turn__delete.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-03-07 08:13:01',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10896','14-movement_label.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-03-07 08:13:01',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10896','15-pago_sdc.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-03-07 08:13:01',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10896','25-warehouse_pickup.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-03-07 08:13:01',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10896','29-kk.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-03-07 08:13:03',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10896','30-permissions.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-03-07 08:13:03',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10898','00-table.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-03-07 08:13:03',NULL,NULL); INSERT INTO `versionLog` VALUES ('vn-database','10903','00-professionalCategoryAddCode.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-02-23 08:38:28',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10906','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-03-07 08:13:04',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10908','00-createSupplierDms.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-03-07 08:13:24',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10909','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2024-02-26 11:07:35',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10912','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-03-07 08:13:25',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10914','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-02-28 11:52:54',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10922','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-02-29 13:44:58',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10940','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2024-03-06 16:48:18',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10941','00-restoreVn2008Jerarquia.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2024-03-07 09:36:57',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10942','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-03-07 10:24:45',NULL,NULL); +INSERT INTO `versionLog` VALUES ('vn-database','10943','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2024-03-07 10:29:57',NULL,NULL); /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; @@ -1029,6 +1065,7 @@ INSERT INTO `roleInherit` VALUES (357,36,35,NULL); INSERT INTO `roleInherit` VALUES (358,36,49,NULL); INSERT INTO `roleInherit` VALUES (359,129,35,NULL); INSERT INTO `roleInherit` VALUES (360,101,129,NULL); +INSERT INTO `roleInherit` VALUES (361,50,112,NULL); INSERT INTO `userPassword` VALUES (1,7,1,0,2,1); @@ -1603,8 +1640,6 @@ INSERT INTO `ACL` VALUES (673,'InvoiceOut','makePdfAndNotify','WRITE','ALLOW','R INSERT INTO `ACL` VALUES (674,'InvoiceOutConfig','*','READ','ALLOW','ROLE','invoicing'); INSERT INTO `ACL` VALUES (676,'Ticket','invoiceTickets','WRITE','ALLOW','ROLE','employee'); INSERT INTO `ACL` VALUES (680,'MailAliasAccount','*','READ','ALLOW','ROLE','employee'); -INSERT INTO `ACL` VALUES (681,'MailAliasAccount','create','WRITE','ALLOW','ROLE','employee'); -INSERT INTO `ACL` VALUES (682,'MailAliasAccount','deleteById','WRITE','ALLOW','ROLE','employee'); INSERT INTO `ACL` VALUES (683,'MailAliasAccount','canEditAlias','WRITE','ALLOW','ROLE','developerBoss'); INSERT INTO `ACL` VALUES (684,'WorkerDisableExcluded','*','READ','ALLOW','ROLE','itManagement'); INSERT INTO `ACL` VALUES (685,'WorkerDisableExcluded','*','WRITE','ALLOW','ROLE','itManagement'); @@ -1717,6 +1752,9 @@ INSERT INTO `ACL` VALUES (794,'Supplier','updateFiscalData','WRITE','ALLOW','ROL INSERT INTO `ACL` VALUES (795,'Ticket','myLastModified','*','ALLOW','ROLE','production'); INSERT INTO `ACL` VALUES (796,'MrwConfig','cancelShipment','WRITE','ALLOW','ROLE','employee'); INSERT INTO `ACL` VALUES (797,'MrwConfig','createShipment','WRITE','ALLOW','ROLE','employee'); +INSERT INTO `ACL` VALUES (798,'MailAliasAccount','*','*','ALLOW','ROLE','itManagement'); +INSERT INTO `ACL` VALUES (799,'Ticket','saveCmr','*','ALLOW','ROLE','developer'); +INSERT INTO `ACL` VALUES (800,'EntryDms','*','*','ALLOW','ROLE','employee'); INSERT INTO `fieldAcl` VALUES (1,'Client','name','update','employee'); INSERT INTO `fieldAcl` VALUES (2,'Client','contact','update','employee'); @@ -2035,61 +2073,61 @@ INSERT INTO `continent` VALUES (3,'África','AF'); INSERT INTO `continent` VALUES (4,'Europa','EU'); INSERT INTO `continent` VALUES (5,'Oceanía','OC'); -INSERT INTO `department` VALUES (1,'VN','VERDNATURA',1,110,763,0,0,0,0,27,NULL,'/',NULL,0,NULL,0,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (22,'shopping','COMPRAS',2,3,NULL,72,0,0,1,0,1,'/1/',NULL,1,NULL,1,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (23,'CMA','CAMARA',13,14,NULL,72,1,1,2,0,37,'/1/37/',NULL,0,NULL,0,1,1,1,NULL,NULL); -INSERT INTO `department` VALUES (31,'it','INFORMATICA',4,5,NULL,72,0,0,1,0,1,'/1/','informatica-cau',1,NULL,1,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (34,'accounting','CONTABILIDAD',6,7,NULL,0,0,0,1,0,1,'/1/',NULL,1,NULL,1,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (35,'finance','FINANZAS',8,9,NULL,0,0,0,1,0,1,'/1/',NULL,1,'begonya@verdnatura.es',1,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (36,'labor','LABORAL',10,11,NULL,0,0,0,1,0,1,'/1/',NULL,1,NULL,1,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (37,'PROD','PRODUCCION',12,35,NULL,72,1,1,1,11,1,'/1/',NULL,0,NULL,0,1,1,1,NULL,NULL); -INSERT INTO `department` VALUES (38,'picking','SACADO',15,16,NULL,72,1,0,2,0,37,'/1/37/',NULL,0,NULL,0,0,0,1,NULL,NULL); -INSERT INTO `department` VALUES (39,'packing','ENCAJADO',17,18,NULL,72,1,0,2,0,37,'/1/37/',NULL,0,NULL,0,0,0,1,NULL,NULL); -INSERT INTO `department` VALUES (41,'administration','ADMINISTRACION',36,37,NULL,72,0,0,1,0,1,'/1/',NULL,1,NULL,1,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (43,'VT','VENTAS',38,67,NULL,0,0,0,1,14,1,'/1/',NULL,1,'',1,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (44,'management','GERENCIA',68,69,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (45,'logistic','LOGISTICA',70,71,NULL,72,0,0,1,0,1,'/1/',NULL,1,NULL,1,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (46,'delivery','REPARTO',72,73,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,1,0,0,NULL,NULL); -INSERT INTO `department` VALUES (48,'storage','ALMACENAJE',74,75,NULL,0,1,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (49,NULL,'PROPIEDAD',76,77,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (52,NULL,'CARGA AEREA',78,79,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (53,'marketing','MARKETING Y COMUNICACIÓN',80,81,NULL,72,0,0,1,0,1,'/1/',NULL,1,NULL,1,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (54,NULL,'ORNAMENTALES',82,83,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (55,NULL,'TALLER NATURAL',19,20,14548,72,0,0,2,0,37,'/1/37/',NULL,0,NULL,0,1,1,0,1118,NULL); -INSERT INTO `department` VALUES (56,NULL,'TALLER ARTIFICIAL',21,22,8470,72,0,0,2,0,37,'/1/37/',NULL,0,NULL,0,1,1,0,1927,NULL); -INSERT INTO `department` VALUES (58,'CMP','CAMPOS',84,87,NULL,72,0,0,1,1,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (59,'maintenance','MANTENIMIENTO',88,89,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,1,0,0,NULL,NULL); -INSERT INTO `department` VALUES (60,'claims','RECLAMACIONES',39,40,NULL,72,0,0,2,0,43,'/1/43/',NULL,1,NULL,1,1,0,0,NULL,NULL); -INSERT INTO `department` VALUES (61,NULL,'VNH',90,93,NULL,73,0,0,1,1,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (66,NULL,'VERDNAMADRID',94,95,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (68,NULL,'COMPLEMENTOS',23,24,NULL,72,1,0,2,0,37,'/1/37/',NULL,0,NULL,0,1,0,0,NULL,NULL); -INSERT INTO `department` VALUES (69,NULL,'VERDNABARNA',96,97,NULL,74,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (80,NULL,'EQUIPO J VALLES',41,42,4250,72,0,0,2,0,43,'/1/43/','jvp_equipo',1,'equipojvalles@verdnatura.es',0,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (86,NULL,'LIMPIEZA',98,99,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (89,NULL,'COORDINACION',100,101,NULL,0,1,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (90,NULL,'TRAILER',91,92,NULL,0,0,0,2,0,61,'/1/61/',NULL,0,NULL,0,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (91,'artificial','ARTIFICIAL',25,26,NULL,0,1,0,2,0,37,'/1/37/',NULL,0,NULL,0,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (92,NULL,'EQUIPO SILVERIO',43,44,1203,0,0,0,2,0,43,'/1/43/','sdc_equipo',0,'gestioncomercial@verdnatura.es',0,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (94,NULL,'EQUIPO J BROCAL',45,46,3797,0,0,0,2,0,43,'/1/43/','jes_equipo',0,'equipojbrocal@verdnatura.es',0,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (95,NULL,'EQUIPO C ZAMBRANO',47,48,4667,0,0,0,2,0,43,'/1/43/','czg_equipo',0,'equipoczambrano@verdnatura.es',0,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (96,NULL,'EQUIPO C LOPEZ',49,50,4661,0,0,0,2,0,43,'/1/43/','cla_equipo',0,'gestioncomercial@verdnatura.es',0,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (115,NULL,'EQUIPO CLAUDI',51,52,3810,0,0,0,2,0,43,'/1/43/','csr_equipo',0,'gestioncomercial@verdnatura.es',0,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (123,NULL,'EQUIPO ELENA BASCUÑANA',53,54,7102,0,0,0,2,0,43,'/1/43/','ebt_equipo',0,'gestioncomercial@verdnatura.es',0,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (124,NULL,'CONTROL INTERNO',102,103,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,1,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (125,NULL,'EQUIPO MIRIAM MAR',55,56,1118,0,0,0,2,0,43,'/1/43/','mir_equipo',0,'equipomirgir@verdnatura.es',0,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (126,NULL,'PRESERVADO',27,28,NULL,0,0,0,2,0,37,'/1/37/',NULL,0,NULL,0,1,1,0,NULL,NULL); -INSERT INTO `department` VALUES (128,NULL,'PALETIZADO',29,30,NULL,0,0,0,2,0,37,'/1/37/',NULL,0,NULL,0,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (130,NULL,'REVISION',31,32,NULL,0,0,0,2,0,37,'/1/37/',NULL,0,NULL,0,0,0,1,NULL,NULL); -INSERT INTO `department` VALUES (131,'greenhouse','INVERNADERO',85,86,NULL,0,0,0,2,0,58,'/1/58/',NULL,0,NULL,0,1,0,0,NULL,NULL); -INSERT INTO `department` VALUES (132,NULL,'EQUIPO DC',57,58,1731,0,0,0,2,0,43,'/1/43/','dc_equipo',1,'gestioncomercial@verdnatura.es',0,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (133,'franceTeam','EQUIPO FRANCIA',59,60,1731,72,0,0,2,0,43,'/1/43/','fr_equipo',1,'francia@verdnatura.es',0,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (134,'portugalTeam','EQUIPO PORTUGAL',61,62,6264,0,0,0,2,0,43,'/1/43/','pt_equipo',1,'portugal@verdnatura.es',0,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (135,'routers','ENRUTADORES',104,105,NULL,0,0,0,1,0,1,'/1/',NULL,1,NULL,0,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (136,'heavyVehicles','VEHICULOS PESADOS',106,107,NULL,0,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (137,'sorter','SORTER',108,109,NULL,0,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (139,NULL,'EQUIPO J SORIA ',63,64,3803,0,0,0,2,0,43,'/1/43/','jss_equipo',1,'gestioncomercial@verdnatura.es',0,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (140,'hollandTeam','EQUIPO HOLANDA',65,66,NULL,0,0,0,2,0,43,'/1/43/','nl_equipo',1,'gestioncomercial@verdnatura.es',0,0,0,0,NULL,NULL); -INSERT INTO `department` VALUES (141,NULL,'PREVIA',33,34,NULL,0,1,0,2,0,37,'/1/37/',NULL,0,NULL,0,0,0,1,NULL,NULL); +INSERT INTO `department` VALUES (1,'VN','VERDNATURA',1,110,763,0,0,0,0,27,NULL,'/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (22,'shopping','COMPRAS',2,3,NULL,72,0,0,1,0,1,'/1/',NULL,1,NULL,1,0,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (23,'CMA','CAMARA',13,14,NULL,72,1,1,2,0,37,'/1/37/',NULL,0,NULL,0,1,1,1,NULL,NULL,NULL); +INSERT INTO `department` VALUES (31,'it','INFORMATICA',4,5,NULL,72,0,0,1,0,1,'/1/','informatica-cau',1,NULL,1,0,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (34,'accounting','CONTABILIDAD',6,7,NULL,0,0,0,1,0,1,'/1/',NULL,1,NULL,1,0,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (35,'finance','FINANZAS',8,9,NULL,0,0,0,1,0,1,'/1/',NULL,1,'begonya@verdnatura.es',1,0,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (36,'labor','LABORAL',10,11,NULL,0,0,0,1,0,1,'/1/',NULL,1,NULL,1,0,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (37,'PROD','PRODUCCION',12,35,NULL,72,1,1,1,11,1,'/1/',NULL,0,NULL,0,1,1,1,NULL,NULL,NULL); +INSERT INTO `department` VALUES (38,'picking','SACADO',15,16,NULL,72,1,0,2,0,37,'/1/37/',NULL,0,NULL,0,0,0,1,NULL,NULL,NULL); +INSERT INTO `department` VALUES (39,'packing','ENCAJADO',17,18,NULL,72,1,0,2,0,37,'/1/37/',NULL,0,NULL,0,0,0,1,NULL,NULL,NULL); +INSERT INTO `department` VALUES (41,'administration','ADMINISTRACION',36,37,NULL,72,0,0,1,0,1,'/1/',NULL,1,NULL,1,0,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (43,'VT','VENTAS',38,67,NULL,0,0,0,1,14,1,'/1/',NULL,1,'',1,0,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (44,'management','GERENCIA',68,69,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (45,'logistic','LOGISTICA',70,71,NULL,72,0,0,1,0,1,'/1/',NULL,1,NULL,1,0,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (46,'delivery','REPARTO',72,73,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,1,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (48,'storage','ALMACENAJE',74,75,NULL,0,1,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (49,NULL,'PROPIEDAD',76,77,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (52,NULL,'CARGA AEREA',78,79,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (53,'marketing','MARKETING Y COMUNICACIÓN',80,81,NULL,72,0,0,1,0,1,'/1/',NULL,1,NULL,1,0,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (54,NULL,'ORNAMENTALES',82,83,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (55,NULL,'TALLER NATURAL',19,20,14548,72,0,0,2,0,37,'/1/37/',NULL,0,NULL,0,1,1,0,1118,NULL,NULL); +INSERT INTO `department` VALUES (56,NULL,'TALLER ARTIFICIAL',21,22,8470,72,0,0,2,0,37,'/1/37/',NULL,0,NULL,0,1,1,0,1927,NULL,NULL); +INSERT INTO `department` VALUES (58,'CMP','CAMPOS',84,87,NULL,72,0,0,1,1,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (59,'maintenance','MANTENIMIENTO',88,89,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,1,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (60,'claims','RECLAMACIONES',39,40,NULL,72,0,0,2,0,43,'/1/43/',NULL,1,NULL,1,1,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (61,NULL,'VNH',90,93,NULL,73,0,0,1,1,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (66,NULL,'VERDNAMADRID',94,95,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (68,NULL,'COMPLEMENTOS',23,24,NULL,72,1,0,2,0,37,'/1/37/',NULL,0,NULL,0,1,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (69,NULL,'VERDNABARNA',96,97,NULL,74,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (80,NULL,'EQUIPO J VALLES',41,42,4250,72,0,0,2,0,43,'/1/43/','jvp_equipo',1,'equipojvalles@verdnatura.es',0,0,0,0,NULL,NULL,'5300'); +INSERT INTO `department` VALUES (86,NULL,'LIMPIEZA',98,99,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (89,NULL,'COORDINACION',100,101,NULL,0,1,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (90,NULL,'TRAILER',91,92,NULL,0,0,0,2,0,61,'/1/61/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (91,'artificial','ARTIFICIAL',25,26,NULL,0,1,0,2,0,37,'/1/37/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (92,NULL,'EQUIPO SILVERIO',43,44,1203,0,0,0,2,0,43,'/1/43/','sdc_equipo',0,'gestioncomercial@verdnatura.es',0,0,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (94,NULL,'EQUIPO J BROCAL',45,46,3797,0,0,0,2,0,43,'/1/43/','jes_equipo',0,'equipojbrocal@verdnatura.es',0,0,0,0,NULL,NULL,'5100'); +INSERT INTO `department` VALUES (95,NULL,'EQUIPO C ZAMBRANO',47,48,4667,0,0,0,2,0,43,'/1/43/','czg_equipo',0,'equipoczambrano@verdnatura.es',0,0,0,0,NULL,NULL,'5000'); +INSERT INTO `department` VALUES (96,NULL,'EQUIPO C LOPEZ',49,50,4661,0,0,0,2,0,43,'/1/43/','cla_equipo',0,'gestioncomercial@verdnatura.es',0,0,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (115,NULL,'EQUIPO CLAUDI',51,52,3810,0,0,0,2,0,43,'/1/43/','csr_equipo',0,'gestioncomercial@verdnatura.es',0,0,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (123,NULL,'EQUIPO ELENA BASCUÑANA',53,54,7102,0,0,0,2,0,43,'/1/43/','ebt_equipo',0,'gestioncomercial@verdnatura.es',0,0,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (124,NULL,'CONTROL INTERNO',102,103,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,1,0,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (125,NULL,'EQUIPO MIRIAM MAR',55,56,1118,0,0,0,2,0,43,'/1/43/','mir_equipo',0,'equipomirgir@verdnatura.es',0,0,0,0,NULL,NULL,'5200'); +INSERT INTO `department` VALUES (126,NULL,'PRESERVADO',27,28,NULL,0,0,0,2,0,37,'/1/37/',NULL,0,NULL,0,1,1,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (128,NULL,'PALETIZADO',29,30,NULL,0,0,0,2,0,37,'/1/37/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (130,NULL,'REVISION',31,32,NULL,0,0,0,2,0,37,'/1/37/',NULL,0,NULL,0,0,0,1,NULL,NULL,NULL); +INSERT INTO `department` VALUES (131,'greenhouse','INVERNADERO',85,86,NULL,0,0,0,2,0,58,'/1/58/',NULL,0,NULL,0,1,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (132,NULL,'EQUIPO DC',57,58,1731,0,0,0,2,0,43,'/1/43/','dc_equipo',1,'gestioncomercial@verdnatura.es',0,0,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (133,'franceTeam','EQUIPO FRANCIA',59,60,1731,72,0,0,2,0,43,'/1/43/','fr_equipo',1,'francia@verdnatura.es',0,0,0,0,NULL,NULL,'3300'); +INSERT INTO `department` VALUES (134,'portugalTeam','EQUIPO PORTUGAL',61,62,6264,0,0,0,2,0,43,'/1/43/','pt_equipo',1,'portugal@verdnatura.es',0,0,0,0,NULL,NULL,'3500'); +INSERT INTO `department` VALUES (135,'routers','ENRUTADORES',104,105,NULL,0,0,0,1,0,1,'/1/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (136,'heavyVehicles','VEHICULOS PESADOS',106,107,NULL,0,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (137,'sorter','SORTER',108,109,NULL,0,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (139,NULL,'EQUIPO J SORIA ',63,64,3803,0,0,0,2,0,43,'/1/43/','jss_equipo',1,'gestioncomercial@verdnatura.es',0,0,0,0,NULL,NULL,'5400'); +INSERT INTO `department` VALUES (140,'hollandTeam','EQUIPO HOLANDA',65,66,NULL,0,0,0,2,0,43,'/1/43/','nl_equipo',1,'gestioncomercial@verdnatura.es',0,0,0,0,NULL,NULL,NULL); +INSERT INTO `department` VALUES (141,NULL,'PREVIA',33,34,NULL,0,1,0,2,0,37,'/1/37/',NULL,0,NULL,0,0,0,1,NULL,NULL,NULL); INSERT INTO `docuware` VALUES (1,'deliveryNote','Albaranes cliente','find','find','N__ALBAR_N',NULL); INSERT INTO `docuware` VALUES (2,'deliveryNote','Albaranes cliente','store','Archivar','N__ALBAR_N',NULL); diff --git a/db/dump/.dump/privileges.sql b/db/dump/.dump/privileges.sql index ebc3c0dd2..1fc55876e 100644 --- a/db/dump/.dump/privileges.sql +++ b/db/dump/.dump/privileges.sql @@ -76,6 +76,7 @@ INSERT IGNORE INTO `db` VALUES ('','bs','developer','Y','Y','Y','Y','N','N','N' INSERT IGNORE INTO `db` VALUES ('','bi','developer','Y','Y','Y','Y','N','N','N','N','N','N','N','N','N','N','N','N','Y','N','N','N'); INSERT IGNORE INTO `db` VALUES ('','util','grafana','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','Y','N','N','N'); INSERT IGNORE INTO `db` VALUES ('','mysql','developerBoss','Y','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N'); +INSERT IGNORE INTO `db` VALUES ('','rfid','developerBoss','Y','Y','Y','Y','N','N','Y','N','N','N','N','N','N','N','N','N','Y','N','N','N'); /*!40000 ALTER TABLE `db` ENABLE KEYS */; /*!40000 ALTER TABLE `tables_priv` DISABLE KEYS */; @@ -374,10 +375,10 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','logistic','Entradas','ale INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','buyerBoss','Tintas','alexm@db-proxy1.static.verdnatura.es','0000-00-00 00:00:00','Insert,Update,Delete',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','buyer','filtros','alexm@%','0000-00-00 00:00:00','Select',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','logistic','Entradas_kop','alexm@%','0000-00-00 00:00:00','Select',''); -INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','logistic','flight','alexm@%','0000-00-00 00:00:00','Select,Insert,Update',''); -INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','logistic','warehouse_pickup','alexm@%','0000-00-00 00:00:00','Select',''); +INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','logistic','flight','jenkins@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update',''); +INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','logistic','warehouse_pickup','jenkins@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','employee','zones','alexm@%','0000-00-00 00:00:00','Select',''); -INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','claimManager','warehouse_pickup','juan@%','0000-00-00 00:00:00','Select',''); +INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','claimManager','warehouse_pickup','jenkins@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','businessReasonEnd','alexm@%','0000-00-00 00:00:00','Select,Insert,Update,Delete',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','businessCalendar','alexm@%','0000-00-00 00:00:00','Select,Insert,Update,Delete',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','business','alexm@%','0000-00-00 00:00:00','Select',''); @@ -409,7 +410,7 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','invoiceInInt INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','greuge','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','administrative','Intrastat','alexm@%','0000-00-00 00:00:00','Select,Insert,Update',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','buyer','Intrastat','alexm@%','0000-00-00 00:00:00','Select',''); -INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','employee','integra2_province','alexm@%','0000-00-00 00:00:00','Select',''); +INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','employee','integra2_province','jenkins@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','employee','Grupos','alexm@%','0000-00-00 00:00:00','Select',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','dms','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Update',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','continent','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select',''); @@ -428,7 +429,7 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','administrative','pago','a INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','awb','alexm@%','0000-00-00 00:00:00','Update',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','employee','Paises','alexm@%','0000-00-00 00:00:00','Select',''); INSERT IGNORE INTO `tables_priv` VALUES ('','bs','salesAssistant','clientDied','alexm@db-proxy1.static.verdnatura.es','0000-00-00 00:00:00','Select',''); -INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','employee','warehouse_pickup','alexm@%','0000-00-00 00:00:00','Select',''); +INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','employee','warehouse_pickup','jenkins@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','hr','payroll_categorias','alexm@%','0000-00-00 00:00:00','Select',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','hr','payroll_centros','alexm@%','0000-00-00 00:00:00','Select',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','hr','payroll_conceptos','alexm@%','0000-00-00 00:00:00','Select,Update',''); @@ -765,7 +766,7 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','vn','salesAssistant','invoiceOut', INSERT IGNORE INTO `tables_priv` VALUES ('','vn','buyer','dua','alexm@%','0000-00-00 00:00:00','Insert',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn','buyer','duaEntry','alexm@%','0000-00-00 00:00:00','Insert,Delete',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn','buyer','expeditionTruck','alexm@%','0000-00-00 00:00:00','Update',''); -INSERT IGNORE INTO `tables_priv` VALUES ('','srt','maintenance','moving','alexm@%','0000-00-00 00:00:00','Delete',''); +INSERT IGNORE INTO `tables_priv` VALUES ('','srt','maintenance','moving','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Delete',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn','hrBoss','machineDetail','alexm@%','0000-00-00 00:00:00','Select,Insert,Update,Delete',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn','hrBoss','machineDms','alexm@%','0000-00-00 00:00:00','Select,Insert,Update,Delete',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn','claimManager','vehicle','alexm@%','0000-00-00 00:00:00','Select',''); @@ -781,7 +782,7 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','srt','maintenance','bufferType','a INSERT IGNORE INTO `tables_priv` VALUES ('','srt','maintenance','bufferState','alexm@%','0000-00-00 00:00:00','Select',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn','financial','vehicle','alexm@%','0000-00-00 00:00:00','Update',''); INSERT IGNORE INTO `tables_priv` VALUES ('','srt','maintenance','buffer','alexm@%','0000-00-00 00:00:00','Select,Insert,Update',''); -INSERT IGNORE INTO `tables_priv` VALUES ('','srt','maintenance','bufferGroup','alexm@%','0000-00-00 00:00:00','Select,Update',''); +INSERT IGNORE INTO `tables_priv` VALUES ('','srt','maintenance','bufferGroup','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete',''); INSERT IGNORE INTO `tables_priv` VALUES ('','srt','maintenance','lastRFID','alexm@%','0000-00-00 00:00:00','Select',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','person__','alexm@%','0000-00-00 00:00:00','Select,Insert,Update,Delete',''); INSERT IGNORE INTO `tables_priv` VALUES ('','srt','maintenance','config','alexm@%','0000-00-00 00:00:00','Select',''); @@ -897,7 +898,7 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','vn','hrBoss','taxCode','alexm@%',' INSERT IGNORE INTO `tables_priv` VALUES ('','bs','grafana','salesPersonEvolution','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select',''); INSERT IGNORE INTO `tables_priv` VALUES ('','postgresql','hr','calendar_employee','juan@10.5.1.2','0000-00-00 00:00:00','Select,Insert,Update,Delete',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn','claimManager','ticket','alexm@%','0000-00-00 00:00:00','Insert',''); -INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','ticket','alexm@%','0000-00-00 00:00:00','Select,Update',''); +INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','ticket','jenkins@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','Update'); INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','ticketCollection','alexm@%','0000-00-00 00:00:00','Select',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn','adminBoss','ticketDms','alexm@%','0000-00-00 00:00:00','Insert',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','ticketDocumentation','alexm@%','0000-00-00 00:00:00','Select,Insert',''); @@ -993,6 +994,7 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','vn','hr','workerRelatives','guille INSERT IGNORE INTO `tables_priv` VALUES ('','vn','productionAssi','ticketPackagingStartingStock','alexm@%','0000-00-00 00:00:00','Select',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','supplierPackaging','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn','hr','workerDocument','alexm@%','0000-00-00 00:00:00','Select,Insert',''); +INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','invoiceCorrection','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Insert,Update,Delete',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','ink','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','zone','alexm@%','0000-00-00 00:00:00','Select',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn','buyer','XDiario','alexm@%','0000-00-00 00:00:00','Select',''); @@ -1159,6 +1161,7 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','vn','packager','glsExpedition','ju INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','clientType','juan@10.5.1.2','0000-00-00 00:00:00','Select',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','expeditionMistake','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','deviceProductionLog','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select',''); +INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','integra2Province','jenkins@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','vehicleState','juan@10.5.1.1','0000-00-00 00:00:00','Select',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','machineDetail','juan@10.5.1.1','0000-00-00 00:00:00','Select',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','machineDms','juan@10.5.1.1','0000-00-00 00:00:00','Select',''); @@ -1179,7 +1182,7 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','vn','packager','chronopostExpediti INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','sectorCollection','alexm@db-proxy1.static.verdnatura.es','0000-00-00 00:00:00','Select',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn','packager','sendingService','jenkins@db-proxy1.static.verdnatura.es','0000-00-00 00:00:00','Select',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','adminOfficer','tickets_gestdoc','alexm@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Delete',''); -INSERT IGNORE INTO `tables_priv` VALUES ('','srt','maintenanceBos','moving','alexm@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select',''); +INSERT IGNORE INTO `tables_priv` VALUES ('','vn','logistic','flight','jenkins@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','routeAction','alexm@db-proxy1.static.verdnatura.es','0000-00-00 00:00:00','Select',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','bankErrorCode','jgallego@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','farming','alexm@db-proxy1.static.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete',''); @@ -1238,8 +1241,9 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','supplierDms' INSERT IGNORE INTO `tables_priv` VALUES ('','bs','buyer','sale','guillermo@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','chain','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn','deliveryAssistant','routesMonitor','alexm@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Update',''); -INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','deliveryAssistant','warehouse_pickup','alexm@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select',''); +INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','deliveryAssistant','warehouse_pickup','jenkins@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','deliveryAssistant','cl_main','alexm@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select',''); +INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','company','jenkins@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn','deliveryAssistant','routeAction','alexm@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Insert,Update,Delete',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','deliveryAssistant','ticket_observation','alexm@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Insert',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','deliveryAssistant','Tickets_turno','alexm@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select',''); @@ -1353,6 +1357,11 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','edi','administrative','ektK3','jen INSERT IGNORE INTO `tables_priv` VALUES ('','edi','buyer','ektK4','jenkins@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select',''); INSERT IGNORE INTO `tables_priv` VALUES ('','edi','administrative','ektK4','jenkins@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select',''); INSERT IGNORE INTO `tables_priv` VALUES ('','vn','productionAssi','dmsStorageBox','jenkins@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select',''); +INSERT IGNORE INTO `tables_priv` VALUES ('','vn','hr','company','jenkins@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select',''); +INSERT IGNORE INTO `tables_priv` VALUES ('','vn','logistic','warehousePickup','jenkins@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select',''); +INSERT IGNORE INTO `tables_priv` VALUES ('','vn','claimManager','warehousePickup','jenkins@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select',''); +INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','warehousePickup','jenkins@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select',''); +INSERT IGNORE INTO `tables_priv` VALUES ('','vn','deliveryAssistant','warehousePickup','jenkins@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select',''); /*!40000 ALTER TABLE `tables_priv` ENABLE KEYS */; /*!40000 ALTER TABLE `columns_priv` DISABLE KEYS */; @@ -1552,6 +1561,40 @@ INSERT IGNORE INTO `columns_priv` VALUES ('','vn','buyer','item','size','0000-0 INSERT IGNORE INTO `columns_priv` VALUES ('','vn','buyer','item','originFk','0000-00-00 00:00:00','Select,Update'); INSERT IGNORE INTO `columns_priv` VALUES ('','vn','buyer','item','longName','0000-00-00 00:00:00','Update'); INSERT IGNORE INTO `columns_priv` VALUES ('','vn','buyer','item','name','0000-00-00 00:00:00','Update'); +INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','ticket','id','0000-00-00 00:00:00','Update'); +INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','ticket','warehouseFk','0000-00-00 00:00:00','Update'); +INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','ticket','shipped','0000-00-00 00:00:00','Update'); +INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','ticket','nickname','0000-00-00 00:00:00','Update'); +INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','ticket','refFk','0000-00-00 00:00:00','Update'); +INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','ticket','addressFk','0000-00-00 00:00:00','Update'); +INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','ticket','workerFk','0000-00-00 00:00:00','Update'); +INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','ticket','observations','0000-00-00 00:00:00','Update'); +INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','ticket','isSigned','0000-00-00 00:00:00','Update'); +INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','ticket','isLabeled','0000-00-00 00:00:00','Update'); +INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','ticket','isPrinted','0000-00-00 00:00:00','Update'); +INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','ticket','packages','0000-00-00 00:00:00','Update'); +INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','ticket','location','0000-00-00 00:00:00','Update'); +INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','ticket','hour','0000-00-00 00:00:00','Update'); +INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','ticket','created','0000-00-00 00:00:00','Update'); +INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','ticket','isBlocked','0000-00-00 00:00:00','Update'); +INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','ticket','solution','0000-00-00 00:00:00','Update'); +INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','ticket','routeFk','0000-00-00 00:00:00','Update'); +INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','ticket','priority','0000-00-00 00:00:00','Update'); +INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','ticket','hasPriority','0000-00-00 00:00:00','Update'); +INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','ticket','companyFk','0000-00-00 00:00:00','Update'); +INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','ticket','agencyModeFk','0000-00-00 00:00:00','Update'); +INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','ticket','landed','0000-00-00 00:00:00','Update'); +INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','ticket','isBoxed','0000-00-00 00:00:00','Update'); +INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','ticket','isDeleted','0000-00-00 00:00:00','Update'); +INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','ticket','zoneFk','0000-00-00 00:00:00','Update'); +INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','ticket','zonePrice','0000-00-00 00:00:00','Update'); +INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','ticket','zoneBonus','0000-00-00 00:00:00','Update'); +INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','ticket','totalWithVat','0000-00-00 00:00:00','Update'); +INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','ticket','totalWithoutVat','0000-00-00 00:00:00','Update'); +INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','ticket','weight','0000-00-00 00:00:00','Update'); +INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','ticket','clonedFrom','0000-00-00 00:00:00','Update'); +INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','ticket','cmrFk','0000-00-00 00:00:00','Update'); +INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','ticket','editorFk','0000-00-00 00:00:00','Update'); /*!40000 ALTER TABLE `columns_priv` ENABLE KEYS */; /*!40000 ALTER TABLE `procs_priv` DISABLE KEYS */; @@ -1713,7 +1756,6 @@ INSERT IGNORE INTO `procs_priv` VALUES ('','cache','employee','available_refres INSERT IGNORE INTO `procs_priv` VALUES ('','vn','logistic','ticket_clone','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00'); INSERT IGNORE INTO `procs_priv` VALUES ('','vn','coolerBoss','ticket_clone','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00'); INSERT IGNORE INTO `procs_priv` VALUES ('','vn','salesAssistant','itemproposal','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00'); -INSERT IGNORE INTO `procs_priv` VALUES ('','vn','salesAssistant','itemproposal_add','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00'); INSERT IGNORE INTO `procs_priv` VALUES ('','vn','hr','timebusiness_calculatebyuser','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00'); INSERT IGNORE INTO `procs_priv` VALUES ('','vn','claimManager','itemsale_byweek','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00'); INSERT IGNORE INTO `procs_priv` VALUES ('','vn','buyer','itemsale_byweek','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00'); @@ -1987,7 +2029,7 @@ INSERT IGNORE INTO `global_priv` VALUES ('','delivery','{\"access\":0,\"version INSERT IGNORE INTO `global_priv` VALUES ('','deliveryAssistant','{\"access\":0,\"version_id\":101106,\"is_role\":true}'); INSERT IGNORE INTO `global_priv` VALUES ('','deliveryBoss','{\"access\":0,\"version_id\":101106,\"is_role\":true}'); INSERT IGNORE INTO `global_priv` VALUES ('','developer','{\"access\": 5909905728, \"is_role\": true, \"version_id\": 100707}'); -INSERT IGNORE INTO `global_priv` VALUES ('','developerBoss','{\"access\":33554432,\"version_id\":100707,\"is_role\":true}'); +INSERT IGNORE INTO `global_priv` VALUES ('','developerBoss','{\"access\":33554432,\"version_id\":101106,\"is_role\":true}'); INSERT IGNORE INTO `global_priv` VALUES ('','employee','{\"access\": 0, \"is_role\": true, \"version_id\": 101106}'); INSERT IGNORE INTO `global_priv` VALUES ('','entryEditor','{\"access\":0,\"version_id\":100707,\"is_role\":true}'); INSERT IGNORE INTO `global_priv` VALUES ('','ext','{\"access\": 0, \"is_role\": true, \"version_id\": 100707}'); @@ -2006,7 +2048,7 @@ INSERT IGNORE INTO `global_priv` VALUES ('','itManagement','{\"access\":0,\"ver INSERT IGNORE INTO `global_priv` VALUES ('','itemPicker','{\"access\":0,\"version_id\":100707,\"is_role\":true}'); INSERT IGNORE INTO `global_priv` VALUES ('','logistic','{\"access\": 0, \"is_role\": true, \"version_id\": 101106}'); INSERT IGNORE INTO `global_priv` VALUES ('','logisticBoss','{\"access\":0,\"version_id\":100707,\"is_role\":true}'); -INSERT IGNORE INTO `global_priv` VALUES ('','maintenance','{\"access\":0,\"version_id\":100707,\"is_role\":true}'); +INSERT IGNORE INTO `global_priv` VALUES ('','maintenance','{\"access\":0,\"version_id\":101106,\"is_role\":true}'); INSERT IGNORE INTO `global_priv` VALUES ('','maintenanceBos','{\"access\":0,\"version_id\":101106,\"is_role\":true}'); INSERT IGNORE INTO `global_priv` VALUES ('','maintenanceBoss','{\"access\":0,\"version_id\":100707,\"is_role\":true}'); INSERT IGNORE INTO `global_priv` VALUES ('','manager','{\"access\":0,\"version_id\":100707,\"is_role\":true}'); diff --git a/db/dump/.dump/structure.sql b/db/dump/.dump/structure.sql index 55072e639..930b44341 100644 --- a/db/dump/.dump/structure.sql +++ b/db/dump/.dump/structure.sql @@ -4001,8 +4001,8 @@ DELIMITER ; /*!50003 SET collation_connection = utf8mb4_unicode_ci */ ; DELIMITER ;; CREATE DEFINER=`root`@`localhost` PROCEDURE `rutasAnalyze`( - vYear INT, - vMonth INT + vDatedFrom DATE, + vDatedTo DATE ) BEGIN /** @@ -4010,8 +4010,7 @@ BEGIN * y lo almacena en la tabla bi.rutasBoard */ DELETE FROM rutasBoard - WHERE YEAR(Fecha) = vYear - AND MONTH(Fecha) = vMonth; + WHERE Fecha BETWEEN vDatedFrom AND vDatedTo; -- Rellenamos la tabla con los datos de las rutas VOLUMETRICAS, especialmente con los bultos "virtuales" INSERT INTO rutasBoard( @@ -4028,7 +4027,7 @@ BEGIN LEFT JOIN vn.`zone` z ON z.id = t.zoneFk JOIN vn.saleVolume sv ON sv.ticketFk = t.id JOIN vn.expeditionBoxVol ebv ON ebv.code = 'transportBox' - WHERE YEAR(r.created) = vYear AND MONTH(r.created) = vMonth + WHERE r.created BETWEEN vDatedFrom AND vDatedTo AND z.isVolumetric GROUP BY r.id; @@ -4045,8 +4044,7 @@ BEGIN FROM vn.route r JOIN vn.ticket t ON t.routeFk = r.id LEFT JOIN vn.`zone` z ON z.id = t.zoneFk - WHERE YEAR(r.created) = vYear - AND MONTH(r.created) = vMonth + WHERE r.created BETWEEN vDatedFrom AND vDatedTo AND NOT z.isVolumetric GROUP BY r.id ON DUPLICATE KEY UPDATE Bultos = Bultos + VALUES(Bultos); @@ -4057,15 +4055,13 @@ BEGIN SELECT t.routeFk, SUM(s.quantity * sc.value) totalPractice 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.code = 'FREIGHT' - AND tm.`year` = vYear - AND tm.`month` = vMonth + AND r.created BETWEEN vDatedFrom AND vDatedTo GROUP BY r.id ) sub ON sub.routeFk = r.Id_Ruta SET r.practico = IFNULL(sub.totalPractice / r.Bultos, 0); @@ -4077,14 +4073,12 @@ BEGIN SUM(t.zonePrice/ ebv.ratio) / COUNT(*) averageTheoreticalVolume 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.freightItemFk 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 + WHERE r.created BETWEEN vDatedFrom AND vDatedTo AND NOT z.isVolumetric GROUP BY t.routeFk ) sub ON r.Id_Ruta = sub.routeFk @@ -4097,12 +4091,10 @@ BEGIN SUM(freight) averageTheoreticalVolume 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 + WHERE r.created BETWEEN vDatedFrom AND vDatedTo AND z.isVolumetric GROUP BY t.routeFk ) sub ON r.Id_Ruta = sub.routeFk @@ -4115,11 +4107,9 @@ BEGIN SUM(g.amount) 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 + WHERE r.created BETWEEN vDatedFrom AND vDatedTo AND gt.code = 'freightDifference' GROUP BY t.routeFk ) sub ON r.Id_Ruta = sub.routeFk @@ -4145,7 +4135,7 @@ BEGIN /** * Call rutasAnalyze */ - CALL rutasAnalyze(YEAR(util.VN_CURDATE()), MONTH(util.VN_CURDATE())); + CALL rutasAnalyze(util.VN_CURDATE() - INTERVAL 30 DAY , util.VN_CURDATE()); END ;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; @@ -4901,8 +4891,10 @@ CREATE TABLE `ventas_contables` ( `reino_id` int(10) unsigned NOT NULL, `tipo_id` smallint(5) unsigned NOT NULL, `empresa_id` int(4) NOT NULL, - `gasto` varchar(10) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL, - PRIMARY KEY (`year`,`month`,`grupo`,`reino_id`,`tipo_id`,`empresa_id`) + `gasto` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL, + PRIMARY KEY (`year`,`month`,`grupo`,`reino_id`,`tipo_id`,`empresa_id`,`gasto`), + KEY `ventas_contables_expense_FK` (`gasto`), + CONSTRAINT `ventas_contables_expense_FK` FOREIGN KEY (`gasto`) REFERENCES `vn`.`expense` (`id`) ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -7068,7 +7060,7 @@ DELIMITER ; DELIMITER ;; CREATE DEFINER=`root`@`localhost` PROCEDURE `ventas_contables_add`(IN vYear INT, IN vMonth INT) BEGIN - + /** * Reemplaza las ventas contables del último año. * Es el origen de datos para el balance de Entradas @@ -7080,8 +7072,8 @@ BEGIN DECLARE TIPO_PATRIMONIAL INT DEFAULT 188; - DELETE FROM bs.ventas_contables - WHERE year = vYear + DELETE FROM bs.ventas_contables + WHERE year = vYear AND month = vMonth; DROP TEMPORARY TABLE IF EXISTS tmp.ticket_list; @@ -7092,7 +7084,7 @@ BEGIN FROM vn2008.Tickets t JOIN vn.invoiceOut io ON io.id = t.Factura WHERE year(io.issued) = vYear - AND month(io.issued) = vMonth; + AND month(io.issued) = vMonth; INSERT INTO bs.ventas_contables(year , month @@ -7102,7 +7094,7 @@ BEGIN , tipo_id , empresa_id , gasto) - + SELECT vYear , vMonth , round(sum(Cantidad * Preu * (100 - m.Descuento)/100)) @@ -7114,13 +7106,13 @@ BEGIN , tp.reino_id , a.tipo_id , t.empresa_id - , 7000000000 + , a.expenseFk + IF(e.empresa_grupo = e2.empresa_grupo ,1 ,IF(e2.empresa_grupo,2,0) - ) * 1000000 - + tp.reino_id * 10000 as Gasto - FROM vn2008.Movimientos m + ) * 100000 + + tp.reino_id * 1000 as Gasto + FROM vn2008.Movimientos m JOIN vn2008.Tickets t on t.Id_Ticket = m.Id_Ticket JOIN vn2008.Consignatarios cs on cs.Id_Consigna = t.Id_Consigna JOIN vn2008.Clientes c on c.Id_Cliente = cs.Id_Cliente @@ -7134,7 +7126,7 @@ BEGIN AND m.Descuento <> 100 AND a.tipo_id != TIPO_PATRIMONIAL GROUP BY grupo, reino_id, tipo_id, empresa_id, Gasto; - + INSERT INTO bs.ventas_contables(year , month , venta @@ -7153,17 +7145,17 @@ BEGIN ) as grupo , NULL , NULL - , t.companyFk + , t.companyFk , 7050000000 - FROM vn.ticketService ts + FROM vn.ticketService ts JOIN vn.ticket t ON ts.ticketFk = t.id - JOIN vn.address a on a.id = t.addressFk - JOIN vn.client cl on cl.id = a.clientFk + JOIN vn.address a on a.id = t.addressFk + JOIN vn.client cl on cl.id = a.clientFk JOIN tmp.ticket_list tt on tt.Id_Ticket = t.id - JOIN vn.company c on c.id = t.companyFk + JOIN vn.company c on c.id = t.companyFk LEFT JOIN vn.company c2 on c2.clientFk = cl.id - GROUP BY grupo, t.companyFk ; - + GROUP BY grupo, t.companyFk ; + DROP TEMPORARY TABLE tmp.ticket_list; END ;; DELIMITER ; @@ -7364,7 +7356,7 @@ BEGIN itemFk, itemTypeFk, floor(sum(value)) as total, - floor(sum(IF(clientTypeFk = 'loses', value, 0))) as mermas + floor(sum(IF(typeFk = 'loses', value, 0))) as mermas FROM vn.saleValue where year = vYear and week = vWeek @@ -9697,11 +9689,13 @@ CREATE TABLE `item_groupToOffer` ( `itemTypeFk` smallint(5) unsigned NOT NULL, `intrastatFk` int(8) unsigned zerofill NOT NULL, `originFk` tinyint(2) unsigned NOT NULL DEFAULT 17, - `expenseFk` varchar(10) DEFAULT '7001000000', + `expenseFk` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT '7001000000', PRIMARY KEY (`group_code`), KEY `item_groupToOffer_fk2_idx` (`itemTypeFk`), KEY `item_groupToOffer_fk3_idx` (`intrastatFk`), KEY `item_groupToOffer_fk4_idx` (`originFk`), + KEY `item_groupToOffer_expense_FK` (`expenseFk`), + CONSTRAINT `item_groupToOffer_expense_FK` FOREIGN KEY (`expenseFk`) REFERENCES `vn`.`expense` (`id`) ON UPDATE CASCADE, CONSTRAINT `item_groupToOffer_fk2` FOREIGN KEY (`itemTypeFk`) REFERENCES `vn`.`itemType` (`id`), CONSTRAINT `item_groupToOffer_fk3` FOREIGN KEY (`intrastatFk`) REFERENCES `vn`.`intrastat` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `item_groupToOffer_fk4` FOREIGN KEY (`originFk`) REFERENCES `vn`.`origin` (`id`) ON DELETE CASCADE ON UPDATE CASCADE @@ -24824,6 +24818,33 @@ DELIMITER ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 DROP FUNCTION IF EXISTS `checkPrintableChars` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`localhost` FUNCTION `checkPrintableChars`(vString VARCHAR(255) +) RETURNS tinyint(1) + DETERMINISTIC +BEGIN +/** + * Validates whether the input string contains only printable characters + * and Spanish special characters (such as ¡, ÿ, etc.). + * + * @vString string to check + */ + RETURN vString REGEXP '^[ -~¡-ÿ]*$'; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ; /*!50003 DROP FUNCTION IF EXISTS `crypt` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -26917,7 +26938,9 @@ CREATE TABLE `agencyTermConfig` ( `expenseFk` varchar(10) DEFAULT NULL, `vatAccountSupported` varchar(15) DEFAULT NULL, `vatPercentage` decimal(28,10) DEFAULT NULL, - `transaction` varchar(50) DEFAULT NULL + `transaction` varchar(50) DEFAULT NULL, + KEY `agencyTermConfig_expense_FK` (`expenseFk`), + CONSTRAINT `agencyTermConfig_expense_FK` FOREIGN KEY (`expenseFk`) REFERENCES `expense` (`id`) ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -27152,7 +27175,7 @@ CREATE TABLE `awb` ( KEY `awb_FK_3` (`invoiceInPaletizedFk`), CONSTRAINT `awbInvoiceIn` FOREIGN KEY (`invoiceInFk`) REFERENCES `invoiceIn` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, CONSTRAINT `awb_FK` FOREIGN KEY (`docFk`) REFERENCES `dms` (`id`) ON UPDATE CASCADE, - CONSTRAINT `awb_FK_1` FOREIGN KEY (`flightFk`) REFERENCES `vn2008`.`flight` (`flight_id`) ON UPDATE CASCADE, + CONSTRAINT `awb_FK_1` FOREIGN KEY (`flightFk`) REFERENCES `flight` (`id`) ON UPDATE CASCADE, CONSTRAINT `awb_FK_3` FOREIGN KEY (`invoiceInPaletizedFk`) REFERENCES `invoiceIn` (`id`) ON UPDATE CASCADE, CONSTRAINT `awb_ibfk_1` FOREIGN KEY (`taxFk`) REFERENCES `taxCode` (`id`) ON UPDATE CASCADE, CONSTRAINT `awb_supplierFk` FOREIGN KEY (`transitoryFk`) REFERENCES `supplier` (`id`) ON UPDATE CASCADE @@ -28427,7 +28450,7 @@ CREATE TABLE `client` ( `name` varchar(50) NOT NULL, `defaultAddressFk` int(11) DEFAULT NULL, `street` longtext DEFAULT NULL, - `fi` varchar(14) DEFAULT NULL, + `fi` varchar(18) DEFAULT NULL, `phone` varchar(15) DEFAULT NULL, `email` varchar(255) DEFAULT NULL, `dueDay` smallint(6) NOT NULL DEFAULT 5, @@ -28458,7 +28481,7 @@ CREATE TABLE `client` ( `riskCalculated` date NOT NULL, `hasCoreVnh` tinyint(1) DEFAULT 0, `isRelevant` tinyint(1) NOT NULL DEFAULT 1 COMMENT 'Define los clientes cuyas ventas hay que tener en cuenta en los calculos estadisticos.', - `clientTypeFk` int(11) NOT NULL DEFAULT 1, + `clientTypeFk__` int(11) NOT NULL DEFAULT 1 COMMENT '@deprecated 2024-02-20 refs #6784', `creditInsurance` int(11) DEFAULT NULL, `eypbc` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'Email\\nYesterday\\nPurchases\\nBy\\nConsigna', `hasToInvoiceByAddress` tinyint(1) DEFAULT 0, @@ -28489,7 +28512,7 @@ CREATE TABLE `client` ( KEY `default_address` (`defaultAddressFk`), KEY `Telefono` (`phone`), KEY `movil` (`mobile`), - KEY `tipos_de_cliente_idx` (`clientTypeFk`), + KEY `tipos_de_cliente_idx` (`clientTypeFk__`), KEY `fk_Clientes_entity_idx` (`bankEntityFk`), KEY `typeFk` (`typeFk`), KEY `client_taxTypeSageFk_idx` (`taxTypeSageFk`), @@ -28513,7 +28536,6 @@ CREATE TABLE `client` ( CONSTRAINT `client_ibfk_5` FOREIGN KEY (`provinceFk`) REFERENCES `province` (`id`) ON UPDATE CASCADE, CONSTRAINT `client_taxTypeSageFk` FOREIGN KEY (`taxTypeSageFk`) REFERENCES `sage`.`TiposIva` (`CodigoIva`) ON UPDATE CASCADE, CONSTRAINT `client_transactionTypeSageFk` FOREIGN KEY (`transactionTypeSageFk`) REFERENCES `sage`.`TiposTransacciones` (`CodigoTransaccion`) ON UPDATE CASCADE, - CONSTRAINT `tipos_de_cliente` FOREIGN KEY (`clientTypeFk`) REFERENCES `clientType` (`id`) ON UPDATE CASCADE, CONSTRAINT `typeFk` FOREIGN KEY (`typeFk`) REFERENCES `clientType` (`code`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -28889,11 +28911,11 @@ DROP TABLE IF EXISTS `clientType`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `clientType` ( - `id` int(11) NOT NULL AUTO_INCREMENT, + `id__` int(11) NOT NULL COMMENT '@deprecated 2024-02-20 refs #6784', `code` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL, `type` varchar(45) NOT NULL, `isCreatedAsServed` tinyint(1) DEFAULT 0, - PRIMARY KEY (`id`), + PRIMARY KEY (`code`), UNIQUE KEY `code_UNIQUE` (`code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='Establece categorias para poder agrupar las ventas'; /*!40101 SET character_set_client = @saved_cs_client */; @@ -29662,7 +29684,7 @@ CREATE TABLE `country` ( `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, `country` varchar(25) NOT NULL, `CEE` tinyint(1) NOT NULL DEFAULT 1, - `code` varchar(2) DEFAULT NULL, + `code` varchar(2) NOT NULL, `currencyFk` tinyint(3) unsigned NOT NULL DEFAULT 1, `politicalCountryFk__` mediumint(8) unsigned DEFAULT NULL COMMENT 'Pais Real(apaño por culpa del España Exento)', `geoFk` int(11) DEFAULT NULL, @@ -29673,6 +29695,7 @@ CREATE TABLE `country` ( `a3Code` int(11) DEFAULT NULL COMMENT 'Código país para a3', `isSocialNameUnique` tinyint(1) NOT NULL DEFAULT 1, PRIMARY KEY (`id`), + UNIQUE KEY `country_unique` (`code`), KEY `Id_Paisreal` (`politicalCountryFk__`), KEY `currency_id_fk_idx` (`currencyFk`), KEY `country_Ix4` (`country`), @@ -30054,6 +30077,7 @@ CREATE TABLE `department` ( `hasToMistake` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'Indica si al departamento pueden serles puestos errores', `clientFk` int(11) DEFAULT NULL COMMENT 'Cuenta de cliente que se utiliza para los compras de consumo departamental', `twoFactor` enum('email') DEFAULT NULL COMMENT 'Default user two-factor auth type', + `pbxQueue` varchar(128) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name_UNIQUE` (`name`), KEY `fk_department_Trabajadores1_idx` (`workerFk`), @@ -30061,8 +30085,10 @@ CREATE TABLE `department` ( KEY `lft_rgt_depth_idx` (`lft`,`rgt`,`depth`), KEY `department_FK` (`clientFk`), KEY `department_FK_1` (`parentFk`), + KEY `department_queue_FK` (`pbxQueue`), CONSTRAINT `department_FK` FOREIGN KEY (`clientFk`) REFERENCES `client` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `department_FK_1` FOREIGN KEY (`parentFk`) REFERENCES `department` (`id`), + CONSTRAINT `department_queue_FK` FOREIGN KEY (`pbxQueue`) REFERENCES `pbx`.`queue` (`name`) ON UPDATE CASCADE, CONSTRAINT `fk_department_Trabajadores1` FOREIGN KEY (`workerFk`) REFERENCES `worker` (`id`) ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -30747,6 +30773,26 @@ CREATE TABLE `entryConfig` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; +-- +-- Table structure for table `entryDms` +-- + +DROP TABLE IF EXISTS `entryDms`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `entryDms` ( + `entryFk` int(11) NOT NULL, + `dmsFk` int(11) NOT NULL, + `editorFk` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`entryFk`,`dmsFk`), + KEY `gestdoc_id` (`dmsFk`), + KEY `entryDms_editor` (`editorFk`), + CONSTRAINT `entryDms_dms` FOREIGN KEY (`dmsFk`) REFERENCES `dms` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `entryDms_editor` FOREIGN KEY (`editorFk`) REFERENCES `account`.`user` (`id`), + CONSTRAINT `entryDms_entry` FOREIGN KEY (`entryFk`) REFERENCES `entry` (`id`) ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + -- -- Table structure for table `entryLog` -- @@ -30784,7 +30830,7 @@ DROP TABLE IF EXISTS `entryObservation`; CREATE TABLE `entryObservation` ( `id` int(11) NOT NULL AUTO_INCREMENT, `entryFk` int(11) NOT NULL, - `observationTypeFk` tinyint(3) unsigned DEFAULT NULL, + `observationTypeFk` tinyint(3) unsigned NOT NULL, `description` text DEFAULT NULL, `editorFk` int(10) unsigned DEFAULT NULL, PRIMARY KEY (`id`), @@ -30950,27 +30996,35 @@ SET character_set_client = utf8; SET character_set_client = @saved_cs_client; -- --- Temporary table structure for view `exchangeInsurance` +-- Table structure for table `exchangeInsurance` -- DROP TABLE IF EXISTS `exchangeInsurance`; -/*!50001 DROP VIEW IF EXISTS `exchangeInsurance`*/; -SET @saved_cs_client = @@character_set_client; -SET character_set_client = utf8; -/*!50001 CREATE VIEW `exchangeInsurance` AS SELECT - 1 AS `id`, - 1 AS `amount`, - 1 AS `dated`, - 1 AS `finished`, - 1 AS `entityFk`, - 1 AS `ref`, - 1 AS `rate`, - 1 AS `companyFk`, - 1 AS `financialProductTypefk`, - 1 AS `upperBarrier`, - 1 AS `lowerBarrier`, - 1 AS `strike` */; -SET character_set_client = @saved_cs_client; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `exchangeInsurance` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `amount` decimal(10,2) NOT NULL, + `dated` date NOT NULL, + `dueDated` date NOT NULL, + `entityFk` int(10) unsigned NOT NULL, + `ref` varchar(45) DEFAULT NULL, + `rate` decimal(10,4) NOT NULL, + `companyFk` int(10) unsigned NOT NULL DEFAULT 442, + `financialProductTypefk` varchar(2) NOT NULL DEFAULT 'SC', + `pago_sdccol` varchar(45) DEFAULT NULL, + `upperBarrier` decimal(10,2) DEFAULT NULL, + `lowerBarrier` decimal(10,2) DEFAULT NULL, + `strike` decimal(10,2) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `empresa_sdc_idx` (`companyFk`), + KEY `financial_type_fk_idx` (`financialProductTypefk`), + KEY `pago_sdc_entity_fk_idx` (`entityFk`), + CONSTRAINT `financial_type_fk` FOREIGN KEY (`financialProductTypefk`) REFERENCES `financialProductType` (`id`) ON UPDATE CASCADE, + CONSTRAINT `pago_sdcCompany_Fk` FOREIGN KEY (`companyFk`) REFERENCES `company` (`id`) ON UPDATE CASCADE, + CONSTRAINT `pago_sdc_entity_fk` FOREIGN KEY (`entityFk`) REFERENCES `bankEntity` (`id`) ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='Seguros de cambio'; +/*!40101 SET character_set_client = @saved_cs_client */; -- -- Temporary table structure for view `exchangeInsuranceEntry` @@ -31521,6 +31575,28 @@ CREATE TABLE `expense` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; /*!40101 SET character_set_client = @saved_cs_client */; +-- +-- Table structure for table `expenseManual` +-- + +DROP TABLE IF EXISTS `expenseManual`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `expenseManual` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `expenseFk` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL, + `year` int(4) NOT NULL, + `month` int(2) NOT NULL, + `amount` decimal(10,2) DEFAULT NULL, + `companyFk` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `expenseManual_unique` (`expenseFk`,`year`,`month`,`companyFk`), + KEY `expenseManual_company_FK` (`companyFk`), + CONSTRAINT `expenseManual_company_FK` FOREIGN KEY (`companyFk`) REFERENCES `company` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `expenseManual_expense_FK` FOREIGN KEY (`expenseFk`) REFERENCES `expense` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='Sirve para resumir los gastos que se ponen a mano en el contaplus'; +/*!40101 SET character_set_client = @saved_cs_client */; + -- -- Table structure for table `farming` -- @@ -31605,6 +31681,22 @@ CREATE TABLE `farmingNotes` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; +-- +-- Table structure for table `financialProductType` +-- + +DROP TABLE IF EXISTS `financialProductType`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `financialProductType` ( + `id` varchar(2) NOT NULL, + `description` varchar(45) NOT NULL, + `isAcumulattor` tinyint(4) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + UNIQUE KEY `description_UNIQUE` (`description`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='Distintos tipos de productos financieros: seguros de cambio, polizas de credito, acumuladores....'; +/*!40101 SET character_set_client = @saved_cs_client */; + -- -- Temporary table structure for view `firstTicketShipped` -- @@ -31618,6 +31710,25 @@ SET character_set_client = utf8; 1 AS `clientFk` */; SET character_set_client = @saved_cs_client; +-- +-- Table structure for table `flight` +-- + +DROP TABLE IF EXISTS `flight`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `flight` ( + `id` varchar(10) NOT NULL, + `duration` tinyint(2) unsigned NOT NULL, + `flightPath` varchar(20) DEFAULT NULL, + `days` varchar(7) DEFAULT NULL, + `airlineFk` smallint(2) unsigned DEFAULT NULL, + `airportArrivalFk` varchar(3) NOT NULL, + `airportDepartureFk` varchar(3) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + -- -- Temporary table structure for view `floraHollandBuyedItems` -- @@ -32014,6 +32125,39 @@ SET character_set_client = utf8; 1 AS `name` */; SET character_set_client = @saved_cs_client; +-- +-- Table structure for table `integra2` +-- + +DROP TABLE IF EXISTS `integra2`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `integra2` ( + `postCode` varchar(10) NOT NULL, + `frequency` decimal(10,2) NOT NULL, + `warehouseFk` smallint(6) unsigned NOT NULL, + PRIMARY KEY (`postCode`,`frequency`,`warehouseFk`), + KEY `postal_code` (`postCode`), + KEY `warehouse_id` (`warehouseFk`), + CONSTRAINT `integra2_warehouse_FK` FOREIGN KEY (`warehouseFk`) REFERENCES `warehouse` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `integra2Province` +-- + +DROP TABLE IF EXISTS `integra2Province`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `integra2Province` ( + `provinceFk` smallint(6) unsigned NOT NULL, + `franchise` varchar(65) NOT NULL, + PRIMARY KEY (`provinceFk`), + CONSTRAINT `integra2_province_id` FOREIGN KEY (`provinceFk`) REFERENCES `province` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + -- -- Table structure for table `intrastat` -- @@ -32599,14 +32743,16 @@ CREATE TABLE `invoiceOutTaxConfig` ( `taxTypeSageFk` smallint(6) DEFAULT NULL, `transactionTypeSageFk` tinyint(4) DEFAULT NULL, `isService` tinyint(1) DEFAULT 0, - `expenseFk` varchar(10) DEFAULT NULL, + `expenseFk` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL, PRIMARY KEY (`id`), KEY `invoiceOutTaxConfig_FK` (`taxClassCodeFk`), KEY `invoiceOutTaxConfig_FK_1` (`taxTypeSageFk`), KEY `invoiceOutTaxConfig_FK_2` (`transactionTypeSageFk`), + KEY `invoiceOutTaxConfig_expense_FK` (`expenseFk`), CONSTRAINT `invoiceOutTaxConfig_FK` FOREIGN KEY (`taxClassCodeFk`) REFERENCES `taxClass` (`code`), CONSTRAINT `invoiceOutTaxConfig_FK_1` FOREIGN KEY (`taxTypeSageFk`) REFERENCES `sage`.`TiposIva` (`CodigoIva`), - CONSTRAINT `invoiceOutTaxConfig_FK_2` FOREIGN KEY (`transactionTypeSageFk`) REFERENCES `sage`.`TiposTransacciones` (`CodigoTransaccion`) + CONSTRAINT `invoiceOutTaxConfig_FK_2` FOREIGN KEY (`transactionTypeSageFk`) REFERENCES `sage`.`TiposTransacciones` (`CodigoTransaccion`), + CONSTRAINT `invoiceOutTaxConfig_expense_FK` FOREIGN KEY (`expenseFk`) REFERENCES `expense` (`id`) ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -35442,20 +35588,6 @@ CREATE TABLE `ppePlan` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='Plan de amortizacion para la tabla ppe'; /*!40101 SET character_set_client = @saved_cs_client */; --- --- Temporary table structure for view `preparationException` --- - -DROP TABLE IF EXISTS `preparationException`; -/*!50001 DROP VIEW IF EXISTS `preparationException`*/; -SET @saved_cs_client = @@character_set_client; -SET character_set_client = utf8; -/*!50001 CREATE VIEW `preparationException` AS SELECT - 1 AS `exceptionDay`, - 1 AS `warehouseFk`, - 1 AS `percentage` */; -SET character_set_client = @saved_cs_client; - -- -- Table structure for table `priceFixed` -- @@ -35740,7 +35872,8 @@ CREATE TABLE `professionalCategory` ( `dayBreak` int(11) unsigned DEFAULT NULL, `code` varchar(25) DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `prefessionalCategory_UN` (`name`) + UNIQUE KEY `prefessionalCategory_UN` (`name`), + UNIQUE KEY `code` (`code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -35964,7 +36097,7 @@ CREATE TABLE `province` ( KEY `province_FK` (`autonomyFk`), CONSTRAINT `province_FK` FOREIGN KEY (`autonomyFk`) REFERENCES `autonomy` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, CONSTRAINT `province_ibfk_1` FOREIGN KEY (`countryFk`) REFERENCES `country` (`id`) ON UPDATE CASCADE, - CONSTRAINT `province_zone_fk` FOREIGN KEY (`zoneFk`) REFERENCES `vn2008`.`zones` (`zone_id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `province_zone_fk` FOREIGN KEY (`zoneFk`) REFERENCES `vn2008`.`zones__` (`zone_id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `warehouse_Id` FOREIGN KEY (`warehouseFk`) REFERENCES `warehouse` (`id`) ON DELETE SET NULL ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -36872,19 +37005,21 @@ CREATE TABLE `saleGroupDetail` ( /*!40101 SET character_set_client = @saved_cs_client */; -- --- Temporary table structure for view `saleLabel` +-- Table structure for table `saleLabel` -- DROP TABLE IF EXISTS `saleLabel`; -/*!50001 DROP VIEW IF EXISTS `saleLabel`*/; -SET @saved_cs_client = @@character_set_client; -SET character_set_client = utf8; -/*!50001 CREATE VIEW `saleLabel` AS SELECT - 1 AS `saleFk`, - 1 AS `label`, - 1 AS `stem`, - 1 AS `created` */; -SET character_set_client = @saved_cs_client; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `saleLabel` ( + `saleFk` int(11) NOT NULL, + `label` mediumint(8) unsigned NOT NULL, + `stem` mediumint(8) unsigned NOT NULL, + `created` timestamp NULL DEFAULT current_timestamp(), + PRIMARY KEY (`saleFk`), + CONSTRAINT `saleLabel_sale_FK` FOREIGN KEY (`saleFk`) REFERENCES `sale` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; -- -- Table structure for table `saleMistake` @@ -37016,7 +37151,7 @@ SET character_set_client = utf8; /*!50001 CREATE VIEW `saleValue` AS SELECT 1 AS `warehouse`, 1 AS `client`, - 1 AS `clientTypeFk`, + 1 AS `typeFk`, 1 AS `buyer`, 1 AS `itemTypeFk`, 1 AS `family`, @@ -38232,9 +38367,15 @@ DROP TABLE IF EXISTS `supplierDms`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `supplierDms` ( - `supplierFk` int(11) NOT NULL, + `supplierFk` int(10) unsigned NOT NULL, `dmsFk` int(11) NOT NULL, - PRIMARY KEY (`supplierFk`,`dmsFk`) + `editorFk` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`supplierFk`,`dmsFk`), + KEY `user_Fk` (`editorFk`), + KEY `dms_Fk` (`dmsFk`), + CONSTRAINT `dms_Fk` FOREIGN KEY (`dmsFk`) REFERENCES `dms` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `supplier_Fk` FOREIGN KEY (`supplierFk`) REFERENCES `supplier` (`id`) ON UPDATE CASCADE, + CONSTRAINT `user_Fk` FOREIGN KEY (`editorFk`) REFERENCES `account`.`user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -38285,7 +38426,7 @@ CREATE TABLE `supplierLog` ( `action` set('insert','update','delete') NOT NULL, `creationDate` timestamp NULL DEFAULT current_timestamp(), `description` text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL, - `changedModel` enum('Supplier','SupplierAddress','SupplierAccount','SupplierContact') NOT NULL DEFAULT 'Supplier', + `changedModel` enum('Supplier','SupplierAddress','SupplierAccount','SupplierContact','SupplierDms') NOT NULL DEFAULT 'Supplier', `oldInstance` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`oldInstance`)), `newInstance` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`newInstance`)), `changedModelId` int(11) NOT NULL, @@ -39607,9 +39748,12 @@ DROP TABLE IF EXISTS `transitoryDuaUnified`; CREATE TABLE `transitoryDuaUnified` ( `id` int(11) NOT NULL AUTO_INCREMENT, `supplierFk` int(10) unsigned DEFAULT NULL, + `countryCodeFk` varchar(2) NOT NULL DEFAULT 'EC', PRIMARY KEY (`id`), KEY `transitoryDuaUnified_FK` (`supplierFk`), - CONSTRAINT `transitoryDuaUnified_FK` FOREIGN KEY (`supplierFk`) REFERENCES `supplier` (`id`) ON DELETE CASCADE ON UPDATE CASCADE + KEY `transitoryDuaUnified_country_FK` (`countryCodeFk`), + CONSTRAINT `transitoryDuaUnified_FK` FOREIGN KEY (`supplierFk`) REFERENCES `supplier` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `transitoryDuaUnified_country_FK` FOREIGN KEY (`countryCodeFk`) REFERENCES `country` (`code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='Transitarios que al contabilizar sus entradas sólo generan un único DUA para todos los proveedores'; /*!40101 SET character_set_client = @saved_cs_client */; @@ -39869,32 +40013,6 @@ SET character_set_client = utf8; 1 AS `unaryScanFk` */; SET character_set_client = @saved_cs_client; --- --- Temporary table structure for view `unaryScanLineBuy` --- - -DROP TABLE IF EXISTS `unaryScanLineBuy`; -/*!50001 DROP VIEW IF EXISTS `unaryScanLineBuy`*/; -SET @saved_cs_client = @@character_set_client; -SET character_set_client = utf8; -/*!50001 CREATE VIEW `unaryScanLineBuy` AS SELECT - 1 AS `unaryScanLineFk`, - 1 AS `itemFk` */; -SET character_set_client = @saved_cs_client; - --- --- Temporary table structure for view `unaryScanLineExpedition` --- - -DROP TABLE IF EXISTS `unaryScanLineExpedition`; -/*!50001 DROP VIEW IF EXISTS `unaryScanLineExpedition`*/; -SET @saved_cs_client = @@character_set_client; -SET character_set_client = utf8; -/*!50001 CREATE VIEW `unaryScanLineExpedition` AS SELECT - 1 AS `unaryScanLineFk`, - 1 AS `expeditionFk` */; -SET character_set_client = @saved_cs_client; - -- -- Table structure for table `userConfig` -- @@ -40409,6 +40527,23 @@ CREATE TABLE `warehouseAlias__` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='@deprecated 2024-01-23 refs #5167'; /*!40101 SET character_set_client = @saved_cs_client */; +-- +-- Table structure for table `warehousePickup` +-- + +DROP TABLE IF EXISTS `warehousePickup`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `warehousePickup` ( + `warehouseFk` smallint(5) unsigned NOT NULL, + `agencyModeFk` int(11) DEFAULT NULL, + PRIMARY KEY (`warehouseFk`), + UNIQUE KEY `agency_id` (`agencyModeFk`,`warehouseFk`), + CONSTRAINT `warehousePickup_ibfk_1` FOREIGN KEY (`warehouseFk`) REFERENCES `warehouse` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `warehousePickup_ibfk_2` FOREIGN KEY (`agencyModeFk`) REFERENCES `agencyMode` (`id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='Agencia de recogida para cada almacén'; +/*!40101 SET character_set_client = @saved_cs_client */; + -- -- Table structure for table `workCenter` -- @@ -40503,6 +40638,26 @@ CREATE TABLE `worker` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; +-- +-- Table structure for table `workerActivity` +-- + +DROP TABLE IF EXISTS `workerActivity`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `workerActivity` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` timestamp NULL DEFAULT current_timestamp(), + `model` enum('COM','ENT','TPV','ENC','LAB','ETI') NOT NULL, + `workerFk` int(10) unsigned NOT NULL, + `event` enum('open','close','insert','delete','update','refresh') NOT NULL, + `description` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `fk_workerActivity_worker` (`workerFk`), + CONSTRAINT `fk_workerActivity_worker` FOREIGN KEY (`workerFk`) REFERENCES `worker` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + -- -- Table structure for table `workerAppTester` -- @@ -41980,14 +42135,14 @@ DELIMITER ;; /*!50003 SET @saved_cs_client = @@character_set_client */ ;; /*!50003 SET @saved_cs_results = @@character_set_results */ ;; /*!50003 SET @saved_col_connection = @@collation_connection */ ;; -/*!50003 SET character_set_client = utf8mb3 */ ;; -/*!50003 SET character_set_results = utf8mb3 */ ;; -/*!50003 SET collation_connection = utf8mb3_general_ci */ ;; +/*!50003 SET character_set_client = utf8mb4 */ ;; +/*!50003 SET character_set_results = utf8mb4 */ ;; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ;; /*!50003 SET @saved_sql_mode = @@sql_mode */ ;; -/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;; +/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;; /*!50003 SET @saved_time_zone = @@time_zone */ ;; /*!50003 SET time_zone = 'SYSTEM' */ ;; -/*!50106 CREATE*/ /*!50117 DEFINER=`root`@`localhost`*/ /*!50106 EVENT `sale_checkWithoutComponents` ON SCHEDULE EVERY 10 MINUTE STARTS '2020-05-04 11:56:23' ON COMPLETION PRESERVE ENABLE DO call sale_checkNoComponents(DATE_ADD(util.VN_NOW(), INTERVAL -10 MINUTE),DATE_ADD(util.VN_NOW(), INTERVAL -1 MINUTE)) */ ;; +/*!50106 CREATE*/ /*!50117 DEFINER=`jgallego`@`%`*/ /*!50106 EVENT `sale_checkWithoutComponents` ON SCHEDULE EVERY 10 MINUTE STARTS '2020-05-04 11:56:23' ON COMPLETION PRESERVE DISABLE DO call sale_checkNoComponents(DATE_ADD(util.VN_NOW(), INTERVAL -10 MINUTE),DATE_ADD(util.VN_NOW(), INTERVAL -1 MINUTE)) */ ;; /*!50003 SET time_zone = @saved_time_zone */ ;; /*!50003 SET sql_mode = @saved_sql_mode */ ;; /*!50003 SET character_set_client = @saved_cs_client */ ;; @@ -44363,44 +44518,6 @@ DELIMITER ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ; -/*!50003 DROP FUNCTION IF EXISTS `isPalletHomogeneus` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` FUNCTION `isPalletHomogeneus`(vExpedition INT) RETURNS tinyint(1) - READS SQL DATA -BEGIN - DECLARE vScanId INT; - DECLARE vDistinctRoutesInThePallet INT; - - SELECT scan_id INTO vScanId - FROM vn2008.scan_line - WHERE code = vExpedition - LIMIT 1; - - SELECT COUNT(*) INTO vDistinctRoutesInThePallet - FROM ( - SELECT DISTINCT t.Id_Ruta - FROM vn2008.scan_line sl - JOIN expedition e ON e.id = sl.code - JOIN vn2008.Tickets t ON t.Id_Ticket = e.ticketFk - WHERE sl.scan_id = vScanId - AND t.Id_Ruta - ) t1; - - RETURN vDistinctRoutesInThePallet = 1; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ; /*!50003 DROP FUNCTION IF EXISTS `itemPacking` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -47128,11 +47245,11 @@ BEGIN WHERE t.landed BETWEEN vStarted AND vEnded AND (vWarehouseFk IS NULL OR t.warehouseInFk = vWarehouseFk) AND b.price2 > 0 - AND b.quantity > 0 ORDER BY NOT b.isIgnored DESC, t.landed DESC, b.id DESC LIMIT 10000000000000000000) sub GROUP BY itemFk, warehouseFk; + INSERT IGNORE INTO tmp.buyUltimateFromInterval(itemFk, warehouseFk, buyFk, landed, isIgnored) SELECT b.itemFk, @@ -48555,6 +48672,7 @@ BEGIN SET v2Years = util.VN_CURDATE() - INTERVAL 2 YEAR; SET v5Years = util.VN_CURDATE() - INTERVAL 5 YEAR; + DELETE FROM workerActivity WHERE created < v2Years; DELETE FROM ticketParking WHERE created < vDateShort; DELETE FROM routesMonitor WHERE dated < vDateShort; DELETE FROM workerTimeControlLog WHERE created < vDateShort; @@ -48570,7 +48688,8 @@ BEGIN DELETE FROM saleTracking WHERE created < vOneYearAgo; DELETE FROM ticketTracking WHERE created < v18Month; DELETE tobs FROM ticketObservation tobs - JOIN ticket t ON tobs.ticketFk = t.id WHERE t.shipped < TIMESTAMPADD(YEAR,-2,util.VN_CURDATE()); + JOIN ticket t ON tobs.ticketFk = t.id + WHERE t.shipped < v5Years; DELETE sc.* FROM saleCloned sc JOIN sale s ON s.id = sc.saleClonedFk JOIN ticket t ON t.id = s.ticketFk WHERE t.shipped < vOneYearAgo; DELETE FROM sharingCart where ended < vDateShort; DELETE FROM sharingClient where ended < vDateShort; @@ -51250,12 +51369,11 @@ BEGIN JOIN itemCategory ic ON ic.id = tp.categoryFk JOIN ticket t ON t.id = s.ticketFk JOIN client c ON c.id = t.clientFk - JOIN clientType ct ON ct.id = c.clientTypeFk JOIN warehouse w ON w.id = t.warehouseFk JOIN address ad ON ad.id = t.addressFk LEFT JOIN province p ON p.id = ad.provinceFk WHERE tm.period BETWEEN vMaxPeriod AND vPeriod - AND ct.code <> 'loses' + AND c.typeFk <> 'loses' AND NOT w.code = 'inv' GROUP BY p.countryFk, s.itemFk, tm.period, t.warehouseFk; END IF; @@ -53021,15 +53139,15 @@ BEGIN DECLARE vWarehouseIn INT; DECLARE vWarehouseOut INT; DECLARE vCalcVisible INT; - DECLARE vInventoryDate DATE DEFAULT vn.getInventoryDate(); + DECLARE vInventoryDate DATE DEFAULT getInventoryDate(); SELECT shipped, landed, warehouseInFk, warehouseOutFk INTO vDateShipped, vDateLanded, vWarehouseIn, vWarehouseOut - FROM vn.travel t - JOIN vn.entry e ON e.travelFk = t.id + FROM travel t + JOIN entry e ON e.travelFk = t.id WHERE e.id = vSelf; - CALL vn.rate_getPrices(vDateShipped, vWarehouseIn); + CALL rate_getPrices(vDateShipped, vWarehouseIn); -- Traslado en almacen origen CREATE OR REPLACE TEMPORARY TABLE tBuy @@ -53092,7 +53210,7 @@ BEGIN WHERE a.available ON DUPLICATE KEY UPDATE availableLanding = a.available; ELSE - CALL vn.item_getStock(vWarehouseOut, vDateShipped, NULL); + CALL item_getStock(vWarehouseOut, vDateShipped, NULL); CREATE OR REPLACE TEMPORARY TABLE tItem (UNIQUE INDEX i USING HASH (itemFk)) @@ -53105,7 +53223,7 @@ BEGIN FROM tmp.itemList; END IF; - CALL vn.buyUltimateFromInterval(vWarehouseIn,vInventoryDate, vDateLanded); + CALL buyUltimateFromInterval(vWarehouseIn,vInventoryDate, vDateLanded); CREATE OR REPLACE TEMPORARY TABLE tTransfer ENGINE = MEMORY @@ -53153,26 +53271,26 @@ BEGIN b.id buyFkOrigin, pa.returnCost, b.weight - FROM vn.item i + FROM item i JOIN tItem ti ON ti.itemFk = i.id - LEFT JOIN vn.producer p ON p.id = i.producerFk - LEFT JOIN vn.itemType it ON it.id = i.typeFk - JOIN vn.itemCategory ic ON ic.id = it.categoryFk - LEFT JOIN vn.origin o ON o.id = i.originFk + LEFT JOIN producer p ON p.id = i.producerFk + LEFT JOIN itemType it ON it.id = i.typeFk + JOIN itemCategory ic ON ic.id = it.categoryFk + LEFT JOIN origin o ON o.id = i.originFk LEFT JOIN tBuy lb ON lb.itemFk = i.id - LEFT JOIN vn.buy b ON b.id = lb.buyFk - LEFT JOIN vn.packaging pa ON pa.id = b.packagingFk - LEFT JOIN vn.entry e2 ON e2.id = b.entryFk - LEFT JOIN vn.supplier s ON s.id = e2.supplierFk - LEFT JOIN vn.entry e ON e.id = vSelf - LEFT JOIN vn.travel tr ON tr.id = e.travelFk - LEFT JOIN vn.agencyMode am ON am.id = tr.agencyModeFk - LEFT JOIN vn.buy b2 ON b2.itemFk = i.id + LEFT JOIN buy b ON b.id = lb.buyFk + LEFT JOIN packaging pa ON pa.id = b.packagingFk + LEFT JOIN entry e2 ON e2.id = b.entryFk + LEFT JOIN supplier s ON s.id = e2.supplierFk + LEFT JOIN entry e ON e.id = vSelf + LEFT JOIN travel tr ON tr.id = e.travelFk + LEFT JOIN agencyMode am ON am.id = tr.agencyModeFk + LEFT JOIN buy b2 ON b2.itemFk = i.id AND b2.entryFk = vSelf - LEFT JOIN vn.packaging pa2 ON pa2.id = b.packagingFk + LEFT JOIN packaging pa2 ON pa2.id = b.packagingFk LEFT JOIN tmp.rate r ON TRUE LEFT JOIN tmp.buyUltimateFromInterval bufi ON bufi.itemFk = i.id - LEFT JOIN vn.buy b3 ON b3.id = bufi.buyFk + LEFT JOIN buy b3 ON b3.id = bufi.buyFk WHERE ic.display AND NOT e.isRaid AND (ti.visible OR ti.available) @@ -53180,11 +53298,6 @@ BEGIN CREATE INDEX tIndex USING HASH ON tTransfer (itemFk); - SET @carriage := 0; - SET @comission := 0; - SET @packaging := 0; - SET @rate3 := 0; - SET @cost := 0; SELECT *, quantity - MOD(quantity , `grouping`) subQuantity, MOD(quantity, `grouping`) soll, @@ -55820,6 +55933,7 @@ BEGIN */ DECLARE vTaxRowLimit INT; DECLARE vLines INT; + DECLARE vHasDistinctTransactions INT; SELECT taxRowLimit INTO vTaxRowLimit FROM invoiceInConfig; @@ -55830,7 +55944,19 @@ BEGIN IF vLines >= vTaxRowLimit THEN CALL util.throw (CONCAT('The maximum number of lines is ', vTaxRowLimit)); - END IF; + END IF; + + SELECT COUNT(DISTINCT transactionTypeSageFk) INTO vHasDistinctTransactions + FROM invoiceIn ii + JOIN invoiceInTax iit ON iit.invoiceInFk = ii.id + JOIN invoiceInSerial iis ON iis.code = ii.serial + WHERE ii.id = vInvoiceInFk + AND iis.taxAreaFk = 'CEE' + AND transactionTypeSageFk; + + IF vHasDistinctTransactions > 1 THEN + CALL util.throw ('This invoice does not allow different types of transactions'); + END IF; END ;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; @@ -57538,44 +57664,70 @@ DELIMITER ; /*!50003 SET character_set_results = utf8mb4 */ ; /*!50003 SET collation_connection = utf8mb4_unicode_ci */ ; DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `itemProposal`(vItemFk INT, vTicketFk INT,vShowType BOOL) +CREATE DEFINER=`root`@`localhost` PROCEDURE `itemProposal`( + vSelf INT, + vTicketFk INT, + vShowType BOOL +) BEGIN - /** - * Propone articulos disponible ordenado, con la cantidad de veces usado y segun sus caracteristicas - * - * @param vItemFk item id - * @param vTicketFk ticket id - * @param vShowType mostrar tipos - */ - +* Propone articulos disponibles ordenados, con la cantidad +* de veces usado y segun sus caracteristicas. +* +* @param vSelf Id de artículo +* @param vTicketFk Id de ticket +* @param vShowType Mostrar tipos +*/ DECLARE vWarehouseFk INT; DECLARE vShipped DATE; DECLARE vCalcFk INT; DECLARE vTypeFk INT; + DECLARE vPriority INT DEFAULT 1; - DECLARE vTag1 VARCHAR(25); - DECLARE vTag5 VARCHAR(25); - DECLARE vTag6 VARCHAR(25); - DECLARE vTag7 VARCHAR(25); - DECLARE vTag8 VARCHAR(25); + DECLARE vTag1 VARCHAR(25) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; + DECLARE vTag5 VARCHAR(25) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; + DECLARE vTag6 VARCHAR(25) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; + DECLARE vTag7 VARCHAR(25) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; + DECLARE vTag8 VARCHAR(25) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; + + DECLARE vValue1 VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; + DECLARE vValue5 VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; + DECLARE vValue6 VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; + DECLARE vValue7 VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; + DECLARE vValue8 VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; - DECLARE vValue1 VARCHAR(50); - DECLARE vValue5 VARCHAR(50); - DECLARE vValue6 VARCHAR(50); - DECLARE vValue7 VARCHAR(50); - DECLARE vValue8 VARCHAR(50); - - SELECT warehouseFk, shipped INTO vWarehouseFk, vShipped - FROM vn.ticket + SELECT warehouseFk, shipped + INTO vWarehouseFk, vShipped + FROM ticket WHERE id = vTicketFk; - SELECT typeFk, tag5, value5, tag6, value6, tag7, value7, tag8, value8, t1.name, it1.value - INTO vTypeFk, vTag5, vValue5, vTag6, vValue6, vTag7, vValue7, vTag8, vValue8, vTag1, vValue1 - FROM vn.item i - LEFT JOIN vn.itemTag it1 ON it1.itemFk = i.id AND it1.priority = 1 - LEFT JOIN vn.tag t1 ON t1.id = it1.tagFk - WHERE i.id = vItemFk; + SELECT typeFk, + tag5, + value5, + tag6, + value6, + tag7, + value7, + tag8, + value8, + t.name, + it.value + INTO vTypeFk, + vTag5, + vValue5, + vTag6, + vValue6, + vTag7, + vValue7, + vTag8, + vValue8, + vTag1, + vValue1 + FROM item i + LEFT JOIN itemTag it ON it.itemFk = i.id + AND it.priority = vPriority + LEFT JOIN tag t ON t.id = it.tagFk + WHERE i.id = vSelf; CALL cache.available_refresh(vCalcFk, FALSE, vWarehouseFk, vShipped); @@ -57584,127 +57736,47 @@ BEGIN i.subName, i.tag5, i.value5, - (i.value5 <=> vValue5 COLLATE utf8_general_ci) match5, + (i.value5 <=> vValue5) match5, i.tag6, i.value6, - (i.value6 <=> vValue6 COLLATE utf8_general_ci) match6, + (i.value6 <=> vValue6) match6, i.tag7, i.value7, - (i.value7 <=> vValue7 COLLATE utf8_general_ci) match7, + (i.value7 <=> vValue7) match7, i.tag8, i.value8, - (i.value8 <=> vValue8 COLLATE utf8_general_ci) match8, + (i.value8 <=> vValue8) match8, a.available, - IFNULL(ip.counter,0) counter, - IF(b.groupingMode = 1, b.grouping, b.packing) as minQuantity, + IFNULL(ip.counter, 0) `counter`, + IF(b.groupingMode = 1, b.grouping, b.packing) minQuantity, iss.visible located FROM item i JOIN cache.available a ON a.item_id = i.id - LEFT JOIN itemProposal ip ON ip.mateFk = i.id AND ip.itemFk = vItemFk - LEFT JOIN itemTag it1 ON it1.itemFk = i.id AND it1.priority = 1 - LEFT JOIN tag t1 ON t1.id = it1.tagFk - LEFT JOIN cache.last_buy lb ON lb.item_id = i.id AND lb.warehouse_id = vWarehouseFk + LEFT JOIN itemProposal ip ON ip.mateFk = i.id + AND ip.itemFk = vSelf + LEFT JOIN itemTag it ON it.itemFk = i.id + AND it.priority = vPriority + LEFT JOIN tag t ON t.id = it.tagFk + LEFT JOIN cache.last_buy lb ON lb.item_id = i.id + AND lb.warehouse_id = vWarehouseFk LEFT JOIN buy b ON b.id = lb.buy_id - LEFT JOIN itemShelvingStock iss ON iss.itemFk = i.id AND iss.warehouseFk = vWarehouseFk + LEFT JOIN itemShelvingStock iss ON iss.itemFk = i.id + AND iss.warehouseFk = vWarehouseFk WHERE a.calc_id = vCalcFk - AND available > 0 - AND IF(vShowType,i.typeFk = vTypeFk,true) - AND i.id != vItemFk - ORDER BY counter DESC, - (t1.name = vTag1 COLLATE utf8_general_ci) DESC, - (it1.value = vValue1 COLLATE utf8_general_ci) DESC, - (i.tag5 = vTag5 COLLATE utf8_general_ci) DESC, - (i.value5 = vValue5 COLLATE utf8_general_ci) DESC, - (i.tag6 = vTag6 COLLATE utf8_general_ci) DESC, - (i.value6 = vValue6 COLLATE utf8_general_ci) DESC, - (i.tag7 = vTag7 COLLATE utf8_general_ci) DESC, - (i.value7 = vValue7 COLLATE utf8_general_ci) DESC, - (i.tag8 = vTag8 COLLATE utf8_general_ci) DESC, - (i.value8 = vValue8 COLLATE utf8_general_ci) DESC; - -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ; -/*!50003 DROP PROCEDURE IF EXISTS `itemProposal_Add` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `itemProposal_Add`(vSaleFk INT, vMateFk INT, vQuantity INT) -BEGIN -/** - * Añade un nuevo articulo para sustituir a otro, y actualiza la memoria de sustituciones. - * - * @param vSaleFk id de la tabla sale - * @param vMateFk articulo sustituto - * @ param vQuantity cantidad que se va a sustituir - */ - DECLARE vTicketFk INT; - DECLARE vItemFk INT; - DECLARE vWarehouseFk SMALLINT; - DECLARE vDate DATE; - DECLARE vGrouping INT; - DECLARE vBox INT; - DECLARE vPacking INT; - DECLARE vRoundQuantity INT DEFAULT 1; - - DECLARE EXIT HANDLER FOR SQLEXCEPTION - BEGIN - ROLLBACK; - RESIGNAL; - END; - - SELECT s.ticketFk, LEAST(s.quantity, vQuantity), s.itemFk,t.shipped,t.warehouseFk - INTO vTicketFk, vQuantity, vItemFk,vDate,vWarehouseFk - FROM sale s - JOIN ticket t ON t.id = s.ticketFk - WHERE s.id = vSaleFk; - - CALL buyUltimate(vWarehouseFk, vDate); - - SELECT `grouping`, groupingMode, packing INTO vGrouping, vBox, vPacking - FROM buy b - JOIN tmp.buyUltimate tmp ON b.id = tmp.buyFk - WHERE tmp.itemFk = vMateFk AND tmp.WarehouseFk = vWarehouseFk; - - IF vBox = 2 AND vPacking > 0 THEN - SET vRoundQuantity = vPacking; - END IF; - IF vBox = 1 AND vGrouping > 0 THEN - SET vRoundQuantity = vGrouping; - END IF; - - START TRANSACTION; - - UPDATE sale - SET quantity = quantity - vQuantity - WHERE id = vSaleFk; - - INSERT INTO sale(ticketFk, itemFk, quantity, concept) - SELECT vTicketFk, - vMateFk, - CEIL(vQuantity / vRoundQuantity) * vRoundQuantity, - CONCAT('+ ',i.longName) - FROM item i - WHERE id = vMateFk; - - SELECT LAST_INSERT_ID() INTO vSaleFk; - - CALL sale_calculateComponent(vSaleFk, NULL); - - INSERT INTO itemProposal(itemFk, mateFk, counter) - VALUES(vItemFk, vMateFk, 1) - ON DUPLICATE KEY UPDATE counter = counter + 1; - - COMMIT; + AND a.available > 0 + AND IF(vShowType, i.typeFk = vTypeFk, TRUE) + AND i.id <> vSelf + ORDER BY `counter` DESC, + (t.name = vTag1) DESC, + (it.value = vValue1) DESC, + (i.tag5 = vTag5) DESC, + match5 DESC, + (i.tag6 = vTag6) DESC, + match6 DESC, + (i.tag7 = vTag7) DESC, + match7 DESC, + (i.tag8 = vTag8) DESC, + match8 DESC; END ;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; @@ -58959,70 +59031,70 @@ DELIMITER ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb3 */ ; -/*!50003 SET character_set_results = utf8mb3 */ ; -/*!50003 SET collation_connection = utf8mb3_general_ci */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; DELIMITER ;; CREATE DEFINER=`root`@`localhost` PROCEDURE `itemShelving_add`(IN vShelvingFk VARCHAR(8), IN vBarcode VARCHAR(22), IN vQuantity INT, IN vPackagingFk VARCHAR(10), IN vGrouping INT, IN vPacking INT, IN vWarehouseFk INT) -BEGIN - - -/** - * Añade registro o lo actualiza si ya existe. - * - * @param vShelvingFk matrícula del carro - * @param vBarcode el id del registro - * @param vQuantity indica la cantidad del producto - * @param vPackagingFk el packaging del producto en itemShelving, NULL para coger el de la ultima compra - * @param vGrouping el grouping del producto en itemShelving, NULL para coger el de la ultima compra - * @param vPacking el packing del producto, NULL para coger el de la ultima compra - * @param vWarehouseFk indica el sector - * - **/ - - DECLARE vItemFk INT; - - SELECT barcodeToItem(vBarcode) INTO vItemFk; - - IF (SELECT COUNT(*) FROM shelving WHERE code = vShelvingFk COLLATE utf8_unicode_ci) = 0 THEN - - INSERT IGNORE INTO parking(code) VALUES(vShelvingFk); - INSERT INTO shelving(code, parkingFk) - SELECT vShelvingFk, id - FROM parking - WHERE `code` = vShelvingFk COLLATE utf8_unicode_ci; - - END IF; - - IF (SELECT COUNT(*) FROM itemShelving - WHERE shelvingFk COLLATE utf8_unicode_ci = vShelvingFk - AND itemFk = vItemFk - AND packing = vPacking) = 1 THEN - - UPDATE itemShelving - SET visible = visible+vQuantity - WHERE shelvingFk COLLATE utf8_unicode_ci = vShelvingFk AND itemFk = vItemFk AND packing = vPacking; - - ELSE - CALL cache.last_buy_refresh(FALSE); - INSERT INTO itemShelving( itemFk, - shelvingFk, - visible, - grouping, - packing, - packagingFk) - - SELECT vItemFk, - vShelvingFk, - vQuantity, - IFNULL(vGrouping, b.grouping), - IFNULL(vPacking, b.packing), - IFNULL(vPackagingFk, b.packagingFk) - FROM item i - LEFT JOIN cache.last_buy lb ON i.id = lb.item_id AND lb.warehouse_id = vWarehouseFk - LEFT JOIN buy b ON b.id = lb.buy_id - WHERE i.id = vItemFk; - END IF; +BEGIN + + +/** + * Añade registro o lo actualiza si ya existe. + * + * @param vShelvingFk matrícula del carro + * @param vBarcode el id del registro + * @param vQuantity indica la cantidad del producto + * @param vPackagingFk el packaging del producto en itemShelving, NULL para coger el de la ultima compra + * @param vGrouping el grouping del producto en itemShelving, NULL para coger el de la ultima compra + * @param vPacking el packing del producto, NULL para coger el de la ultima compra + * @param vWarehouseFk indica el sector + * + **/ + + DECLARE vItemFk INT; + + SELECT barcodeToItem(vBarcode) INTO vItemFk; + + IF (SELECT COUNT(*) FROM shelving WHERE code = vShelvingFk COLLATE utf8_unicode_ci) = 0 THEN + + INSERT IGNORE INTO parking(code) VALUES(vShelvingFk); + INSERT INTO shelving(code, parkingFk) + SELECT vShelvingFk, id + FROM parking + WHERE `code` = vShelvingFk COLLATE utf8_unicode_ci; + + END IF; + + IF (SELECT COUNT(*) FROM itemShelving + WHERE shelvingFk COLLATE utf8_unicode_ci = vShelvingFk + AND itemFk = vItemFk + AND packing = vPacking) = 1 THEN + + UPDATE itemShelving + SET visible = visible+vQuantity + WHERE shelvingFk COLLATE utf8_unicode_ci = vShelvingFk AND itemFk = vItemFk AND packing = vPacking; + + ELSE + CALL cache.last_buy_refresh(FALSE); + INSERT INTO itemShelving( itemFk, + shelvingFk, + visible, + grouping, + packing, + packagingFk) + + SELECT vItemFk, + vShelvingFk, + vQuantity, + IFNULL(vGrouping, b.grouping), + IFNULL(vPacking, b.packing), + IFNULL(vPackagingFk, b.packagingFk) + FROM item i + LEFT JOIN cache.last_buy lb ON i.id = lb.item_id AND lb.warehouse_id = vWarehouseFk + LEFT JOIN buy b ON b.id = lb.buy_id + WHERE i.id = vItemFk; + END IF; END ;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; @@ -59187,10 +59259,9 @@ proc:BEGIN LEFT JOIN saleTracking st ON st.saleFk = s.id JOIN ticket t ON t.id = s.ticketFk JOIN client c on c.id = t.clientFk - JOIN clientType ct ON ct.id = c.clientTypeFk WHERE t.shipped BETWEEN util.VN_CURDATE() AND util.dayend(util.VN_CURDATE()) AND st.saleFk IS NULL - AND ct.code IN ('normal', 'trust') + AND c.typeFk IN ('normal', 'trust') GROUP BY s.itemFk ) sub2 ON sub2.itemFk = sub.itemFk UNION ALL @@ -59213,10 +59284,9 @@ proc:BEGIN LEFT JOIN saleTracking st ON st.saleFk = s.id JOIN ticket t ON t.id = s.ticketFk JOIN client c on c.id = t.clientFk - JOIN clientType ct ON ct.id = c.clientTypeFk WHERE t.shipped BETWEEN util.VN_CURDATE() AND util.dayend(util.VN_CURDATE()) AND st.saleFk IS NULL - AND ct.code IN ('normal', 'trust') + AND c.typeFk IN ('normal', 'trust') GROUP BY s.itemFk ) sub5 ON sub5.itemFk = v.item_id WHERE v.calc_id = vCalcVisibleFk @@ -60888,7 +60958,7 @@ BEGIN TRUE, s.id, st.`order`, - ct.`code`, + c.typeFk, cb.claimFk, NULL FROM sale s @@ -60896,7 +60966,6 @@ BEGIN LEFT JOIN ticketState ts ON ts.ticketFk = t.id LEFT JOIN state st ON st.`code` = ts.`code` JOIN client c ON c.id = t.clientFk - JOIN clientType ct ON ct.id = c.clientTypeFk JOIN state st2 ON st2.`code` = IF(t.shipped < util.VN_CURDATE(), 'DELIVERED', IF (t.shipped > util.dayEnd(util.VN_CURDATE()), @@ -66234,7 +66303,6 @@ BEGIN CALL productionControl(vWarehouseFk, 0); - -- Products with vn.item.isBoxPickingMode = TRUE, pay atention to vn.itemShelving.packing CREATE OR REPLACE TEMPORARY TABLE tmp.sale (saleFk INT PRIMARY KEY) SELECT @@ -66246,7 +66314,7 @@ BEGIN MAKETIME(pb.HH,pb.mm,0) etd, pb.routeFk, FLOOR(s.quantity / ish.packing) stickers, - ish.packing, + IF(i.isBoxPickingMode, ish.packing, i.packingOut) packing, b.packagingFk FROM sale s JOIN item i ON i.id = s.itemFk @@ -66269,8 +66337,8 @@ BEGIN LEFT JOIN ticketState ts ON ts.ticketFk = s.ticketFk LEFT JOIN cache.last_buy lb ON lb.item_id = i.id AND lb.warehouse_id = vWarehouseFk LEFT JOIN buy b ON b.id = lb.buy_id - WHERE s.quantity BETWEEN ish.packing AND (ish.visible - IFNULL(tISS.reserve,0)) - AND i.isBoxPickingMode + WHERE IF(i.isBoxPickingMode, ish.packing, i.packingOut) + <= LEAST(s.quantity, ish.visible - IFNULL(tISS.reserve,0)) AND NOT pb.problem AND sgd.saleFk IS NULL AND p.sectorFk = vSectorFk @@ -66281,45 +66349,9 @@ BEGIN GROUP BY s.id ORDER BY etd; - -- Remaining products, vn.item.packingOut - INSERT IGNORE INTO tmp.sale - SELECT - s.ticketFk, - s.id saleFk, - s.itemFk, - s.concept, - s.quantity, - MAKETIME(pb.HH,pb.mm,0) etd, - pb.routeFk, - s.quantity / i.packingOut stickers, - i.packingOut, - pc.defaultBigPackageFk - FROM sale s - JOIN item i ON i.id = s.itemFk - JOIN itemShelving ish ON ish.itemFk = s.itemFk - JOIN shelving sh ON sh.code = ish.shelvingFk - JOIN parking p ON p.id = sh.parkingFk - JOIN tmp.productionBuffer pb ON pb.ticketFk = s.ticketFk - JOIN agencyMode am ON am.id = pb.agencyModeFk - JOIN packagingConfig pc - LEFT JOIN routesMonitor rm ON rm.routeFk = pb.routeFk - LEFT JOIN itemShelvingStock iss ON iss.itemFk = s.itemFk AND iss.sectorFk = p.sectorFk - LEFT JOIN saleGroupDetail sgd ON sgd.saleFk = s.id - LEFT JOIN ticketState ts ON ts.ticketFk = s.ticketFk - WHERE s.quantity >= i.packingOut - AND NOT pb.problem - AND s.quantity > 0 - AND sgd.saleFk IS NULL - AND p.sectorFk = vSectorFk - AND ts.isPreviousPreparable - AND iss.visible >= s.quantity - AND ((rm.bufferFk AND rm.isPickingAllowed) - OR am.code = 'REC_ALG') - AND pb.shipped = vDated - GROUP BY s.id - ORDER BY etd; - - SELECT * FROM tmp.sale; + SELECT * + FROM tmp.sale + WHERE stickers; DROP TEMPORARY TABLE tmp.productionBuffer; DROP TEMPORARY TABLE tmp.sale; @@ -67132,6 +67164,25 @@ BEGIN * @param vSaleGroupFk Identificador de vn.saleGroup * @param vSectorCollectionFk Identificador de vn.sectorCollection */ + DECLARE vHasSaleGroup INT; + DECLARE vHasSectorCollection INT; + + SELECT COUNT(id) INTO vHasSaleGroup + FROM saleGroup + WHERE id = vSaleGroupFk; + + IF !vHasSaleGroup THEN + CALL util.throw ("invalid saleGroup"); + END IF; + + SELECT COUNT(id) INTO vHasSectorCollection + FROM sectorCollection + WHERE id = vSectorCollectionFk; + + IF !vHasSectorCollection THEN + CALL util.throw ("invalid sectorCollection"); + END IF; + REPLACE sectorCollectionSaleGroup SET sectorCollectionFk = vSectorCollectionFk, saleGroupFk = vSaleGroupFk; @@ -67374,32 +67425,6 @@ DELIMITER ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ; -/*!50003 DROP PROCEDURE IF EXISTS `sector_get` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `sector_get`() -BEGIN - -/** - * Obtiene los sectores -*/ - - SELECT s.id,s.description,s.warehouseFk - FROM vn.sector s; - -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ; /*!50003 DROP PROCEDURE IF EXISTS `sector_getWarehouse` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -71055,7 +71080,7 @@ BEGIN JOIN agencyMode am ON am.id = t.agencyModeFk LEFT JOIN ticketState ts ON ts.ticketFk = t.id JOIN alertLevel al ON al.id = ts.alertLevel - WHERE al.code = 'PACKED' OR (am.code = 'refund' AND al.code != 'delivered') + WHERE (al.code = 'PACKED' OR (am.code = 'refund' AND al.code != 'delivered')) AND t.id = vTicketFk AND t.refFk IS NULL GROUP BY t.id); @@ -72040,6 +72065,8 @@ BEGIN * @return tmp.ticketAmount (ticketFk, taxableBase, tax, code) * @return tmp.ticketTax (ticketFk, pgcFk, taxableBase, rate, code) Impuesto desglosado para cada ticket. */ + -- Mantengo el drop porque si no da error en los tests de back de salix + -- Table 'addressCompany' was locked with a READ lock and can't be updated' DROP TEMPORARY TABLE IF EXISTS tmp.addressCompany; CREATE TEMPORARY TABLE tmp.addressCompany (INDEX (addressFk, companyFk)) @@ -72048,24 +72075,24 @@ BEGIN FROM tmp.ticket tmpTicket JOIN ticket t ON t.id = tmpTicket.ticketFk; - CALL addressTaxArea (); + CALL addressTaxArea(); IF vTaxArea IS NOT NULL THEN UPDATE tmp.addressTaxArea SET areaFk = vTaxArea; END IF; - /* Solo se calcula la base imponible (taxableBase) y el impuesto se calculará posteriormente - * No se debería cambiar el sistema por problemas con los decimales - */ - DROP TEMPORARY TABLE IF EXISTS tmp.ticketTax; - CREATE TEMPORARY TABLE tmp.ticketTax + -- Solo se calcula la base imponible (taxableBase) y + -- el impuesto se calculará posteriormente + -- No se debería cambiar el sistema por problemas con los decimales + + CREATE OR REPLACE TEMPORARY TABLE tmp.ticketTax (PRIMARY KEY (ticketFk, code, rate)) ENGINE = MEMORY SELECT * FROM ( SELECT tmpTicket.ticketFk, bp.pgcFk, - SUM(s.quantity * s.price * (100 - s.discount)/100 ) taxableBase, + SUM(s.quantity * s.price * (100 - s.discount) / 100 ) taxableBase, pgc.rate, tc.code, bp.priority @@ -72074,22 +72101,21 @@ BEGIN JOIN item i ON i.id = s.itemFk JOIN ticket t ON t.id = tmpTicket.ticketFk JOIN supplier su ON su.id = t.companyFk - JOIN tmp.addressTaxArea ata - ON ata.addressFk = t.addressFk AND ata.companyFk = t.companyFk - JOIN itemTaxCountry itc - ON itc.itemFk = i.id AND itc.countryFk = su.countryFk - JOIN bookingPlanner bp - ON bp.countryFk = su.countryFk - AND bp.taxAreaFk = ata.areaFk - AND bp.taxClassFk = itc.taxClassFk + JOIN tmp.addressTaxArea ata ON ata.addressFk = t.addressFk + AND ata.companyFk = t.companyFk + JOIN itemTaxCountry itc ON itc.itemFk = i.id + AND itc.countryFk = su.countryFk + JOIN bookingPlanner bp ON bp.countryFk = su.countryFk + AND bp.taxAreaFk = ata.areaFk + AND bp.taxClassFk = itc.taxClassFk JOIN pgc ON pgc.code = bp.pgcFk JOIN taxClass tc ON tc.id = bp.taxClassFk GROUP BY tmpTicket.ticketFk, pgc.code, pgc.rate - HAVING taxableBase <> 0) t3 + HAVING taxableBase + ) t3 ORDER BY priority; - DROP TEMPORARY TABLE IF EXISTS tmp.ticketServiceTax; - CREATE TEMPORARY TABLE tmp.ticketServiceTax + CREATE OR REPLACE TEMPORARY TABLE tmp.ticketServiceTax (PRIMARY KEY (ticketFk, code, rate)) ENGINE = MEMORY SELECT tt.ticketFk, @@ -72101,24 +72127,22 @@ BEGIN JOIN ticketService ts ON ts.ticketFk = tt.ticketFk JOIN ticket t ON t.id = tt.ticketFk JOIN supplier su ON su.id = t.companyFk - JOIN tmp.addressTaxArea ata - ON ata.addressFk = t.addressFk AND ata.companyFk = t.companyFk - JOIN bookingPlanner bp - ON bp.countryFk = su.countryFk - AND bp.taxAreaFk = ata.areaFk - AND bp.taxClassFk = ts.taxClassFk + JOIN tmp.addressTaxArea ata ON ata.addressFk = t.addressFk + AND ata.companyFk = t.companyFk + JOIN bookingPlanner bp ON bp.countryFk = su.countryFk + AND bp.taxAreaFk = ata.areaFk + AND bp.taxClassFk = ts.taxClassFk JOIN pgc ON pgc.code = bp.pgcFk JOIN taxClass tc ON tc.id = bp.taxClassFk GROUP BY tt.ticketFk, pgc.code - HAVING taxableBase <> 0; + HAVING taxableBase; INSERT INTO tmp.ticketTax (ticketFk, pgcFk, taxableBase, rate, code) SELECT ts.ticketFk, ts.pgcFk, ts.taxableBase, ts.rate, ts.code FROM tmp.ticketServiceTax ts ON DUPLICATE KEY UPDATE ticketTax.taxableBase = VALUES (taxableBase) + ticketTax.taxableBase ; - DROP TEMPORARY TABLE IF EXISTS tmp.ticketAmount; - CREATE TEMPORARY TABLE tmp.ticketAmount + CREATE OR REPLACE TEMPORARY TABLE tmp.ticketAmount (INDEX (ticketFk)) ENGINE = MEMORY SELECT ticketFk, @@ -72128,8 +72152,9 @@ BEGIN FROM tmp.ticketTax GROUP BY ticketFk, code; - DROP TEMPORARY TABLE tmp.addressCompany; - DROP TEMPORARY TABLE tmp.addressTaxArea; + DROP TEMPORARY TABLE + tmp.addressCompany, + tmp.addressTaxArea; END ;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; @@ -76213,7 +76238,7 @@ BEGIN SET vDated = DATE(vTimed); - SELECT IF(pc.code = 'driveCE', + SELECT IF(pc.code = 'driverCE', wc.dayBreakDriver, wc.dayBreak), wc.shortWeekBreak, @@ -77216,6 +77241,12 @@ BEGIN IF vOldBusinessFk IS NULL THEN CALL account.account_enable(vSelf); + + UPDATE client c + JOIN payMethod pm ON pm.code = 'bankDraft' + SET c.payMethodFk = pm.id + WHERE c.id = vSelf + AND c.iban; END IF; END ;; DELIMITER ; @@ -79274,7 +79305,6 @@ SET character_set_client = utf8; 1 AS `hasLcr`, 1 AS `default_address`, 1 AS `risk_calculated`, - 1 AS `clientes_tipo_id`, 1 AS `invoiceByAddress`, 1 AS `contabilizado`, 1 AS `congelado`, @@ -80486,18 +80516,18 @@ SET character_set_client = utf8; SET character_set_client = @saved_cs_client; -- --- Table structure for table `Tramos__` +-- Table structure for table `Tramos` -- -DROP TABLE IF EXISTS `Tramos__`; +DROP TABLE IF EXISTS `Tramos`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `Tramos__` ( +CREATE TABLE `Tramos` ( `id` int(11) NOT NULL AUTO_INCREMENT, `Tramo` time NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `Tramo` (`Tramo`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6371 deprecated 2024-01-11'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -81568,20 +81598,20 @@ SET character_set_client = utf8; SET character_set_client = @saved_cs_client; -- --- Table structure for table `dock__` +-- Table structure for table `dock` -- -DROP TABLE IF EXISTS `dock__`; +DROP TABLE IF EXISTS `dock`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `dock__` ( +CREATE TABLE `dock` ( `id` int(11) NOT NULL AUTO_INCREMENT, `code` varchar(5) NOT NULL, `xPos` int(11) DEFAULT NULL, `yPos` int(11) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `code_UNIQUE` (`code`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6371 deprecated 2024-01-11'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -81842,193 +81872,170 @@ CREATE TABLE `expeditions_pictures__` ( /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `filtros` +-- Table structure for table `filtros__` -- -DROP TABLE IF EXISTS `filtros`; +DROP TABLE IF EXISTS `filtros__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `filtros` ( +CREATE TABLE `filtros__` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(45) NOT NULL, `sql` varchar(255) NOT NULL, `Estanteria` tinyint(1) DEFAULT 0, PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-11-21;'; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `financialProductType` +-- Temporary table structure for view `financialProductType` -- DROP TABLE IF EXISTS `financialProductType`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `financialProductType` ( - `id` varchar(2) NOT NULL, - `description` varchar(45) NOT NULL, - `isAcumulattor` tinyint(4) NOT NULL DEFAULT 0, - PRIMARY KEY (`id`), - UNIQUE KEY `description_UNIQUE` (`description`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='Distintos tipos de productos financieros: seguros de cambio, polizas de credito, acumuladores....'; -/*!40101 SET character_set_client = @saved_cs_client */; +/*!50001 DROP VIEW IF EXISTS `financialProductType`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +/*!50001 CREATE VIEW `financialProductType` AS SELECT + 1 AS `id`, + 1 AS `description`, + 1 AS `isAcumulattor` */; +SET character_set_client = @saved_cs_client; -- --- Table structure for table `flight` +-- Temporary table structure for view `flight` -- DROP TABLE IF EXISTS `flight`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `flight` ( - `flight_id` varchar(10) NOT NULL, - `duration` tinyint(2) unsigned NOT NULL, - `route` varchar(20) DEFAULT NULL, - `days` varchar(7) DEFAULT NULL, - `airline_id` smallint(2) unsigned DEFAULT NULL, - `airport_out` varchar(3) NOT NULL, - `airport_in` varchar(3) NOT NULL, - PRIMARY KEY (`flight_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; +/*!50001 DROP VIEW IF EXISTS `flight`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +/*!50001 CREATE VIEW `flight` AS SELECT + 1 AS `flight_id`, + 1 AS `duration`, + 1 AS `route`, + 1 AS `days`, + 1 AS `airline_id`, + 1 AS `airport_out`, + 1 AS `airport_in` */; +SET character_set_client = @saved_cs_client; -- --- Table structure for table `form_query` +-- Table structure for table `form_query__` -- -DROP TABLE IF EXISTS `form_query`; +DROP TABLE IF EXISTS `form_query__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `form_query` ( +CREATE TABLE `form_query__` ( `form_query_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT, `query` varchar(50) NOT NULL, `response1` varchar(10) NOT NULL, `response2` varchar(10) NOT NULL, `type_id` enum('gest_doc') NOT NULL, PRIMARY KEY (`form_query_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-11-21;'; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `gastos_resumen` +-- Temporary table structure for view `gastos_resumen` -- DROP TABLE IF EXISTS `gastos_resumen`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `gastos_resumen` ( - `Id_Gasto` varchar(10) NOT NULL, - `year` int(4) NOT NULL, - `month` int(2) NOT NULL, - `importe` decimal(10,2) DEFAULT NULL, - `empresa_id` int(11) NOT NULL, - PRIMARY KEY (`Id_Gasto`,`year`,`month`,`empresa_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='Sirve para resumir los gastos que se ponen a mano en el contaplus'; -/*!40101 SET character_set_client = @saved_cs_client */; +/*!50001 DROP VIEW IF EXISTS `gastos_resumen`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +/*!50001 CREATE VIEW `gastos_resumen` AS SELECT + 1 AS `Id_Gasto`, + 1 AS `year`, + 1 AS `month`, + 1 AS `importe`, + 1 AS `empresa_id` */; +SET character_set_client = @saved_cs_client; -- --- Table structure for table `guillen` +-- Table structure for table `guillen__` -- -DROP TABLE IF EXISTS `guillen`; +DROP TABLE IF EXISTS `guillen__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `guillen` ( +CREATE TABLE `guillen__` ( `bulto` tinyint(3) unsigned NOT NULL, `1` float unsigned NOT NULL, `2` float unsigned NOT NULL, `re_exp` float unsigned NOT NULL, PRIMARY KEY (`bulto`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-11-28;'; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `guillen_carry` +-- Table structure for table `guillen_carry__` -- -DROP TABLE IF EXISTS `guillen_carry`; +DROP TABLE IF EXISTS `guillen_carry__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `guillen_carry` ( +CREATE TABLE `guillen_carry__` ( `carry` tinyint(3) unsigned NOT NULL, `1` float unsigned NOT NULL, `2` float unsigned NOT NULL, `re_exp` float unsigned NOT NULL, PRIMARY KEY (`carry`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-11-28;'; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `integra2` +-- Temporary table structure for view `integra2` -- DROP TABLE IF EXISTS `integra2`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `integra2` ( - `postal_code` mediumint(8) unsigned NOT NULL, - `frequency` tinyint(3) unsigned NOT NULL, - `warehouse_id` smallint(5) unsigned NOT NULL, - PRIMARY KEY (`postal_code`,`frequency`,`warehouse_id`), - KEY `postal_code` (`postal_code`), - KEY `warehouse_id` (`warehouse_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; +/*!50001 DROP VIEW IF EXISTS `integra2`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +/*!50001 CREATE VIEW `integra2` AS SELECT + 1 AS `postal_code`, + 1 AS `frequency`, + 1 AS `warehouse_id` */; +SET character_set_client = @saved_cs_client; -- --- Table structure for table `integra2_escala` +-- Table structure for table `integra2_escala__` -- -DROP TABLE IF EXISTS `integra2_escala`; +DROP TABLE IF EXISTS `integra2_escala__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `integra2_escala` ( +CREATE TABLE `integra2_escala__` ( `province_id` smallint(6) unsigned NOT NULL, `warehouse_id` smallint(6) unsigned NOT NULL, PRIMARY KEY (`province_id`,`warehouse_id`), KEY `warehouse_escala_idx` (`warehouse_id`), CONSTRAINT `province_escala` FOREIGN KEY (`province_id`) REFERENCES `vn`.`province` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `warehouse_escala` FOREIGN KEY (`warehouse_id`) REFERENCES `vn`.`warehouse` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-11-28;'; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `integra2_province` +-- Temporary table structure for view `integra2_province` -- DROP TABLE IF EXISTS `integra2_province`; +/*!50001 DROP VIEW IF EXISTS `integra2_province`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +/*!50001 CREATE VIEW `integra2_province` AS SELECT + 1 AS `province_id`, + 1 AS `franquicia` */; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `invoice_observation__` +-- + +DROP TABLE IF EXISTS `invoice_observation__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `integra2_province` ( - `province_id` smallint(6) unsigned NOT NULL, - `franquicia` varchar(65) NOT NULL, - PRIMARY KEY (`province_id`), - CONSTRAINT `integra2_province_id` FOREIGN KEY (`province_id`) REFERENCES `vn`.`province` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `intervalos__` --- - -DROP TABLE IF EXISTS `intervalos__`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `intervalos__` ( - `id` int(11) NOT NULL, - `hour` time NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='Deprecated 27-02-2023'; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `invoice_observation` --- - -DROP TABLE IF EXISTS `invoice_observation`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `invoice_observation` ( +CREATE TABLE `invoice_observation__` ( `invoice_observation_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, `desde` date NOT NULL, `hasta` date NOT NULL, @@ -82036,7 +82043,7 @@ CREATE TABLE `invoice_observation` ( `empresa_id` smallint(5) unsigned NOT NULL DEFAULT 0, `text` text NOT NULL, PRIMARY KEY (`invoice_observation_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-11-28;'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -82055,36 +82062,36 @@ CREATE TABLE `jerarquia` ( KEY `jerarquiaBossFk_idx` (`boss_id`), CONSTRAINT `jerarquiaBossFk` FOREIGN KEY (`boss_id`) REFERENCES `account`.`account` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `jerarquiaWorkerFk` FOREIGN KEY (`worker_id`) REFERENCES `account`.`account` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-12-13;'; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `language` +-- Table structure for table `language__` -- -DROP TABLE IF EXISTS `language`; +DROP TABLE IF EXISTS `language__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `language` ( +CREATE TABLE `language__` ( `code` varchar(10) NOT NULL, `name` varchar(20) NOT NULL, `active` tinyint(1) NOT NULL DEFAULT 0, PRIMARY KEY (`code`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-12-13;'; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `link` +-- Table structure for table `link__` -- -DROP TABLE IF EXISTS `link`; +DROP TABLE IF EXISTS `link__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `link` ( +CREATE TABLE `link__` ( `Id_Cliente` int(11) NOT NULL, `Id_Proveedor` int(11) NOT NULL, PRIMARY KEY (`Id_Cliente`,`Id_Proveedor`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-12-13;'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -82110,24 +82117,6 @@ SET character_set_client = utf8; 1 AS `error` */; SET character_set_client = @saved_cs_client; --- --- Table structure for table `mail_templates__` --- - -DROP TABLE IF EXISTS `mail_templates__`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `mail_templates__` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `countryCode` char(2) NOT NULL DEFAULT 'ES', - `name` varchar(25) NOT NULL, - `subject` varchar(50) NOT NULL, - `body` text NOT NULL, - `attachment` text DEFAULT NULL, - PRIMARY KEY (`id`,`countryCode`,`name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='Deprecated 27-02-2023'; -/*!40101 SET character_set_client = @saved_cs_client */; - -- -- Temporary table structure for view `mandato` -- @@ -82160,33 +82149,16 @@ SET character_set_client = utf8; SET character_set_client = @saved_cs_client; -- --- Table structure for table `movement_label` +-- Table structure for table `nichos__` -- -DROP TABLE IF EXISTS `movement_label`; +DROP TABLE IF EXISTS `nichos__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `movement_label` ( - `Id_movimiento` int(11) NOT NULL, - `label` mediumint(8) unsigned NOT NULL, - `stem` mediumint(8) unsigned NOT NULL, - `created` timestamp NULL DEFAULT current_timestamp(), - PRIMARY KEY (`Id_movimiento`), - CONSTRAINT `movement_label_ibfk_1` FOREIGN KEY (`Id_movimiento`) REFERENCES `vn`.`sale` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `nichos` --- - -DROP TABLE IF EXISTS `nichos`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `nichos` ( +CREATE TABLE `nichos__` ( `id` varchar(5) NOT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-11-28;'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -82215,35 +82187,27 @@ SET character_set_client = utf8; SET character_set_client = @saved_cs_client; -- --- Table structure for table `pago_sdc` +-- Temporary table structure for view `pago_sdc` -- DROP TABLE IF EXISTS `pago_sdc`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `pago_sdc` ( - `pago_sdc_id` int(11) NOT NULL AUTO_INCREMENT, - `importe` decimal(10,2) NOT NULL, - `fecha` date NOT NULL, - `vencimiento` date NOT NULL, - `entity_id` int(10) unsigned NOT NULL, - `ref` varchar(45) DEFAULT NULL, - `rate` decimal(10,4) NOT NULL, - `empresa_id` int(10) unsigned NOT NULL DEFAULT 442, - `financialProductTypefk` varchar(2) NOT NULL DEFAULT 'SC', - `pago_sdccol` varchar(45) DEFAULT NULL, - `upperBarrier` decimal(10,2) DEFAULT NULL, - `lowerBarrier` decimal(10,2) DEFAULT NULL, - `strike` decimal(10,2) DEFAULT NULL, - PRIMARY KEY (`pago_sdc_id`), - KEY `empresa_sdc_idx` (`empresa_id`), - KEY `financial_type_fk_idx` (`financialProductTypefk`), - KEY `pago_sdc_entity_fk_idx` (`entity_id`), - CONSTRAINT `financial_type_fk` FOREIGN KEY (`financialProductTypefk`) REFERENCES `financialProductType` (`id`) ON UPDATE CASCADE, - CONSTRAINT `pago_sdcCompany_Fk` FOREIGN KEY (`empresa_id`) REFERENCES `vn`.`company` (`id`) ON UPDATE CASCADE, - CONSTRAINT `pago_sdc_entity_fk` FOREIGN KEY (`entity_id`) REFERENCES `vn`.`bankEntity` (`id`) ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='Seguros de cambio'; -/*!40101 SET character_set_client = @saved_cs_client */; +/*!50001 DROP VIEW IF EXISTS `pago_sdc`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +/*!50001 CREATE VIEW `pago_sdc` AS SELECT + 1 AS `pago_sdc_id`, + 1 AS `importe`, + 1 AS `fecha`, + 1 AS `vencimiento`, + 1 AS `entity_id`, + 1 AS `ref`, + 1 AS `rate`, + 1 AS `empresa_id`, + 1 AS `financialProductTypefk`, + 1 AS `upperBarrier`, + 1 AS `lowerBarrier`, + 1 AS `strike` */; +SET character_set_client = @saved_cs_client; -- -- Temporary table structure for view `pay_dem` @@ -82289,13 +82253,13 @@ SET character_set_client = utf8; SET character_set_client = @saved_cs_client; -- --- Table structure for table `payroll_basess` +-- Table structure for table `payroll_basess__` -- -DROP TABLE IF EXISTS `payroll_basess`; +DROP TABLE IF EXISTS `payroll_basess__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `payroll_basess` ( +CREATE TABLE `payroll_basess__` ( `id_payroll_Basess` int(11) NOT NULL AUTO_INCREMENT, `empresa_id` int(10) NOT NULL, `id_tipobasess` int(11) NOT NULL, @@ -82306,25 +82270,25 @@ CREATE TABLE `payroll_basess` ( PRIMARY KEY (`id_payroll_Basess`), KEY `payroll_basess_1_idx` (`id_tipobasess`), KEY `payroll_basess_2_idx` (`empresa_id`), - CONSTRAINT `payroll_basess_1` FOREIGN KEY (`id_tipobasess`) REFERENCES `payroll_tipobasess` (`id_payroll_tipobasess`) ON DELETE NO ACTION ON UPDATE CASCADE, + CONSTRAINT `payroll_basess_1` FOREIGN KEY (`id_tipobasess`) REFERENCES `payroll_tipobasess__` (`id_payroll_tipobasess`) ON DELETE NO ACTION ON UPDATE CASCADE, CONSTRAINT `payroll_basess_2` FOREIGN KEY (`empresa_id`) REFERENCES `payroll_centros` (`empresa_id`) ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-12-13;'; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `payroll_bonificaciones` +-- Table structure for table `payroll_bonificaciones__` -- -DROP TABLE IF EXISTS `payroll_bonificaciones`; +DROP TABLE IF EXISTS `payroll_bonificaciones__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `payroll_bonificaciones` ( +CREATE TABLE `payroll_bonificaciones__` ( `codtrabajador` int(11) NOT NULL, `codempresa` int(11) NOT NULL, `Fecha` date NOT NULL, `bonificacionSS` double NOT NULL, PRIMARY KEY (`codtrabajador`,`codempresa`,`Fecha`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-11-28;'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -82380,13 +82344,13 @@ CREATE TABLE `payroll_conceptos` ( /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `payroll_datos` +-- Table structure for table `payroll_datos__` -- -DROP TABLE IF EXISTS `payroll_datos`; +DROP TABLE IF EXISTS `payroll_datos__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `payroll_datos` ( +CREATE TABLE `payroll_datos__` ( `codtrabajador` int(11) NOT NULL, `codempresa` int(10) NOT NULL, `Fecha` date NOT NULL, @@ -82400,17 +82364,17 @@ CREATE TABLE `payroll_datos` ( PRIMARY KEY (`codtrabajador`,`codempresa`,`conceptoid`,`Fecha`), KEY `fgkey_payrolldatos_1_idx` (`conceptoid`), CONSTRAINT `fgkey_payrolldatos_1` FOREIGN KEY (`conceptoid`) REFERENCES `payroll_conceptos` (`conceptoid`) ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-11-28;'; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `payroll_embargos` +-- Table structure for table `payroll_embargos__` -- -DROP TABLE IF EXISTS `payroll_embargos`; +DROP TABLE IF EXISTS `payroll_embargos__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `payroll_embargos` ( +CREATE TABLE `payroll_embargos__` ( `codtrabajador` int(11) NOT NULL, `codempresa` int(10) NOT NULL, `conceptoid` int(11) NOT NULL, @@ -82419,7 +82383,7 @@ CREATE TABLE `payroll_embargos` ( `pendiente` double DEFAULT NULL, `total` double NOT NULL, PRIMARY KEY (`codtrabajador`,`codempresa`,`Fecha`,`conceptoid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-11-28;'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -82448,27 +82412,27 @@ CREATE TABLE `payroll_employee` ( /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `payroll_tipobasess` +-- Table structure for table `payroll_tipobasess__` -- -DROP TABLE IF EXISTS `payroll_tipobasess`; +DROP TABLE IF EXISTS `payroll_tipobasess__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `payroll_tipobasess` ( +CREATE TABLE `payroll_tipobasess__` ( `id_payroll_tipobasess` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, PRIMARY KEY (`id_payroll_tipobasess`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-11-28;'; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `payrroll_apEmpresarial` +-- Table structure for table `payrroll_apEmpresarial__` -- -DROP TABLE IF EXISTS `payrroll_apEmpresarial`; +DROP TABLE IF EXISTS `payrroll_apEmpresarial__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `payrroll_apEmpresarial` ( +CREATE TABLE `payrroll_apEmpresarial__` ( `id` int(11) NOT NULL AUTO_INCREMENT, `codTrabajador` int(11) NOT NULL, `Fecha` date NOT NULL, @@ -82479,7 +82443,7 @@ CREATE TABLE `payrroll_apEmpresarial` ( `costeEmpresaFogasa` decimal(8,2) NOT NULL, `costeEmpresaExtra` decimal(8,2) NOT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-11-28;'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -82512,19 +82476,19 @@ SET character_set_client = utf8; SET character_set_client = @saved_cs_client; -- --- Table structure for table `preparation_exception` +-- Table structure for table `preparation_exception__` -- -DROP TABLE IF EXISTS `preparation_exception`; +DROP TABLE IF EXISTS `preparation_exception__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `preparation_exception` ( +CREATE TABLE `preparation_exception__` ( `exception_day` date NOT NULL COMMENT 'preparation day', `warehouse_id` smallint(6) unsigned DEFAULT NULL, `percentage` tinyint(2) NOT NULL DEFAULT 0, UNIQUE KEY `exception_day_UNIQUE` (`exception_day`), UNIQUE KEY `warehouse_id_UNIQUE` (`warehouse_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-11-28;'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -82599,19 +82563,19 @@ SET character_set_client = utf8; SET character_set_client = @saved_cs_client; -- --- Table structure for table `rec_translator` +-- Table structure for table `rec_translator__` -- -DROP TABLE IF EXISTS `rec_translator`; +DROP TABLE IF EXISTS `rec_translator__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `rec_translator` ( +CREATE TABLE `rec_translator__` ( `Id_Article` int(11) NOT NULL, `denominacion` varchar(85) NOT NULL, PRIMARY KEY (`Id_Article`,`denominacion`), KEY `id_article_rec_idx` (`Id_Article`), CONSTRAINT `id_article_rec` FOREIGN KEY (`Id_Article`) REFERENCES `vn`.`item` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='Equipara las denominaciones de las fincas de ecuador con nuestro Id_Article'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-11-28;'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -82648,18 +82612,18 @@ SET character_set_client = utf8; SET character_set_client = @saved_cs_client; -- --- Table structure for table `recibida_agricola` +-- Table structure for table `recibida_agricola__` -- -DROP TABLE IF EXISTS `recibida_agricola`; +DROP TABLE IF EXISTS `recibida_agricola__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `recibida_agricola` ( +CREATE TABLE `recibida_agricola__` ( `recibida_id` mediumint(8) unsigned NOT NULL, `num` smallint(5) unsigned NOT NULL, PRIMARY KEY (`recibida_id`), - CONSTRAINT `recibida_agricola_ibfk_1` FOREIGN KEY (`recibida_id`) REFERENCES `vn`.`invoiceIn` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; + CONSTRAINT `recibida_agricola___ibfk_1` FOREIGN KEY (`recibida_id`) REFERENCES `vn`.`invoiceIn` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-11-28;'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -82765,60 +82729,43 @@ SET character_set_client = utf8; SET character_set_client = @saved_cs_client; -- --- Table structure for table `rounding` +-- Table structure for table `rounding__` -- -DROP TABLE IF EXISTS `rounding`; +DROP TABLE IF EXISTS `rounding__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `rounding` ( +CREATE TABLE `rounding__` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `amount` double NOT NULL DEFAULT 0, `price` double DEFAULT 0, `discount` double NOT NULL DEFAULT 0, PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-11-28;'; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `route` +-- Table structure for table `route__` -- -DROP TABLE IF EXISTS `route`; +DROP TABLE IF EXISTS `route__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `route` ( +CREATE TABLE `route__` ( `agency_id` smallint(5) unsigned NOT NULL, `week_day` tinyint(3) unsigned NOT NULL COMMENT 'weekday de access el domingo = 1, sabado = 7. Intentar cambiar al de Mysql Lunes = 0', PRIMARY KEY (`agency_id`,`week_day`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-11-28;'; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `scan` +-- Table structure for table `scanTree__` -- -DROP TABLE IF EXISTS `scan`; +DROP TABLE IF EXISTS `scanTree__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `scan` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `lft` int(11) NOT NULL, - `rgt` int(11) NOT NULL, - `name` varchar(45) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL, - `odbc_date` timestamp NOT NULL DEFAULT current_timestamp(), - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='Se borra automaticamente 8 dias en el pasado desde vn2008.clean'; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `scanTree` --- - -DROP TABLE IF EXISTS `scanTree`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `scanTree` ( +CREATE TABLE `scanTree__` ( `id` int(11) NOT NULL DEFAULT 0, `name` varchar(45) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL, `lft` int(11) NOT NULL, @@ -82832,35 +82779,52 @@ CREATE TABLE `scanTree` ( `scanned` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `lft_rgt_depth` (`lft`,`rgt`,`depth`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-11-28;'; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `scan_line` +-- Table structure for table `scan__` -- -DROP TABLE IF EXISTS `scan_line`; +DROP TABLE IF EXISTS `scan__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `scan_line` ( +CREATE TABLE `scan__` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `lft` int(11) NOT NULL, + `rgt` int(11) NOT NULL, + `name` varchar(45) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL, + `odbc_date` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-12-13;'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `scan_line__` +-- + +DROP TABLE IF EXISTS `scan_line__`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `scan_line__` ( `scan_line_id` int(11) NOT NULL AUTO_INCREMENT, `scan_id` int(11) NOT NULL, `code` varchar(45) NOT NULL, `odbc_date` timestamp NOT NULL DEFAULT current_timestamp(), PRIMARY KEY (`scan_line_id`), KEY `id_scan_id_idx` (`scan_id`), - CONSTRAINT `id_scan_id` FOREIGN KEY (`scan_id`) REFERENCES `scan` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; + CONSTRAINT `id_scan_id` FOREIGN KEY (`scan_id`) REFERENCES `scan__` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-12-13;'; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `sort_merge_results_ernesto` +-- Table structure for table `sort_merge_results_ernesto__` -- -DROP TABLE IF EXISTS `sort_merge_results_ernesto`; +DROP TABLE IF EXISTS `sort_merge_results_ernesto__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `sort_merge_results_ernesto` ( +CREATE TABLE `sort_merge_results_ernesto__` ( `hora` datetime NOT NULL, `uptime` int(11) DEFAULT NULL, `log_output` varchar(5) DEFAULT NULL, @@ -82905,7 +82869,7 @@ CREATE TABLE `sort_merge_results_ernesto` ( PRIMARY KEY (`hora`), UNIQUE KEY `hora_UNIQUE` (`hora`), KEY `uptime` (`uptime`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-11-28;'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -83023,13 +82987,13 @@ SET character_set_client = utf8; SET character_set_client = @saved_cs_client; -- --- Table structure for table `tblIVA` +-- Table structure for table `tblIVA__` -- -DROP TABLE IF EXISTS `tblIVA`; +DROP TABLE IF EXISTS `tblIVA__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `tblIVA` ( +CREATE TABLE `tblIVA__` ( `tipoiva` varchar(50) NOT NULL, `iva` smallint(6) NOT NULL DEFAULT 0, `cuenta` double DEFAULT 0, @@ -83037,34 +83001,34 @@ CREATE TABLE `tblIVA` ( `cuentaivaRE` double DEFAULT 0, `REQ` double DEFAULT 0, PRIMARY KEY (`tipoiva`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-12-13;'; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `template_bionic_component` +-- Table structure for table `template_bionic_component__` -- -DROP TABLE IF EXISTS `template_bionic_component`; +DROP TABLE IF EXISTS `template_bionic_component__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `template_bionic_component` ( +CREATE TABLE `template_bionic_component__` ( `warehouse_id` smallint(5) unsigned NOT NULL, `item_id` int(11) NOT NULL, `component_id` int(10) unsigned NOT NULL, `cost` decimal(10,4) NOT NULL, UNIQUE KEY `item_warehouse_component` (`item_id`,`warehouse_id`,`component_id`) USING HASH, KEY `item_warehouse` (`item_id`,`warehouse_id`) USING BTREE -) ENGINE=MEMORY DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=MEMORY DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-11-28;'; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `template_bionic_lot` +-- Table structure for table `template_bionic_lot__` -- -DROP TABLE IF EXISTS `template_bionic_lot`; +DROP TABLE IF EXISTS `template_bionic_lot__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `template_bionic_lot` ( +CREATE TABLE `template_bionic_lot__` ( `warehouse_id` smallint(5) unsigned NOT NULL, `item_id` int(11) NOT NULL, `available` double DEFAULT NULL, @@ -83072,17 +83036,17 @@ CREATE TABLE `template_bionic_lot` ( `fix` tinyint(3) unsigned DEFAULT 0, UNIQUE KEY `warehouse_id` (`warehouse_id`,`item_id`), KEY `item_id` (`item_id`) -) ENGINE=MEMORY DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +) ENGINE=MEMORY DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='refs #6372 @deprecated 2023-11-28;'; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `template_bionic_price` +-- Table structure for table `template_bionic_price__` -- -DROP TABLE IF EXISTS `template_bionic_price`; +DROP TABLE IF EXISTS `template_bionic_price__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `template_bionic_price` ( +CREATE TABLE `template_bionic_price__` ( `warehouse_id` smallint(5) unsigned NOT NULL, `item_id` int(11) NOT NULL, `rate` tinyint(3) unsigned NOT NULL, @@ -83091,7 +83055,7 @@ CREATE TABLE `template_bionic_price` ( `price` decimal(10,2) DEFAULT NULL, UNIQUE KEY `warehouse_id` (`warehouse_id`,`item_id`,`rate`), KEY `item_id` (`item_id`) USING BTREE -) ENGINE=MEMORY DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +) ENGINE=MEMORY DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='refs #6372 @deprecated 2023-11-28;'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -83107,22 +83071,6 @@ SET character_set_client = utf8; 1 AS `model` */; SET character_set_client = @saved_cs_client; --- --- Table structure for table `ticket_location__` --- - -DROP TABLE IF EXISTS `ticket_location__`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `ticket_location__` ( - `Id_Ticket` int(11) NOT NULL, - `longitude` decimal(11,7) DEFAULT NULL, - `latitude` decimal(11,7) DEFAULT NULL, - PRIMARY KEY (`Id_Ticket`), - CONSTRAINT `Id_Ticket_Location` FOREIGN KEY (`Id_Ticket`) REFERENCES `vn`.`ticket` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - -- -- Temporary table structure for view `ticket_observation` -- @@ -83170,28 +83118,28 @@ SET character_set_client = utf8; SET character_set_client = @saved_cs_client; -- --- Table structure for table `tipsa` +-- Table structure for table `tipsa__` -- -DROP TABLE IF EXISTS `tipsa`; +DROP TABLE IF EXISTS `tipsa__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `tipsa` ( +CREATE TABLE `tipsa__` ( `kilos` tinyint(3) unsigned NOT NULL, `importe` double unsigned NOT NULL, `zona` tinyint(3) unsigned NOT NULL, PRIMARY KEY (`kilos`,`zona`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-12-13;'; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `tmpNEWTARIFAS` +-- Table structure for table `tmpNEWTARIFAS__` -- -DROP TABLE IF EXISTS `tmpNEWTARIFAS`; +DROP TABLE IF EXISTS `tmpNEWTARIFAS__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `tmpNEWTARIFAS` ( +CREATE TABLE `tmpNEWTARIFAS__` ( `Id_Cliente` int(11) NOT NULL, `Cliente` varchar(50) NOT NULL, `Consumo_medio_mensual` double(17,0) DEFAULT NULL, @@ -83199,20 +83147,20 @@ CREATE TABLE `tmpNEWTARIFAS` ( `Nueva_Tarifa` int(11) DEFAULT NULL, `Id_Trabajador` int(11) DEFAULT 20, PRIMARY KEY (`Id_Cliente`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-11-28;'; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `transport` +-- Table structure for table `transport__` -- -DROP TABLE IF EXISTS `transport`; +DROP TABLE IF EXISTS `transport__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `transport` ( +CREATE TABLE `transport__` ( `wday` tinyint(4) NOT NULL, PRIMARY KEY (`wday`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-12-13;'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -83244,13 +83192,13 @@ SET character_set_client = utf8; SET character_set_client = @saved_cs_client; -- --- Table structure for table `travel_pattern` +-- Table structure for table `travel_pattern__` -- -DROP TABLE IF EXISTS `travel_pattern`; +DROP TABLE IF EXISTS `travel_pattern__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `travel_pattern` ( +CREATE TABLE `travel_pattern__` ( `travel_pattern_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT, `week_start` tinyint(3) unsigned NOT NULL, `week_end` tinyint(3) unsigned NOT NULL, @@ -83270,21 +83218,21 @@ CREATE TABLE `travel_pattern` ( KEY `travel_pattern_ibfk_6_idx` (`cargoSupplierFk`), KEY `travel_pattern_FK` (`travelFk`), CONSTRAINT `travel_pattern_FK` FOREIGN KEY (`travelFk`) REFERENCES `vn`.`travel` (`id`) ON UPDATE CASCADE, - CONSTRAINT `travel_pattern_ibfk_3` FOREIGN KEY (`warehouse_out`) REFERENCES `vn`.`warehouse` (`id`) ON UPDATE CASCADE, - CONSTRAINT `travel_pattern_ibfk_4` FOREIGN KEY (`agency_id`) REFERENCES `vn`.`agencyMode` (`id`) ON UPDATE CASCADE, - CONSTRAINT `travel_pattern_ibfk_5` FOREIGN KEY (`warehouse_in`) REFERENCES `vn`.`warehouse` (`id`) ON UPDATE CASCADE, + CONSTRAINT `travel_pattern___ibfk_3` FOREIGN KEY (`warehouse_out`) REFERENCES `vn`.`warehouse` (`id`) ON UPDATE CASCADE, + CONSTRAINT `travel_pattern___ibfk_4` FOREIGN KEY (`agency_id`) REFERENCES `vn`.`agencyMode` (`id`) ON UPDATE CASCADE, + CONSTRAINT `travel_pattern___ibfk_5` FOREIGN KEY (`warehouse_in`) REFERENCES `vn`.`warehouse` (`id`) ON UPDATE CASCADE, CONSTRAINT `travel_pattern_supplierFk` FOREIGN KEY (`cargoSupplierFk`) REFERENCES `vn`.`supplier` (`id`) ON DELETE SET NULL ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-12-13;'; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `travel_reserve` +-- Table structure for table `travel_reserve__` -- -DROP TABLE IF EXISTS `travel_reserve`; +DROP TABLE IF EXISTS `travel_reserve__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `travel_reserve` ( +CREATE TABLE `travel_reserve__` ( `travel_reserve_id` int(11) NOT NULL AUTO_INCREMENT, `travel_id` int(11) unsigned NOT NULL, `Id_Trabajador` int(11) NOT NULL, @@ -83297,37 +83245,23 @@ CREATE TABLE `travel_reserve` ( UNIQUE KEY `travel_reserve_id_UNIQUE` (`travel_reserve_id`), KEY `travel_travel_reserve_idx` (`travel_id`), KEY `traveL_buyer_id_idx` (`Id_Trabajador`), - CONSTRAINT `travel_reserve_ibfk_1` FOREIGN KEY (`travel_id`) REFERENCES `vn`.`travel` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='En esta tabla almacenamos los m3 que cada comprador tiene asignados, por travel.'; + CONSTRAINT `travel_reserve___ibfk_1` FOREIGN KEY (`travel_id`) REFERENCES `vn`.`travel` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-12-13;'; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `trolley` +-- Table structure for table `trolley__` -- -DROP TABLE IF EXISTS `trolley`; +DROP TABLE IF EXISTS `trolley__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `trolley` ( +CREATE TABLE `trolley__` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `fecha` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `ref` varchar(4) DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `turn__` --- - -DROP TABLE IF EXISTS `turn__`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `turn__` ( - `number` int(11) NOT NULL, - `odbc_date` timestamp NOT NULL DEFAULT current_timestamp(), - PRIMARY KEY (`number`,`odbc_date`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-12-13;'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -83344,22 +83278,22 @@ CREATE TABLE `unary` ( UNIQUE KEY `idunary_UNIQUE` (`id`), KEY `unary_parent_idx` (`parent`), CONSTRAINT `unary_parent` FOREIGN KEY (`parent`) REFERENCES `unary` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-12-13;'; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `unaryScanFilter` +-- Table structure for table `unaryScanFilter__` -- -DROP TABLE IF EXISTS `unaryScanFilter`; +DROP TABLE IF EXISTS `unaryScanFilter__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `unaryScanFilter` ( +CREATE TABLE `unaryScanFilter__` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `filter` text NOT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-11-28;'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -83377,7 +83311,7 @@ CREATE TABLE `unary_scan` ( PRIMARY KEY (`unary_id`), KEY `scan_unary_idx` (`unary_id`), CONSTRAINT `unary_scan` FOREIGN KEY (`unary_id`) REFERENCES `unary` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-12-13;'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -83396,7 +83330,7 @@ CREATE TABLE `unary_scan_line` ( UNIQUE KEY `id_UNIQUE` (`id`), KEY `unary_line_idx` (`unary_id`), CONSTRAINT `unary_line` FOREIGN KEY (`unary_id`) REFERENCES `unary_scan` (`unary_id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-12-13;'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -83414,7 +83348,7 @@ CREATE TABLE `unary_scan_line_buy` ( KEY `Id_Article_buy_idx` (`Id_Article`), CONSTRAINT `Id_Article_buy` FOREIGN KEY (`Id_Article`) REFERENCES `vn`.`item` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `scan_line_id_patriarcal` FOREIGN KEY (`scan_line_id`) REFERENCES `unary_scan_line` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-12-13;'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -83431,20 +83365,20 @@ CREATE TABLE `unary_scan_line_expedition` ( UNIQUE KEY `scan_line_id_UNIQUE` (`scan_line_id`), KEY `expedition_id_scan_idx` (`expedition_id`), CONSTRAINT `expedition_id_scan` FOREIGN KEY (`expedition_id`) REFERENCES `vn`.`expedition` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-12-13;'; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `unary_source` +-- Table structure for table `unary_source__` -- -DROP TABLE IF EXISTS `unary_source`; +DROP TABLE IF EXISTS `unary_source__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `unary_source` ( +CREATE TABLE `unary_source__` ( `name` varchar(100) NOT NULL, PRIMARY KEY (`name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-11-28;'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -83580,78 +83514,78 @@ SET character_set_client = utf8; SET character_set_client = @saved_cs_client; -- --- Table structure for table `viaxpress` +-- Table structure for table `viaxpress__` -- -DROP TABLE IF EXISTS `viaxpress`; +DROP TABLE IF EXISTS `viaxpress__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `viaxpress` ( +CREATE TABLE `viaxpress__` ( `codigo_postal` varchar(5) NOT NULL, `zona` tinyint(4) NOT NULL DEFAULT 2, `m_t` tinyint(4) NOT NULL DEFAULT 0, `POBLACION` varchar(25) NOT NULL, `PROVINCIA` varchar(20) NOT NULL, PRIMARY KEY (`codigo_postal`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-11-28;'; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `warehouse_filtro` +-- Table structure for table `warehouse_filtro__` -- -DROP TABLE IF EXISTS `warehouse_filtro`; +DROP TABLE IF EXISTS `warehouse_filtro__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `warehouse_filtro` ( +CREATE TABLE `warehouse_filtro__` ( `warehouse_id` smallint(6) unsigned NOT NULL, `Id_Trabajador` int(11) NOT NULL, `ok` tinyint(3) unsigned DEFAULT 1, PRIMARY KEY (`Id_Trabajador`,`warehouse_id`), KEY `wh_worker_idx` (`Id_Trabajador`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='Tabla que permite filtrar los almacenes que muestra la comparativa, recordando la selección personal del usuario'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-11-28;'; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `warehouse_group` +-- Table structure for table `warehouse_group__` -- -DROP TABLE IF EXISTS `warehouse_group`; +DROP TABLE IF EXISTS `warehouse_group__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `warehouse_group` ( +CREATE TABLE `warehouse_group__` ( `warehouse_alias_id` smallint(5) unsigned NOT NULL DEFAULT 22, `warehouse_id` smallint(5) unsigned NOT NULL, PRIMARY KEY (`warehouse_alias_id`,`warehouse_id`), KEY `warehosue_group_ware_idx` (`warehouse_id`), CONSTRAINT `warehosue_group_ware` FOREIGN KEY (`warehouse_id`) REFERENCES `vn`.`warehouse` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `warehouse_group_alias` FOREIGN KEY (`warehouse_alias_id`) REFERENCES `vn`.`warehouseAlias__` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='Agrupa warehouses '; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-11-28;'; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `warehouse_joined` +-- Table structure for table `warehouse_joined__` -- -DROP TABLE IF EXISTS `warehouse_joined`; +DROP TABLE IF EXISTS `warehouse_joined__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `warehouse_joined` ( +CREATE TABLE `warehouse_joined__` ( `warehouse_id` smallint(5) unsigned NOT NULL, `warehouse_alias_id` smallint(5) unsigned NOT NULL, PRIMARY KEY (`warehouse_id`,`warehouse_alias_id`), - CONSTRAINT `warehouse_joined_ibfk_3` FOREIGN KEY (`warehouse_id`) REFERENCES `vn`.`warehouse` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; + CONSTRAINT `warehouse_joined___ibfk_3` FOREIGN KEY (`warehouse_id`) REFERENCES `vn`.`warehouse` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-11-28;'; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `warehouse_lc` +-- Table structure for table `warehouse_lc__` -- -DROP TABLE IF EXISTS `warehouse_lc`; +DROP TABLE IF EXISTS `warehouse_lc__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `warehouse_lc` ( +CREATE TABLE `warehouse_lc__` ( `whin` smallint(6) unsigned NOT NULL, `whout` smallint(6) unsigned NOT NULL, `m3` double NOT NULL DEFAULT 15, @@ -83660,34 +83594,30 @@ CREATE TABLE `warehouse_lc` ( KEY `whout_wh_idx` (`whout`), CONSTRAINT `whin_wh` FOREIGN KEY (`whin`) REFERENCES `vn`.`warehouse` (`id`) ON UPDATE CASCADE, CONSTRAINT `whout_wh` FOREIGN KEY (`whout`) REFERENCES `vn`.`warehouse` (`id`) ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='Warehouses cost for linking'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-11-28;'; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `warehouse_pickup` +-- Temporary table structure for view `warehouse_pickup` -- DROP TABLE IF EXISTS `warehouse_pickup`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `warehouse_pickup` ( - `warehouse_id` smallint(5) unsigned NOT NULL, - `agency_id` int(11) DEFAULT NULL, - PRIMARY KEY (`warehouse_id`), - UNIQUE KEY `agency_id` (`agency_id`,`warehouse_id`), - CONSTRAINT `warehouse_pickup_ibfk_1` FOREIGN KEY (`warehouse_id`) REFERENCES `vn`.`warehouse` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT `warehouse_pickup_ibfk_2` FOREIGN KEY (`agency_id`) REFERENCES `vn`.`agencyMode` (`id`) ON DELETE SET NULL ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; +/*!50001 DROP VIEW IF EXISTS `warehouse_pickup`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +/*!50001 CREATE VIEW `warehouse_pickup` AS SELECT + 1 AS `warehouse_id`, + 1 AS `agency_id` */; +SET character_set_client = @saved_cs_client; -- --- Table structure for table `wh_selection` +-- Table structure for table `wh_selection__` -- -DROP TABLE IF EXISTS `wh_selection`; +DROP TABLE IF EXISTS `wh_selection__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `wh_selection` ( +CREATE TABLE `wh_selection__` ( `Id_Trabajador` int(10) unsigned NOT NULL, `warehouse_id` smallint(6) unsigned NOT NULL, PRIMARY KEY (`Id_Trabajador`,`warehouse_id`), @@ -83695,54 +83625,54 @@ CREATE TABLE `wh_selection` ( KEY `Warehouse` (`warehouse_id`), CONSTRAINT `Trabajadores` FOREIGN KEY (`Id_Trabajador`) REFERENCES `vn`.`worker` (`id`) ON UPDATE CASCADE, CONSTRAINT `Warehouse` FOREIGN KEY (`warehouse_id`) REFERENCES `vn`.`warehouse` (`id`) ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='Permite que los usuarios seleccionen los almacenes que van a'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-11-28;'; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `widget` +-- Table structure for table `widget__` -- -DROP TABLE IF EXISTS `widget`; +DROP TABLE IF EXISTS `widget__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `widget` ( +CREATE TABLE `widget__` ( `widget_id` int(11) NOT NULL, `chr` int(11) NOT NULL, PRIMARY KEY (`widget_id`), UNIQUE KEY `chr_UNIQUE` (`chr`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-12-13;'; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `wks` +-- Table structure for table `wks__` -- -DROP TABLE IF EXISTS `wks`; +DROP TABLE IF EXISTS `wks__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `wks` ( +CREATE TABLE `wks__` ( `wk` int(10) unsigned NOT NULL, `yr` int(10) unsigned NOT NULL, `vwk` int(10) unsigned NOT NULL, `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `comments` text DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-12-13;'; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `zones` +-- Table structure for table `zones__` -- -DROP TABLE IF EXISTS `zones`; +DROP TABLE IF EXISTS `zones__`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `zones` ( +CREATE TABLE `zones__` ( `zone_id` tinyint(4) NOT NULL, `name` varchar(45) NOT NULL, `printingOrder` int(11) NOT NULL DEFAULT 0, PRIMARY KEY (`zone_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='Zonas de reparto'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='refs #6372 @deprecated 2023-12-13;'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -84659,11 +84589,6 @@ proc: BEGIN DELETE FROM Movimientos_mark WHERE odbc_date < vDate; DELETE FROM Splits WHERE Fecha < vDate18; - DELETE tobs - FROM ticket_observation tobs - JOIN Tickets t ON tobs.Id_Ticket = t.Id_Ticket - WHERE t.Fecha < vDate; - DELETE tobs FROM movement_label tobs JOIN Movimientos m ON tobs.Id_Movimiento = m.Id_Movimiento @@ -84679,7 +84604,6 @@ proc: BEGIN DELETE FROM cl_main WHERE Fecha < vDate18; DELETE FROM hedera.`order` WHERE date_send < vDate18; DELETE FROM vn.message WHERE sendDate < vDate; - DELETE FROM travel_reserve WHERE odbc_date < vDate; DELETE FROM cache.departure_limit WHERE Fecha < util.VN_CURDATE() - INTERVAL 1 MONTH; @@ -88154,24 +88078,6 @@ USE `vn`; /*!50001 SET character_set_results = @saved_cs_results */; /*!50001 SET collation_connection = @saved_col_connection */; --- --- Final view structure for view `exchangeInsurance` --- - -/*!50001 DROP VIEW IF EXISTS `exchangeInsurance`*/; -/*!50001 SET @saved_cs_client = @@character_set_client */; -/*!50001 SET @saved_cs_results = @@character_set_results */; -/*!50001 SET @saved_col_connection = @@collation_connection */; -/*!50001 SET character_set_client = utf8mb4 */; -/*!50001 SET character_set_results = utf8mb4 */; -/*!50001 SET collation_connection = utf8mb4_unicode_ci */; -/*!50001 CREATE ALGORITHM=UNDEFINED */ -/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ -/*!50001 VIEW `exchangeInsurance` AS select `vn2008`.`pago_sdc`.`pago_sdc_id` AS `id`,`vn2008`.`pago_sdc`.`importe` AS `amount`,`vn2008`.`pago_sdc`.`fecha` AS `dated`,`vn2008`.`pago_sdc`.`vencimiento` AS `finished`,`vn2008`.`pago_sdc`.`entity_id` AS `entityFk`,`vn2008`.`pago_sdc`.`ref` AS `ref`,`vn2008`.`pago_sdc`.`rate` AS `rate`,`vn2008`.`pago_sdc`.`empresa_id` AS `companyFk`,`vn2008`.`pago_sdc`.`financialProductTypefk` AS `financialProductTypefk`,`vn2008`.`pago_sdc`.`upperBarrier` AS `upperBarrier`,`vn2008`.`pago_sdc`.`lowerBarrier` AS `lowerBarrier`,`vn2008`.`pago_sdc`.`strike` AS `strike` from `vn2008`.`pago_sdc` */; -/*!50001 SET character_set_client = @saved_cs_client */; -/*!50001 SET character_set_results = @saved_cs_results */; -/*!50001 SET collation_connection = @saved_col_connection */; - -- -- Final view structure for view `exchangeInsuranceEntry` -- @@ -88203,7 +88109,7 @@ USE `vn`; /*!50001 SET collation_connection = utf8mb4_unicode_ci */; /*!50001 CREATE ALGORITHM=UNDEFINED */ /*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ -/*!50001 VIEW `exchangeInsuranceIn` AS select `exchangeInsuranceInPrevious`.`dated` AS `dated`,sum(`exchangeInsuranceInPrevious`.`amount`) AS `amount`,cast(sum(`exchangeInsuranceInPrevious`.`amount` * `exchangeInsuranceInPrevious`.`rate`) / sum(`exchangeInsuranceInPrevious`.`amount`) as decimal(10,4)) AS `rate` from `vn`.`exchangeInsuranceInPrevious` group by `exchangeInsuranceInPrevious`.`dated` */; +/*!50001 VIEW `exchangeInsuranceIn` AS select `exchangeInsuranceInPrevious`.`dated` AS `dated`,sum(`exchangeInsuranceInPrevious`.`amount`) AS `amount`,cast(sum(`exchangeInsuranceInPrevious`.`amount` * `exchangeInsuranceInPrevious`.`rate`) / sum(`exchangeInsuranceInPrevious`.`amount`) as decimal(10,4)) AS `rate` from `exchangeInsuranceInPrevious` group by `exchangeInsuranceInPrevious`.`dated` */; /*!50001 SET character_set_client = @saved_cs_client */; /*!50001 SET character_set_results = @saved_cs_results */; /*!50001 SET collation_connection = @saved_col_connection */; @@ -88221,7 +88127,7 @@ USE `vn`; /*!50001 SET collation_connection = utf8mb4_unicode_ci */; /*!50001 CREATE ALGORITHM=UNDEFINED */ /*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ -/*!50001 VIEW `exchangeInsuranceInPrevious` AS select `ei`.`finished` AS `dated`,`ei`.`amount` AS `amount`,`ei`.`rate` AS `rate` from `vn`.`exchangeInsurance` `ei` where `ei`.`amount` <> 0 and `ei`.`financialProductTypefk` = 'SC' */; +/*!50001 VIEW `exchangeInsuranceInPrevious` AS select `ei`.`dueDated` AS `dated`,`ei`.`amount` AS `amount`,`ei`.`rate` AS `rate` from `exchangeInsurance` `ei` where `ei`.`amount` <> 0 and `ei`.`financialProductTypefk` = 'SC' */; /*!50001 SET character_set_client = @saved_cs_client */; /*!50001 SET character_set_results = @saved_cs_results */; /*!50001 SET collation_connection = @saved_col_connection */; @@ -88257,7 +88163,7 @@ USE `vn`; /*!50001 SET collation_connection = utf8mb4_unicode_ci */; /*!50001 CREATE ALGORITHM=UNDEFINED */ /*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ -/*!50001 VIEW `exchangeReportSource` AS select `e`.`dated` AS `dated`,cast(sum(`e`.`amountIn`) as decimal(10,2)) AS `amountIn`,cast(sum(`e`.`rateIn`) as decimal(10,4)) AS `rateIn`,cast(sum(`e`.`amountOut`) as decimal(10,2)) AS `amountOut`,cast(sum(`e`.`rateOut`) as decimal(10,4)) AS `rateOut`,cast(sum(`e`.`amountEntry`) as decimal(10,2)) AS `amountEntry`,cast(sum(`e`.`rateEntry`) as decimal(10,4)) AS `rateEntry`,cast(ifnull(`rr`.`value`,`rrc`.`simulatedValue`) as decimal(10,4)) AS `rateECB` from ((`vn`.`exchangeReportSourcePrevious` `e` left join `vn`.`referenceRate` `rr` on(`rr`.`dated` = `e`.`dated`)) join `vn`.`referenceRateConfig` `rrc` on(1)) group by `e`.`dated` order by `e`.`dated` */; +/*!50001 VIEW `exchangeReportSource` AS select `e`.`dated` AS `dated`,cast(sum(`e`.`amountIn`) as decimal(10,2)) AS `amountIn`,cast(sum(`e`.`rateIn`) as decimal(10,4)) AS `rateIn`,cast(sum(`e`.`amountOut`) as decimal(10,2)) AS `amountOut`,cast(sum(`e`.`rateOut`) as decimal(10,4)) AS `rateOut`,cast(sum(`e`.`amountEntry`) as decimal(10,2)) AS `amountEntry`,cast(sum(`e`.`rateEntry`) as decimal(10,4)) AS `rateEntry`,cast(ifnull(`rr`.`value`,`rrc`.`simulatedValue`) as decimal(10,4)) AS `rateECB` from ((`exchangeReportSourcePrevious` `e` left join `referenceRate` `rr` on(`rr`.`dated` = `e`.`dated`)) join `referenceRateConfig` `rrc` on(1)) group by `e`.`dated` order by `e`.`dated` */; /*!50001 SET character_set_client = @saved_cs_client */; /*!50001 SET character_set_results = @saved_cs_results */; /*!50001 SET collation_connection = @saved_col_connection */; @@ -88275,7 +88181,7 @@ USE `vn`; /*!50001 SET collation_connection = utf8mb4_unicode_ci */; /*!50001 CREATE ALGORITHM=UNDEFINED */ /*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ -/*!50001 VIEW `exchangeReportSourcePrevious` AS select `exchangeInsuranceIn`.`dated` AS `dated`,`exchangeInsuranceIn`.`amount` AS `amountIn`,`exchangeInsuranceIn`.`rate` AS `rateIn`,0.00 AS `amountOut`,0.00 AS `rateOut`,0.00 AS `amountEntry`,0.00 AS `rateEntry` from `vn`.`exchangeInsuranceIn` union all select `exchangeInsuranceOut`.`received` AS `received`,0.00 AS `amountIn`,0.00 AS `ratedIn`,`exchangeInsuranceOut`.`divisa` AS `amountOut`,`exchangeInsuranceOut`.`rate` AS `ratedOut`,0.00 AS `amountEntry`,0.00 AS `rateEntry` from `vn`.`exchangeInsuranceOut` union all select `exchangeInsuranceEntry`.`dated` AS `dated`,0.00 AS `amountIn`,0.00 AS `ratedIn`,0.00 AS `amountOut`,0.00 AS `ratedOut`,`exchangeInsuranceEntry`.`Dolares` AS `amountEntry`,`exchangeInsuranceEntry`.`rate` AS `rateEntry` from `vn`.`exchangeInsuranceEntry` */; +/*!50001 VIEW `exchangeReportSourcePrevious` AS select `exchangeInsuranceIn`.`dated` AS `dated`,`exchangeInsuranceIn`.`amount` AS `amountIn`,`exchangeInsuranceIn`.`rate` AS `rateIn`,0.00 AS `amountOut`,0.00 AS `rateOut`,0.00 AS `amountEntry`,0.00 AS `rateEntry` from `exchangeInsuranceIn` union all select `exchangeInsuranceOut`.`received` AS `received`,0.00 AS `amountIn`,0.00 AS `ratedIn`,`exchangeInsuranceOut`.`divisa` AS `amountOut`,`exchangeInsuranceOut`.`rate` AS `ratedOut`,0.00 AS `amountEntry`,0.00 AS `rateEntry` from `exchangeInsuranceOut` union all select `exchangeInsuranceEntry`.`dated` AS `dated`,0.00 AS `amountIn`,0.00 AS `ratedIn`,0.00 AS `amountOut`,0.00 AS `ratedOut`,`exchangeInsuranceEntry`.`Dolares` AS `amountEntry`,`exchangeInsuranceEntry`.`rate` AS `rateEntry` from `exchangeInsuranceEntry` */; /*!50001 SET character_set_client = @saved_cs_client */; /*!50001 SET character_set_results = @saved_cs_results */; /*!50001 SET collation_connection = @saved_col_connection */; @@ -89180,24 +89086,6 @@ USE `vn`; /*!50001 SET character_set_results = @saved_cs_results */; /*!50001 SET collation_connection = @saved_col_connection */; --- --- Final view structure for view `preparationException` --- - -/*!50001 DROP VIEW IF EXISTS `preparationException`*/; -/*!50001 SET @saved_cs_client = @@character_set_client */; -/*!50001 SET @saved_cs_results = @@character_set_results */; -/*!50001 SET @saved_col_connection = @@collation_connection */; -/*!50001 SET character_set_client = utf8mb4 */; -/*!50001 SET character_set_results = utf8mb4 */; -/*!50001 SET collation_connection = utf8mb4_unicode_ci */; -/*!50001 CREATE ALGORITHM=UNDEFINED */ -/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ -/*!50001 VIEW `preparationException` AS select `p`.`exception_day` AS `exceptionDay`,`p`.`warehouse_id` AS `warehouseFk`,`p`.`percentage` AS `percentage` from `vn2008`.`preparation_exception` `p` */; -/*!50001 SET character_set_client = @saved_cs_client */; -/*!50001 SET character_set_results = @saved_cs_results */; -/*!50001 SET collation_connection = @saved_col_connection */; - -- -- Final view structure for view `productionVolume` -- @@ -89288,24 +89176,6 @@ USE `vn`; /*!50001 SET character_set_results = @saved_cs_results */; /*!50001 SET collation_connection = @saved_col_connection */; --- --- Final view structure for view `saleLabel` --- - -/*!50001 DROP VIEW IF EXISTS `saleLabel`*/; -/*!50001 SET @saved_cs_client = @@character_set_client */; -/*!50001 SET @saved_cs_results = @@character_set_results */; -/*!50001 SET @saved_col_connection = @@collation_connection */; -/*!50001 SET character_set_client = utf8mb4 */; -/*!50001 SET character_set_results = utf8mb4 */; -/*!50001 SET collation_connection = utf8mb4_unicode_ci */; -/*!50001 CREATE ALGORITHM=UNDEFINED */ -/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ -/*!50001 VIEW `saleLabel` AS select `ml`.`Id_movimiento` AS `saleFk`,`ml`.`label` AS `label`,`ml`.`stem` AS `stem`,`ml`.`created` AS `created` from `vn2008`.`movement_label` `ml` */; -/*!50001 SET character_set_client = @saved_cs_client */; -/*!50001 SET character_set_results = @saved_cs_results */; -/*!50001 SET collation_connection = @saved_col_connection */; - -- -- Final view structure for view `saleMistakeList` -- @@ -89373,7 +89243,7 @@ USE `vn`; /*!50001 SET collation_connection = utf8mb4_unicode_ci */; /*!50001 CREATE ALGORITHM=UNDEFINED */ /*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ -/*!50001 VIEW `saleValue` AS select `wh`.`name` AS `warehouse`,`c`.`name` AS `client`,`c`.`typeFk` AS `clientTypeFk`,`u`.`name` AS `buyer`,`it`.`id` AS `itemTypeFk`,`it`.`name` AS `family`,`s`.`itemFk` AS `itemFk`,`s`.`concept` AS `concept`,`s`.`quantity` AS `quantity`,`b`.`buyingValue` + `b`.`freightValue` + `b`.`comissionValue` + `b`.`packageValue` AS `cost`,(`b`.`buyingValue` + `b`.`freightValue` + `b`.`comissionValue` + `b`.`packageValue`) * `s`.`quantity` AS `value`,`tm`.`year` AS `year`,`tm`.`week` AS `week` from (((((((((`vn`.`sale` `s` join `vn`.`item` `i` on(`i`.`id` = `s`.`itemFk`)) join `vn`.`itemType` `it` on(`it`.`id` = `i`.`typeFk`)) join `account`.`user` `u` on(`u`.`id` = `it`.`workerFk`)) join `vn`.`ticket` `t` on(`t`.`id` = `s`.`ticketFk`)) join `vn`.`client` `c` on(`c`.`id` = `t`.`clientFk`)) join `vn`.`warehouse` `wh` on(`wh`.`id` = `t`.`warehouseFk`)) join `vn`.`time` `tm` on(`tm`.`dated` = cast(`t`.`shipped` as date))) join `cache`.`last_buy` `lb` on(`lb`.`item_id` = `i`.`id` and `lb`.`warehouse_id` = `wh`.`id`)) join `vn`.`buy` `b` on(`b`.`id` = `lb`.`buy_id`)) where `wh`.`isManaged` <> 0 */; +/*!50001 VIEW `saleValue` AS select `wh`.`name` AS `warehouse`,`c`.`name` AS `client`,`c`.`typeFk` AS `typeFk`,`u`.`name` AS `buyer`,`it`.`id` AS `itemTypeFk`,`it`.`name` AS `family`,`s`.`itemFk` AS `itemFk`,`s`.`concept` AS `concept`,`s`.`quantity` AS `quantity`,`b`.`buyingValue` + `b`.`freightValue` + `b`.`comissionValue` + `b`.`packageValue` AS `cost`,(`b`.`buyingValue` + `b`.`freightValue` + `b`.`comissionValue` + `b`.`packageValue`) * `s`.`quantity` AS `value`,`tm`.`year` AS `year`,`tm`.`week` AS `week` from (((((((((`vn`.`sale` `s` join `vn`.`item` `i` on(`i`.`id` = `s`.`itemFk`)) join `vn`.`itemType` `it` on(`it`.`id` = `i`.`typeFk`)) join `account`.`user` `u` on(`u`.`id` = `it`.`workerFk`)) join `vn`.`ticket` `t` on(`t`.`id` = `s`.`ticketFk`)) join `vn`.`client` `c` on(`c`.`id` = `t`.`clientFk`)) join `vn`.`warehouse` `wh` on(`wh`.`id` = `t`.`warehouseFk`)) join `vn`.`time` `tm` on(`tm`.`dated` = cast(`t`.`shipped` as date))) join `cache`.`last_buy` `lb` on(`lb`.`item_id` = `i`.`id` and `lb`.`warehouse_id` = `wh`.`id`)) join `vn`.`buy` `b` on(`b`.`id` = `lb`.`buy_id`)) where `wh`.`isManaged` <> 0 */; /*!50001 SET character_set_client = @saved_cs_client */; /*!50001 SET character_set_results = @saved_cs_results */; /*!50001 SET collation_connection = @saved_col_connection */; @@ -89828,42 +89698,6 @@ USE `vn`; /*!50001 SET character_set_results = @saved_cs_results */; /*!50001 SET collation_connection = @saved_col_connection */; --- --- Final view structure for view `unaryScanLineBuy` --- - -/*!50001 DROP VIEW IF EXISTS `unaryScanLineBuy`*/; -/*!50001 SET @saved_cs_client = @@character_set_client */; -/*!50001 SET @saved_cs_results = @@character_set_results */; -/*!50001 SET @saved_col_connection = @@collation_connection */; -/*!50001 SET character_set_client = utf8mb4 */; -/*!50001 SET character_set_results = utf8mb4 */; -/*!50001 SET collation_connection = utf8mb4_unicode_ci */; -/*!50001 CREATE ALGORITHM=UNDEFINED */ -/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ -/*!50001 VIEW `unaryScanLineBuy` AS select `u`.`scan_line_id` AS `unaryScanLineFk`,`u`.`Id_Article` AS `itemFk` from `vn2008`.`unary_scan_line_buy` `u` */; -/*!50001 SET character_set_client = @saved_cs_client */; -/*!50001 SET character_set_results = @saved_cs_results */; -/*!50001 SET collation_connection = @saved_col_connection */; - --- --- Final view structure for view `unaryScanLineExpedition` --- - -/*!50001 DROP VIEW IF EXISTS `unaryScanLineExpedition`*/; -/*!50001 SET @saved_cs_client = @@character_set_client */; -/*!50001 SET @saved_cs_results = @@character_set_results */; -/*!50001 SET @saved_col_connection = @@collation_connection */; -/*!50001 SET character_set_client = utf8mb4 */; -/*!50001 SET character_set_results = utf8mb4 */; -/*!50001 SET collation_connection = utf8mb4_unicode_ci */; -/*!50001 CREATE ALGORITHM=UNDEFINED */ -/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ -/*!50001 VIEW `unaryScanLineExpedition` AS select `u`.`scan_line_id` AS `unaryScanLineFk`,`u`.`expedition_id` AS `expeditionFk` from `vn2008`.`unary_scan_line_expedition` `u` */; -/*!50001 SET character_set_client = @saved_cs_client */; -/*!50001 SET character_set_results = @saved_cs_results */; -/*!50001 SET collation_connection = @saved_col_connection */; - -- -- Final view structure for view `workerBusinessDated` -- @@ -90171,7 +90005,7 @@ USE `vn2008`; /*!50001 SET collation_connection = utf8mb4_unicode_ci */; /*!50001 CREATE ALGORITHM=UNDEFINED */ /*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ -/*!50001 VIEW `Clientes` AS select `c`.`id` AS `id_cliente`,`c`.`name` AS `cliente`,`c`.`fi` AS `if`,`c`.`socialName` AS `razonSocial`,`c`.`contact` AS `contacto`,`c`.`street` AS `domicilio`,`c`.`city` AS `poblacion`,`c`.`postcode` AS `codPostal`,`c`.`phone` AS `telefono`,`c`.`mobile` AS `movil`,`c`.`isRelevant` AS `real`,`c`.`email` AS `e-mail`,`c`.`iban` AS `iban`,`c`.`dueDay` AS `vencimiento`,`c`.`accountingAccount` AS `Cuenta`,`c`.`isEqualizated` AS `RE`,`c`.`provinceFk` AS `province_id`,`c`.`hasToInvoice` AS `invoice`,`c`.`credit` AS `credito`,`c`.`countryFk` AS `Id_Pais`,`c`.`isActive` AS `activo`,`c`.`gestdocFk` AS `gestdoc_id`,`c`.`quality` AS `calidad`,`c`.`payMethodFk` AS `pay_met_id`,`c`.`created` AS `created`,`c`.`isToBeMailed` AS `mail`,`c`.`contactChannelFk` AS `chanel_id`,`c`.`hasSepaVnl` AS `sepaVnl`,`c`.`hasCoreVnl` AS `coreVnl`,`c`.`hasCoreVnh` AS `coreVnh`,`c`.`hasLcr` AS `hasLcr`,`c`.`defaultAddressFk` AS `default_address`,`c`.`riskCalculated` AS `risk_calculated`,`c`.`clientTypeFk` AS `clientes_tipo_id`,`c`.`hasToInvoiceByAddress` AS `invoiceByAddress`,`c`.`isTaxDataChecked` AS `contabilizado`,`c`.`isFreezed` AS `congelado`,`c`.`creditInsurance` AS `creditInsurance`,`c`.`isCreatedAsServed` AS `isCreatedAsServed`,`c`.`hasInvoiceSimplified` AS `hasInvoiceSimplified`,`c`.`salesPersonFk` AS `Id_Trabajador`,`c`.`isVies` AS `vies`,`c`.`eypbc` AS `EYPBC`,`c`.`bankEntityFk` AS `bankEntityFk`,`c`.`typeFk` AS `typeFk` from `vn`.`client` `c` */; +/*!50001 VIEW `Clientes` AS select `c`.`id` AS `id_cliente`,`c`.`name` AS `cliente`,`c`.`fi` AS `if`,`c`.`socialName` AS `razonSocial`,`c`.`contact` AS `contacto`,`c`.`street` AS `domicilio`,`c`.`city` AS `poblacion`,`c`.`postcode` AS `codPostal`,`c`.`phone` AS `telefono`,`c`.`mobile` AS `movil`,`c`.`isRelevant` AS `real`,`c`.`email` AS `e-mail`,`c`.`iban` AS `iban`,`c`.`dueDay` AS `vencimiento`,`c`.`accountingAccount` AS `Cuenta`,`c`.`isEqualizated` AS `RE`,`c`.`provinceFk` AS `province_id`,`c`.`hasToInvoice` AS `invoice`,`c`.`credit` AS `credito`,`c`.`countryFk` AS `Id_Pais`,`c`.`isActive` AS `activo`,`c`.`gestdocFk` AS `gestdoc_id`,`c`.`quality` AS `calidad`,`c`.`payMethodFk` AS `pay_met_id`,`c`.`created` AS `created`,`c`.`isToBeMailed` AS `mail`,`c`.`contactChannelFk` AS `chanel_id`,`c`.`hasSepaVnl` AS `sepaVnl`,`c`.`hasCoreVnl` AS `coreVnl`,`c`.`hasCoreVnh` AS `coreVnh`,`c`.`hasLcr` AS `hasLcr`,`c`.`defaultAddressFk` AS `default_address`,`c`.`riskCalculated` AS `risk_calculated`,`c`.`hasToInvoiceByAddress` AS `invoiceByAddress`,`c`.`isTaxDataChecked` AS `contabilizado`,`c`.`isFreezed` AS `congelado`,`c`.`creditInsurance` AS `creditInsurance`,`c`.`isCreatedAsServed` AS `isCreatedAsServed`,`c`.`hasInvoiceSimplified` AS `hasInvoiceSimplified`,`c`.`salesPersonFk` AS `Id_Trabajador`,`c`.`isVies` AS `vies`,`c`.`eypbc` AS `EYPBC`,`c`.`bankEntityFk` AS `bankEntityFk`,`c`.`typeFk` AS `typeFk` from `vn`.`client` `c` */; /*!50001 SET character_set_client = @saved_cs_client */; /*!50001 SET character_set_results = @saved_cs_results */; /*!50001 SET collation_connection = @saved_col_connection */; @@ -91634,6 +91468,96 @@ USE `vn2008`; /*!50001 SET character_set_results = @saved_cs_results */; /*!50001 SET collation_connection = @saved_col_connection */; +-- +-- Final view structure for view `financialProductType` +-- + +/*!50001 DROP VIEW IF EXISTS `financialProductType`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8mb4 */; +/*!50001 SET character_set_results = utf8mb4 */; +/*!50001 SET collation_connection = utf8mb4_unicode_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ +/*!50001 VIEW `financialProductType` AS select `vn`.`financialProductType`.`id` AS `id`,`vn`.`financialProductType`.`description` AS `description`,`vn`.`financialProductType`.`isAcumulattor` AS `isAcumulattor` from `vn`.`financialProductType` */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; + +-- +-- Final view structure for view `flight` +-- + +/*!50001 DROP VIEW IF EXISTS `flight`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8mb4 */; +/*!50001 SET character_set_results = utf8mb4 */; +/*!50001 SET collation_connection = utf8mb4_unicode_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ +/*!50001 VIEW `flight` AS select `f`.`id` AS `flight_id`,`f`.`duration` AS `duration`,`f`.`flightPath` AS `route`,`f`.`days` AS `days`,`f`.`airlineFk` AS `airline_id`,`f`.`airportArrivalFk` AS `airport_out`,`f`.`airportDepartureFk` AS `airport_in` from `vn`.`flight` `f` */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; + +-- +-- Final view structure for view `gastos_resumen` +-- + +/*!50001 DROP VIEW IF EXISTS `gastos_resumen`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8mb4 */; +/*!50001 SET character_set_results = utf8mb4 */; +/*!50001 SET collation_connection = utf8mb4_unicode_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ +/*!50001 VIEW `gastos_resumen` AS select `es`.`expenseFk` AS `Id_Gasto`,`es`.`year` AS `year`,`es`.`month` AS `month`,`es`.`amount` AS `importe`,`es`.`companyFk` AS `empresa_id` from `vn`.`expenseManual` `es` */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; + +-- +-- Final view structure for view `integra2` +-- + +/*!50001 DROP VIEW IF EXISTS `integra2`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8mb4 */; +/*!50001 SET character_set_results = utf8mb4 */; +/*!50001 SET collation_connection = utf8mb4_unicode_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ +/*!50001 VIEW `integra2` AS select `i2`.`postCode` AS `postal_code`,`i2`.`frequency` AS `frequency`,`i2`.`warehouseFk` AS `warehouse_id` from `vn`.`integra2` `i2` */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; + +-- +-- Final view structure for view `integra2_province` +-- + +/*!50001 DROP VIEW IF EXISTS `integra2_province`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8mb4 */; +/*!50001 SET character_set_results = utf8mb4 */; +/*!50001 SET collation_connection = utf8mb4_unicode_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ +/*!50001 VIEW `integra2_province` AS select `ip`.`provinceFk` AS `province_id`,`ip`.`franchise` AS `franquicia` from `vn`.`integra2Province` `ip` */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; + -- -- Final view structure for view `mail` -- @@ -91706,6 +91630,24 @@ USE `vn2008`; /*!50001 SET character_set_results = @saved_cs_results */; /*!50001 SET collation_connection = @saved_col_connection */; +-- +-- Final view structure for view `pago_sdc` +-- + +/*!50001 DROP VIEW IF EXISTS `pago_sdc`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8mb4 */; +/*!50001 SET character_set_results = utf8mb4 */; +/*!50001 SET collation_connection = utf8mb4_unicode_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ +/*!50001 VIEW `pago_sdc` AS select `ei`.`id` AS `pago_sdc_id`,`ei`.`amount` AS `importe`,`ei`.`dated` AS `fecha`,`ei`.`dueDated` AS `vencimiento`,`ei`.`entityFk` AS `entity_id`,`ei`.`ref` AS `ref`,`ei`.`rate` AS `rate`,`ei`.`companyFk` AS `empresa_id`,`ei`.`financialProductTypefk` AS `financialProductTypefk`,`ei`.`upperBarrier` AS `upperBarrier`,`ei`.`lowerBarrier` AS `lowerBarrier`,`ei`.`strike` AS `strike` from `vn`.`exchangeInsurance` `ei` */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; + -- -- Final view structure for view `pay_dem` -- @@ -92281,6 +92223,24 @@ USE `vn2008`; /*!50001 SET character_set_client = @saved_cs_client */; /*!50001 SET character_set_results = @saved_cs_results */; /*!50001 SET collation_connection = @saved_col_connection */; + +-- +-- Final view structure for view `warehouse_pickup` +-- + +/*!50001 DROP VIEW IF EXISTS `warehouse_pickup`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8mb4 */; +/*!50001 SET character_set_results = utf8mb4 */; +/*!50001 SET collation_connection = utf8mb4_unicode_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ +/*!50001 VIEW `warehouse_pickup` AS select `wp`.`warehouseFk` AS `warehouse_id`,`wp`.`agencyModeFk` AS `agency_id` from `vn`.`warehousePickup` `wp` */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; @@ -92291,4 +92251,4 @@ USE `vn2008`; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2024-02-23 11:43:22 +-- Dump completed on 2024-03-07 9:31:29 diff --git a/db/dump/.dump/triggers.sql b/db/dump/.dump/triggers.sql index 9da5f32fc..41e90a3c7 100644 --- a/db/dump/.dump/triggers.sql +++ b/db/dump/.dump/triggers.sql @@ -4709,9 +4709,9 @@ BEGIN SET NEW.currencyFk = entry_getCurrency(NEW.currencyFk, NEW.supplierFk); END IF; - IF NOT (NEW.travelFk <=> OLD.travelFk) - OR NOT (NEW.currencyFk <=> OLD.currencyFk) THEN - SET NEW.commission = entry_getCommission(NEW.travelFk, NEW.currencyFk,NEW.supplierFk); + IF NOT (NEW.travelFk <=> OLD.travelFk) + OR NOT (NEW.currencyFk <=> OLD.currencyFk) THEN + SET NEW.commission = entry_getCommission(NEW.travelFk, NEW.currencyFk,NEW.supplierFk); END IF; END */;; DELIMITER ; @@ -4813,6 +4813,70 @@ DELIMITER ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; +/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `vn`.`entryDms_beforeInsert` + BEFORE INSERT ON `entryDms` + FOR EACH ROW +BEGIN + SET NEW.editorFk = account.myUser_getId(); +END */;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `vn`.`entryDms_beforeUpdate` + BEFORE UPDATE ON `entryDms` + FOR EACH ROW +BEGIN + SET NEW.editorFk = account.myUser_getId(); +END */;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `vn`.`entryDms_afterDelete` + AFTER DELETE ON `entryDms` + FOR EACH ROW +BEGIN + INSERT INTO entryLog + SET `action` = 'delete', + `changedModel` = 'EntryDms', + `changedModelId` = OLD.entryFk, + `userFk` = account.myUser_getId(); +END */;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `vn`.`entryObservation_beforeInsert` BEFORE INSERT ON `entryObservation` FOR EACH ROW @@ -5267,6 +5331,10 @@ BEGIN DECLARE vActive TINYINT; DECLARE vWithholdingSageFk INT; + IF NOT util.checkPrintableChars(NEW.supplierRef) THEN + CALL util.throw('The invoiceIn reference contains invalid characters'); + END IF; + SET NEW.editorFk = account.myUser_getId(); SELECT withholdingSageFk INTO vWithholdingSageFk @@ -5325,9 +5393,12 @@ DELIMITER ;; BEFORE UPDATE ON `invoiceIn` FOR EACH ROW BEGIN - DECLARE vWithholdingSageFk INT; + IF NOT (NEW.supplierRef <=> OLD.supplierRef) AND NOT util.checkPrintableChars(NEW.supplierRef) THEN + CALL util.throw('The invoiceIn reference contains invalid characters'); + END IF; + SET NEW.editorFk = account.myUser_getId(); IF (SELECT COUNT(*) FROM vn.invoiceIn @@ -8044,6 +8115,26 @@ DELIMITER ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; +/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `vn`.`saleLabel_afterUpdate` + AFTER UPDATE ON `vn`.`saleLabel` + FOR EACH ROW +IF NEW.stem >= (SELECT s.quantity FROM sale s WHERE s.id = NEW.saleFk) THEN + UPDATE sale s SET s.isPicked = TRUE WHERE s.id = NEW.saleFk; +END IF */;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `vn`.`saleTracking_afterInsert` AFTER INSERT ON `saleTracking` FOR EACH ROW @@ -8683,6 +8774,70 @@ DELIMITER ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; +/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `vn`.`supplierDms_beforeInsert` + BEFORE INSERT ON `supplierDms` + FOR EACH ROW +BEGIN + SET NEW.editorFk = account.myUser_getId(); +END */;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `vn`.`supplierDms_beforeUpdate` + BEFORE UPDATE ON `supplierDms` + FOR EACH ROW +BEGIN + SET NEW.editorFk = account.myUser_getId(); +END */;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `vn`.`supplierDms_afterDelete` + AFTER DELETE ON `supplierDms` + FOR EACH ROW +BEGIN + INSERT INTO clientLog + SET `action` = 'delete', + `changedModel` = 'supplierDms', + `changedModelId` = OLD.dmsFk, + `userFk` = account.myUser_getId(); +END */;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `vn`.`tag_beforeInsert` BEFORE INSERT ON `tag` FOR EACH ROW @@ -8780,7 +8935,6 @@ DELIMITER ;; FOR EACH ROW BEGIN DECLARE vNewTime TIME; - DECLARE vHasTicketRefund BOOL; SET NEW.editorFk = account.myUser_getId(); @@ -8840,15 +8994,6 @@ BEGIN CALL vn.routeUpdateM3(NEW.routeFk); END IF; - - SELECT COUNT(*) INTO vHasTicketRefund - FROM ticketRefund - WHERE originalTicketFk = NEW.id - OR refundTicketFk = NEW.id; - - IF vHasTicketRefund AND NEW.clientFk <> OLD.clientFk THEN - CALL util.throw('The ticket has a refund associated'); - END IF; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; @@ -9877,9 +10022,11 @@ DELIMITER ;; BEFORE UPDATE ON `travel` FOR EACH ROW BEGIN + DECLARE vHasAnyInvoiceBooked BOOL; + SET NEW.editorFk = account.myUser_getId(); - IF NOT (NEW.landed <=> OLD.landed) + IF NOT (NEW.landed <=> OLD.landed) OR NOT (NEW.shipped <=> OLD.shipped) THEN CALL travel_checkDates(NEW.shipped, NEW.landed); END IF; @@ -9891,6 +10038,19 @@ BEGIN IF NOT (NEW.warehouseInFk <=> OLD.warehouseInFk) THEN CALL travel_checkWarehouseIsFeedStock(NEW.warehouseInFk); END IF; + + IF NOT (NEW.awbFk <=> OLD.awbFk)THEN + SELECT COUNT(*) INTO vHasAnyInvoiceBooked + FROM travel t + JOIN entry e ON e.travelFk = t.id + JOIN invoiceIn ii ON ii.id = e.invoiceInFk + WHERE t.id = NEW.id + AND ii.isBooked; + + IF vHasAnyInvoiceBooked THEN + CALL util.throw('The travel has entries with booked invoices'); + END IF; + END IF; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; @@ -10756,30 +10916,10 @@ DELIMITER ; -- USE `vn2008`; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `vn2008`.`movement_label_afterUpdate` - AFTER UPDATE ON `movement_label` - FOR EACH ROW -IF NEW.stem >= (SELECT Cantidad FROM Movimientos WHERE Id_Movimiento = NEW.Id_Movimiento) THEN - UPDATE Movimientos SET OK = 1 WHERE Id_Movimiento = NEW.Id_Movimiento; -END IF */;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2024-02-23 11:43:46 +-- Dump completed on 2024-03-07 9:31:50 From 01cd2709cc57918b79239615728cc3477332be3f Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 7 Mar 2024 11:38:30 +0100 Subject: [PATCH 156/173] deploy: refs #6995 skip test --- .../back/methods/item-shelving/specs/addListByItem.spec.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/item/back/methods/item-shelving/specs/addListByItem.spec.js b/modules/item/back/methods/item-shelving/specs/addListByItem.spec.js index e31ff2e61..51fadb6a2 100644 --- a/modules/item/back/methods/item-shelving/specs/addListByItem.spec.js +++ b/modules/item/back/methods/item-shelving/specs/addListByItem.spec.js @@ -1,7 +1,8 @@ const {models} = require('vn-loopback/server/server'); const LoopBackContext = require('loopback-context'); -describe('ItemShelving upsertItem()', () => { +// #6276 +xdescribe('ItemShelving upsertItem()', () => { const warehouseFk = 1; let ctx; let options; From 014914e1d9aa3f4591589c5a4e844767333d16bd Mon Sep 17 00:00:00 2001 From: davidd Date: Fri, 8 Mar 2024 07:36:14 +0100 Subject: [PATCH 157/173] refs #6372 --- db/routines/bi/views/v_clientes_jerarquia.sql | 21 ------- db/routines/vn/views/unary.sql | 6 -- db/routines/vn/views/unaryScan.sql | 8 --- db/routines/vn/views/unaryScanLine.sql | 8 --- .../vn2008/procedures/unary_leaves.sql | 58 ------------------- db/routines/vn2008/procedures/unary_tops.sql | 19 ------ db/routines/vn2008/views/v_jerarquia.sql | 10 ---- .../10942-turquoiseCyca/00-firstScript.sql | 3 - .../10943-greenOrchid/00-firstScript.sql | 8 +-- 9 files changed, 4 insertions(+), 137 deletions(-) delete mode 100644 db/routines/bi/views/v_clientes_jerarquia.sql delete mode 100644 db/routines/vn/views/unary.sql delete mode 100644 db/routines/vn/views/unaryScan.sql delete mode 100644 db/routines/vn/views/unaryScanLine.sql delete mode 100644 db/routines/vn2008/procedures/unary_leaves.sql delete mode 100644 db/routines/vn2008/procedures/unary_tops.sql delete mode 100644 db/routines/vn2008/views/v_jerarquia.sql delete mode 100644 db/versions/10942-turquoiseCyca/00-firstScript.sql diff --git a/db/routines/bi/views/v_clientes_jerarquia.sql b/db/routines/bi/views/v_clientes_jerarquia.sql deleted file mode 100644 index e8e4e1e69..000000000 --- a/db/routines/bi/views/v_clientes_jerarquia.sql +++ /dev/null @@ -1,21 +0,0 @@ -CREATE OR REPLACE DEFINER=`root`@`localhost` - SQL SECURITY DEFINER - VIEW `bi`.`v_clientes_jerarquia` -AS SELECT `c`.`id_cliente` AS `Id_Cliente`, - `c`.`cliente` AS `Cliente`, - `t`.`CodigoTrabajador` AS `Comercial`, - `tj`.`CodigoTrabajador` AS `Jefe` -FROM ( - ( - ( - `vn2008`.`Clientes` `c` - JOIN `vn2008`.`Trabajadores` `t` ON(`t`.`Id_Trabajador` = `c`.`Id_Trabajador`) - ) - JOIN `vn2008`.`jerarquia` ON( - `vn2008`.`jerarquia`.`worker_id` = `c`.`Id_Trabajador` - ) - ) - JOIN `vn2008`.`Trabajadores` `tj` ON( - `tj`.`Id_Trabajador` = `vn2008`.`jerarquia`.`boss_id` - ) - ) diff --git a/db/routines/vn/views/unary.sql b/db/routines/vn/views/unary.sql deleted file mode 100644 index 7f4c0d8c5..000000000 --- a/db/routines/vn/views/unary.sql +++ /dev/null @@ -1,6 +0,0 @@ -CREATE OR REPLACE DEFINER=`root`@`localhost` - SQL SECURITY DEFINER - VIEW `vn`.`unary` -AS SELECT `a`.`id` AS `id`, - `a`.`parent` AS `parent` -FROM `vn2008`.`unary` `a` diff --git a/db/routines/vn/views/unaryScan.sql b/db/routines/vn/views/unaryScan.sql deleted file mode 100644 index 18428dd62..000000000 --- a/db/routines/vn/views/unaryScan.sql +++ /dev/null @@ -1,8 +0,0 @@ -CREATE OR REPLACE DEFINER=`root`@`localhost` - SQL SECURITY DEFINER - VIEW `vn`.`unaryScan` -AS SELECT `u`.`unary_id` AS `unaryFk`, - `u`.`name` AS `name`, - `u`.`odbc_date` AS `created`, - `u`.`type` AS `type` -FROM `vn2008`.`unary_scan` `u` diff --git a/db/routines/vn/views/unaryScanLine.sql b/db/routines/vn/views/unaryScanLine.sql deleted file mode 100644 index 75aec7fed..000000000 --- a/db/routines/vn/views/unaryScanLine.sql +++ /dev/null @@ -1,8 +0,0 @@ -CREATE OR REPLACE DEFINER=`root`@`localhost` - SQL SECURITY DEFINER - VIEW `vn`.`unaryScanLine` -AS SELECT `u`.`id` AS `id`, - `u`.`code` AS `code`, - `u`.`odbc_date` AS `created`, - `u`.`unary_id` AS `unaryScanFk` -FROM `vn2008`.`unary_scan_line` `u` diff --git a/db/routines/vn2008/procedures/unary_leaves.sql b/db/routines/vn2008/procedures/unary_leaves.sql deleted file mode 100644 index 28b5baa76..000000000 --- a/db/routines/vn2008/procedures/unary_leaves.sql +++ /dev/null @@ -1,58 +0,0 @@ -DELIMITER $$ -CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`unary_leaves`(v_top INT) -BEGIN -/** - * A partir de un nodo devuelve todos sus descendientes. - * - * @table tmp.tree Tabla con los ids de los nodos descendientes; - **/ - DECLARE v_count INT; - DECLARE v_parent INT; - DECLARE v_depth INT DEFAULT 0; - - DROP TEMPORARY TABLE IF EXISTS tmp.tree; - CREATE TEMPORARY TABLE tmp.tree - (INDEX (id)) - ENGINE = MEMORY - SELECT v_top id, v_parent parent, v_depth depth; - - DROP TEMPORARY TABLE IF EXISTS tmp.parent; - CREATE TEMPORARY TABLE tmp.parent - ENGINE = MEMORY - SELECT v_top id; - - l: LOOP - - SET v_depth = v_depth + 1; - - DROP TEMPORARY TABLE IF EXISTS tmp.child; - CREATE TEMPORARY TABLE tmp.child - ENGINE = MEMORY - SELECT c.`id`, c.parent - FROM `unary` c - JOIN tmp.parent p ON c.`parent` = p.id; - - DROP TEMPORARY TABLE tmp.parent; - CREATE TEMPORARY TABLE tmp.parent - ENGINE = MEMORY - SELECT c.id, c.parent - FROM tmp.child c - LEFT JOIN tmp.tree t ON t.id = c.id - WHERE t.id IS NULL; - - INSERT INTO tmp.tree - SELECT id, parent, v_depth FROM tmp.parent; - - SELECT COUNT(*) INTO v_count - FROM tmp.parent; - - IF v_count = 0 THEN - LEAVE l; - END IF; - END LOOP; - - DROP TEMPORARY TABLE - tmp.parent, - tmp.child; -END$$ -DELIMITER ; diff --git a/db/routines/vn2008/procedures/unary_tops.sql b/db/routines/vn2008/procedures/unary_tops.sql deleted file mode 100644 index b3a7cf11d..000000000 --- a/db/routines/vn2008/procedures/unary_tops.sql +++ /dev/null @@ -1,19 +0,0 @@ -DELIMITER $$ -CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`unary_tops`() -BEGIN -/** - * Devuelve todos los nodos que no tienen padre. - * - * @table tmp.tree Tabla con los ids de los nodos que no tienen padre; - **/ - - DROP TEMPORARY TABLE IF EXISTS tmp.tree; - CREATE TEMPORARY TABLE tmp.tree - ENGINE = MEMORY - SELECT s.`unary_id` AS id, s.name, s.odbc_date, s.type - FROM `unary_scan` s - INNER JOIN `unary` u ON s.unary_id = u.id - WHERE u.parent IS NULL; - -END$$ -DELIMITER ; diff --git a/db/routines/vn2008/views/v_jerarquia.sql b/db/routines/vn2008/views/v_jerarquia.sql deleted file mode 100644 index 6938a1fdf..000000000 --- a/db/routines/vn2008/views/v_jerarquia.sql +++ /dev/null @@ -1,10 +0,0 @@ -CREATE OR REPLACE DEFINER=`root`@`localhost` - SQL SECURITY DEFINER - VIEW `vn2008`.`v_jerarquia` -AS SELECT `vn2008`.`jerarquia`.`worker_id` AS `Id_Trabajador`, - `vn2008`.`jerarquia`.`boss_id` AS `boss_id` -FROM `vn2008`.`jerarquia` -UNION ALL -SELECT DISTINCT `vn2008`.`jerarquia`.`boss_id` AS `Id_Trabajador`, - `vn2008`.`jerarquia`.`boss_id` AS `boss_id` -FROM `vn2008`.`jerarquia` diff --git a/db/versions/10942-turquoiseCyca/00-firstScript.sql b/db/versions/10942-turquoiseCyca/00-firstScript.sql deleted file mode 100644 index 1b1ffca2f..000000000 --- a/db/versions/10942-turquoiseCyca/00-firstScript.sql +++ /dev/null @@ -1,3 +0,0 @@ --- Place your SQL code here -ALTER TABLE IF EXISTS vn2008.unary__ RENAME vn2008.unary; -ALTER TABLE IF EXISTS vn2008.unary_scan__ RENAME vn2008.unary_scan; diff --git a/db/versions/10943-greenOrchid/00-firstScript.sql b/db/versions/10943-greenOrchid/00-firstScript.sql index d244c6762..c73903f65 100644 --- a/db/versions/10943-greenOrchid/00-firstScript.sql +++ b/db/versions/10943-greenOrchid/00-firstScript.sql @@ -1,4 +1,4 @@ -ALTER TABLE IF EXISTS vn2008.unary_scan__ RENAME vn2008.unary_scan; -ALTER TABLE IF EXISTS vn2008.unary_scan_line__ RENAME vn2008.unary_scan_line; -ALTER TABLE IF EXISTS vn2008.unary_scan_line_buy__ RENAME vn2008.unary_scan_line_buy; -ALTER TABLE IF EXISTS vn2008.unary_scan_line_expedition__ RENAME vn2008.unary_scan_line_expedition; +ALTER TABLE IF EXISTS vn2008.unary_scan RENAME vn2008.unary_scan__; +ALTER TABLE IF EXISTS vn2008.unary_scan_line RENAME vn2008.unary_scan_line__; +ALTER TABLE IF EXISTS vn2008.unary_scan_line_buy RENAME vn2008.unary_scan_line_buy__; +ALTER TABLE IF EXISTS vn2008.unary_scan_line_expedition RENAME vn2008.unary_scan_line_expedition__; From 60c50337ff83d6479e802cc0180e4c6d8d0f47c3 Mon Sep 17 00:00:00 2001 From: davidd Date: Fri, 8 Mar 2024 07:43:13 +0100 Subject: [PATCH 158/173] refs #6372 --- .../00-firstScript.sql | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename db/versions/{10943-greenOrchid => 10946-blueChrysanthemum}/00-firstScript.sql (100%) diff --git a/db/versions/10943-greenOrchid/00-firstScript.sql b/db/versions/10946-blueChrysanthemum/00-firstScript.sql similarity index 100% rename from db/versions/10943-greenOrchid/00-firstScript.sql rename to db/versions/10946-blueChrysanthemum/00-firstScript.sql From c2ecedca71bec27234c7dbdaf6cbb757b70c873a Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 8 Mar 2024 07:48:55 +0100 Subject: [PATCH 159/173] feat: refs #6925 check incoterms in closure and makeInvoice --- loopback/locale/es.json | 3 +- loopback/server/boot/date.js | 4 +- modules/invoiceOut/back/models/invoice-out.js | 21 +++++ .../ticket/back/methods/ticket/closeAll.js | 3 +- modules/ticket/back/methods/ticket/closure.js | 92 ++++++++++++------- .../ticket/back/methods/ticket/makeInvoice.js | 18 +--- .../methods/ticket/specs/makeInvoice.spec.js | 2 +- 7 files changed, 87 insertions(+), 56 deletions(-) diff --git a/loopback/locale/es.json b/loopback/locale/es.json index 4079fa1ca..3748b6eaf 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -324,7 +324,6 @@ "The response is not a PDF": "La respuesta no es un PDF", "Booking completed": "Reserva completada", "The ticket is in preparation": "El ticket [{{ticketId}}]({{{ticketUrl}}}) del comercial {{salesPersonId}} está en preparación", - "Incoterms data for consignee is missing": "Faltan los datos de los Incoterms para el consignatario", "The notification subscription of this worker cant be modified": "La subscripción a la notificación de este trabajador no puede ser modificada", "User disabled": "Usuario desactivado", "The amount cannot be less than the minimum": "La cantidad no puede ser menor que la cantidad mínima", @@ -348,4 +347,4 @@ "Cmr file does not exist": "El archivo del cmr no existe", "You are not allowed to modify the alias": "No estás autorizado a modificar el alias", "The address of the customer must have information about Incoterms and Customs Agent": "El consignatario del cliente debe tener informado Incoterms y Agente de aduanas" -} +} \ No newline at end of file diff --git a/loopback/server/boot/date.js b/loopback/server/boot/date.js index 18c816186..d592dc416 100644 --- a/loopback/server/boot/date.js +++ b/loopback/server/boot/date.js @@ -1,7 +1,7 @@ module.exports = () => { Date.vnUTC = (env = process.env.NODE_ENV) => { - // if (!env || env === 'development') - // return new Date(Date.UTC(2001, 0, 1, 11)); + if (!env || env === 'development') + return new Date(Date.UTC(2001, 0, 1, 11)); return new Date(); }; diff --git a/modules/invoiceOut/back/models/invoice-out.js b/modules/invoiceOut/back/models/invoice-out.js index 91f4883ad..e4fcc1a69 100644 --- a/modules/invoiceOut/back/models/invoice-out.js +++ b/modules/invoiceOut/back/models/invoice-out.js @@ -1,5 +1,6 @@ const print = require('vn-print'); const path = require('path'); +const UserError = require('vn-loopback/util/user-error'); module.exports = Self => { require('../methods/invoiceOut/filter')(Self); @@ -66,4 +67,24 @@ module.exports = Self => { }); } }; + + Self.getSerial = async function(clientId, companyId, addressId, type, myOptions) { + const [{serial}] = await Self.rawSql( + `SELECT vn.invoiceSerial(?, ?, ?) AS serial`, + [ + clientId, + companyId, + type + ], + myOptions); + + const invoiceOutSerial = await Self.app.models.InvoiceOutSerial.findById(serial); + if (invoiceOutSerial?.taxAreaFk == 'WORLD') { + const address = await Self.app.models.Address.findById(addressId); + if (!address || !address.customsAgentFk || !address.incotermsFk) + throw new UserError('The address of the customer must have information about Incoterms and Customs Agent'); + } + + return serial; + }; }; diff --git a/modules/ticket/back/methods/ticket/closeAll.js b/modules/ticket/back/methods/ticket/closeAll.js index e0c6b0b16..801aa562e 100644 --- a/modules/ticket/back/methods/ticket/closeAll.js +++ b/modules/ticket/back/methods/ticket/closeAll.js @@ -30,11 +30,12 @@ module.exports = Self => { // Prevent closure for current day if (toDate >= todayMinDate && toDate <= todayMaxDate) throw new UserError('You cannot close tickets for today'); - console.log(toDate, toDate); + const tickets = await Self.rawSql(` SELECT t.id, t.clientFk, t.companyFk, + c.id clientFk, c.name clientName, c.email recipient, c.salesPersonFk, diff --git a/modules/ticket/back/methods/ticket/closure.js b/modules/ticket/back/methods/ticket/closure.js index 2a0db1067..90fe2d794 100644 --- a/modules/ticket/back/methods/ticket/closure.js +++ b/modules/ticket/back/methods/ticket/closure.js @@ -1,3 +1,5 @@ +/* eslint max-len: ["error", { "code": 150 }]*/ + const Report = require('vn-print/core/report'); const Email = require('vn-print/core/email'); const smtp = require('vn-print/core/smtp'); @@ -11,20 +13,27 @@ module.exports = async function(ctx, Self, tickets, reqArgs = {}) { const failedtickets = []; for (const ticket of tickets) { try { - await Self.rawSql(`CALL vn.ticket_closeByTicket(?)`, [ticket.id], {userId}); + await Self.app.models.InvoiceOut.getSerial(ticket.clientFk, ticket.companyFk, ticket.addressFk, 'M'); + await Self.rawSql( + `CALL vn.ticket_closeByTicket(?)`, + [ticket.id], + {userId} + ); - const [invoiceOut] = await Self.rawSql(` + const [invoiceOut] = await Self.rawSql( + ` SELECT io.id, io.ref, io.serial, cny.code companyCode, io.issued - FROM ticket t - JOIN invoiceOut io ON io.ref = t.refFk - JOIN company cny ON cny.id = io.companyFk - WHERE t.id = ? - `, [ticket.id]); - console.log('invoiceOut: ', invoiceOut); + FROM ticket t + JOIN invoiceOut io ON io.ref = t.refFk + JOIN company cny ON cny.id = io.companyFk + WHERE t.id = ? + `, + [ticket.id], + ); const mailOptions = { overrideAttachments: true, - attachments: [] + attachments: [], }; const isToBeMailed = ticket.recipient && ticket.salesPersonFk && ticket.isToBeMailed; @@ -34,7 +43,7 @@ module.exports = async function(ctx, Self, tickets, reqArgs = {}) { reference: invoiceOut.ref, recipientId: ticket.clientFk, recipient: ticket.recipient, - replyTo: ticket.salesPersonEmail + replyTo: ticket.salesPersonEmail, }; const invoiceReport = new Report('invoice', args); @@ -51,15 +60,19 @@ module.exports = async function(ctx, Self, tickets, reqArgs = {}) { await storage.write(stream, { type: 'invoice', path: `${year}/${month}/${day}`, - fileName: fileName + fileName: fileName, }); - await Self.rawSql('UPDATE invoiceOut SET hasPdf = true WHERE id = ?', [invoiceOut.id], {userId}); + await Self.rawSql( + 'UPDATE invoiceOut SET hasPdf = true WHERE id = ?', + [invoiceOut.id], + {userId}, + ); if (isToBeMailed) { const invoiceAttachment = { filename: fileName, - content: stream + content: stream, }; if (invoiceOut.serial == 'E' && invoiceOut.companyCode == 'VNL') { @@ -69,7 +82,7 @@ module.exports = async function(ctx, Self, tickets, reqArgs = {}) { mailOptions.attachments.push({ filename: fileName, - content: stream + content: stream, }); } @@ -83,7 +96,7 @@ module.exports = async function(ctx, Self, tickets, reqArgs = {}) { id: ticket.id, recipientId: ticket.clientFk, recipient: ticket.recipient, - replyTo: ticket.salesPersonEmail + replyTo: ticket.salesPersonEmail, }; const email = new Email('delivery-note-link', args); @@ -91,14 +104,17 @@ module.exports = async function(ctx, Self, tickets, reqArgs = {}) { } // Incoterms authorization - const [{firstOrder}] = await Self.rawSql(` + const [{firstOrder}] = await Self.rawSql( + ` SELECT COUNT(*) as firstOrder FROM ticket t JOIN client c ON c.id = t.clientFk WHERE t.clientFk = ? AND NOT t.isDeleted AND c.isVies - `, [ticket.clientFk]); + `, + [ticket.clientFk], + ); if (firstOrder == 1) { const args = { @@ -107,7 +123,7 @@ module.exports = async function(ctx, Self, tickets, reqArgs = {}) { recipientId: ticket.clientFk, recipient: ticket.recipient, replyTo: ticket.salesPersonEmail, - addressId: ticket.addressFk + addressId: ticket.addressFk, }; const email = new Email('incoterms-authorization', args); @@ -117,21 +133,25 @@ module.exports = async function(ctx, Self, tickets, reqArgs = {}) { `SELECT id FROM sample WHERE code = 'incoterms-authorization' - `); + `, + ); - await Self.rawSql(` + await Self.rawSql( + ` INSERT INTO clientSample (clientFk, typeFk, companyFk) VALUES(?, ?, ?) - `, [ticket.clientFk, sample.id, ticket.companyFk], {userId}); + `, + [ticket.clientFk, sample.id, ticket.companyFk], + {userId}, + ); } } catch (error) { // Domain not found - if (error.responseCode == 450) - return invalidEmail(ticket); + if (error.responseCode == 450) return invalidEmail(ticket); // Save tickets on a list of failed ids failedtickets.push({ id: ticket.id, - stacktrace: error + stacktrace: error, }); } } @@ -148,24 +168,26 @@ module.exports = async function(ctx, Self, tickets, reqArgs = {}) { smtp.send({ to: config.app.reportEmail, subject: '[API] Nightly ticket closure report', - html: body + html: body, }); } async function invalidEmail(ticket) { - await Self.rawSql(`UPDATE client SET email = NULL WHERE id = ?`, [ - ticket.clientFk - ], {userId}); + await Self.rawSql( + `UPDATE client SET email = NULL WHERE id = ?`, + [ticket.clientFk], + {userId}, + ); const oldInstance = `{"email": "${ticket.recipient}"}`; const newInstance = `{"email": ""}`; - await Self.rawSql(` + await Self.rawSql( + ` INSERT INTO clientLog (originFk, userFk, action, changedModel, oldInstance, newInstance) - VALUES (?, NULL, 'UPDATE', 'Client', ?, ?)`, [ - ticket.clientFk, - oldInstance, - newInstance - ], {userId}); + VALUES (?, NULL, 'UPDATE', 'Client', ?, ?)`, + [ticket.clientFk, oldInstance, newInstance], + {userId}, + ); const body = `No se ha podido enviar el albarán ${ticket.id} al cliente ${ticket.clientFk} - ${ticket.clientName} @@ -177,7 +199,7 @@ module.exports = async function(ctx, Self, tickets, reqArgs = {}) { smtp.send({ to: ticket.salesPersonEmail, subject: 'No se ha podido enviar el albarán', - html: body + html: body, }); } }; diff --git a/modules/ticket/back/methods/ticket/makeInvoice.js b/modules/ticket/back/methods/ticket/makeInvoice.js index 706da6f39..aedb960c3 100644 --- a/modules/ticket/back/methods/ticket/makeInvoice.js +++ b/modules/ticket/back/methods/ticket/makeInvoice.js @@ -77,22 +77,10 @@ module.exports = function(Self) { if (!clientCanBeInvoiced) throw new UserError(`This client can't be invoiced`); - const [{serial}] = invoiceCorrection ? [{serial: 'R'}] : await Self.rawSql( - `SELECT vn.invoiceSerial(?, ?, ?) AS serial`, - [ - clientId, - companyFk, - invoiceType - ], - myOptions); + const serial = !invoiceCorrection + ? await models.InvoiceOut.getSerial(clientId, companyFk, firstTicket.addressFk, invoiceType, myOptions) + : 'R'; - const invoiceOutSerial = await models.InvoiceOutSerial.findById(serial); - if (invoiceOutSerial?.taxAreaFk == 'WORLD') { - const address = await models.Address.findById(firstTicket.addressFk); - - if (!address || !address.customsAgentFk || !address.incotermsFk) - throw new UserError('Incoterms data for consignee is missing'); - } await Self.rawSql('CALL invoiceOut_new(?, ?, null, @invoiceId)', [serial, invoiceDate], myOptions); const [resultInvoice] = await Self.rawSql('SELECT @invoiceId id', [], myOptions); diff --git a/modules/ticket/back/methods/ticket/specs/makeInvoice.spec.js b/modules/ticket/back/methods/ticket/specs/makeInvoice.spec.js index 456303602..fea8b2096 100644 --- a/modules/ticket/back/methods/ticket/specs/makeInvoice.spec.js +++ b/modules/ticket/back/methods/ticket/specs/makeInvoice.spec.js @@ -77,6 +77,6 @@ describe('ticket makeInvoice()', () => { await tx.rollback(); } - expect(error.message).toEqual(`Incoterms data for consignee is missing`); + expect(error.message).toEqual(`The address of the customer must have information about Incoterms and Customs Agent`); }); }); From 8cda12a9dace3671379506a4ae10dc42e3394043 Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 8 Mar 2024 07:49:00 +0100 Subject: [PATCH 160/173] feat: refs #6925 check incoterms in closure and makeInvoice --- modules/ticket/back/methods/ticket/closeAll.js | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/ticket/back/methods/ticket/closeAll.js b/modules/ticket/back/methods/ticket/closeAll.js index 801aa562e..06e9e0ed1 100644 --- a/modules/ticket/back/methods/ticket/closeAll.js +++ b/modules/ticket/back/methods/ticket/closeAll.js @@ -58,7 +58,6 @@ module.exports = Self => { AND t.refFk IS NULL GROUP BY t.id `, [toDate, toDate]); - console.log('tickets: ', tickets); await closure(ctx, Self, tickets); From ea18d3ef6f6eb4bf359849d3d20c624de4e76851 Mon Sep 17 00:00:00 2001 From: jorgep Date: Fri, 8 Mar 2024 09:25:07 +0100 Subject: [PATCH 161/173] feat: refs #5186 add locale --- modules/shelving/back/locale/parking/en.yml | 9 +++++++++ modules/shelving/back/locale/parking/es.yml | 10 ++++++++++ 2 files changed, 19 insertions(+) create mode 100644 modules/shelving/back/locale/parking/en.yml create mode 100644 modules/shelving/back/locale/parking/es.yml diff --git a/modules/shelving/back/locale/parking/en.yml b/modules/shelving/back/locale/parking/en.yml new file mode 100644 index 000000000..5ef6add52 --- /dev/null +++ b/modules/shelving/back/locale/parking/en.yml @@ -0,0 +1,9 @@ +name: parking +columns: + id: id + column: column + row: row + sectorFk: sector + code: code + pickingOrder: picking order + editorFk: editor \ No newline at end of file diff --git a/modules/shelving/back/locale/parking/es.yml b/modules/shelving/back/locale/parking/es.yml new file mode 100644 index 000000000..d4dd7bb2c --- /dev/null +++ b/modules/shelving/back/locale/parking/es.yml @@ -0,0 +1,10 @@ +name: parking +columns: + id: id + column: columna + row: fila + sectorFk: sector + code: código + pickingOrder: orden de recogida + editorFk: editor + \ No newline at end of file From 37e851824254b858716696543a88ef0210a6d41e Mon Sep 17 00:00:00 2001 From: guillermo Date: Fri, 8 Mar 2024 10:38:35 +0100 Subject: [PATCH 162/173] feat: refs #6372 Added saleLabel to vn.clean --- db/routines/vn/procedures/clean.sql | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/db/routines/vn/procedures/clean.sql b/db/routines/vn/procedures/clean.sql index 898a5c835..cf96066e8 100644 --- a/db/routines/vn/procedures/clean.sql +++ b/db/routines/vn/procedures/clean.sql @@ -197,6 +197,12 @@ BEGIN FROM ticket t JOIN tTicketDelete tmp ON tmp.ticketFk = t.id; + DELETE sl + FROM saleLabel sl + JOIN sale s ON s.id = sl.saleFk + JOIN ticket t ON t.id = s.ticketFk + WHERE t.shipped < v2Months; + -- Tickets Nulos PAK 11/10/2016 SELECT id INTO vCompanyBlk FROM company WHERE code = 'BLK'; UPDATE ticket From 238099311b1248e40966ed3bb430a2a897279bf1 Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Fri, 8 Mar 2024 10:39:34 +0100 Subject: [PATCH 163/173] refs #7004 fix: bug --- modules/supplier/back/methods/supplier/newSupplier.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/supplier/back/methods/supplier/newSupplier.js b/modules/supplier/back/methods/supplier/newSupplier.js index c40e7214f..3cca4195f 100644 --- a/modules/supplier/back/methods/supplier/newSupplier.js +++ b/modules/supplier/back/methods/supplier/newSupplier.js @@ -1,3 +1,5 @@ +const UserError = require('vn-loopback/util/user-error'); + module.exports = Self => { Self.remoteMethodCtx('newSupplier', { description: 'Creates a new supplier and returns it', @@ -19,12 +21,13 @@ module.exports = Self => { Self.newSupplier = async(ctx, options) => { const models = Self.app.models; const args = ctx.args; - const myOptions = {}; + const myOptions = {validate: false}; if (typeof options == 'object') Object.assign(myOptions, options); delete args.ctx; + if (!args.name) throw new UserError('The social name cannot be empty'); const data = {...args, ...{nickname: args.name}}; const supplier = await models.Supplier.create(data, myOptions); From a8420cd6504020eb0081ada5141708d19dd56958 Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Fri, 8 Mar 2024 10:39:54 +0100 Subject: [PATCH 164/173] refs #7004 feat: translate label newSupplier --- modules/supplier/front/descriptor/locale/es.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/supplier/front/descriptor/locale/es.yml b/modules/supplier/front/descriptor/locale/es.yml index d889a9eee..cf4a52393 100644 --- a/modules/supplier/front/descriptor/locale/es.yml +++ b/modules/supplier/front/descriptor/locale/es.yml @@ -4,4 +4,5 @@ Go to client: Ir al cliente Verified supplier: Proveedor verificado Unverified supplier: Proveedor no verificado Inactive supplier: Proveedor inactivo -Create invoiceIn: Crear factura recibida \ No newline at end of file +Create invoiceIn: Crear factura recibida +Supplier name: Razón social From 74c199384c5a197a4af92e09dfec2b5d6af4c8f0 Mon Sep 17 00:00:00 2001 From: guillermo Date: Fri, 8 Mar 2024 10:42:07 +0100 Subject: [PATCH 165/173] fix: refs #6372 vn2008.clean --- db/routines/vn2008/procedures/clean.sql | 5 ----- 1 file changed, 5 deletions(-) diff --git a/db/routines/vn2008/procedures/clean.sql b/db/routines/vn2008/procedures/clean.sql index 946157fa0..5a62b133e 100644 --- a/db/routines/vn2008/procedures/clean.sql +++ b/db/routines/vn2008/procedures/clean.sql @@ -25,11 +25,6 @@ proc: BEGIN DELETE FROM Movimientos_mark WHERE odbc_date < vDate; DELETE FROM Splits WHERE Fecha < vDate18; - DELETE tobs - FROM movement_label tobs - JOIN Movimientos m ON tobs.Id_Movimiento = m.Id_Movimiento - JOIN Tickets t ON m.Id_Ticket = t.Id_Ticket WHERE t.Fecha < vDate; - DELETE FROM Remesas WHERE `Fecha Remesa` < vDate18; DELETE tt.* From cdb9f372cf350712aae9f15e8c4bc5d411e48cb4 Mon Sep 17 00:00:00 2001 From: robert Date: Fri, 8 Mar 2024 12:19:57 +0100 Subject: [PATCH 166/173] feat: refs #6610 fixDeleteTickets --- db/routines/vn/procedures/clean.sql | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/db/routines/vn/procedures/clean.sql b/db/routines/vn/procedures/clean.sql index 06f36afce..e31d73c14 100644 --- a/db/routines/vn/procedures/clean.sql +++ b/db/routines/vn/procedures/clean.sql @@ -182,6 +182,27 @@ BEGIN DELETE FROM travelLog WHERE creationDate < v3Month; + CREATE OR REPLACE TEMPORARY TABLE tTicketDelete + SELECT DISTINCT tl.originFk ticketFk, sub.ticketFk aa + FROM ticketLog tl + JOIN ( + SELECT MAX(tl.id)ids,tw.ticketFk + FROM ticket t + JOIN ticketLog tl ON tl.originFk = t.id + LEFT JOIN ticketWeekly tw ON tw.ticketFk =t.id + WHERE t.shipped BETWEEN '2000-01-01' AND '2000-12-31' + AND t.isDeleted + AND tw.ticketFk IS NULL + GROUP BY t.id + ) sub ON sub.ids = tl.id + WHERE tl.creationDate <= util.VN_CURDATE() - INTERVAL 60 DAY; + + DELETE t + FROM ticket t + JOIN tTicketDelete tmp ON tmp.ticketFk = t.id; + + DROP TEMPORARY TABLE tTicketDelete; + CALL shelving_clean; DELETE FROM chat WHERE dated < v5Years; From b1e90fabb2346933518134efd8745a043fa911d1 Mon Sep 17 00:00:00 2001 From: robert Date: Fri, 8 Mar 2024 12:32:22 +0100 Subject: [PATCH 167/173] refs #6610 --- db/routines/vn/procedures/clean.sql | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/db/routines/vn/procedures/clean.sql b/db/routines/vn/procedures/clean.sql index e31d73c14..66164d894 100644 --- a/db/routines/vn/procedures/clean.sql +++ b/db/routines/vn/procedures/clean.sql @@ -183,19 +183,19 @@ BEGIN DELETE FROM travelLog WHERE creationDate < v3Month; CREATE OR REPLACE TEMPORARY TABLE tTicketDelete - SELECT DISTINCT tl.originFk ticketFk, sub.ticketFk aa + SELECT DISTINCT tl.originFk ticketFk FROM ticketLog tl JOIN ( - SELECT MAX(tl.id)ids,tw.ticketFk + SELECT MAX(tl.id)ids, tw.ticketFk FROM ticket t JOIN ticketLog tl ON tl.originFk = t.id LEFT JOIN ticketWeekly tw ON tw.ticketFk =t.id - WHERE t.shipped BETWEEN '2000-01-01' AND '2000-12-31' + WHERE t.shipped BETWEEN '2000-01-01' AND '2000-12-31' AND t.isDeleted AND tw.ticketFk IS NULL GROUP BY t.id - ) sub ON sub.ids = tl.id - WHERE tl.creationDate <= util.VN_CURDATE() - INTERVAL 60 DAY; + ) sub ON sub.ids = tl.id + WHERE tl.creationDate <= vDateShort; DELETE t FROM ticket t From e5387b0b65db7362becc54610a3dd6a50db5c9a2 Mon Sep 17 00:00:00 2001 From: jorgep Date: Mon, 11 Mar 2024 09:14:05 +0100 Subject: [PATCH 168/173] fix: refs #5186 use date function --- db/dump/fixtures.before.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/dump/fixtures.before.sql b/db/dump/fixtures.before.sql index 401973186..4ad007f5c 100644 --- a/db/dump/fixtures.before.sql +++ b/db/dump/fixtures.before.sql @@ -3732,4 +3732,4 @@ UPDATE vn.saleTracking SET stateFk = 26 WHERE id = 5; INSERT INTO vn.report (name) VALUES ('LabelCollection'); INSERT INTO vn.parkingLog(originFk, userFk, `action`, creationDate, description, changedModel,oldInstance, newInstance, changedModelId, changedModelValue) - VALUES(1, 18, 'update', '2024-03-01 08:35:07.000', NULL, 'SaleGroup', '{"parkingFk":null}', '{"parkingFk":1}', 1, NULL); \ No newline at end of file + VALUES(1, 18, 'update', util.VN_CURDATE(), NULL, 'SaleGroup', '{"parkingFk":null}', '{"parkingFk":1}', 1, NULL); \ No newline at end of file From 9910ae5c643b51369d5e7b0036046f4f2c3fca6d Mon Sep 17 00:00:00 2001 From: robert Date: Mon, 11 Mar 2024 12:12:02 +0100 Subject: [PATCH 169/173] fix: refs #6610 quitar variable --- db/routines/vn/procedures/clean.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/routines/vn/procedures/clean.sql b/db/routines/vn/procedures/clean.sql index 66164d894..cee64d772 100644 --- a/db/routines/vn/procedures/clean.sql +++ b/db/routines/vn/procedures/clean.sql @@ -186,7 +186,7 @@ BEGIN SELECT DISTINCT tl.originFk ticketFk FROM ticketLog tl JOIN ( - SELECT MAX(tl.id)ids, tw.ticketFk + SELECT MAX(tl.id)ids FROM ticket t JOIN ticketLog tl ON tl.originFk = t.id LEFT JOIN ticketWeekly tw ON tw.ticketFk =t.id From 552a1a33c27d59e91e48026e1f834fda4df35187 Mon Sep 17 00:00:00 2001 From: guillermo Date: Mon, 11 Mar 2024 12:38:52 +0100 Subject: [PATCH 170/173] hotfix: itemProposal --- db/routines/vn/procedures/itemProposal.sql | 28 +++++++++++----------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/db/routines/vn/procedures/itemProposal.sql b/db/routines/vn/procedures/itemProposal.sql index 47a4e9779..d0d98fed7 100644 --- a/db/routines/vn/procedures/itemProposal.sql +++ b/db/routines/vn/procedures/itemProposal.sql @@ -19,17 +19,17 @@ BEGIN DECLARE vTypeFk INT; DECLARE vPriority INT DEFAULT 1; - DECLARE vTag1 VARCHAR(25) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; - DECLARE vTag5 VARCHAR(25) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; - DECLARE vTag6 VARCHAR(25) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; - DECLARE vTag7 VARCHAR(25) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; - DECLARE vTag8 VARCHAR(25) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; - - DECLARE vValue1 VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; - DECLARE vValue5 VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; - DECLARE vValue6 VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; - DECLARE vValue7 VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; - DECLARE vValue8 VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; + DECLARE vTag1 VARCHAR(20) COLLATE 'utf8_unicode_ci'; + DECLARE vTag5 VARCHAR(20) COLLATE 'utf8_unicode_ci'; + DECLARE vTag6 VARCHAR(20) COLLATE 'utf8_unicode_ci'; + DECLARE vTag7 VARCHAR(20) COLLATE 'utf8_unicode_ci'; + DECLARE vTag8 VARCHAR(20) COLLATE 'utf8_unicode_ci'; + + DECLARE vValue1 VARCHAR(50) COLLATE 'utf8_unicode_ci'; + DECLARE vValue5 VARCHAR(50) COLLATE 'utf8_unicode_ci'; + DECLARE vValue6 VARCHAR(50) COLLATE 'utf8_unicode_ci'; + DECLARE vValue7 VARCHAR(50) COLLATE 'utf8_unicode_ci'; + DECLARE vValue8 VARCHAR(50) COLLATE 'utf8_unicode_ci'; SELECT warehouseFk, shipped INTO vWarehouseFk, vShipped @@ -86,7 +86,8 @@ BEGIN IF(b.groupingMode = 1, b.grouping, b.packing) minQuantity, iss.visible located FROM item i - JOIN cache.available a ON a.item_id = i.id + STRAIGHT_JOIN cache.available a ON a.item_id = i.id + AND a.calc_id = vCalcFk LEFT JOIN itemProposal ip ON ip.mateFk = i.id AND ip.itemFk = vSelf LEFT JOIN itemTag it ON it.itemFk = i.id @@ -97,8 +98,7 @@ BEGIN LEFT JOIN buy b ON b.id = lb.buy_id LEFT JOIN itemShelvingStock iss ON iss.itemFk = i.id AND iss.warehouseFk = vWarehouseFk - WHERE a.calc_id = vCalcFk - AND a.available > 0 + WHERE a.available > 0 AND IF(vShowType, i.typeFk = vTypeFk, TRUE) AND i.id <> vSelf ORDER BY `counter` DESC, From adafab5847848177b81e38b55c872dc5771bcd18 Mon Sep 17 00:00:00 2001 From: guillermo Date: Mon, 11 Mar 2024 13:27:18 +0100 Subject: [PATCH 171/173] refactor: refs #6874 item_getSimilar --- db/routines/vn/procedures/item_getSimilar.sql | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/db/routines/vn/procedures/item_getSimilar.sql b/db/routines/vn/procedures/item_getSimilar.sql index e87e77819..e8b791d29 100644 --- a/db/routines/vn/procedures/item_getSimilar.sql +++ b/db/routines/vn/procedures/item_getSimilar.sql @@ -19,17 +19,17 @@ BEGIN DECLARE vTypeFk INT; DECLARE vPriority INT DEFAULT 1; - DECLARE vTag1 VARCHAR(25) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; - DECLARE vTag5 VARCHAR(25) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; - DECLARE vTag6 VARCHAR(25) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; - DECLARE vTag7 VARCHAR(25) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; - DECLARE vTag8 VARCHAR(25) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; - - DECLARE vValue1 VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; - DECLARE vValue5 VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; - DECLARE vValue6 VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; - DECLARE vValue7 VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; - DECLARE vValue8 VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; + DECLARE vTag1 VARCHAR(20) COLLATE 'utf8_unicode_ci'; + DECLARE vTag5 VARCHAR(20) COLLATE 'utf8_unicode_ci'; + DECLARE vTag6 VARCHAR(20) COLLATE 'utf8_unicode_ci'; + DECLARE vTag7 VARCHAR(20) COLLATE 'utf8_unicode_ci'; + DECLARE vTag8 VARCHAR(20) COLLATE 'utf8_unicode_ci'; + + DECLARE vValue1 VARCHAR(50) COLLATE 'utf8_unicode_ci'; + DECLARE vValue5 VARCHAR(50) COLLATE 'utf8_unicode_ci'; + DECLARE vValue6 VARCHAR(50) COLLATE 'utf8_unicode_ci'; + DECLARE vValue7 VARCHAR(50) COLLATE 'utf8_unicode_ci'; + DECLARE vValue8 VARCHAR(50) COLLATE 'utf8_unicode_ci'; SELECT typeFk, tag5, @@ -81,7 +81,8 @@ BEGIN IF(b.groupingMode = 1, b.grouping, b.packing) minQuantity, iss.visible located FROM item i - JOIN cache.available a ON a.item_id = i.id + STRAIGHT_JOIN cache.available a ON a.item_id = i.id + AND a.calc_id = vCalcFk LEFT JOIN itemProposal ip ON ip.mateFk = i.id AND ip.itemFk = vSelf LEFT JOIN itemTag it ON it.itemFk = i.id @@ -92,8 +93,7 @@ BEGIN LEFT JOIN buy b ON b.id = lb.buy_id LEFT JOIN itemShelvingStock iss ON iss.itemFk = i.id AND iss.warehouseFk = vWarehouseFk - WHERE a.calc_id = vCalcFk - AND a.available > 0 + WHERE a.available > 0 AND IF(vShowType, i.typeFk = vTypeFk, TRUE) AND i.id <> vSelf ORDER BY `counter` DESC, From 9d94259d67700c0df52ca33d6f36d227ef67f7c4 Mon Sep 17 00:00:00 2001 From: sergiodt Date: Tue, 12 Mar 2024 12:21:46 +0100 Subject: [PATCH 172/173] refs #6078 feat: workerActivity --- db/versions/10905-grayIvy/00-firstScript.sql | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/db/versions/10905-grayIvy/00-firstScript.sql b/db/versions/10905-grayIvy/00-firstScript.sql index a7c3c4c17..cca41cd48 100644 --- a/db/versions/10905-grayIvy/00-firstScript.sql +++ b/db/versions/10905-grayIvy/00-firstScript.sql @@ -1,4 +1,6 @@ -CREATE OR REPLACE TABLE `workerActivityType` ( +USE vn; + +CREATE OR REPLACE TABLE vn.workerActivityType ( `code` varchar(20) NOT NULL, `description` varchar(45) NOT NULL, PRIMARY KEY (`code`) From 319bf314b3ba848299de4c71e4f927a7dccabbb0 Mon Sep 17 00:00:00 2001 From: guillermo Date: Wed, 13 Mar 2024 07:38:14 +0100 Subject: [PATCH 173/173] hotfix: itemProposal --- db/routines/vn/procedures/itemProposal.sql | 96 +++++++++------------- 1 file changed, 38 insertions(+), 58 deletions(-) diff --git a/db/routines/vn/procedures/itemProposal.sql b/db/routines/vn/procedures/itemProposal.sql index d0d98fed7..eb8a7ab33 100644 --- a/db/routines/vn/procedures/itemProposal.sql +++ b/db/routines/vn/procedures/itemProposal.sql @@ -19,98 +19,78 @@ BEGIN DECLARE vTypeFk INT; DECLARE vPriority INT DEFAULT 1; - DECLARE vTag1 VARCHAR(20) COLLATE 'utf8_unicode_ci'; - DECLARE vTag5 VARCHAR(20) COLLATE 'utf8_unicode_ci'; - DECLARE vTag6 VARCHAR(20) COLLATE 'utf8_unicode_ci'; - DECLARE vTag7 VARCHAR(20) COLLATE 'utf8_unicode_ci'; - DECLARE vTag8 VARCHAR(20) COLLATE 'utf8_unicode_ci'; - - DECLARE vValue1 VARCHAR(50) COLLATE 'utf8_unicode_ci'; - DECLARE vValue5 VARCHAR(50) COLLATE 'utf8_unicode_ci'; - DECLARE vValue6 VARCHAR(50) COLLATE 'utf8_unicode_ci'; - DECLARE vValue7 VARCHAR(50) COLLATE 'utf8_unicode_ci'; - DECLARE vValue8 VARCHAR(50) COLLATE 'utf8_unicode_ci'; - SELECT warehouseFk, shipped INTO vWarehouseFk, vShipped FROM ticket WHERE id = vTicketFk; - SELECT typeFk, - tag5, - value5, - tag6, - value6, - tag7, - value7, - tag8, - value8, - t.name, - it.value - INTO vTypeFk, - vTag5, - vValue5, - vTag6, - vValue6, - vTag7, - vValue7, - vTag8, - vValue8, - vTag1, - vValue1 - FROM item i - LEFT JOIN itemTag it ON it.itemFk = i.id - AND it.priority = vPriority - LEFT JOIN tag t ON t.id = it.tagFk - WHERE i.id = vSelf; - CALL cache.available_refresh(vCalcFk, FALSE, vWarehouseFk, vShipped); + WITH itemTags AS ( + SELECT i.id, + typeFk, + tag5, + value5, + tag6, + value6, + tag7, + value7, + tag8, + value8, + t.name, + it.value + FROM vn.item i + LEFT JOIN vn.itemTag it ON it.itemFk = i.id + AND it.priority = vPriority + LEFT JOIN vn.tag t ON t.id = it.tagFk + WHERE i.id = vSelf + ) SELECT i.id itemFk, i.longName, i.subName, i.tag5, i.value5, - (i.value5 <=> vValue5) match5, + (i.value5 <=> its.value5) match5, i.tag6, i.value6, - (i.value6 <=> vValue6) match6, + (i.value6 <=> its.value6) match6, i.tag7, i.value7, - (i.value7 <=> vValue7) match7, + (i.value7 <=> its.value7) match7, i.tag8, i.value8, - (i.value8 <=> vValue8) match8, + (i.value8 <=> its.value8) match8, a.available, IFNULL(ip.counter, 0) `counter`, IF(b.groupingMode = 1, b.grouping, b.packing) minQuantity, iss.visible located - FROM item i - STRAIGHT_JOIN cache.available a ON a.item_id = i.id + FROM vn.item i + JOIN cache.available a ON a.item_id = i.id AND a.calc_id = vCalcFk - LEFT JOIN itemProposal ip ON ip.mateFk = i.id + LEFT JOIN vn.itemProposal ip ON ip.mateFk = i.id AND ip.itemFk = vSelf - LEFT JOIN itemTag it ON it.itemFk = i.id + LEFT JOIN vn.itemTag it ON it.itemFk = i.id AND it.priority = vPriority - LEFT JOIN tag t ON t.id = it.tagFk + LEFT JOIN vn.tag t ON t.id = it.tagFk LEFT JOIN cache.last_buy lb ON lb.item_id = i.id AND lb.warehouse_id = vWarehouseFk - LEFT JOIN buy b ON b.id = lb.buy_id - LEFT JOIN itemShelvingStock iss ON iss.itemFk = i.id + LEFT JOIN vn.buy b ON b.id = lb.buy_id + LEFT JOIN vn.itemShelvingStock iss ON iss.itemFk = i.id AND iss.warehouseFk = vWarehouseFk + JOIN itemTags its WHERE a.available > 0 - AND IF(vShowType, i.typeFk = vTypeFk, TRUE) + AND IF(vShowType, i.typeFk = its.typeFk, TRUE) AND i.id <> vSelf ORDER BY `counter` DESC, - (t.name = vTag1) DESC, - (it.value = vValue1) DESC, - (i.tag5 = vTag5) DESC, + (t.name = its.name) DESC, + (it.value = its.value) DESC, + (i.tag5 = its.tag5) DESC, match5 DESC, - (i.tag6 = vTag6) DESC, + (i.tag6 = its.tag6) DESC, match6 DESC, - (i.tag7 = vTag7) DESC, + (i.tag7 = its.tag7) DESC, match7 DESC, - (i.tag8 = vTag8) DESC, + (i.tag8 = its.tag8) DESC, match8 DESC; END$$ DELIMITER ;