From 8ea3c98a13a01c2992237aa2ca30ce3c8e1e60e4 Mon Sep 17 00:00:00 2001 From: davidd Date: Mon, 29 Jan 2024 09:12:29 +0100 Subject: [PATCH 01/24] refs #6372 feat: vn2008 to vn --- .../triggers/movement_label_afterUpdate.sql | 8 - db/routines/vn2008/views/Rutas_Master | 24 --- .../vn2008/views/financialProductType.sql | 4 + db/routines/vn2008/views/flight.sql | 13 ++ db/routines/vn2008/views/gastos_resumen.sql | 11 ++ db/routines/vn2008/views/integra2.sql | 9 + .../vn2008/views/integra2_province.sql | 8 + db/routines/vn2008/views/link.sql | 8 + db/routines/vn2008/views/warehouse_pickup.sql | 9 + .../01-financialProductType.sql | 1 + db/versions/10836-limeCordyline/02-flight.sql | 7 + .../10836-limeCordyline/03-gastos_resumen.sql | 17 ++ .../10836-limeCordyline/04-integra2.sql | 10 ++ .../05-integra2_province.sql | 4 + .../06-intervalos__delete.sql | 1 + db/versions/10836-limeCordyline/09-link.sql | 11 ++ .../10-mail_templates__delete.sql | 1 + .../12-ticket_location__delete.sql | 1 + .../10836-limeCordyline/13-turn__delete.sql | 1 + .../25-warehouse_pickup.sql | 5 + db/versions/10836-limeCordyline/29-kk.sql | 155 ++++++++++++++++++ .../10836-limeCordyline/30-permissions.sql | 36 ++++ 22 files changed, 312 insertions(+), 32 deletions(-) delete mode 100644 db/routines/vn2008/triggers/movement_label_afterUpdate.sql delete mode 100644 db/routines/vn2008/views/Rutas_Master create mode 100644 db/routines/vn2008/views/financialProductType.sql create mode 100644 db/routines/vn2008/views/flight.sql create mode 100644 db/routines/vn2008/views/gastos_resumen.sql create mode 100644 db/routines/vn2008/views/integra2.sql create mode 100644 db/routines/vn2008/views/integra2_province.sql create mode 100644 db/routines/vn2008/views/link.sql create mode 100644 db/routines/vn2008/views/warehouse_pickup.sql create mode 100644 db/versions/10836-limeCordyline/01-financialProductType.sql create mode 100644 db/versions/10836-limeCordyline/02-flight.sql create mode 100644 db/versions/10836-limeCordyline/03-gastos_resumen.sql create mode 100644 db/versions/10836-limeCordyline/04-integra2.sql create mode 100644 db/versions/10836-limeCordyline/05-integra2_province.sql create mode 100644 db/versions/10836-limeCordyline/06-intervalos__delete.sql create mode 100644 db/versions/10836-limeCordyline/09-link.sql create mode 100644 db/versions/10836-limeCordyline/10-mail_templates__delete.sql create mode 100644 db/versions/10836-limeCordyline/12-ticket_location__delete.sql create mode 100644 db/versions/10836-limeCordyline/13-turn__delete.sql create mode 100644 db/versions/10836-limeCordyline/25-warehouse_pickup.sql create mode 100644 db/versions/10836-limeCordyline/29-kk.sql create mode 100644 db/versions/10836-limeCordyline/30-permissions.sql diff --git a/db/routines/vn2008/triggers/movement_label_afterUpdate.sql b/db/routines/vn2008/triggers/movement_label_afterUpdate.sql deleted file mode 100644 index 364568fb3..000000000 --- a/db/routines/vn2008/triggers/movement_label_afterUpdate.sql +++ /dev/null @@ -1,8 +0,0 @@ -DELIMITER $$ -CREATE OR REPLACE DEFINER=`root`@`localhost` 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 ; diff --git a/db/routines/vn2008/views/Rutas_Master b/db/routines/vn2008/views/Rutas_Master deleted file mode 100644 index 03b9cfc21..000000000 --- a/db/routines/vn2008/views/Rutas_Master +++ /dev/null @@ -1,24 +0,0 @@ - -CREATE OR REPLACE DEFINER = `root`@`localhost` - SQL SECURITY DEFINER - VIEW `vn2008`.`Rutas_Master` -AS SELECT - `rm`.`id` AS `id`, - `rm`.`warehoseFk` AS `warehouse_id`, - `rm`.`km` AS `km`, - `rm`.`packages` AS `bultos`, - `rm`.`vehicleCost` AS `vehiculos_coste`, - `rm`.`staffCost` AS `personal_coste`, - `rm`.`vehicle` AS `vehiculos_numero`, - `rm`.`staff` AS `personal_numero`, - `rm`.`fuel` AS `gasoil`, - `rm`.`freelancers` AS `autonomos`, - `rm`.`year` AS `año`, - `rm`.`mounth` AS `mes`, - `rm`.`expense` AS `gastos`, - `rm`.`freelancersPackages` AS `bultos_autonomos`, - `rm`.`kmCost` AS `coste_km`, - `rm`.`packageCost` AS `coste_bulto`, - `rm`.`freelancerPackageCost` AS `coste_bulto_autonomo` , - `rm`.`created` AS `odbc_date` - FROM `vn`.`routeMaster` `rm` \ No newline at end of file diff --git a/db/routines/vn2008/views/financialProductType.sql b/db/routines/vn2008/views/financialProductType.sql new file mode 100644 index 000000000..89a063856 --- /dev/null +++ b/db/routines/vn2008/views/financialProductType.sql @@ -0,0 +1,4 @@ +CREATE OR REPLACE DEFINER=`root`@`localhost` + SQL SECURITY DEFINER +VIEW `vn2008`.`financialProductType`AS + SELECT * FROM vn.financialProductType; \ No newline at end of file diff --git a/db/routines/vn2008/views/flight.sql b/db/routines/vn2008/views/flight.sql new file mode 100644 index 000000000..e671801c0 --- /dev/null +++ b/db/routines/vn2008/views/flight.sql @@ -0,0 +1,13 @@ +CREATE OR REPLACE DEFINER=`root`@`localhost` + SQL SECURITY DEFINER + VIEW `vn2008`.`flight` +AS SELECT + `f`.`id` AS `flight_id`, + `f`.`duration` AS `duration`, + `f`.`route` AS `route`, + `f`.`days` AS `days`, + `f`.`airlineFk` AS `airline_id`, + `f`.`airportOutFk` AS `airport_out`, + `f`.`airportInFk` AS `airport_in` +FROM + `vn`.`flight` `f`; \ No newline at end of file diff --git a/db/routines/vn2008/views/gastos_resumen.sql b/db/routines/vn2008/views/gastos_resumen.sql new file mode 100644 index 000000000..1b6b6d877 --- /dev/null +++ b/db/routines/vn2008/views/gastos_resumen.sql @@ -0,0 +1,11 @@ +CREATE OR REPLACE DEFINER=`root`@`localhost` + SQL SECURITY DEFINER + VIEW `vn2008`.`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`.`expenseSummary` `es`; \ No newline at end of file diff --git a/db/routines/vn2008/views/integra2.sql b/db/routines/vn2008/views/integra2.sql new file mode 100644 index 000000000..05840d6bb --- /dev/null +++ b/db/routines/vn2008/views/integra2.sql @@ -0,0 +1,9 @@ +CREATE OR REPLACE DEFINER=`root`@`localhost` + SQL SECURITY DEFINER + VIEW `vn2008`.`integra2` +AS SELECT + `i2`.`postCode` AS `postal_code`, + `i2`.`frequency` AS `frequency`, + `i2`.`warehouseFk` AS `warehouse_id` +FROM + `vn`.`integra2` `i2`; \ No newline at end of file diff --git a/db/routines/vn2008/views/integra2_province.sql b/db/routines/vn2008/views/integra2_province.sql new file mode 100644 index 000000000..bc099adb3 --- /dev/null +++ b/db/routines/vn2008/views/integra2_province.sql @@ -0,0 +1,8 @@ +CREATE OR REPLACE DEFINER=`root`@`localhost` + SQL SECURITY DEFINER + VIEW `vn2008`.`integra2_province` +AS SELECT + `ip`.`provinceFk` AS `province_id`, + `ip`.`franchise` AS `franquicia` +FROM + `vn`.`integra2Province` `ip`; \ No newline at end of file diff --git a/db/routines/vn2008/views/link.sql b/db/routines/vn2008/views/link.sql new file mode 100644 index 000000000..f5fb9bd2b --- /dev/null +++ b/db/routines/vn2008/views/link.sql @@ -0,0 +1,8 @@ +CREATE OR REPLACE DEFINER=`root`@`localhost` + SQL SECURITY DEFINER + VIEW `vn2008`.`link` +AS SELECT + `l`.`clientFk` AS `Id_Cliente`, + `l`.`supplierFk` AS `Id_Proveedor` +FROM + `vn`.`link` `l`; \ No newline at end of file diff --git a/db/routines/vn2008/views/warehouse_pickup.sql b/db/routines/vn2008/views/warehouse_pickup.sql new file mode 100644 index 000000000..c3a7268a1 --- /dev/null +++ b/db/routines/vn2008/views/warehouse_pickup.sql @@ -0,0 +1,9 @@ + +CREATE OR REPLACE DEFINER=`root`@`localhost` + SQL SECURITY DEFINER + VIEW `vn2008`.`warehouse_pickup` +AS SELECT + `wp`.`warehouseFk` AS `warehouse_id`, + `wp`.`agencyModeFk` AS `agency_id` +FROM + `vn`.`warehousePickup` `wp`; \ No newline at end of file diff --git a/db/versions/10836-limeCordyline/01-financialProductType.sql b/db/versions/10836-limeCordyline/01-financialProductType.sql new file mode 100644 index 000000000..c5d51e015 --- /dev/null +++ b/db/versions/10836-limeCordyline/01-financialProductType.sql @@ -0,0 +1 @@ +ALTER TABLE IF EXISTS `vn2008`.`financialProductType` RENAME `vn`.`financialProductType`; diff --git a/db/versions/10836-limeCordyline/02-flight.sql b/db/versions/10836-limeCordyline/02-flight.sql new file mode 100644 index 000000000..37849d037 --- /dev/null +++ b/db/versions/10836-limeCordyline/02-flight.sql @@ -0,0 +1,7 @@ +ALTER TABLE IF EXISTS `vn2008`.`flight` RENAME `vn`.`flight`; + +ALTER TABLE IF EXISTS `vn`.`flight` +CHANGE COLUMN IF EXISTS `flight_id` `id` varchar(10) NOT NULL, +CHANGE COLUMN IF EXISTS `airline_id` `airlineFk` smallint(2) unsigned DEFAULT NULL, +CHANGE COLUMN IF EXISTS `airport_out` `airportOutFk` varchar(3) NOT NULL, +CHANGE COLUMN IF EXISTS `airport_in` `airportInFk` varchar(3) NOT NULL; \ No newline at end of file diff --git a/db/versions/10836-limeCordyline/03-gastos_resumen.sql b/db/versions/10836-limeCordyline/03-gastos_resumen.sql new file mode 100644 index 000000000..bfec006fa --- /dev/null +++ b/db/versions/10836-limeCordyline/03-gastos_resumen.sql @@ -0,0 +1,17 @@ +ALTER TABLE IF EXISTS `vn2008`.`gastos_resumen` RENAME `vn`.`expenseSummary`; + +ALTER TABLE IF EXISTS `vn`.`expenseSummary` +CHANGE COLUMN IF EXISTS `Id_Gasto` `expenseFk` varchar(10) NOT NULL, +CHANGE COLUMN IF EXISTS `importe` `amount` decimal(10,2) DEFAULT NULL, +CHANGE COLUMN IF EXISTS `empresa_id` `companyFk` int(11) NOT NULL; + +ALTER TABLE IF EXISTS vn.expenseSummary COLLATE=utf8mb3_general_ci; + +ALTER TABLE IF EXISTS vn.expenseSummary MODIFY COLUMN expenseFk varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL; + +ALTER TABLE IF EXISTS vn.expenseSummary ADD CONSTRAINT expenseSummary_expense_FK FOREIGN KEY (expenseFk) REFERENCES vn.expense(id) ON DELETE CASCADE ON UPDATE CASCADE; + +ALTER TABLE IF EXISTS vn.expenseSummary MODIFY COLUMN companyFk int(10) unsigned NOT NULL; + +ALTER TABLE IF EXISTS vn.expenseSummary ADD CONSTRAINT expenseSummary_company_FK FOREIGN KEY (companyFk) REFERENCES vn.company(id) ON DELETE CASCADE ON UPDATE CASCADE; + diff --git a/db/versions/10836-limeCordyline/04-integra2.sql b/db/versions/10836-limeCordyline/04-integra2.sql new file mode 100644 index 000000000..663b28d78 --- /dev/null +++ b/db/versions/10836-limeCordyline/04-integra2.sql @@ -0,0 +1,10 @@ +ALTER TABLE IF EXISTS `vn2008`.`integra2` RENAME `vn`.`integra2`; + +ALTER TABLE IF EXISTS `vn`.`integra2` +CHANGE COLUMN IF EXISTS `postal_code` `postCode` varchar(10) NOT NULL, +CHANGE COLUMN IF EXISTS `frequency` `frequency` decimal(10,2) DEFAULT NULL, +CHANGE COLUMN IF EXISTS `warehouse_id` `warehouseFk` smallint(6) unsigned NOT NULL; + +ALTER TABLE IF EXISTS vn.integra2 ADD CONSTRAINT integra2_warehouse_FK +FOREIGN KEY (warehouseFk) REFERENCES vn.warehouse(id) ON DELETE CASCADE ON UPDATE CASCADE; + diff --git a/db/versions/10836-limeCordyline/05-integra2_province.sql b/db/versions/10836-limeCordyline/05-integra2_province.sql new file mode 100644 index 000000000..31f8f4156 --- /dev/null +++ b/db/versions/10836-limeCordyline/05-integra2_province.sql @@ -0,0 +1,4 @@ +ALTER TABLE IF EXISTS `vn2008`.`integra2_province` RENAME `vn`.`integra2Province`; +ALTER TABLE IF EXISTS `vn`.`integra2Province` +CHANGE COLUMN IF EXISTS `franquicia` `franchise` varchar(65) NOT NULL, +CHANGE COLUMN IF EXISTS `province_id` `provinceFk` smallint(6) unsigned NOT NULL; diff --git a/db/versions/10836-limeCordyline/06-intervalos__delete.sql b/db/versions/10836-limeCordyline/06-intervalos__delete.sql new file mode 100644 index 000000000..18d4f57ca --- /dev/null +++ b/db/versions/10836-limeCordyline/06-intervalos__delete.sql @@ -0,0 +1 @@ +DROP TABLE IF EXISTS vn2008.intervalos__; \ No newline at end of file diff --git a/db/versions/10836-limeCordyline/09-link.sql b/db/versions/10836-limeCordyline/09-link.sql new file mode 100644 index 000000000..a1a671270 --- /dev/null +++ b/db/versions/10836-limeCordyline/09-link.sql @@ -0,0 +1,11 @@ +ALTER TABLE IF EXISTS `vn2008`.`link` RENAME `vn`.`link`; + +ALTER TABLE IF EXISTS `vn`.`link` +CHANGE COLUMN IF EXISTS `Id_Cliente` `clientFk` int(11) NOT NULL, +CHANGE COLUMN IF EXISTS `Id_Proveedor` `supplierFk` int(11) NOT NULL; + +ALTER TABLE IF EXISTS vn.link MODIFY COLUMN supplierFk int(10) unsigned NOT NULL; + +ALTER TABLE IF EXISTS vn.link ADD CONSTRAINT link_client_FK FOREIGN KEY (clientFk) REFERENCES vn.client(id) ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE IF EXISTS vn.link ADD CONSTRAINT link_supplier_FK FOREIGN KEY (supplierFk) REFERENCES vn.supplier(id) ON DELETE CASCADE ON UPDATE CASCADE; + diff --git a/db/versions/10836-limeCordyline/10-mail_templates__delete.sql b/db/versions/10836-limeCordyline/10-mail_templates__delete.sql new file mode 100644 index 000000000..e30aae925 --- /dev/null +++ b/db/versions/10836-limeCordyline/10-mail_templates__delete.sql @@ -0,0 +1 @@ +DROP TABLE IF EXISTS vn2008.mail_templates__; diff --git a/db/versions/10836-limeCordyline/12-ticket_location__delete.sql b/db/versions/10836-limeCordyline/12-ticket_location__delete.sql new file mode 100644 index 000000000..a7dbbfb95 --- /dev/null +++ b/db/versions/10836-limeCordyline/12-ticket_location__delete.sql @@ -0,0 +1 @@ +DROP TABLE IF EXISTS vn2008.ticket_location__; \ No newline at end of file diff --git a/db/versions/10836-limeCordyline/13-turn__delete.sql b/db/versions/10836-limeCordyline/13-turn__delete.sql new file mode 100644 index 000000000..7aa69e57d --- /dev/null +++ b/db/versions/10836-limeCordyline/13-turn__delete.sql @@ -0,0 +1 @@ +DROP TABLE IF EXISTS vn2008.turn__; \ No newline at end of file diff --git a/db/versions/10836-limeCordyline/25-warehouse_pickup.sql b/db/versions/10836-limeCordyline/25-warehouse_pickup.sql new file mode 100644 index 000000000..1a2479a43 --- /dev/null +++ b/db/versions/10836-limeCordyline/25-warehouse_pickup.sql @@ -0,0 +1,5 @@ +ALTER TABLE IF EXISTS `vn2008`.`warehouse_pickup` RENAME `vn`.`warehousePickup`; + +ALTER TABLE IF EXISTS `vn`.`warehousePickup` +CHANGE COLUMN IF EXISTS `warehouse_id` `warehouseFk` smallint(5) unsigned NOT NULL, +CHANGE COLUMN IF EXISTS `agency_id` `agencyModeFk` int(11) DEFAULT NULL; \ No newline at end of file diff --git a/db/versions/10836-limeCordyline/29-kk.sql b/db/versions/10836-limeCordyline/29-kk.sql new file mode 100644 index 000000000..c21980da9 --- /dev/null +++ b/db/versions/10836-limeCordyline/29-kk.sql @@ -0,0 +1,155 @@ +ALTER TABLE IF EXISTS vn2008.template_bionic_component RENAME vn2008.template_bionic_component__; +ALTER TABLE IF EXISTS vn2008.template_bionic_component__ COMMENT='refs #6372 @deprecated 2023-11-28;'; + +ALTER TABLE IF EXISTS vn2008.template_bionic_lot RENAME vn2008.template_bionic_lot__; +ALTER TABLE IF EXISTS vn2008.template_bionic_lot__ COMMENT='refs #6372 @deprecated 2023-11-28;'; + +ALTER TABLE IF EXISTS vn2008.template_bionic_price RENAME vn2008.template_bionic_price__; +ALTER TABLE IF EXISTS vn2008.template_bionic_price__ COMMENT='refs #6372 @deprecated 2023-11-28;'; + +ALTER TABLE IF EXISTS vn2008.tmpNEWTARIFAS RENAME vn2008.tmpNEWTARIFAS__; +ALTER TABLE IF EXISTS vn2008.tmpNEWTARIFAS__ COMMENT='refs #6372 @deprecated 2023-11-28;'; + +ALTER TABLE IF EXISTS vn2008.unaryScanFilter RENAME vn2008.unaryScanFilter__; +ALTER TABLE IF EXISTS vn2008.unaryScanFilter__ COMMENT='refs #6372 @deprecated 2023-11-28;'; + +ALTER TABLE IF EXISTS vn2008.unary_source RENAME vn2008.unary_source__; +ALTER TABLE IF EXISTS vn2008.unary_source__ COMMENT='refs #6372 @deprecated 2023-11-28;'; + +ALTER TABLE IF EXISTS vn2008.viaxpress RENAME vn2008.viaxpress__; +ALTER TABLE IF EXISTS vn2008.viaxpress__ COMMENT='refs #6372 @deprecated 2023-11-28;'; + +ALTER TABLE IF EXISTS vn2008.warehouse_filtro RENAME vn2008.warehouse_filtro__; +ALTER TABLE IF EXISTS vn2008.warehouse_filtro__ COMMENT='refs #6372 @deprecated 2023-11-28;'; + +ALTER TABLE IF EXISTS vn2008.warehouse_group RENAME vn2008.warehouse_group__; +ALTER TABLE IF EXISTS vn2008.warehouse_group__ COMMENT='refs #6372 @deprecated 2023-11-28;'; + +ALTER TABLE IF EXISTS vn2008.warehouse_joined RENAME vn2008.warehouse_joined__; +ALTER TABLE IF EXISTS vn2008.warehouse_joined__ COMMENT='refs #6372 @deprecated 2023-11-28;'; + +ALTER TABLE IF EXISTS vn2008.warehouse_lc RENAME vn2008.warehouse_lc__; +ALTER TABLE IF EXISTS vn2008.warehouse_lc__ COMMENT='refs #6372 @deprecated 2023-11-28;'; + +ALTER TABLE IF EXISTS vn2008.wh_selection RENAME vn2008.wh_selection__; +ALTER TABLE IF EXISTS vn2008.wh_selection__ COMMENT='refs #6372 @deprecated 2023-11-28;'; + +ALTER TABLE IF EXISTS vn2008.trolley RENAME vn2008.trolley__; +ALTER TABLE IF EXISTS vn2008.trolley__ COMMENT='refs #6372 @deprecated 2023-12-13;'; + +ALTER TABLE IF EXISTS vn2008.zones RENAME vn2008.zones__; +ALTER TABLE IF EXISTS vn2008.zones__ COMMENT='refs #6372 @deprecated 2023-12-13;'; + +ALTER TABLE IF EXISTS vn2008.tblIVA RENAME vn2008.tblIVA__; +ALTER TABLE IF EXISTS vn2008.tblIVA__ COMMENT='refs #6372 @deprecated 2023-12-13;'; + +ALTER TABLE IF EXISTS vn2008.filtros RENAME vn2008.filtros__; +ALTER TABLE IF EXISTS vn2008.filtros__ COMMENT='refs #6372 @deprecated 2023-11-21;'; + +ALTER TABLE IF EXISTS vn2008.form_query RENAME vn2008.form_query__; +ALTER TABLE IF EXISTS vn2008.form_query__ COMMENT='refs #6372 @deprecated 2023-11-21;'; + +ALTER TABLE IF EXISTS vn2008.guillen RENAME vn2008.guillen__; +ALTER TABLE IF EXISTS vn2008.guillen__ COMMENT='refs #6372 @deprecated 2023-11-28;'; + +ALTER TABLE IF EXISTS vn2008.guillen_carry RENAME vn2008.guillen_carry__; +ALTER TABLE IF EXISTS vn2008.guillen_carry__ COMMENT='refs #6372 @deprecated 2023-11-28;'; + +ALTER TABLE IF EXISTS vn2008.integra2_escala RENAME vn2008.integra2_escala__; +ALTER TABLE IF EXISTS vn2008.integra2_escala__ COMMENT='refs #6372 @deprecated 2023-11-28;'; + +ALTER TABLE IF EXISTS vn2008.invoice_observation RENAME vn2008.invoice_observation__; +ALTER TABLE IF EXISTS vn2008.invoice_observation__ COMMENT='refs #6372 @deprecated 2023-11-28;'; + +ALTER TABLE IF EXISTS vn2008.nichos RENAME vn2008.nichos__; +ALTER TABLE IF EXISTS vn2008.nichos__ COMMENT='refs #6372 @deprecated 2023-11-28;'; + +ALTER TABLE IF EXISTS vn2008.payroll_bonificaciones RENAME vn2008.payroll_bonificaciones__; +ALTER TABLE IF EXISTS vn2008.payroll_bonificaciones__ COMMENT='refs #6372 @deprecated 2023-11-28;'; + +ALTER TABLE IF EXISTS vn2008.payroll_daRENAMEs RENAME vn2008.payroll_daRENAMEs__; +ALTER TABLE IF EXISTS vn2008.payroll_daRENAMEs__ COMMENT='refs #6372 @deprecated 2023-11-28;'; + +ALTER TABLE IF EXISTS vn2008.payroll_embargos RENAME vn2008.payroll_embargos__; +ALTER TABLE IF EXISTS vn2008.payroll_embargos__ COMMENT='refs #6372 @deprecated 2023-11-28;'; + +ALTER TABLE IF EXISTS vn2008.payroll_tipobasess RENAME vn2008.payroll_tipobasess__; +ALTER TABLE IF EXISTS vn2008.payroll_tipobasess__ COMMENT='refs #6372 @deprecated 2023-11-28;'; + +ALTER TABLE IF EXISTS vn2008.preparation_exception RENAME vn2008.preparation_exception__; +ALTER TABLE IF EXISTS vn2008.preparation_exception__ COMMENT='refs #6372 @deprecated 2023-11-28;'; + +ALTER TABLE IF EXISTS vn2008.payrroll_apEmpresarial RENAME vn2008.payrroll_apEmpresarial__; +ALTER TABLE IF EXISTS vn2008.payrroll_apEmpresarial__ COMMENT='refs #6372 @deprecated 2023-11-28;'; + +ALTER TABLE IF EXISTS vn2008.rec_translaRENAMEr RENAME vn2008.rec_translaRENAMEr__; +ALTER TABLE IF EXISTS vn2008.rec_translaRENAMEr__ COMMENT='refs #6372 @deprecated 2023-11-28;'; + +ALTER TABLE IF EXISTS vn2008.recibida_agricola RENAME vn2008.recibida_agricola__; +ALTER TABLE IF EXISTS vn2008.recibida_agricola__ COMMENT='refs #6372 @deprecated 2023-11-28;'; + +ALTER TABLE IF EXISTS vn2008.rounding RENAME vn2008.rounding__; +ALTER TABLE IF EXISTS vn2008.rounding__ COMMENT='refs #6372 @deprecated 2023-11-28;'; + +ALTER TABLE IF EXISTS vn2008.scanTree RENAME vn2008.scanTree__; +ALTER TABLE IF EXISTS vn2008.scanTree__ COMMENT='refs #6372 @deprecated 2023-11-28;'; + +ALTER TABLE IF EXISTS vn2008.sort_merge_results_ernesRENAME RENAME vn2008.sort_merge_results_ernesRENAME__; +ALTER TABLE IF EXISTS vn2008.sort_merge_results_ernesRENAME__ COMMENT='refs #6372 @deprecated 2023-11-28;'; + +ALTER TABLE IF EXISTS vn2008.route RENAME vn2008.route__; +ALTER TABLE IF EXISTS vn2008.route__ COMMENT='refs #6372 @deprecated 2023-11-28;'; + +ALTER TABLE IF EXISTS vn2008.travel_reserve RENAME vn2008.travel_reserve__; +ALTER TABLE IF EXISTS vn2008.travel_reserve__ COMMENT='refs #6372 @deprecated 2023-12-13;'; + +ALTER TABLE IF EXISTS vn2008.wks RENAME vn2008.wks__; +ALTER TABLE IF EXISTS vn2008.wks__ COMMENT='refs #6372 @deprecated 2023-12-13;'; + +ALTER TABLE IF EXISTS vn2008.unary RENAME vn2008.unary__; +ALTER TABLE IF EXISTS vn2008.unary__ COMMENT='refs #6372 @deprecated 2023-12-13;'; + +ALTER TABLE IF EXISTS vn2008.unary_scan RENAME vn2008.unary_scan__; +ALTER TABLE IF EXISTS vn2008.unary_scan__ COMMENT='refs #6372 @deprecated 2023-12-13;'; + +ALTER TABLE IF EXISTS vn2008.unary_scan_line RENAME vn2008.unary_scan_line__; +ALTER TABLE IF EXISTS vn2008.unary_scan_line__ COMMENT='refs #6372 @deprecated 2023-12-13;'; + +ALTER TABLE IF EXISTS vn2008.unary_scan_line_buy RENAME vn2008.unary_scan_line_buy__; +ALTER TABLE IF EXISTS vn2008.unary_scan_line_buy__ COMMENT='refs #6372 @deprecated 2023-12-13;'; + +ALTER TABLE IF EXISTS vn2008.unary_scan_line_expedition RENAME vn2008.unary_scan_line_expedition__; +ALTER TABLE IF EXISTS vn2008.unary_scan_line_expedition__ COMMENT='refs #6372 @deprecated 2023-12-13;'; + +ALTER TABLE IF EXISTS vn2008.widget RENAME vn2008.widget__; +ALTER TABLE IF EXISTS vn2008.widget__ COMMENT='refs #6372 @deprecated 2023-12-13;'; + +ALTER TABLE IF EXISTS vn2008.scan RENAME vn2008.scan__; +ALTER TABLE IF EXISTS vn2008.scan__ COMMENT='refs #6372 @deprecated 2023-12-13;'; + +ALTER TABLE IF EXISTS vn2008.scan_line RENAME vn2008.scan_line__; +ALTER TABLE IF EXISTS vn2008.scan_line__ COMMENT='refs #6372 @deprecated 2023-12-13;'; + +ALTER TABLE IF EXISTS vn2008.tipsa RENAME vn2008.tipsa__; +ALTER TABLE IF EXISTS vn2008.tipsa__ COMMENT='refs #6372 @deprecated 2023-12-13;'; + +ALTER TABLE IF EXISTS vn2008.payroll_basess RENAME vn2008.payroll_basess__; +ALTER TABLE IF EXISTS vn2008.payroll_basess__ COMMENT='refs #6372 @deprecated 2023-12-13;'; + +ALTER TABLE IF EXISTS vn2008.movement_label RENAME vn2008.movement_label__; +ALTER TABLE IF EXISTS vn2008.movement_label__ COMMENT='refs #6372 @deprecated 2023-12-13;'; + +ALTER TABLE IF EXISTS vn2008.pago_sdc RENAME vn2008.pago_sdc__; +ALTER TABLE IF EXISTS vn2008.pago_sdc__ COMMENT='refs #6372 @deprecated 2023-12-13;'; + +ALTER TABLE IF EXISTS vn2008.transport RENAME vn2008.transport__; +ALTER TABLE IF EXISTS vn2008.transport__ COMMENT='refs #6372 @deprecated 2023-12-13;'; + +ALTER TABLE IF EXISTS vn2008.travel_pattern RENAME vn2008.travel_pattern__; +ALTER TABLE IF EXISTS vn2008.travel_pattern__ COMMENT='refs #6372 @deprecated 2023-12-13;'; + +ALTER TABLE IF EXISTS vn2008.jerarquia RENAME vn2008.jerarquia__; +ALTER TABLE IF EXISTS vn2008.jerarquia__ COMMENT='refs #6372 @deprecated 2023-12-13;'; + +ALTER TABLE IF EXISTS vn2008.language RENAME vn2008.language__; +ALTER TABLE IF EXISTS vn2008.language__ COMMENT='refs #6372 @deprecated 2023-12-13;'; diff --git a/db/versions/10836-limeCordyline/30-permissions.sql b/db/versions/10836-limeCordyline/30-permissions.sql new file mode 100644 index 000000000..c27ee1e88 --- /dev/null +++ b/db/versions/10836-limeCordyline/30-permissions.sql @@ -0,0 +1,36 @@ +-- flight +CREATE OR REPLACE DEFINER=`root`@`localhost` + SQL SECURITY DEFINER +VIEW `vn2008`.`flight` AS + SELECT 1; +GRANT SELECT, INSERT, UPDATE ON TABLE vn2008.flight TO `logistic`; +GRANT SELECT, INSERT, UPDATE ON TABLE vn.flight TO `logistic`; +-- integra2_province +CREATE OR REPLACE DEFINER=`root`@`localhost` + SQL SECURITY DEFINER +VIEW `vn2008`.`integra2_province` AS + SELECT 1; +GRANT SELECT ON TABLE vn2008.integra2_province TO `employee`; +GRANT SELECT ON TABLE vn.integra2Province TO `employee`; +-- link +CREATE OR REPLACE DEFINER=`root`@`localhost` + SQL SECURITY DEFINER +VIEW `vn2008`.`link` AS + SELECT 1; +GRANT SELECT ON TABLE vn2008.link TO `administrative`; +GRANT SELECT ON TABLE vn.link TO `administrative`; +GRANT SELECT ON TABLE vn2008.link TO `hr`; +GRANT SELECT ON TABLE vn.link TO `hr`; +-- warehouse_pickup +CREATE OR REPLACE DEFINER=`root`@`localhost` + SQL SECURITY DEFINER +VIEW `vn2008`.`warehouse_pickup` AS + SELECT 1; +GRANT SELECT ON TABLE vn2008.warehouse_pickup TO `logistic`; +GRANT SELECT ON TABLE vn.warehousePickup TO `logistic`; +GRANT SELECT ON TABLE vn2008.warehouse_pickup TO `claimManager`; +GRANT SELECT ON TABLE vn.warehousePickup TO `claimManager`; +GRANT SELECT ON TABLE vn2008.warehouse_pickup TO `employee`; +GRANT SELECT ON TABLE vn.warehousePickup TO `employee`; +GRANT SELECT ON TABLE vn2008.warehouse_pickup TO `deliveryAssistant`; +GRANT SELECT ON TABLE vn.warehousePickup TO `deliveryAssistant`; From abbda268f5b3e7d91adae658d0df0e82c95db08a Mon Sep 17 00:00:00 2001 From: davidd Date: Mon, 29 Jan 2024 09:18:11 +0100 Subject: [PATCH 02/24] refs #6372 feat: vn2008 to vn --- db/dump/fixtures.after.sql | 3 --- 1 file changed, 3 deletions(-) diff --git a/db/dump/fixtures.after.sql b/db/dump/fixtures.after.sql index 57ccb8626..c8ed8a84a 100644 --- a/db/dump/fixtures.after.sql +++ b/db/dump/fixtures.after.sql @@ -139,9 +139,6 @@ INSERT INTO vn.ticket (clientFk, warehouseFk, shipped, nickname, refFk, addressF INSERT INTO vn.sale (itemFk, ticketFk, concept, quantity, originalQuantity, price, discount, priceFixed, reserved, isPicked, isPriceFixed, created, isAdded) VALUES (1, 24, 'Ranged weapon longbow 2m', 1.00, NULL, 8.07, 0, 0.00, 0, 0, 0, '2022-07-06 00:00:00', 0); */ -INSERT INTO vn2008.zones (zone_id,name,printingOrder) - VALUES (1,'zone Test',1); - -- XXX: lab INSERT INTO `vn`.`businessReasonEnd` (`id`, `reason`) From bad00167fa4224169b3685e94386bc72d59e4574 Mon Sep 17 00:00:00 2001 From: davidd Date: Wed, 31 Jan 2024 14:50:56 +0100 Subject: [PATCH 03/24] refs #6372 feat: vn2008 to vn --- db/routines/vn2008/views/flight.sql | 6 +++--- db/versions/10836-limeCordyline/02-flight.sql | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/db/routines/vn2008/views/flight.sql b/db/routines/vn2008/views/flight.sql index e671801c0..2df5362f7 100644 --- a/db/routines/vn2008/views/flight.sql +++ b/db/routines/vn2008/views/flight.sql @@ -4,10 +4,10 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` AS SELECT `f`.`id` AS `flight_id`, `f`.`duration` AS `duration`, - `f`.`route` AS `route`, + `f`.`flightPath` AS `route`, `f`.`days` AS `days`, `f`.`airlineFk` AS `airline_id`, - `f`.`airportOutFk` AS `airport_out`, - `f`.`airportInFk` AS `airport_in` + `f`.`airportArrivalFk` AS `airport_out`, + `f`.`airportDepartureFk` AS `airport_in` FROM `vn`.`flight` `f`; \ No newline at end of file diff --git a/db/versions/10836-limeCordyline/02-flight.sql b/db/versions/10836-limeCordyline/02-flight.sql index 37849d037..657fa2aa1 100644 --- a/db/versions/10836-limeCordyline/02-flight.sql +++ b/db/versions/10836-limeCordyline/02-flight.sql @@ -3,5 +3,6 @@ ALTER TABLE IF EXISTS `vn2008`.`flight` RENAME `vn`.`flight`; ALTER TABLE IF EXISTS `vn`.`flight` CHANGE COLUMN IF EXISTS `flight_id` `id` varchar(10) NOT NULL, CHANGE COLUMN IF EXISTS `airline_id` `airlineFk` smallint(2) unsigned DEFAULT NULL, -CHANGE COLUMN IF EXISTS `airport_out` `airportOutFk` varchar(3) NOT NULL, -CHANGE COLUMN IF EXISTS `airport_in` `airportInFk` varchar(3) NOT NULL; \ No newline at end of file +CHANGE COLUMN IF EXISTS `route` `flightPath` varchar(20) DEFAULT NULL, +CHANGE COLUMN IF EXISTS `airport_out` `airportArrivalFk` varchar(3) NOT NULL, +CHANGE COLUMN IF EXISTS `airport_in` `airportDepartureFk` varchar(3) NOT NULL; \ No newline at end of file From b7bb1b97847885c24502645a9f01c9454014536f Mon Sep 17 00:00:00 2001 From: davidd Date: Tue, 6 Feb 2024 07:37:33 +0100 Subject: [PATCH 04/24] refs #6372 feat: vn2008 to vn --- db/routines/vn2008/views/link.sql | 8 -------- db/versions/10836-limeCordyline/09-link.sql | 11 ----------- db/versions/10836-limeCordyline/29-kk.sql | 3 +++ db/versions/10836-limeCordyline/30-permissions.sql | 12 ++++-------- 4 files changed, 7 insertions(+), 27 deletions(-) delete mode 100644 db/routines/vn2008/views/link.sql delete mode 100644 db/versions/10836-limeCordyline/09-link.sql diff --git a/db/routines/vn2008/views/link.sql b/db/routines/vn2008/views/link.sql deleted file mode 100644 index f5fb9bd2b..000000000 --- a/db/routines/vn2008/views/link.sql +++ /dev/null @@ -1,8 +0,0 @@ -CREATE OR REPLACE DEFINER=`root`@`localhost` - SQL SECURITY DEFINER - VIEW `vn2008`.`link` -AS SELECT - `l`.`clientFk` AS `Id_Cliente`, - `l`.`supplierFk` AS `Id_Proveedor` -FROM - `vn`.`link` `l`; \ No newline at end of file diff --git a/db/versions/10836-limeCordyline/09-link.sql b/db/versions/10836-limeCordyline/09-link.sql deleted file mode 100644 index a1a671270..000000000 --- a/db/versions/10836-limeCordyline/09-link.sql +++ /dev/null @@ -1,11 +0,0 @@ -ALTER TABLE IF EXISTS `vn2008`.`link` RENAME `vn`.`link`; - -ALTER TABLE IF EXISTS `vn`.`link` -CHANGE COLUMN IF EXISTS `Id_Cliente` `clientFk` int(11) NOT NULL, -CHANGE COLUMN IF EXISTS `Id_Proveedor` `supplierFk` int(11) NOT NULL; - -ALTER TABLE IF EXISTS vn.link MODIFY COLUMN supplierFk int(10) unsigned NOT NULL; - -ALTER TABLE IF EXISTS vn.link ADD CONSTRAINT link_client_FK FOREIGN KEY (clientFk) REFERENCES vn.client(id) ON DELETE CASCADE ON UPDATE CASCADE; -ALTER TABLE IF EXISTS vn.link ADD CONSTRAINT link_supplier_FK FOREIGN KEY (supplierFk) REFERENCES vn.supplier(id) ON DELETE CASCADE ON UPDATE CASCADE; - diff --git a/db/versions/10836-limeCordyline/29-kk.sql b/db/versions/10836-limeCordyline/29-kk.sql index c21980da9..9ec27358f 100644 --- a/db/versions/10836-limeCordyline/29-kk.sql +++ b/db/versions/10836-limeCordyline/29-kk.sql @@ -153,3 +153,6 @@ ALTER TABLE IF EXISTS vn2008.jerarquia__ COMMENT='refs #6372 @deprecated 2023-12 ALTER TABLE IF EXISTS vn2008.language RENAME vn2008.language__; ALTER TABLE IF EXISTS vn2008.language__ COMMENT='refs #6372 @deprecated 2023-12-13;'; + +ALTER TABLE IF EXISTS vn2008.link RENAME vn2008.link__; +ALTER TABLE IF EXISTS vn2008.link__ COMMENT='refs #6372 @deprecated 2023-12-13;'; diff --git a/db/versions/10836-limeCordyline/30-permissions.sql b/db/versions/10836-limeCordyline/30-permissions.sql index c27ee1e88..fd7c6c58e 100644 --- a/db/versions/10836-limeCordyline/30-permissions.sql +++ b/db/versions/10836-limeCordyline/30-permissions.sql @@ -13,14 +13,10 @@ VIEW `vn2008`.`integra2_province` AS GRANT SELECT ON TABLE vn2008.integra2_province TO `employee`; GRANT SELECT ON TABLE vn.integra2Province TO `employee`; -- link -CREATE OR REPLACE DEFINER=`root`@`localhost` - SQL SECURITY DEFINER -VIEW `vn2008`.`link` AS - SELECT 1; -GRANT SELECT ON TABLE vn2008.link TO `administrative`; -GRANT SELECT ON TABLE vn.link TO `administrative`; -GRANT SELECT ON TABLE vn2008.link TO `hr`; -GRANT SELECT ON TABLE vn.link TO `hr`; + +GRANT SELECT ON TABLE vn.company TO `administrative`; +GRANT SELECT ON TABLE vn.company TO `hr`; + -- warehouse_pickup CREATE OR REPLACE DEFINER=`root`@`localhost` SQL SECURITY DEFINER From b712b65d76cd3eb8e41bb52a1fd57439073119ba Mon Sep 17 00:00:00 2001 From: davidd Date: Mon, 12 Feb 2024 07:44:40 +0100 Subject: [PATCH 05/24] refs #6372 --- db/routines/vn/triggers/movementLabel_afterUpdate.sql | 8 ++++++++ db/routines/vn2008/views/movement_label.sql | 10 ++++++++++ db/versions/10836-limeCordyline/14-movement_label.sql | 6 ++++++ db/versions/10836-limeCordyline/29-kk.sql | 3 --- 4 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 db/routines/vn/triggers/movementLabel_afterUpdate.sql create mode 100644 db/routines/vn2008/views/movement_label.sql create mode 100644 db/versions/10836-limeCordyline/14-movement_label.sql diff --git a/db/routines/vn/triggers/movementLabel_afterUpdate.sql b/db/routines/vn/triggers/movementLabel_afterUpdate.sql new file mode 100644 index 000000000..cef8e2b43 --- /dev/null +++ b/db/routines/vn/triggers/movementLabel_afterUpdate.sql @@ -0,0 +1,8 @@ +DELIMITER $$ +CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`movementLabel_afterUpdate` + AFTER UPDATE ON `vn`.`movementLabel` + FOR EACH ROW +IF NEW.stem >= (SELECT s.quantity FROM sale s WHERE s.id = NEW.saleFk) THEN + UPDATE sale s SET s.isPicked = 1 WHERE s.id = NEW.saleFk; +END IF$$ +DELIMITER ; \ No newline at end of file diff --git a/db/routines/vn2008/views/movement_label.sql b/db/routines/vn2008/views/movement_label.sql new file mode 100644 index 000000000..738750507 --- /dev/null +++ b/db/routines/vn2008/views/movement_label.sql @@ -0,0 +1,10 @@ +CREATE OR REPLACE DEFINER=`root`@`localhost` + SQL SECURITY DEFINER + VIEW `vn2008`.`movement_label` +AS SELECT + `m`.`saleFk` AS `Id_movimiento`, + `m`.`label`, + `m`.`stem`, + `m`.`created` +FROM + `vn`.`movementLabel` `m`; \ No newline at end of file diff --git a/db/versions/10836-limeCordyline/14-movement_label.sql b/db/versions/10836-limeCordyline/14-movement_label.sql new file mode 100644 index 000000000..bb762e1ba --- /dev/null +++ b/db/versions/10836-limeCordyline/14-movement_label.sql @@ -0,0 +1,6 @@ +DROP TRIGGER IF EXISTS `vn2008`.`movement_label_au`; + +ALTER TABLE IF EXISTS `vn2008`.`movement_label` RENAME `vn`.`movementLabel`; + +ALTER TABLE IF EXISTS `vn`.`movementLabel` +CHANGE COLUMN IF EXISTS `Id_movimiento` `saleFk` int(11) NOT NULL; diff --git a/db/versions/10836-limeCordyline/29-kk.sql b/db/versions/10836-limeCordyline/29-kk.sql index 9ec27358f..4683ae8a1 100644 --- a/db/versions/10836-limeCordyline/29-kk.sql +++ b/db/versions/10836-limeCordyline/29-kk.sql @@ -136,9 +136,6 @@ ALTER TABLE IF EXISTS vn2008.tipsa__ COMMENT='refs #6372 @deprecated 2023-12-13; ALTER TABLE IF EXISTS vn2008.payroll_basess RENAME vn2008.payroll_basess__; ALTER TABLE IF EXISTS vn2008.payroll_basess__ COMMENT='refs #6372 @deprecated 2023-12-13;'; -ALTER TABLE IF EXISTS vn2008.movement_label RENAME vn2008.movement_label__; -ALTER TABLE IF EXISTS vn2008.movement_label__ COMMENT='refs #6372 @deprecated 2023-12-13;'; - ALTER TABLE IF EXISTS vn2008.pago_sdc RENAME vn2008.pago_sdc__; ALTER TABLE IF EXISTS vn2008.pago_sdc__ COMMENT='refs #6372 @deprecated 2023-12-13;'; From e1567dfb9e2fd64b35c89df60e52fea03014fb84 Mon Sep 17 00:00:00 2001 From: davidd Date: Mon, 12 Feb 2024 11:20:12 +0100 Subject: [PATCH 06/24] refs #6372 --- db/routines/vn2008/procedures/clean.sql | 1 - db/versions/10836-limeCordyline/29-kk.sql | 12 ++++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/db/routines/vn2008/procedures/clean.sql b/db/routines/vn2008/procedures/clean.sql index bd8a324c6..eaaa22c3f 100644 --- a/db/routines/vn2008/procedures/clean.sql +++ b/db/routines/vn2008/procedures/clean.sql @@ -53,7 +53,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; diff --git a/db/versions/10836-limeCordyline/29-kk.sql b/db/versions/10836-limeCordyline/29-kk.sql index 4683ae8a1..201a1c806 100644 --- a/db/versions/10836-limeCordyline/29-kk.sql +++ b/db/versions/10836-limeCordyline/29-kk.sql @@ -67,8 +67,8 @@ ALTER TABLE IF EXISTS vn2008.nichos__ COMMENT='refs #6372 @deprecated 2023-11-28 ALTER TABLE IF EXISTS vn2008.payroll_bonificaciones RENAME vn2008.payroll_bonificaciones__; ALTER TABLE IF EXISTS vn2008.payroll_bonificaciones__ COMMENT='refs #6372 @deprecated 2023-11-28;'; -ALTER TABLE IF EXISTS vn2008.payroll_daRENAMEs RENAME vn2008.payroll_daRENAMEs__; -ALTER TABLE IF EXISTS vn2008.payroll_daRENAMEs__ COMMENT='refs #6372 @deprecated 2023-11-28;'; +ALTER TABLE IF EXISTS vn2008.payroll_datos RENAME vn2008.payroll_datos__; +ALTER TABLE IF EXISTS vn2008.payroll_datos__ COMMENT='refs #6372 @deprecated 2023-11-28;'; ALTER TABLE IF EXISTS vn2008.payroll_embargos RENAME vn2008.payroll_embargos__; ALTER TABLE IF EXISTS vn2008.payroll_embargos__ COMMENT='refs #6372 @deprecated 2023-11-28;'; @@ -82,8 +82,8 @@ ALTER TABLE IF EXISTS vn2008.preparation_exception__ COMMENT='refs #6372 @deprec ALTER TABLE IF EXISTS vn2008.payrroll_apEmpresarial RENAME vn2008.payrroll_apEmpresarial__; ALTER TABLE IF EXISTS vn2008.payrroll_apEmpresarial__ COMMENT='refs #6372 @deprecated 2023-11-28;'; -ALTER TABLE IF EXISTS vn2008.rec_translaRENAMEr RENAME vn2008.rec_translaRENAMEr__; -ALTER TABLE IF EXISTS vn2008.rec_translaRENAMEr__ COMMENT='refs #6372 @deprecated 2023-11-28;'; +ALTER TABLE IF EXISTS vn2008.rec_translator RENAME vn2008.rec_translator__; +ALTER TABLE IF EXISTS vn2008.rec_translator__ COMMENT='refs #6372 @deprecated 2023-11-28;'; ALTER TABLE IF EXISTS vn2008.recibida_agricola RENAME vn2008.recibida_agricola__; ALTER TABLE IF EXISTS vn2008.recibida_agricola__ COMMENT='refs #6372 @deprecated 2023-11-28;'; @@ -94,8 +94,8 @@ ALTER TABLE IF EXISTS vn2008.rounding__ COMMENT='refs #6372 @deprecated 2023-11- ALTER TABLE IF EXISTS vn2008.scanTree RENAME vn2008.scanTree__; ALTER TABLE IF EXISTS vn2008.scanTree__ COMMENT='refs #6372 @deprecated 2023-11-28;'; -ALTER TABLE IF EXISTS vn2008.sort_merge_results_ernesRENAME RENAME vn2008.sort_merge_results_ernesRENAME__; -ALTER TABLE IF EXISTS vn2008.sort_merge_results_ernesRENAME__ COMMENT='refs #6372 @deprecated 2023-11-28;'; +ALTER TABLE IF EXISTS vn2008.sort_merge_results_ernesto RENAME vn2008.sort_merge_results_ernesto__; +ALTER TABLE IF EXISTS vn2008.sort_merge_results_ernesto__ COMMENT='refs #6372 @deprecated 2023-11-28;'; ALTER TABLE IF EXISTS vn2008.route RENAME vn2008.route__; ALTER TABLE IF EXISTS vn2008.route__ COMMENT='refs #6372 @deprecated 2023-11-28;'; From 37a47edfdc1ef9fa67ab5cf52cf7b0aa653ec74f Mon Sep 17 00:00:00 2001 From: davidd Date: Mon, 12 Feb 2024 12:25:58 +0100 Subject: [PATCH 07/24] refs #6372 --- .../vn/functions/isPalletHomogeneus.sql | 27 ------------------- .../vn/views/exchangeInsuranceInPrevious.sql | 9 ------- db/routines/vn/views/unaryScanLineBuy.sql | 6 ----- .../vn/views/unaryScanLineExpedition.sql | 6 ----- db/routines/vn2008/views/pago_sdc.sql | 16 +++++++++++ .../10836-limeCordyline/15-pago_sdc.sql | 11 ++++++++ 6 files changed, 27 insertions(+), 48 deletions(-) delete mode 100644 db/routines/vn/functions/isPalletHomogeneus.sql delete mode 100644 db/routines/vn/views/exchangeInsuranceInPrevious.sql delete mode 100644 db/routines/vn/views/unaryScanLineBuy.sql delete mode 100644 db/routines/vn/views/unaryScanLineExpedition.sql create mode 100644 db/routines/vn2008/views/pago_sdc.sql create mode 100644 db/versions/10836-limeCordyline/15-pago_sdc.sql diff --git a/db/routines/vn/functions/isPalletHomogeneus.sql b/db/routines/vn/functions/isPalletHomogeneus.sql deleted file mode 100644 index 39c6461ae..000000000 --- a/db/routines/vn/functions/isPalletHomogeneus.sql +++ /dev/null @@ -1,27 +0,0 @@ -DELIMITER $$ -CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `vn`.`isPalletHomogeneus`(vExpedition INT) - RETURNS tinyint(1) - NOT DETERMINISTIC - 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 vn2008.expeditions e ON e.expeditions_id = sl.code - JOIN vn2008.Tickets t ON t.Id_Ticket = e.ticket_id - WHERE sl.scan_id = vScanId - AND t.Id_Ruta - ) t1; - - RETURN vDistinctRoutesInThePallet = 1; -END$$ -DELIMITER ; diff --git a/db/routines/vn/views/exchangeInsuranceInPrevious.sql b/db/routines/vn/views/exchangeInsuranceInPrevious.sql deleted file mode 100644 index 097728bc7..000000000 --- a/db/routines/vn/views/exchangeInsuranceInPrevious.sql +++ /dev/null @@ -1,9 +0,0 @@ -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' diff --git a/db/routines/vn/views/unaryScanLineBuy.sql b/db/routines/vn/views/unaryScanLineBuy.sql deleted file mode 100644 index 26f178a45..000000000 --- a/db/routines/vn/views/unaryScanLineBuy.sql +++ /dev/null @@ -1,6 +0,0 @@ -CREATE OR REPLACE DEFINER=`root`@`localhost` - SQL SECURITY DEFINER - VIEW `vn`.`unaryScanLineBuy` -AS SELECT `u`.`scan_line_id` AS `unaryScanLineFk`, - `u`.`Id_Article` AS `itemFk` -FROM `vn2008`.`unary_scan_line_buy` `u` diff --git a/db/routines/vn/views/unaryScanLineExpedition.sql b/db/routines/vn/views/unaryScanLineExpedition.sql deleted file mode 100644 index e71c2423e..000000000 --- a/db/routines/vn/views/unaryScanLineExpedition.sql +++ /dev/null @@ -1,6 +0,0 @@ -CREATE OR REPLACE DEFINER=`root`@`localhost` - SQL SECURITY DEFINER - VIEW `vn`.`unaryScanLineExpedition` -AS SELECT `u`.`scan_line_id` AS `unaryScanLineFk`, - `u`.`expedition_id` AS `expeditionFk` -FROM `vn2008`.`unary_scan_line_expedition` `u` diff --git a/db/routines/vn2008/views/pago_sdc.sql b/db/routines/vn2008/views/pago_sdc.sql new file mode 100644 index 000000000..0fb6a172d --- /dev/null +++ b/db/routines/vn2008/views/pago_sdc.sql @@ -0,0 +1,16 @@ +CREATE OR REPLACE DEFINER=`root`@`localhost` + SQL SECURITY DEFINER + VIEW `vn2008`.`pago_sdc` +AS SELECT `ei`.`id` AS `pago_sdc_id`, + `ei`.`amount` AS `importe`, + `ei`.`dated` AS `fecha`, + `ei`.`finished` 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` \ No newline at end of file diff --git a/db/versions/10836-limeCordyline/15-pago_sdc.sql b/db/versions/10836-limeCordyline/15-pago_sdc.sql new file mode 100644 index 000000000..3225e2c4d --- /dev/null +++ b/db/versions/10836-limeCordyline/15-pago_sdc.sql @@ -0,0 +1,11 @@ +DROP VIEW IF EXISTS `vn`.`exchangeInsurance`; + +ALTER TABLE IF EXISTS `vn2008`.`pago_sdc` RENAME `vn`.`exchangeInsurance`; + +ALTER TABLE IF EXISTS `vn`.`exchangeInsurance` +CHANGE COLUMN IF EXISTS `pago_sdc_id` `id` int(11) NOT NULL AUTO_INCREMENT, +CHANGE COLUMN IF EXISTS `importe` `amount` decimal(10,2) NOT NULL, +CHANGE COLUMN IF EXISTS `fecha` `dated` date NOT NULL, +CHANGE COLUMN IF EXISTS `vencimiento` `finished` date NOT NULL, +CHANGE COLUMN IF EXISTS `entity_id` `entityFk` int(10) unsigned NOT NULL, +CHANGE COLUMN IF EXISTS `empresa_id` `companyFk`int(10) unsigned NOT NULL DEFAULT 442; From fd785ee429bbfe5d1bbeb6cd137a0becb1d12352 Mon Sep 17 00:00:00 2001 From: davidd Date: Wed, 14 Feb 2024 11:01:37 +0100 Subject: [PATCH 08/24] refs #6372 --- db/routines/vn/triggers/movementLabel_afterUpdate.sql | 2 +- db/routines/vn2008/views/pago_sdc.sql | 2 +- db/versions/10836-limeCordyline/15-pago_sdc.sql | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/db/routines/vn/triggers/movementLabel_afterUpdate.sql b/db/routines/vn/triggers/movementLabel_afterUpdate.sql index cef8e2b43..7dd8a9eb9 100644 --- a/db/routines/vn/triggers/movementLabel_afterUpdate.sql +++ b/db/routines/vn/triggers/movementLabel_afterUpdate.sql @@ -3,6 +3,6 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`movementLabel_afterUp AFTER UPDATE ON `vn`.`movementLabel` FOR EACH ROW IF NEW.stem >= (SELECT s.quantity FROM sale s WHERE s.id = NEW.saleFk) THEN - UPDATE sale s SET s.isPicked = 1 WHERE s.id = NEW.saleFk; + UPDATE sale s SET s.isPicked = TRUE WHERE s.id = NEW.saleFk; END IF$$ DELIMITER ; \ No newline at end of file diff --git a/db/routines/vn2008/views/pago_sdc.sql b/db/routines/vn2008/views/pago_sdc.sql index 0fb6a172d..3d9f188d3 100644 --- a/db/routines/vn2008/views/pago_sdc.sql +++ b/db/routines/vn2008/views/pago_sdc.sql @@ -3,7 +3,7 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` VIEW `vn2008`.`pago_sdc` AS SELECT `ei`.`id` AS `pago_sdc_id`, `ei`.`amount` AS `importe`, - `ei`.`dated` AS `fecha`, + `ei`.`dueDated` AS `fecha`, `ei`.`finished` AS `vencimiento`, `ei`.`entityFk` AS `entity_id`, `ei`.`ref` AS `ref`, diff --git a/db/versions/10836-limeCordyline/15-pago_sdc.sql b/db/versions/10836-limeCordyline/15-pago_sdc.sql index 3225e2c4d..002de4adc 100644 --- a/db/versions/10836-limeCordyline/15-pago_sdc.sql +++ b/db/versions/10836-limeCordyline/15-pago_sdc.sql @@ -5,7 +5,7 @@ ALTER TABLE IF EXISTS `vn2008`.`pago_sdc` RENAME `vn`.`exchangeInsurance`; ALTER TABLE IF EXISTS `vn`.`exchangeInsurance` CHANGE COLUMN IF EXISTS `pago_sdc_id` `id` int(11) NOT NULL AUTO_INCREMENT, CHANGE COLUMN IF EXISTS `importe` `amount` decimal(10,2) NOT NULL, -CHANGE COLUMN IF EXISTS `fecha` `dated` date NOT NULL, +CHANGE COLUMN IF EXISTS `fecha` `dueDated` date NOT NULL, CHANGE COLUMN IF EXISTS `vencimiento` `finished` date NOT NULL, CHANGE COLUMN IF EXISTS `entity_id` `entityFk` int(10) unsigned NOT NULL, CHANGE COLUMN IF EXISTS `empresa_id` `companyFk`int(10) unsigned NOT NULL DEFAULT 442; From 04fe6a8596e2e8994aa6b1ff0f0a2187c08e4d3f Mon Sep 17 00:00:00 2001 From: davidd Date: Thu, 15 Feb 2024 13:58:12 +0100 Subject: [PATCH 09/24] refs #6372 --- db/versions/10836-limeCordyline/14-movement_label.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/versions/10836-limeCordyline/14-movement_label.sql b/db/versions/10836-limeCordyline/14-movement_label.sql index bb762e1ba..5ce130cf8 100644 --- a/db/versions/10836-limeCordyline/14-movement_label.sql +++ b/db/versions/10836-limeCordyline/14-movement_label.sql @@ -1,4 +1,4 @@ -DROP TRIGGER IF EXISTS `vn2008`.`movement_label_au`; +DROP TRIGGER IF EXISTS `vn2008`.`movement_label_afterUpdate`; ALTER TABLE IF EXISTS `vn2008`.`movement_label` RENAME `vn`.`movementLabel`; From 12f3af68bf6d85bc9cbd2297ef6c03a9cd2205d0 Mon Sep 17 00:00:00 2001 From: davidd Date: Mon, 19 Feb 2024 11:04:07 +0100 Subject: [PATCH 10/24] refs #6372 --- db/routines/vn2008/views/pago_sdc.sql | 2 +- db/versions/10836-limeCordyline/15-pago_sdc.sql | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/db/routines/vn2008/views/pago_sdc.sql b/db/routines/vn2008/views/pago_sdc.sql index 3d9f188d3..0fb6a172d 100644 --- a/db/routines/vn2008/views/pago_sdc.sql +++ b/db/routines/vn2008/views/pago_sdc.sql @@ -3,7 +3,7 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` VIEW `vn2008`.`pago_sdc` AS SELECT `ei`.`id` AS `pago_sdc_id`, `ei`.`amount` AS `importe`, - `ei`.`dueDated` AS `fecha`, + `ei`.`dated` AS `fecha`, `ei`.`finished` AS `vencimiento`, `ei`.`entityFk` AS `entity_id`, `ei`.`ref` AS `ref`, diff --git a/db/versions/10836-limeCordyline/15-pago_sdc.sql b/db/versions/10836-limeCordyline/15-pago_sdc.sql index 002de4adc..3225e2c4d 100644 --- a/db/versions/10836-limeCordyline/15-pago_sdc.sql +++ b/db/versions/10836-limeCordyline/15-pago_sdc.sql @@ -5,7 +5,7 @@ ALTER TABLE IF EXISTS `vn2008`.`pago_sdc` RENAME `vn`.`exchangeInsurance`; ALTER TABLE IF EXISTS `vn`.`exchangeInsurance` CHANGE COLUMN IF EXISTS `pago_sdc_id` `id` int(11) NOT NULL AUTO_INCREMENT, CHANGE COLUMN IF EXISTS `importe` `amount` decimal(10,2) NOT NULL, -CHANGE COLUMN IF EXISTS `fecha` `dueDated` date NOT NULL, +CHANGE COLUMN IF EXISTS `fecha` `dated` date NOT NULL, CHANGE COLUMN IF EXISTS `vencimiento` `finished` date NOT NULL, CHANGE COLUMN IF EXISTS `entity_id` `entityFk` int(10) unsigned NOT NULL, CHANGE COLUMN IF EXISTS `empresa_id` `companyFk`int(10) unsigned NOT NULL DEFAULT 442; From 3d47c9e5e8cfc35a0b80966c4268efc370015ec7 Mon Sep 17 00:00:00 2001 From: davidd Date: Mon, 19 Feb 2024 11:27:37 +0100 Subject: [PATCH 11/24] refs #6372 --- db/routines/vn2008/views/pago_sdc.sql | 2 +- db/versions/10836-limeCordyline/15-pago_sdc.sql | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/db/routines/vn2008/views/pago_sdc.sql b/db/routines/vn2008/views/pago_sdc.sql index 0fb6a172d..29480e376 100644 --- a/db/routines/vn2008/views/pago_sdc.sql +++ b/db/routines/vn2008/views/pago_sdc.sql @@ -4,7 +4,7 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` AS SELECT `ei`.`id` AS `pago_sdc_id`, `ei`.`amount` AS `importe`, `ei`.`dated` AS `fecha`, - `ei`.`finished` AS `vencimiento`, + `ei`.`dueDated` AS `vencimiento`, `ei`.`entityFk` AS `entity_id`, `ei`.`ref` AS `ref`, `ei`.`rate` AS `rate`, diff --git a/db/versions/10836-limeCordyline/15-pago_sdc.sql b/db/versions/10836-limeCordyline/15-pago_sdc.sql index 3225e2c4d..1b63b9c54 100644 --- a/db/versions/10836-limeCordyline/15-pago_sdc.sql +++ b/db/versions/10836-limeCordyline/15-pago_sdc.sql @@ -6,6 +6,6 @@ ALTER TABLE IF EXISTS `vn`.`exchangeInsurance` CHANGE COLUMN IF EXISTS `pago_sdc_id` `id` int(11) NOT NULL AUTO_INCREMENT, CHANGE COLUMN IF EXISTS `importe` `amount` decimal(10,2) NOT NULL, CHANGE COLUMN IF EXISTS `fecha` `dated` date NOT NULL, -CHANGE COLUMN IF EXISTS `vencimiento` `finished` date NOT NULL, +CHANGE COLUMN IF EXISTS `vencimiento` `dueDated` date NOT NULL, CHANGE COLUMN IF EXISTS `entity_id` `entityFk` int(10) unsigned NOT NULL, CHANGE COLUMN IF EXISTS `empresa_id` `companyFk`int(10) unsigned NOT NULL DEFAULT 442; From 4952e0be20f64ffbe98a9b6f8f902d181661f29a Mon Sep 17 00:00:00 2001 From: alexm Date: Tue, 20 Feb 2024 09:04:50 +0100 Subject: [PATCH 12/24] hotFix(getUrl): fix prop name environment --- back/methods/url/getUrl.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/back/methods/url/getUrl.js b/back/methods/url/getUrl.js index f30719b9f..ef741e5a0 100644 --- a/back/methods/url/getUrl.js +++ b/back/methods/url/getUrl.js @@ -22,7 +22,7 @@ module.exports = Self => { const {url} = await Self.app.models.Url.findOne({ where: { appName, - enviroment: process.env.NODE_ENV || 'development' + environment: process.env.NODE_ENV || 'development' } }); return url; From 913e7aa1d8c59fd7144185c3a1e9cfb8c44ad10b Mon Sep 17 00:00:00 2001 From: pablone Date: Tue, 20 Feb 2024 14:22:07 +0100 Subject: [PATCH 13/24] fix(run): refs #6372 change version --- .../10836-limeCordyline/03-gastos_resumen.sql | 17 ----------------- .../01-financialProductType.sql | 0 .../02-flight.sql | 0 .../10896-salmonOrchid/03-gastos_resumen.sql | 18 ++++++++++++++++++ .../04-integra2.sql | 0 .../05-integra2_province.sql | 0 .../06-intervalos__delete.sql | 0 .../10-mail_templates__delete.sql | 0 .../12-ticket_location__delete.sql | 0 .../13-turn__delete.sql | 0 .../14-movement_label.sql | 0 .../15-pago_sdc.sql | 0 .../25-warehouse_pickup.sql | 0 .../29-kk.sql | 0 .../30-permissions.sql | 0 15 files changed, 18 insertions(+), 17 deletions(-) delete mode 100644 db/versions/10836-limeCordyline/03-gastos_resumen.sql rename db/versions/{10836-limeCordyline => 10896-salmonOrchid}/01-financialProductType.sql (100%) rename db/versions/{10836-limeCordyline => 10896-salmonOrchid}/02-flight.sql (100%) create mode 100644 db/versions/10896-salmonOrchid/03-gastos_resumen.sql rename db/versions/{10836-limeCordyline => 10896-salmonOrchid}/04-integra2.sql (100%) rename db/versions/{10836-limeCordyline => 10896-salmonOrchid}/05-integra2_province.sql (100%) rename db/versions/{10836-limeCordyline => 10896-salmonOrchid}/06-intervalos__delete.sql (100%) rename db/versions/{10836-limeCordyline => 10896-salmonOrchid}/10-mail_templates__delete.sql (100%) rename db/versions/{10836-limeCordyline => 10896-salmonOrchid}/12-ticket_location__delete.sql (100%) rename db/versions/{10836-limeCordyline => 10896-salmonOrchid}/13-turn__delete.sql (100%) rename db/versions/{10836-limeCordyline => 10896-salmonOrchid}/14-movement_label.sql (100%) rename db/versions/{10836-limeCordyline => 10896-salmonOrchid}/15-pago_sdc.sql (100%) rename db/versions/{10836-limeCordyline => 10896-salmonOrchid}/25-warehouse_pickup.sql (100%) rename db/versions/{10836-limeCordyline => 10896-salmonOrchid}/29-kk.sql (100%) rename db/versions/{10836-limeCordyline => 10896-salmonOrchid}/30-permissions.sql (100%) diff --git a/db/versions/10836-limeCordyline/03-gastos_resumen.sql b/db/versions/10836-limeCordyline/03-gastos_resumen.sql deleted file mode 100644 index bfec006fa..000000000 --- a/db/versions/10836-limeCordyline/03-gastos_resumen.sql +++ /dev/null @@ -1,17 +0,0 @@ -ALTER TABLE IF EXISTS `vn2008`.`gastos_resumen` RENAME `vn`.`expenseSummary`; - -ALTER TABLE IF EXISTS `vn`.`expenseSummary` -CHANGE COLUMN IF EXISTS `Id_Gasto` `expenseFk` varchar(10) NOT NULL, -CHANGE COLUMN IF EXISTS `importe` `amount` decimal(10,2) DEFAULT NULL, -CHANGE COLUMN IF EXISTS `empresa_id` `companyFk` int(11) NOT NULL; - -ALTER TABLE IF EXISTS vn.expenseSummary COLLATE=utf8mb3_general_ci; - -ALTER TABLE IF EXISTS vn.expenseSummary MODIFY COLUMN expenseFk varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL; - -ALTER TABLE IF EXISTS vn.expenseSummary ADD CONSTRAINT expenseSummary_expense_FK FOREIGN KEY (expenseFk) REFERENCES vn.expense(id) ON DELETE CASCADE ON UPDATE CASCADE; - -ALTER TABLE IF EXISTS vn.expenseSummary MODIFY COLUMN companyFk int(10) unsigned NOT NULL; - -ALTER TABLE IF EXISTS vn.expenseSummary ADD CONSTRAINT expenseSummary_company_FK FOREIGN KEY (companyFk) REFERENCES vn.company(id) ON DELETE CASCADE ON UPDATE CASCADE; - diff --git a/db/versions/10836-limeCordyline/01-financialProductType.sql b/db/versions/10896-salmonOrchid/01-financialProductType.sql similarity index 100% rename from db/versions/10836-limeCordyline/01-financialProductType.sql rename to db/versions/10896-salmonOrchid/01-financialProductType.sql diff --git a/db/versions/10836-limeCordyline/02-flight.sql b/db/versions/10896-salmonOrchid/02-flight.sql similarity index 100% rename from db/versions/10836-limeCordyline/02-flight.sql rename to db/versions/10896-salmonOrchid/02-flight.sql diff --git a/db/versions/10896-salmonOrchid/03-gastos_resumen.sql b/db/versions/10896-salmonOrchid/03-gastos_resumen.sql new file mode 100644 index 000000000..ea14364d5 --- /dev/null +++ b/db/versions/10896-salmonOrchid/03-gastos_resumen.sql @@ -0,0 +1,18 @@ +ALTER TABLE IF EXISTS vn2008.gastos_resumen DROP FOREIGN KEY IF EXISTS gastos_resumen_expense_FK; +ALTER TABLE IF EXISTS `vn2008`.`gastos_resumen` RENAME `vn`.`expenseSummary`; + +ALTER TABLE IF EXISTS `vn`.`expenseSummary` +CHANGE COLUMN IF EXISTS `Id_Gasto` `expenseFk` varchar(10) NOT NULL, +CHANGE COLUMN IF EXISTS `importe` `amount` decimal(10,2) DEFAULT NULL, +CHANGE COLUMN IF EXISTS `empresa_id` `companyFk` int(11) NOT NULL; + +ALTER TABLE IF EXISTS vn.expenseSummary COLLATE=utf8mb3_general_ci; + +ALTER TABLE IF EXISTS vn.expenseSummary MODIFY COLUMN IF EXISTS expenseFk varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL; + +ALTER TABLE IF EXISTS vn.expenseSummary ADD CONSTRAINT expenseSummary_expense_FK FOREIGN KEY IF NOT EXISTS (expenseFk) REFERENCES vn.expense(id) ON DELETE CASCADE ON UPDATE CASCADE; + +ALTER TABLE IF EXISTS vn.expenseSummary MODIFY COLUMN IF EXISTS companyFk int(10) unsigned NOT NULL; + +ALTER TABLE IF EXISTS vn.expenseSummary ADD CONSTRAINT expenseSummary_company_FK FOREIGN KEY IF NOT EXISTS (companyFk) REFERENCES vn.company(id) ON DELETE CASCADE ON UPDATE CASCADE; + diff --git a/db/versions/10836-limeCordyline/04-integra2.sql b/db/versions/10896-salmonOrchid/04-integra2.sql similarity index 100% rename from db/versions/10836-limeCordyline/04-integra2.sql rename to db/versions/10896-salmonOrchid/04-integra2.sql diff --git a/db/versions/10836-limeCordyline/05-integra2_province.sql b/db/versions/10896-salmonOrchid/05-integra2_province.sql similarity index 100% rename from db/versions/10836-limeCordyline/05-integra2_province.sql rename to db/versions/10896-salmonOrchid/05-integra2_province.sql diff --git a/db/versions/10836-limeCordyline/06-intervalos__delete.sql b/db/versions/10896-salmonOrchid/06-intervalos__delete.sql similarity index 100% rename from db/versions/10836-limeCordyline/06-intervalos__delete.sql rename to db/versions/10896-salmonOrchid/06-intervalos__delete.sql diff --git a/db/versions/10836-limeCordyline/10-mail_templates__delete.sql b/db/versions/10896-salmonOrchid/10-mail_templates__delete.sql similarity index 100% rename from db/versions/10836-limeCordyline/10-mail_templates__delete.sql rename to db/versions/10896-salmonOrchid/10-mail_templates__delete.sql diff --git a/db/versions/10836-limeCordyline/12-ticket_location__delete.sql b/db/versions/10896-salmonOrchid/12-ticket_location__delete.sql similarity index 100% rename from db/versions/10836-limeCordyline/12-ticket_location__delete.sql rename to db/versions/10896-salmonOrchid/12-ticket_location__delete.sql diff --git a/db/versions/10836-limeCordyline/13-turn__delete.sql b/db/versions/10896-salmonOrchid/13-turn__delete.sql similarity index 100% rename from db/versions/10836-limeCordyline/13-turn__delete.sql rename to db/versions/10896-salmonOrchid/13-turn__delete.sql diff --git a/db/versions/10836-limeCordyline/14-movement_label.sql b/db/versions/10896-salmonOrchid/14-movement_label.sql similarity index 100% rename from db/versions/10836-limeCordyline/14-movement_label.sql rename to db/versions/10896-salmonOrchid/14-movement_label.sql diff --git a/db/versions/10836-limeCordyline/15-pago_sdc.sql b/db/versions/10896-salmonOrchid/15-pago_sdc.sql similarity index 100% rename from db/versions/10836-limeCordyline/15-pago_sdc.sql rename to db/versions/10896-salmonOrchid/15-pago_sdc.sql diff --git a/db/versions/10836-limeCordyline/25-warehouse_pickup.sql b/db/versions/10896-salmonOrchid/25-warehouse_pickup.sql similarity index 100% rename from db/versions/10836-limeCordyline/25-warehouse_pickup.sql rename to db/versions/10896-salmonOrchid/25-warehouse_pickup.sql diff --git a/db/versions/10836-limeCordyline/29-kk.sql b/db/versions/10896-salmonOrchid/29-kk.sql similarity index 100% rename from db/versions/10836-limeCordyline/29-kk.sql rename to db/versions/10896-salmonOrchid/29-kk.sql diff --git a/db/versions/10836-limeCordyline/30-permissions.sql b/db/versions/10896-salmonOrchid/30-permissions.sql similarity index 100% rename from db/versions/10836-limeCordyline/30-permissions.sql rename to db/versions/10896-salmonOrchid/30-permissions.sql From 1cf17a3d8d3eddb9783e2897c6535351ec0c754e Mon Sep 17 00:00:00 2001 From: davidd Date: Wed, 21 Feb 2024 07:35:57 +0100 Subject: [PATCH 14/24] refs #6372 --- db/routines/vn2008/views/gastos_resumen.sql | 2 +- .../10896-salmonOrchid/03-gastos_resumen.sql | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/db/routines/vn2008/views/gastos_resumen.sql b/db/routines/vn2008/views/gastos_resumen.sql index 1b6b6d877..02231bcbf 100644 --- a/db/routines/vn2008/views/gastos_resumen.sql +++ b/db/routines/vn2008/views/gastos_resumen.sql @@ -8,4 +8,4 @@ AS SELECT `es`.`amount` AS `importe`, `es`.`companyFk` AS `empresa_id` FROM - `vn`.`expenseSummary` `es`; \ No newline at end of file + `vn`.`expenseManual` `es`; \ No newline at end of file diff --git a/db/versions/10896-salmonOrchid/03-gastos_resumen.sql b/db/versions/10896-salmonOrchid/03-gastos_resumen.sql index ea14364d5..5fa1f31fb 100644 --- a/db/versions/10896-salmonOrchid/03-gastos_resumen.sql +++ b/db/versions/10896-salmonOrchid/03-gastos_resumen.sql @@ -1,18 +1,18 @@ ALTER TABLE IF EXISTS vn2008.gastos_resumen DROP FOREIGN KEY IF EXISTS gastos_resumen_expense_FK; -ALTER TABLE IF EXISTS `vn2008`.`gastos_resumen` RENAME `vn`.`expenseSummary`; +ALTER TABLE IF EXISTS `vn2008`.`gastos_resumen` RENAME `vn`.`expenseManual`; -ALTER TABLE IF EXISTS `vn`.`expenseSummary` +ALTER TABLE IF EXISTS `vn`.`expenseManual` CHANGE COLUMN IF EXISTS `Id_Gasto` `expenseFk` varchar(10) NOT NULL, CHANGE COLUMN IF EXISTS `importe` `amount` decimal(10,2) DEFAULT NULL, CHANGE COLUMN IF EXISTS `empresa_id` `companyFk` int(11) NOT NULL; -ALTER TABLE IF EXISTS vn.expenseSummary COLLATE=utf8mb3_general_ci; +ALTER TABLE IF EXISTS vn.expenseManual COLLATE=utf8mb3_general_ci; -ALTER TABLE IF EXISTS vn.expenseSummary MODIFY COLUMN IF EXISTS expenseFk varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL; +ALTER TABLE IF EXISTS vn.expenseManual MODIFY COLUMN IF EXISTS expenseFk varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL; -ALTER TABLE IF EXISTS vn.expenseSummary ADD CONSTRAINT expenseSummary_expense_FK FOREIGN KEY IF NOT EXISTS (expenseFk) REFERENCES vn.expense(id) ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE IF EXISTS vn.expenseManual ADD CONSTRAINT expenseManual_expense_FK FOREIGN KEY IF NOT EXISTS (expenseFk) REFERENCES vn.expense(id) ON DELETE CASCADE ON UPDATE CASCADE; -ALTER TABLE IF EXISTS vn.expenseSummary MODIFY COLUMN IF EXISTS companyFk int(10) unsigned NOT NULL; +ALTER TABLE IF EXISTS vn.expenseManual MODIFY COLUMN IF EXISTS companyFk int(10) unsigned NOT NULL; -ALTER TABLE IF EXISTS vn.expenseSummary ADD CONSTRAINT expenseSummary_company_FK FOREIGN KEY IF NOT EXISTS (companyFk) REFERENCES vn.company(id) ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE IF EXISTS vn.expenseManual ADD CONSTRAINT expenseManual_company_FK FOREIGN KEY IF NOT EXISTS (companyFk) REFERENCES vn.company(id) ON DELETE CASCADE ON UPDATE CASCADE; From 3463b8fcb15976b2488fab3366e84f23fd8e1b74 Mon Sep 17 00:00:00 2001 From: Pako Date: Wed, 21 Feb 2024 12:09:52 +0100 Subject: [PATCH 15/24] done --- db/routines/vn/procedures/clean.sql | 1 + db/versions/10898-6906-workerActivity/00-table.sql | 13 +++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 db/versions/10898-6906-workerActivity/00-table.sql diff --git a/db/routines/vn/procedures/clean.sql b/db/routines/vn/procedures/clean.sql index 7b561cfe0..65045bcbd 100644 --- a/db/routines/vn/procedures/clean.sql +++ b/db/routines/vn/procedures/clean.sql @@ -22,6 +22,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; diff --git a/db/versions/10898-6906-workerActivity/00-table.sql b/db/versions/10898-6906-workerActivity/00-table.sql new file mode 100644 index 000000000..ec517b929 --- /dev/null +++ b/db/versions/10898-6906-workerActivity/00-table.sql @@ -0,0 +1,13 @@ +-- Place your SQL code here +CREATE TABLE vn.workerActivity ( +id INT PRIMARY KEY AUTO_INCREMENT, +created TIMESTAMP 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, +CONSTRAINT fk_workerActivity_worker FOREIGN KEY (workerFk) + REFERENCES vn.worker (id) + ON DELETE CASCADE + ON UPDATE CASCADE +); \ No newline at end of file From f30a5a759767666f9778a7a887c13e179f4f9946 Mon Sep 17 00:00:00 2001 From: ivanm Date: Wed, 21 Feb 2024 13:13:28 +0100 Subject: [PATCH 16/24] refs #6626 invoiceInTax different transactions --- .../vn/procedures/invoiceInTax_afterUpsert.sql | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/db/routines/vn/procedures/invoiceInTax_afterUpsert.sql b/db/routines/vn/procedures/invoiceInTax_afterUpsert.sql index 77e989630..3a81cd531 100644 --- a/db/routines/vn/procedures/invoiceInTax_afterUpsert.sql +++ b/db/routines/vn/procedures/invoiceInTax_afterUpsert.sql @@ -8,6 +8,7 @@ BEGIN */ DECLARE vTaxRowLimit INT; DECLARE vLines INT; + DECLARE vHasDistinctTransactions INT; SELECT taxRowLimit INTO vTaxRowLimit FROM invoiceInConfig; @@ -18,6 +19,18 @@ 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 diferent types of transactions'); + END IF; END$$ DELIMITER ; From 84270d29b8b875411e64ce8e9996406ecc83b900 Mon Sep 17 00:00:00 2001 From: ivanm Date: Wed, 21 Feb 2024 13:15:46 +0100 Subject: [PATCH 17/24] refs #6626 modify invoiceInTax --- db/routines/vn/procedures/invoiceInTax_afterUpsert.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/routines/vn/procedures/invoiceInTax_afterUpsert.sql b/db/routines/vn/procedures/invoiceInTax_afterUpsert.sql index 3a81cd531..60ec34696 100644 --- a/db/routines/vn/procedures/invoiceInTax_afterUpsert.sql +++ b/db/routines/vn/procedures/invoiceInTax_afterUpsert.sql @@ -30,7 +30,7 @@ BEGIN AND transactionTypeSageFk; IF vHasDistinctTransactions > 1 THEN - CALL util.throw ('This invoice does not allow diferent types of transactions'); + CALL util.throw ('This invoice does not allow different types of transactions'); END IF; END$$ DELIMITER ; From fba353f8e420cd43d4b68796e1ab7e91f6011880 Mon Sep 17 00:00:00 2001 From: robert Date: Wed, 21 Feb 2024 13:43:33 +0100 Subject: [PATCH 18/24] feat: refs #6371 restore Proveedores_cargueras --- db/versions/10835-brownCarnation/00-firstScript.sql | 4 ---- 1 file changed, 4 deletions(-) diff --git a/db/versions/10835-brownCarnation/00-firstScript.sql b/db/versions/10835-brownCarnation/00-firstScript.sql index 977e20905..e66b84ee5 100644 --- a/db/versions/10835-brownCarnation/00-firstScript.sql +++ b/db/versions/10835-brownCarnation/00-firstScript.sql @@ -81,10 +81,6 @@ ALTER TABLE IF EXISTS vn2008.MovimienRENAMEs_avisar__ COMMENT='refs #6371 deprec ALTER TABLE IF EXISTS vn2008.MovimienRENAMEs_revisar RENAME vn2008.MovimienRENAMEs_revisar__; ALTER TABLE IF EXISTS vn2008.MovimienRENAMEs_revisar__ COMMENT='refs #6371 deprecated 2024-01-11'; --- Para la tabla Proveedores_cargueras -ALTER TABLE IF EXISTS vn2008.Proveedores_cargueras RENAME vn2008.Proveedores_cargueras__; -ALTER TABLE IF EXISTS vn2008.Proveedores_cargueras__ COMMENT='refs #6371 deprecated 2024-01-11'; - -- Para la tabla Proveedores_comunicados ALTER TABLE IF EXISTS vn2008.Proveedores_comunicados RENAME vn2008.Proveedores_comunicados__; ALTER TABLE IF EXISTS vn2008.Proveedores_comunicados__ COMMENT='refs #6371 deprecated 2024-01-11'; From 5bef3989cd9a7e9accf6883ca1c5e18d13518e3c Mon Sep 17 00:00:00 2001 From: davidd Date: Wed, 21 Feb 2024 14:07:52 +0100 Subject: [PATCH 19/24] refs #6372 --- ...Label_afterUpdate.sql => saleLabel_afterUpdate.sql} | 4 ++-- db/routines/vn2008/views/movement_label.sql | 10 ---------- db/versions/10896-salmonOrchid/14-movement_label.sql | 6 ++++-- db/versions/10896-salmonOrchid/25-warehouse_pickup.sql | 4 +++- 4 files changed, 9 insertions(+), 15 deletions(-) rename db/routines/vn/triggers/{movementLabel_afterUpdate.sql => saleLabel_afterUpdate.sql} (56%) delete mode 100644 db/routines/vn2008/views/movement_label.sql diff --git a/db/routines/vn/triggers/movementLabel_afterUpdate.sql b/db/routines/vn/triggers/saleLabel_afterUpdate.sql similarity index 56% rename from db/routines/vn/triggers/movementLabel_afterUpdate.sql rename to db/routines/vn/triggers/saleLabel_afterUpdate.sql index 7dd8a9eb9..ff3787358 100644 --- a/db/routines/vn/triggers/movementLabel_afterUpdate.sql +++ b/db/routines/vn/triggers/saleLabel_afterUpdate.sql @@ -1,6 +1,6 @@ DELIMITER $$ -CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`movementLabel_afterUpdate` - AFTER UPDATE ON `vn`.`movementLabel` +CREATE OR REPLACE DEFINER=`root`@`localhost` 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; diff --git a/db/routines/vn2008/views/movement_label.sql b/db/routines/vn2008/views/movement_label.sql deleted file mode 100644 index 738750507..000000000 --- a/db/routines/vn2008/views/movement_label.sql +++ /dev/null @@ -1,10 +0,0 @@ -CREATE OR REPLACE DEFINER=`root`@`localhost` - SQL SECURITY DEFINER - VIEW `vn2008`.`movement_label` -AS SELECT - `m`.`saleFk` AS `Id_movimiento`, - `m`.`label`, - `m`.`stem`, - `m`.`created` -FROM - `vn`.`movementLabel` `m`; \ No newline at end of file diff --git a/db/versions/10896-salmonOrchid/14-movement_label.sql b/db/versions/10896-salmonOrchid/14-movement_label.sql index 5ce130cf8..a3ccf320d 100644 --- a/db/versions/10896-salmonOrchid/14-movement_label.sql +++ b/db/versions/10896-salmonOrchid/14-movement_label.sql @@ -1,6 +1,8 @@ DROP TRIGGER IF EXISTS `vn2008`.`movement_label_afterUpdate`; -ALTER TABLE IF EXISTS `vn2008`.`movement_label` RENAME `vn`.`movementLabel`; +DROP VIEW IF EXISTS `vn`.`saleLabel`; -ALTER TABLE IF EXISTS `vn`.`movementLabel` +ALTER TABLE IF EXISTS `vn2008`.`movement_label` RENAME `vn`.`saleLabel`; + +ALTER TABLE IF EXISTS `vn`.`saleLabel` CHANGE COLUMN IF EXISTS `Id_movimiento` `saleFk` int(11) NOT NULL; diff --git a/db/versions/10896-salmonOrchid/25-warehouse_pickup.sql b/db/versions/10896-salmonOrchid/25-warehouse_pickup.sql index 1a2479a43..d6f2ae18d 100644 --- a/db/versions/10896-salmonOrchid/25-warehouse_pickup.sql +++ b/db/versions/10896-salmonOrchid/25-warehouse_pickup.sql @@ -2,4 +2,6 @@ ALTER TABLE IF EXISTS `vn2008`.`warehouse_pickup` RENAME `vn`.`warehousePickup`; ALTER TABLE IF EXISTS `vn`.`warehousePickup` CHANGE COLUMN IF EXISTS `warehouse_id` `warehouseFk` smallint(5) unsigned NOT NULL, -CHANGE COLUMN IF EXISTS `agency_id` `agencyModeFk` int(11) DEFAULT NULL; \ No newline at end of file +CHANGE COLUMN IF EXISTS `agency_id` `agencyModeFk` int(11) DEFAULT NULL; + +ALTER TABLE `vn`.`warehousePickup` COMMENT='Agencia de recogida para cada almacén'; From 01f1bd0088ad169e02bb055509c3930ac75b06e0 Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 21 Feb 2024 14:44:34 +0100 Subject: [PATCH 20/24] Revert "Merge branch 'dev' into test" This reverts commit c4a64b93cc4f021ebc6268c48033aec3c00e139b, reversing changes made to 2ab1cebb318eda5915c395526b55b496f8d7b50f. --- back/methods/collection/getSectors.js | 20 +++++ .../collection/spec/getSectors.spec.js | 11 +++ back/models/collection.js | 1 + db/dump/.dump/data.sql | 2 + db/dump/fixtures.before.sql | 3 +- .../bs/procedures/ventas_contables_add.sql | 34 ++++---- .../procedures/invoiceInTax_afterUpsert.sql | 15 +--- .../vn/procedures/itemProposal_Add.sql | 70 +++++++++++++++++ .../vn/procedures/itemShelving_add.sql | 4 - .../vn/procedures/sale_getBoxPickingList.sql | 51 ++++++++++-- .../sectorCollectionSaleGroup_add.sql | 19 ----- db/routines/vn/procedures/sector_get.sql | 13 ++++ db/routines/vn/procedures/ticket_getTax.sql | 58 +++++++------- .../vn/triggers/ticket_beforeUpdate.sql | 10 +++ .../00-alterAgencyTermConfig.sql | 3 - .../00-alterGastosResumen.sql | 11 --- .../00-alterInvoiceOutTaxConfig.sql | 5 -- .../00-alterItemGroupToOffer.sql | 5 -- .../01-ventasContablesPk.sql | 14 ---- .../02-updateExpenseRegularize.sql | 8 -- .../10862-navyHydrangea/03-updateExpense.sql | 44 ----------- .../04-updateExpenseConflict.sql | 6 -- .../00-revokeUpdateClient.sql | 37 --------- .../back/methods/invoiceOut/negativeBases.js | 52 +++++++------ .../item-shelving/specs/addListByItem.spec.js | 55 ------------- .../back/methods/item-shelving/upsertItem.js | 64 --------------- modules/item/back/models/item-shelving.js | 1 - .../ticket/specs/transferClient.spec.js | 71 ++++++++--------- .../back/methods/ticket/transferClient.js | 77 ++++++------------- .../back/methods/worker/specs/new.spec.js | 28 ++----- myt.config.yml | 1 + package.json | 2 +- 32 files changed, 309 insertions(+), 486 deletions(-) create mode 100644 back/methods/collection/getSectors.js create mode 100644 back/methods/collection/spec/getSectors.spec.js create mode 100644 db/routines/vn/procedures/itemProposal_Add.sql create mode 100644 db/routines/vn/procedures/sector_get.sql delete mode 100644 db/versions/10862-navyHydrangea/00-alterAgencyTermConfig.sql delete mode 100644 db/versions/10862-navyHydrangea/00-alterGastosResumen.sql delete mode 100644 db/versions/10862-navyHydrangea/00-alterInvoiceOutTaxConfig.sql delete mode 100644 db/versions/10862-navyHydrangea/00-alterItemGroupToOffer.sql delete mode 100644 db/versions/10862-navyHydrangea/01-ventasContablesPk.sql delete mode 100644 db/versions/10862-navyHydrangea/02-updateExpenseRegularize.sql delete mode 100644 db/versions/10862-navyHydrangea/03-updateExpense.sql delete mode 100644 db/versions/10862-navyHydrangea/04-updateExpenseConflict.sql delete mode 100644 db/versions/10885-wheatHydrangea/00-revokeUpdateClient.sql delete mode 100644 modules/item/back/methods/item-shelving/specs/addListByItem.spec.js delete mode 100644 modules/item/back/methods/item-shelving/upsertItem.js diff --git a/back/methods/collection/getSectors.js b/back/methods/collection/getSectors.js new file mode 100644 index 000000000..12ad0dc06 --- /dev/null +++ b/back/methods/collection/getSectors.js @@ -0,0 +1,20 @@ +module.exports = Self => { + Self.remoteMethod('getSectors', { + description: 'Get all sectors', + accessType: 'READ', + returns: { + type: 'Object', + root: true + }, + http: { + path: `/getSectors`, + verb: 'GET' + } + }); + + Self.getSectors = async() => { + const query = `CALL vn.sector_get()`; + const [result] = await Self.rawSql(query); + return result; + }; +}; diff --git a/back/methods/collection/spec/getSectors.spec.js b/back/methods/collection/spec/getSectors.spec.js new file mode 100644 index 000000000..d8fa60663 --- /dev/null +++ b/back/methods/collection/spec/getSectors.spec.js @@ -0,0 +1,11 @@ +const {models} = require('vn-loopback/server/server'); + +describe('getSectors()', () => { + it('return list of sectors', async() => { + let response = await models.Collection.getSectors(); + + expect(response.length).toBeGreaterThan(0); + expect(response[0].id).toEqual(1); + expect(response[0].description).toEqual('First sector'); + }); +}); diff --git a/back/models/collection.js b/back/models/collection.js index 52ef26e88..1c10d49fa 100644 --- a/back/models/collection.js +++ b/back/models/collection.js @@ -1,5 +1,6 @@ module.exports = Self => { require('../methods/collection/getCollection')(Self); + require('../methods/collection/getSectors')(Self); require('../methods/collection/setSaleQuantity')(Self); require('../methods/collection/previousLabel')(Self); require('../methods/collection/getTickets')(Self); diff --git a/db/dump/.dump/data.sql b/db/dump/.dump/data.sql index 6fe6c1414..8367471bc 100644 --- a/db/dump/.dump/data.sql +++ b/db/dump/.dump/data.sql @@ -1750,6 +1750,8 @@ USE `vn`; /*!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 `agencyTermConfig` VALUES ('6240000000','4721000015',21.0000000000,'Adquisiciones intracomunitarias de servicios'); + INSERT INTO `alertLevel` VALUES ('FREE',0,1); INSERT INTO `alertLevel` VALUES ('ON_PREPARATION',1,1); INSERT INTO `alertLevel` VALUES ('PACKED',2,0); diff --git a/db/dump/fixtures.before.sql b/db/dump/fixtures.before.sql index 43293c9ea..094b956af 100644 --- a/db/dump/fixtures.before.sql +++ b/db/dump/fixtures.before.sql @@ -653,7 +653,6 @@ INSERT INTO `vn`.`expense`(`id`, `name`, `isWithheld`) (7001000000, 'Mercaderia', 0), (7050000000, 'Prestacion de servicios', 1); -INSERT INTO `vn`.`agencyTermConfig` VALUES ('6240000000','4721000015',21.0000000000,'Adquisiciones intracomunitarias de servicios'); INSERT INTO `vn`.`invoiceOutExpense`(`id`, `invoiceOutFk`, `amount`, `expenseFk`, `created`) VALUES @@ -729,7 +728,7 @@ INSERT INTO `vn`.`route`(`id`, `time`, `workerFk`, `created`, `vehicleFk`, `agen INSERT INTO `vn`.`ticket`(`id`, `priority`, `agencyModeFk`,`warehouseFk`,`routeFk`, `shipped`, `landed`, `clientFk`,`nickname`, `addressFk`, `refFk`, `isDeleted`, `zoneFk`, `zonePrice`, `zoneBonus`, `created`, `weight`, `cmrFk`) VALUES (1 , 3, 1, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -1 MONTH), INTERVAL +1 DAY), 1101, 'Bat cave', 121, NULL, 0, 1, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1, 1), - (2 , 1, 1, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -1 MONTH), INTERVAL +1 DAY), 1101, 'Bat cave', 1, NULL, 0, 1, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 2, 2), + (2 , 1, 1, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -1 MONTH), INTERVAL +1 DAY), 1101, 'Bat cave', 1, NULL, 0, 1, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 2, 2), (3 , 1, 7, 1, 6, DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -2 MONTH), INTERVAL +1 DAY), 1104, 'Stark tower', 124, NULL, 0, 3, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH), NULL, 3), (4 , 3, 2, 1, 2, DATE_ADD(util.VN_CURDATE(), INTERVAL -3 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -3 MONTH), INTERVAL +1 DAY), 1104, 'Stark tower', 124, NULL, 0, 9, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -3 MONTH), NULL, NULL), (5 , 3, 3, 3, 3, DATE_ADD(util.VN_CURDATE(), INTERVAL -4 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -4 MONTH), INTERVAL +1 DAY), 1104, 'Stark tower', 124, NULL, 0, 10, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -4 MONTH), NULL, NULL), diff --git a/db/routines/bs/procedures/ventas_contables_add.sql b/db/routines/bs/procedures/ventas_contables_add.sql index 12b2738f3..9988c8b29 100644 --- a/db/routines/bs/procedures/ventas_contables_add.sql +++ b/db/routines/bs/procedures/ventas_contables_add.sql @@ -1,7 +1,7 @@ DELIMITER $$ CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bs`.`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 @@ -13,8 +13,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; @@ -25,7 +25,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 @@ -35,7 +35,7 @@ BEGIN , tipo_id , empresa_id , gasto) - + SELECT vYear , vMonth , round(sum(Cantidad * Preu * (100 - m.Descuento)/100)) @@ -47,13 +47,13 @@ BEGIN , tp.reino_id , a.tipo_id , t.empresa_id - , a.expenseFk + , 7000000000 + IF(e.empresa_grupo = e2.empresa_grupo ,1 ,IF(e2.empresa_grupo,2,0) - ) * 100000 - + tp.reino_id * 1000 as Gasto - FROM vn2008.Movimientos m + ) * 1000000 + + tp.reino_id * 10000 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 @@ -67,7 +67,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 @@ -86,17 +86,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 ; diff --git a/db/routines/vn/procedures/invoiceInTax_afterUpsert.sql b/db/routines/vn/procedures/invoiceInTax_afterUpsert.sql index 60ec34696..77e989630 100644 --- a/db/routines/vn/procedures/invoiceInTax_afterUpsert.sql +++ b/db/routines/vn/procedures/invoiceInTax_afterUpsert.sql @@ -8,7 +8,6 @@ BEGIN */ DECLARE vTaxRowLimit INT; DECLARE vLines INT; - DECLARE vHasDistinctTransactions INT; SELECT taxRowLimit INTO vTaxRowLimit FROM invoiceInConfig; @@ -19,18 +18,6 @@ BEGIN IF vLines >= vTaxRowLimit THEN CALL util.throw (CONCAT('The maximum number of lines is ', vTaxRowLimit)); - 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 IF; END$$ DELIMITER ; diff --git a/db/routines/vn/procedures/itemProposal_Add.sql b/db/routines/vn/procedures/itemProposal_Add.sql new file mode 100644 index 000000000..ac4dfa5d5 --- /dev/null +++ b/db/routines/vn/procedures/itemProposal_Add.sql @@ -0,0 +1,70 @@ +DELIMITER $$ +CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`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; +END$$ +DELIMITER ; diff --git a/db/routines/vn/procedures/itemShelving_add.sql b/db/routines/vn/procedures/itemShelving_add.sql index 2a4676b50..02762fa0b 100644 --- a/db/routines/vn/procedures/itemShelving_add.sql +++ b/db/routines/vn/procedures/itemShelving_add.sql @@ -19,10 +19,6 @@ BEGIN DECLARE vItemFk INT; SELECT barcodeToItem(vBarcode) INTO vItemFk; - - SET vPacking = COALESCE(vPacking, GREATEST(vn.itemPacking(vBarcode,vWarehouseFk), 1)); - - SET vQuantity = vQuantity * vPacking; IF (SELECT COUNT(*) FROM shelving WHERE code = vShelvingFk COLLATE utf8_unicode_ci) = 0 THEN diff --git a/db/routines/vn/procedures/sale_getBoxPickingList.sql b/db/routines/vn/procedures/sale_getBoxPickingList.sql index 0af23e945..0f2b2bc71 100644 --- a/db/routines/vn/procedures/sale_getBoxPickingList.sql +++ b/db/routines/vn/procedures/sale_getBoxPickingList.sql @@ -17,6 +17,7 @@ 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 @@ -28,7 +29,7 @@ BEGIN MAKETIME(pb.HH,pb.mm,0) etd, pb.routeFk, FLOOR(s.quantity / ish.packing) stickers, - IF(i.isBoxPickingMode, ish.packing, i.packingOut) packing, + ish.packing, b.packagingFk FROM sale s JOIN item i ON i.id = s.itemFk @@ -51,8 +52,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 IF(i.isBoxPickingMode, ish.packing, i.packingOut) - <= LEAST(s.quantity, ish.visible - IFNULL(tISS.reserve,0)) + WHERE s.quantity BETWEEN ish.packing AND (ish.visible - IFNULL(tISS.reserve,0)) + AND i.isBoxPickingMode AND NOT pb.problem AND sgd.saleFk IS NULL AND p.sectorFk = vSectorFk @@ -63,13 +64,47 @@ BEGIN GROUP BY s.id ORDER BY etd; - SELECT * - FROM tmp.sale - WHERE stickers; + -- 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; DROP TEMPORARY TABLE tmp.productionBuffer; DROP TEMPORARY TABLE tmp.sale; END$$ DELIMITER ; - -CALL `vn`.`sale_getBoxPickingList`(1, curdate()); \ No newline at end of file diff --git a/db/routines/vn/procedures/sectorCollectionSaleGroup_add.sql b/db/routines/vn/procedures/sectorCollectionSaleGroup_add.sql index 5ffb30635..9e21defc5 100644 --- a/db/routines/vn/procedures/sectorCollectionSaleGroup_add.sql +++ b/db/routines/vn/procedures/sectorCollectionSaleGroup_add.sql @@ -8,25 +8,6 @@ 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; diff --git a/db/routines/vn/procedures/sector_get.sql b/db/routines/vn/procedures/sector_get.sql new file mode 100644 index 000000000..fe978203a --- /dev/null +++ b/db/routines/vn/procedures/sector_get.sql @@ -0,0 +1,13 @@ +DELIMITER $$ +CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`sector_get`() +BEGIN + +/** + * Obtiene los sectores +*/ + + SELECT s.id,s.description,s.warehouseFk + FROM vn.sector s; + +END$$ +DELIMITER ; diff --git a/db/routines/vn/procedures/ticket_getTax.sql b/db/routines/vn/procedures/ticket_getTax.sql index b9f5c14e3..7269a1caf 100644 --- a/db/routines/vn/procedures/ticket_getTax.sql +++ b/db/routines/vn/procedures/ticket_getTax.sql @@ -9,8 +9,6 @@ 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)) @@ -19,24 +17,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 - - CREATE OR REPLACE 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 + */ + DROP TEMPORARY TABLE IF EXISTS tmp.ticketTax; + CREATE 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 @@ -45,21 +43,22 @@ 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 - ) t3 + HAVING taxableBase <> 0) t3 ORDER BY priority; - CREATE OR REPLACE TEMPORARY TABLE tmp.ticketServiceTax + DROP TEMPORARY TABLE IF EXISTS tmp.ticketServiceTax; + CREATE TEMPORARY TABLE tmp.ticketServiceTax (PRIMARY KEY (ticketFk, code, rate)) ENGINE = MEMORY SELECT tt.ticketFk, @@ -71,22 +70,24 @@ 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; + HAVING taxableBase <> 0; 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 ; - CREATE OR REPLACE TEMPORARY TABLE tmp.ticketAmount + DROP TEMPORARY TABLE IF EXISTS tmp.ticketAmount; + CREATE TEMPORARY TABLE tmp.ticketAmount (INDEX (ticketFk)) ENGINE = MEMORY SELECT ticketFk, @@ -96,8 +97,7 @@ BEGIN FROM tmp.ticketTax GROUP BY ticketFk, code; - DROP TEMPORARY TABLE - tmp.addressCompany, - tmp.addressTaxArea; + DROP TEMPORARY TABLE tmp.addressCompany; + DROP TEMPORARY TABLE tmp.addressTaxArea; END$$ DELIMITER ; diff --git a/db/routines/vn/triggers/ticket_beforeUpdate.sql b/db/routines/vn/triggers/ticket_beforeUpdate.sql index 72831bc3d..0836b2486 100644 --- a/db/routines/vn/triggers/ticket_beforeUpdate.sql +++ b/db/routines/vn/triggers/ticket_beforeUpdate.sql @@ -4,6 +4,7 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`ticket_beforeUpdate` FOR EACH ROW BEGIN DECLARE vNewTime TIME; + DECLARE vHasTicketRefund BOOL; SET NEW.editorFk = account.myUser_getId(); @@ -63,5 +64,14 @@ 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 ; diff --git a/db/versions/10862-navyHydrangea/00-alterAgencyTermConfig.sql b/db/versions/10862-navyHydrangea/00-alterAgencyTermConfig.sql deleted file mode 100644 index 3409b762e..000000000 --- a/db/versions/10862-navyHydrangea/00-alterAgencyTermConfig.sql +++ /dev/null @@ -1,3 +0,0 @@ -USE vn; -ALTER TABLE vn.agencyTermConfig - ADD CONSTRAINT agencyTermConfig_expense_FK FOREIGN KEY (expenseFk) REFERENCES vn.expense(id) ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/db/versions/10862-navyHydrangea/00-alterGastosResumen.sql b/db/versions/10862-navyHydrangea/00-alterGastosResumen.sql deleted file mode 100644 index 307b8f205..000000000 --- a/db/versions/10862-navyHydrangea/00-alterGastosResumen.sql +++ /dev/null @@ -1,11 +0,0 @@ -USE vn; - -ALTER TABLE vn2008.gastos_resumen MODIFY COLUMN Id_Gasto varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL; - -DELETE gr.* - FROM vn2008.gastos_resumen gr LEFT JOIN vn.expense e ON gr.Id_Gasto = e.id - WHERE e.id IS NULL; - -ALTER TABLE vn2008.gastos_resumen - ADD CONSTRAINT gastos_resumen_expense_FK - FOREIGN KEY (Id_Gasto) REFERENCES vn.expense(id) ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/db/versions/10862-navyHydrangea/00-alterInvoiceOutTaxConfig.sql b/db/versions/10862-navyHydrangea/00-alterInvoiceOutTaxConfig.sql deleted file mode 100644 index fc5025c18..000000000 --- a/db/versions/10862-navyHydrangea/00-alterInvoiceOutTaxConfig.sql +++ /dev/null @@ -1,5 +0,0 @@ -USE vn; -ALTER TABLE vn.invoiceOutTaxConfig MODIFY COLUMN expenseFk varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL NULL; - -ALTER TABLE vn.invoiceOutTaxConfig - ADD CONSTRAINT invoiceOutTaxConfig_expense_FK FOREIGN KEY (expenseFk) REFERENCES vn.expense(id) ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/db/versions/10862-navyHydrangea/00-alterItemGroupToOffer.sql b/db/versions/10862-navyHydrangea/00-alterItemGroupToOffer.sql deleted file mode 100644 index 68611c13c..000000000 --- a/db/versions/10862-navyHydrangea/00-alterItemGroupToOffer.sql +++ /dev/null @@ -1,5 +0,0 @@ -USE edi; -ALTER TABLE edi.item_groupToOffer MODIFY COLUMN expenseFk varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT '7001000000' NULL; - -ALTER TABLE edi.item_groupToOffer - ADD CONSTRAINT item_groupToOffer_expense_FK FOREIGN KEY (expenseFk) REFERENCES vn.expense(id) ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/db/versions/10862-navyHydrangea/01-ventasContablesPk.sql b/db/versions/10862-navyHydrangea/01-ventasContablesPk.sql deleted file mode 100644 index 3f8bf2c79..000000000 --- a/db/versions/10862-navyHydrangea/01-ventasContablesPk.sql +++ /dev/null @@ -1,14 +0,0 @@ -USE vn; --- Eliminar la clave primaria actual -ALTER TABLE bs.ventas_contables DROP PRIMARY KEY; - --- Agregar la nueva clave primaria incluyendo el campo `gasto` -ALTER TABLE bs.ventas_contables ADD PRIMARY KEY (`year`, `month`, `grupo`, `reino_id`, `tipo_id`, `empresa_id`, `gasto`); - -DELETE vc.* FROM bs.ventas_contables vc LEFT JOIN vn.expense e ON e.id = vc.gasto WHERE e.id IS NULL; - -ALTER TABLE bs.ventas_contables - MODIFY COLUMN gasto VARCHAR(10) - CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL; - -ALTER TABLE bs.ventas_contables ADD CONSTRAINT ventas_contables_expense_FK FOREIGN KEY (gasto) REFERENCES vn.expense(id) ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/db/versions/10862-navyHydrangea/02-updateExpenseRegularize.sql b/db/versions/10862-navyHydrangea/02-updateExpenseRegularize.sql deleted file mode 100644 index 90d865c1d..000000000 --- a/db/versions/10862-navyHydrangea/02-updateExpenseRegularize.sql +++ /dev/null @@ -1,8 +0,0 @@ -DELETE FROM vn.expense - WHERE id ='' AND id IS NULL AND isWithheld = FALSE; -UPDATE vn.expense - SET id='7002090000' - WHERE id='7002009000'; -UPDATE vn.expense - SET id='7001090000' - WHERE id='7001009000'; diff --git a/db/versions/10862-navyHydrangea/03-updateExpense.sql b/db/versions/10862-navyHydrangea/03-updateExpense.sql deleted file mode 100644 index a44c4c504..000000000 --- a/db/versions/10862-navyHydrangea/03-updateExpense.sql +++ /dev/null @@ -1,44 +0,0 @@ -UPDATE vn.expense -SET id = CASE id - WHEN 7000010000 THEN 7001001000 - WHEN 7000020000 THEN 7001002000 - WHEN 7000030000 THEN 7001003000 - WHEN 7000040000 THEN 7001004000 - WHEN 7000050000 THEN 7001005000 - WHEN 7000060000 THEN 7001006000 - WHEN 7000070000 THEN 7001007000 - WHEN 7002060000 THEN 7001206000 - WHEN 7002070000 THEN 7001207000 - WHEN 7002030000 THEN 7001203000 - WHEN 7002040000 THEN 7001204000 - WHEN 7002050000 THEN 7001205000 - WHEN 7002020000 THEN 7001202000 - WHEN 7002010000 THEN 7001201000 - WHEN 7001060000 THEN 7001106000 - WHEN 7001070000 THEN 7001107000 - WHEN 7001030000 THEN 7001103000 - WHEN 7001040000 THEN 7001104000 - WHEN 7001050000 THEN 7001105000 - WHEN 7001020000 THEN 7001102000 - WHEN 7001010000 THEN 7001101000 - WHEN 7000080000 THEN 7040008000 - WHEN 7001080000 THEN 7000108000 - WHEN 7002080000 THEN 7001208000 - WHEN 7000090000 THEN 7001009000 - WHEN 7002090000 THEN 7001209000 - WHEN 7002100000 THEN 7001210000 - WHEN 7001090000 THEN 7001109000 - WHEN 7001100000 THEN 7001110000 - WHEN 7000120000 THEN 7001012000 - WHEN 7002120000 THEN 7001212000 - WHEN 7000130000 THEN 7001013000 - WHEN 7000140000 THEN 7001014000 - ELSE id -END -WHERE id IN (7000010000, 7000020000, 7000030000, 7000040000, 7000050000, - 7000060000, 7000070000, 7002060000, 7002070000, 7002030000, - 7002040000, 7002050000, 7002020000, 7002010000, 7001060000, - 7001070000, 7001030000, 7001040000, 7001050000, 7001020000, - 7001010000, 7000080000, 7001080000, 7002080000, 7000090000, - 7002090000, 7002100000, 7001090000, 7001100000, - 7000120000, 7002120000, 7000130000, 7000140000); diff --git a/db/versions/10862-navyHydrangea/04-updateExpenseConflict.sql b/db/versions/10862-navyHydrangea/04-updateExpenseConflict.sql deleted file mode 100644 index 0e008081b..000000000 --- a/db/versions/10862-navyHydrangea/04-updateExpenseConflict.sql +++ /dev/null @@ -1,6 +0,0 @@ -UPDATE vn.expense -SET id = CASE id - WHEN 7000100000 THEN 7001010000 - ELSE id -END -WHERE id IN (7000100000); diff --git a/db/versions/10885-wheatHydrangea/00-revokeUpdateClient.sql b/db/versions/10885-wheatHydrangea/00-revokeUpdateClient.sql deleted file mode 100644 index b22e09615..000000000 --- a/db/versions/10885-wheatHydrangea/00-revokeUpdateClient.sql +++ /dev/null @@ -1,37 +0,0 @@ -REVOKE UPDATE ON vn.ticket FROM employee; - -GRANT UPDATE (id, - warehouseFk, - shipped, - nickname, - refFk, - addressFk, - workerFk, - observations, - isSigned, - isLabeled, - isPrinted, - packages, - location, - hour, - created, - isBlocked, - solution, - routeFk, - priority, - hasPriority, - companyFk, - agencyModeFk, - landed, - isBoxed, - isDeleted, - zoneFk, - zonePrice, - zoneBonus, - totalWithVat, - totalWithoutVat, - weight, - clonedFrom, - cmrFk, - editorFk) - ON vn.ticket TO employee; diff --git a/modules/invoiceOut/back/methods/invoiceOut/negativeBases.js b/modules/invoiceOut/back/methods/invoiceOut/negativeBases.js index 66440616c..dc9496b4a 100644 --- a/modules/invoiceOut/back/methods/invoiceOut/negativeBases.js +++ b/modules/invoiceOut/back/methods/invoiceOut/negativeBases.js @@ -46,19 +46,23 @@ module.exports = Self => { const stmts = []; let stmt; + stmts.push(`DROP TEMPORARY TABLE IF EXISTS tmp.ticket`); + stmts.push(new ParameterizedSQL( - `CREATE OR REPLACE TEMPORARY TABLE tmp.ticket + `CREATE TEMPORARY TABLE tmp.ticket (KEY (ticketFk)) ENGINE = MEMORY SELECT id ticketFk FROM ticket t - WHERE shipped BETWEEN ? AND util.dayEnd(?) + WHERE shipped BETWEEN ? AND ? AND refFk IS NULL`, [args.from, args.to])); stmts.push(`CALL vn.ticket_getTax(NULL)`); + stmts.push(`DROP TEMPORARY TABLE IF EXISTS tmp.filter`); stmts.push(new ParameterizedSQL( - `CREATE OR REPLACE TEMPORARY TABLE tmp.filter + `CREATE TEMPORARY TABLE tmp.filter ENGINE = MEMORY - SELECT co.code company, + SELECT + co.code company, cou.country, c.id clientId, c.socialName clientSocialName, @@ -71,26 +75,28 @@ module.exports = Self => { c.isTaxDataChecked, w.id comercialId, CONCAT(w.firstName, ' ', w.lastName) comercialName - FROM vn.ticket t - JOIN vn.company co ON co.id = t.companyFk - JOIN vn.sale s ON s.ticketFk = t.id - JOIN vn.client c ON c.id = t.clientFk - JOIN vn.country cou ON cou.id = c.countryFk - LEFT JOIN vn.worker w ON w.id = c.salesPersonFk - JOIN account.user u ON u.id = w.id - LEFT JOIN ( - SELECT ticketFk, taxableBase - FROM tmp.ticketAmount - GROUP BY ticketFk - HAVING taxableBase < 0 - ) negativeBase ON negativeBase.ticketFk = t.id - WHERE t.shipped BETWEEN ? AND util.dayEnd(?) - AND t.refFk IS NULL - AND c.typeFk IN ('normal','trust') - GROUP BY t.clientFk, negativeBase.taxableBase - HAVING amount < 0`, [args.from, args.to])); + FROM vn.ticket t + JOIN vn.company co ON co.id = t.companyFk + JOIN vn.sale s ON s.ticketFk = t.id + JOIN vn.client c ON c.id = t.clientFk + JOIN vn.country cou ON cou.id = c.countryFk + LEFT JOIN vn.worker w ON w.id = c.salesPersonFk + JOIN account.user u ON u.id = w.id + LEFT JOIN ( + SELECT ticketFk, taxableBase + FROM tmp.ticketAmount + GROUP BY ticketFk + HAVING taxableBase < 0 + ) negativeBase ON negativeBase.ticketFk = t.id + WHERE t.shipped BETWEEN ? AND ? + AND t.refFk IS NULL + AND c.typeFk IN ('normal','trust') + GROUP BY t.clientFk, negativeBase.taxableBase + HAVING amount < 0`, [args.from, args.to])); - stmt = new ParameterizedSQL(`SELECT * FROM tmp.filter`); + stmt = new ParameterizedSQL(` + SELECT f.* + FROM tmp.filter f`); if (args.filter) { stmt.merge(conn.makeWhere(args.filter.where)); diff --git a/modules/item/back/methods/item-shelving/specs/addListByItem.spec.js b/modules/item/back/methods/item-shelving/specs/addListByItem.spec.js deleted file mode 100644 index e31ff2e61..000000000 --- a/modules/item/back/methods/item-shelving/specs/addListByItem.spec.js +++ /dev/null @@ -1,55 +0,0 @@ -const {models} = require('vn-loopback/server/server'); -const LoopBackContext = require('loopback-context'); - -describe('ItemShelving upsertItem()', () => { - const warehouseFk = 1; - let ctx; - let options; - let tx; - - beforeEach(async() => { - ctx = { - req: { - accessToken: {userId: 9}, - headers: {origin: 'http://localhost'} - }, - args: {} - }; - - spyOn(LoopBackContext, 'getCurrentContext').and.returnValue({ - active: ctx.req - }); - - options = {transaction: tx}; - tx = await models.ItemShelving.beginTransaction({}); - options.transaction = tx; - }); - - afterEach(async() => { - await tx.rollback(); - }); - - it('should add two new records', async() => { - const shelvingFk = 'ZPP'; - const items = [1, 1, 1, 2]; - - await models.ItemShelving.upsertItem(ctx, shelvingFk, items, warehouseFk, options); - const itemShelvings = await models.ItemShelving.find({where: {shelvingFk}}, options); - - expect(itemShelvings.length).toEqual(2); - }); - - it('should update the visible items', async() => { - const shelvingFk = 'GVC'; - const items = [2, 2]; - const {visible: itemsBefore} = await models.ItemShelving.findOne({ - where: {shelvingFk, itemFk: items[0]} - }, options); - await models.ItemShelving.upsertItem(ctx, shelvingFk, items, warehouseFk, options); - const {visible: itemsAfter} = await models.ItemShelving.findOne({ - where: {shelvingFk, itemFk: items[0]} - }, options); - - expect(itemsAfter).toEqual(itemsBefore + 2); - }); -}); diff --git a/modules/item/back/methods/item-shelving/upsertItem.js b/modules/item/back/methods/item-shelving/upsertItem.js deleted file mode 100644 index 49c2f1b0d..000000000 --- a/modules/item/back/methods/item-shelving/upsertItem.js +++ /dev/null @@ -1,64 +0,0 @@ -module.exports = Self => { - Self.remoteMethodCtx('upsertItem', { - 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: `/upsertItem`, - verb: 'POST' - } - }); - - Self.upsertItem = async(ctx, shelvingFk, items, warehouseFk, options) => { - const myOptions = {userId: ctx.req.accessToken.userId}; - let tx; - - if (typeof options == 'object') - Object.assign(myOptions, options); - - if (!myOptions.transaction) { - tx = await Self.beginTransaction({}); - myOptions.transaction = tx; - } - - const discardItems = new Set(); - const itemCounts = items.reduce((acc, item) => { - acc[item] = (acc[item] || 0) + 1; - return acc; - }, {}); - - try { - for (let item of items) { - if (!discardItems.has(item)) { - let quantity = itemCounts[item]; - discardItems.add(item); - - await Self.rawSql('CALL vn.itemShelving_add(?, ?, ?, NULL, NULL, NULL, ?)', - [shelvingFk, item, quantity, warehouseFk], 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 c031d8271..98ff18931 100644 --- a/modules/item/back/models/item-shelving.js +++ b/modules/item/back/models/item-shelving.js @@ -1,5 +1,4 @@ module.exports = Self => { require('../methods/item-shelving/deleteItemShelvings')(Self); - require('../methods/item-shelving/upsertItem')(Self); require('../methods/item-shelving/getInventory')(Self); }; diff --git a/modules/ticket/back/methods/ticket/specs/transferClient.spec.js b/modules/ticket/back/methods/ticket/specs/transferClient.spec.js index 5f1c09776..5a9edd17e 100644 --- a/modules/ticket/back/methods/ticket/specs/transferClient.spec.js +++ b/modules/ticket/back/methods/ticket/specs/transferClient.spec.js @@ -1,60 +1,49 @@ const models = require('vn-loopback/server/server').models; describe('Ticket transferClient()', () => { - const originalTicketId = 8; - const refundTicketId = 24; - const clientId = 1; - let ctx; - let options; - let tx; - beforeEach(async() => { - ctx = { - req: { - accessToken: {userId: 9}, - headers: {origin: 'http://localhost'} - }, - args: {} - }; - - options = {transaction: tx}; - tx = await models.Ticket.beginTransaction({}); - options.transaction = tx; - }); - - afterEach(async() => { - await tx.rollback(); - }); + const userId = 9; + const activeCtx = { + accessToken: {userId: userId}, + }; + const ctx = {req: activeCtx}; it('should throw an error as the ticket is not editable', async() => { + const tx = await models.Ticket.beginTransaction({}); + let error; + try { + const options = {transaction: tx}; const ticketId = 4; const clientId = 1; await models.Ticket.transferClient(ctx, ticketId, clientId, options); + + await tx.rollback(); } catch (e) { - expect(e.message).toEqual(`This ticket is locked`); + await tx.rollback(); + error = e; } + + expect(error.message).toEqual(`This ticket is locked`); }); - it('should be assigned a different clientFk in the original ticket', async() => { - await models.Ticket.transferClient(ctx, 2, clientId, options); - const afterTransfer = await models.Ticket.findById(2, null, options); + it('should be assigned a different clientFk', async() => { + const tx = await models.Ticket.beginTransaction({}); + let updatedTicket; + const ticketId = 10; + const clientId = 1; - expect(afterTransfer.clientFk).toEqual(clientId); - }); + try { + const options = {transaction: tx}; - it('should be assigned a different clientFk in the original and refund ticket and claim', async() => { - await models.Ticket.transferClient(ctx, originalTicketId, clientId, options); + await models.Ticket.transferClient(ctx, ticketId, clientId, options); + updatedTicket = await models.Ticket.findById(ticketId, {fields: ['clientFk']}, options); - const [originalTicket, refundTicket] = await models.Ticket.find({ - where: {id: {inq: [originalTicketId, refundTicketId]}} - }, options); + await tx.rollback(); + } catch (e) { + await tx.rollback(); + throw e; + } - const claim = await models.Claim.findOne({ - where: {ticketFk: originalTicketId} - }, options); - - expect(originalTicket.clientFk).toEqual(clientId); - expect(refundTicket.clientFk).toEqual(clientId); - expect(claim.clientFk).toEqual(clientId); + expect(updatedTicket.clientFk).toEqual(clientId); }); }); diff --git a/modules/ticket/back/methods/ticket/transferClient.js b/modules/ticket/back/methods/ticket/transferClient.js index d38c0e8a7..60e70d710 100644 --- a/modules/ticket/back/methods/ticket/transferClient.js +++ b/modules/ticket/back/methods/ticket/transferClient.js @@ -2,17 +2,20 @@ module.exports = Self => { Self.remoteMethodCtx('transferClient', { description: 'Transfering ticket to another client', accessType: 'WRITE', - accepts: [{ - arg: 'id', - type: 'number', - required: true, - description: 'the ticket id', - http: {source: 'path'} - }, { - arg: 'clientFk', - type: 'number', - required: true, - }], + accepts: [ + { + arg: 'id', + type: 'number', + required: true, + description: 'the ticket id', + http: {source: 'path'} + }, + { + arg: 'clientFk', + type: 'number', + required: true, + }, + ], http: { path: `/:id/transferClient`, verb: 'PATCH' @@ -22,51 +25,21 @@ module.exports = Self => { Self.transferClient = async(ctx, id, clientFk, 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; - } + await Self.isEditableOrThrow(ctx, id, myOptions); - try { - await Self.isEditableOrThrow(ctx, id, myOptions); + const ticket = await models.Ticket.findById( + id, + {fields: ['id', 'shipped', 'clientFk', 'addressFk']}, + myOptions + ); + const client = await models.Client.findById(clientFk, {fields: ['id', 'defaultAddressFk']}, myOptions); - const ticketRefund = await models.TicketRefund.findOne({ - where: {or: [{originalTicketFk: id}, {refundTicketFk: id}]}, - include: [{relation: 'refundTicket'}, {relation: 'originalTicket'}] - }, myOptions); - - const {defaultAddressFk: addressFk} = await models.Client.findById(clientFk, - {fields: ['id', 'defaultAddressFk']}, myOptions); - - const attributes = {clientFk, addressFk}; - - const tickets = []; - const ticketIds = []; - - if (ticketRefund) { - const {refundTicket, originalTicket} = ticketRefund; - tickets.push(refundTicket(), originalTicket()); - - for (const ticket of tickets) { - await ticket.updateAttributes(attributes, myOptions); - ticketIds.push(ticket.id); - } - } else { - await Self.updateAll({id}, attributes, myOptions); - ticketIds.push(id); - } - - await models.Claim.updateAll({ticketFk: {inq: ticketIds}}, {clientFk}, myOptions); - - if (tx) await tx.commit(); - } catch (e) { - if (tx) await tx.rollback(); - throw e; - } + await ticket.updateAttributes({ + clientFk, + addressFk: client.defaultAddressFk, + }); }; }; diff --git a/modules/worker/back/methods/worker/specs/new.spec.js b/modules/worker/back/methods/worker/specs/new.spec.js index 1f74e9b95..d0830b00f 100644 --- a/modules/worker/back/methods/worker/specs/new.spec.js +++ b/modules/worker/back/methods/worker/specs/new.spec.js @@ -36,7 +36,6 @@ describe('Worker new', () => { payMethodFk: 1, roleFk: 1 }; - const req = {accessToken: {userId: 9}}; it('should return error if personal mail already exists', async() => { @@ -141,24 +140,15 @@ describe('Worker new', () => { it('should create a new worker', async() => { const newWorker = await models.Worker.new({args: defaultWorker, req}); - await removeWorker(newWorker.id); + await models.Worker.destroyById(newWorker.id); + await models.Address.destroyAll({clientFk: newWorker.id}); + await models.Mandate.destroyAll({clientFk: newWorker.id}); + await models.Client.destroyById(newWorker.id); + await models.VnUser.destroyById(newWorker.id); expect(newWorker.id).toBeDefined(); }); - it('should create a new client', async() => { - let newWorker; - let client; - try { - newWorker = await models.Worker.new({args: defaultWorker, req}); - client = await models.Client.findById(newWorker.id); - } finally { - await removeWorker(newWorker.id); - } - - expect(client).toBeDefined(); - }); - it('should create a new worker in client', async() => { const bruceWayneId = 1101; const client = await models.Client.findById(bruceWayneId, {fields: ['fi', 'email']}); @@ -180,11 +170,3 @@ describe('Worker new', () => { expect(newWorker.id).toEqual(bruceWayneId); }); }); - -async function removeWorker(id) { - await models.Worker.destroyById(id); - await models.Address.destroyAll({clientFk: id}); - await models.Mandate.destroyAll({clientFk: id}); - await models.Client.destroyById(id); - await models.VnUser.destroyById(id); -} diff --git a/myt.config.yml b/myt.config.yml index 0b1d62d25..2e37a0d97 100755 --- a/myt.config.yml +++ b/myt.config.yml @@ -44,6 +44,7 @@ fixtures: - module - defaultViewConfig vn: + - agencyTermConfig - alertLevel - bookingPlanner - businessType diff --git a/package.json b/package.json index 47b3a1564..6f0624360 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "salix-back", - "version": "24.10.0", + "version": "24.8.0", "author": "Verdnatura Levante SL", "description": "Salix backend", "license": "GPL-3.0", From 92f228263216e94b5e7155f369ac0fe73a8d7604 Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 21 Feb 2024 14:52:28 +0100 Subject: [PATCH 21/24] Revert "Merge pull request 'Revert "Merge branch 'dev' into test"' (!2064) from test_revert into test" This reverts commit cbe23d8df5c4eeade7c9203b05013705c3015f89, reversing changes made to c4a64b93cc4f021ebc6268c48033aec3c00e139b. --- back/methods/collection/getSectors.js | 20 ----- .../collection/spec/getSectors.spec.js | 11 --- back/models/collection.js | 1 - db/dump/.dump/data.sql | 2 - db/dump/fixtures.before.sql | 3 +- .../bs/procedures/ventas_contables_add.sql | 34 ++++---- .../procedures/invoiceInTax_afterUpsert.sql | 15 +++- .../vn/procedures/itemProposal_Add.sql | 70 ----------------- .../vn/procedures/itemShelving_add.sql | 4 + .../vn/procedures/sale_getBoxPickingList.sql | 51 ++---------- .../sectorCollectionSaleGroup_add.sql | 19 +++++ db/routines/vn/procedures/sector_get.sql | 13 ---- db/routines/vn/procedures/ticket_getTax.sql | 58 +++++++------- .../vn/triggers/ticket_beforeUpdate.sql | 10 --- .../00-alterAgencyTermConfig.sql | 3 + .../00-alterGastosResumen.sql | 11 +++ .../00-alterInvoiceOutTaxConfig.sql | 5 ++ .../00-alterItemGroupToOffer.sql | 5 ++ .../01-ventasContablesPk.sql | 14 ++++ .../02-updateExpenseRegularize.sql | 8 ++ .../10862-navyHydrangea/03-updateExpense.sql | 44 +++++++++++ .../04-updateExpenseConflict.sql | 6 ++ .../00-revokeUpdateClient.sql | 37 +++++++++ .../back/methods/invoiceOut/negativeBases.js | 52 ++++++------- .../item-shelving/specs/addListByItem.spec.js | 55 +++++++++++++ .../back/methods/item-shelving/upsertItem.js | 64 +++++++++++++++ modules/item/back/models/item-shelving.js | 1 + .../ticket/specs/transferClient.spec.js | 71 +++++++++-------- .../back/methods/ticket/transferClient.js | 77 +++++++++++++------ .../back/methods/worker/specs/new.spec.js | 28 +++++-- myt.config.yml | 1 - package.json | 2 +- 32 files changed, 486 insertions(+), 309 deletions(-) delete mode 100644 back/methods/collection/getSectors.js delete mode 100644 back/methods/collection/spec/getSectors.spec.js delete mode 100644 db/routines/vn/procedures/itemProposal_Add.sql delete mode 100644 db/routines/vn/procedures/sector_get.sql create mode 100644 db/versions/10862-navyHydrangea/00-alterAgencyTermConfig.sql create mode 100644 db/versions/10862-navyHydrangea/00-alterGastosResumen.sql create mode 100644 db/versions/10862-navyHydrangea/00-alterInvoiceOutTaxConfig.sql create mode 100644 db/versions/10862-navyHydrangea/00-alterItemGroupToOffer.sql create mode 100644 db/versions/10862-navyHydrangea/01-ventasContablesPk.sql create mode 100644 db/versions/10862-navyHydrangea/02-updateExpenseRegularize.sql create mode 100644 db/versions/10862-navyHydrangea/03-updateExpense.sql create mode 100644 db/versions/10862-navyHydrangea/04-updateExpenseConflict.sql create mode 100644 db/versions/10885-wheatHydrangea/00-revokeUpdateClient.sql create mode 100644 modules/item/back/methods/item-shelving/specs/addListByItem.spec.js create mode 100644 modules/item/back/methods/item-shelving/upsertItem.js diff --git a/back/methods/collection/getSectors.js b/back/methods/collection/getSectors.js deleted file mode 100644 index 12ad0dc06..000000000 --- a/back/methods/collection/getSectors.js +++ /dev/null @@ -1,20 +0,0 @@ -module.exports = Self => { - Self.remoteMethod('getSectors', { - description: 'Get all sectors', - accessType: 'READ', - returns: { - type: 'Object', - root: true - }, - http: { - path: `/getSectors`, - verb: 'GET' - } - }); - - Self.getSectors = async() => { - const query = `CALL vn.sector_get()`; - const [result] = await Self.rawSql(query); - return result; - }; -}; diff --git a/back/methods/collection/spec/getSectors.spec.js b/back/methods/collection/spec/getSectors.spec.js deleted file mode 100644 index d8fa60663..000000000 --- a/back/methods/collection/spec/getSectors.spec.js +++ /dev/null @@ -1,11 +0,0 @@ -const {models} = require('vn-loopback/server/server'); - -describe('getSectors()', () => { - it('return list of sectors', async() => { - let response = await models.Collection.getSectors(); - - expect(response.length).toBeGreaterThan(0); - expect(response[0].id).toEqual(1); - expect(response[0].description).toEqual('First sector'); - }); -}); diff --git a/back/models/collection.js b/back/models/collection.js index 1c10d49fa..52ef26e88 100644 --- a/back/models/collection.js +++ b/back/models/collection.js @@ -1,6 +1,5 @@ module.exports = Self => { require('../methods/collection/getCollection')(Self); - require('../methods/collection/getSectors')(Self); require('../methods/collection/setSaleQuantity')(Self); require('../methods/collection/previousLabel')(Self); require('../methods/collection/getTickets')(Self); diff --git a/db/dump/.dump/data.sql b/db/dump/.dump/data.sql index 8367471bc..6fe6c1414 100644 --- a/db/dump/.dump/data.sql +++ b/db/dump/.dump/data.sql @@ -1750,8 +1750,6 @@ USE `vn`; /*!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 `agencyTermConfig` VALUES ('6240000000','4721000015',21.0000000000,'Adquisiciones intracomunitarias de servicios'); - INSERT INTO `alertLevel` VALUES ('FREE',0,1); INSERT INTO `alertLevel` VALUES ('ON_PREPARATION',1,1); INSERT INTO `alertLevel` VALUES ('PACKED',2,0); diff --git a/db/dump/fixtures.before.sql b/db/dump/fixtures.before.sql index 094b956af..43293c9ea 100644 --- a/db/dump/fixtures.before.sql +++ b/db/dump/fixtures.before.sql @@ -653,6 +653,7 @@ INSERT INTO `vn`.`expense`(`id`, `name`, `isWithheld`) (7001000000, 'Mercaderia', 0), (7050000000, 'Prestacion de servicios', 1); +INSERT INTO `vn`.`agencyTermConfig` VALUES ('6240000000','4721000015',21.0000000000,'Adquisiciones intracomunitarias de servicios'); INSERT INTO `vn`.`invoiceOutExpense`(`id`, `invoiceOutFk`, `amount`, `expenseFk`, `created`) VALUES @@ -728,7 +729,7 @@ INSERT INTO `vn`.`route`(`id`, `time`, `workerFk`, `created`, `vehicleFk`, `agen INSERT INTO `vn`.`ticket`(`id`, `priority`, `agencyModeFk`,`warehouseFk`,`routeFk`, `shipped`, `landed`, `clientFk`,`nickname`, `addressFk`, `refFk`, `isDeleted`, `zoneFk`, `zonePrice`, `zoneBonus`, `created`, `weight`, `cmrFk`) VALUES (1 , 3, 1, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -1 MONTH), INTERVAL +1 DAY), 1101, 'Bat cave', 121, NULL, 0, 1, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1, 1), - (2 , 1, 1, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -1 MONTH), INTERVAL +1 DAY), 1101, 'Bat cave', 1, NULL, 0, 1, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 2, 2), + (2 , 1, 1, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -1 MONTH), INTERVAL +1 DAY), 1101, 'Bat cave', 1, NULL, 0, 1, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 2, 2), (3 , 1, 7, 1, 6, DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -2 MONTH), INTERVAL +1 DAY), 1104, 'Stark tower', 124, NULL, 0, 3, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH), NULL, 3), (4 , 3, 2, 1, 2, DATE_ADD(util.VN_CURDATE(), INTERVAL -3 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -3 MONTH), INTERVAL +1 DAY), 1104, 'Stark tower', 124, NULL, 0, 9, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -3 MONTH), NULL, NULL), (5 , 3, 3, 3, 3, DATE_ADD(util.VN_CURDATE(), INTERVAL -4 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -4 MONTH), INTERVAL +1 DAY), 1104, 'Stark tower', 124, NULL, 0, 10, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -4 MONTH), NULL, NULL), diff --git a/db/routines/bs/procedures/ventas_contables_add.sql b/db/routines/bs/procedures/ventas_contables_add.sql index 9988c8b29..12b2738f3 100644 --- a/db/routines/bs/procedures/ventas_contables_add.sql +++ b/db/routines/bs/procedures/ventas_contables_add.sql @@ -1,7 +1,7 @@ DELIMITER $$ CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bs`.`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 @@ -13,8 +13,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; @@ -25,7 +25,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 @@ -35,7 +35,7 @@ BEGIN , tipo_id , empresa_id , gasto) - + SELECT vYear , vMonth , round(sum(Cantidad * Preu * (100 - m.Descuento)/100)) @@ -47,13 +47,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 @@ -67,7 +67,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 @@ -86,17 +86,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 ; diff --git a/db/routines/vn/procedures/invoiceInTax_afterUpsert.sql b/db/routines/vn/procedures/invoiceInTax_afterUpsert.sql index 77e989630..60ec34696 100644 --- a/db/routines/vn/procedures/invoiceInTax_afterUpsert.sql +++ b/db/routines/vn/procedures/invoiceInTax_afterUpsert.sql @@ -8,6 +8,7 @@ BEGIN */ DECLARE vTaxRowLimit INT; DECLARE vLines INT; + DECLARE vHasDistinctTransactions INT; SELECT taxRowLimit INTO vTaxRowLimit FROM invoiceInConfig; @@ -18,6 +19,18 @@ 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 ; diff --git a/db/routines/vn/procedures/itemProposal_Add.sql b/db/routines/vn/procedures/itemProposal_Add.sql deleted file mode 100644 index ac4dfa5d5..000000000 --- a/db/routines/vn/procedures/itemProposal_Add.sql +++ /dev/null @@ -1,70 +0,0 @@ -DELIMITER $$ -CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`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; -END$$ -DELIMITER ; diff --git a/db/routines/vn/procedures/itemShelving_add.sql b/db/routines/vn/procedures/itemShelving_add.sql index 02762fa0b..2a4676b50 100644 --- a/db/routines/vn/procedures/itemShelving_add.sql +++ b/db/routines/vn/procedures/itemShelving_add.sql @@ -19,6 +19,10 @@ BEGIN DECLARE vItemFk INT; SELECT barcodeToItem(vBarcode) INTO vItemFk; + + SET vPacking = COALESCE(vPacking, GREATEST(vn.itemPacking(vBarcode,vWarehouseFk), 1)); + + SET vQuantity = vQuantity * vPacking; IF (SELECT COUNT(*) FROM shelving WHERE code = vShelvingFk COLLATE utf8_unicode_ci) = 0 THEN diff --git a/db/routines/vn/procedures/sale_getBoxPickingList.sql b/db/routines/vn/procedures/sale_getBoxPickingList.sql index 0f2b2bc71..0af23e945 100644 --- a/db/routines/vn/procedures/sale_getBoxPickingList.sql +++ b/db/routines/vn/procedures/sale_getBoxPickingList.sql @@ -17,7 +17,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 @@ -29,7 +28,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 @@ -52,8 +51,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 @@ -64,47 +63,13 @@ 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; END$$ DELIMITER ; + +CALL `vn`.`sale_getBoxPickingList`(1, curdate()); \ No newline at end of file diff --git a/db/routines/vn/procedures/sectorCollectionSaleGroup_add.sql b/db/routines/vn/procedures/sectorCollectionSaleGroup_add.sql index 9e21defc5..5ffb30635 100644 --- a/db/routines/vn/procedures/sectorCollectionSaleGroup_add.sql +++ b/db/routines/vn/procedures/sectorCollectionSaleGroup_add.sql @@ -8,6 +8,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; diff --git a/db/routines/vn/procedures/sector_get.sql b/db/routines/vn/procedures/sector_get.sql deleted file mode 100644 index fe978203a..000000000 --- a/db/routines/vn/procedures/sector_get.sql +++ /dev/null @@ -1,13 +0,0 @@ -DELIMITER $$ -CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`sector_get`() -BEGIN - -/** - * Obtiene los sectores -*/ - - SELECT s.id,s.description,s.warehouseFk - FROM vn.sector s; - -END$$ -DELIMITER ; diff --git a/db/routines/vn/procedures/ticket_getTax.sql b/db/routines/vn/procedures/ticket_getTax.sql index 7269a1caf..b9f5c14e3 100644 --- a/db/routines/vn/procedures/ticket_getTax.sql +++ b/db/routines/vn/procedures/ticket_getTax.sql @@ -9,6 +9,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)) @@ -17,24 +19,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 @@ -43,22 +45,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, @@ -70,24 +71,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, @@ -97,7 +96,8 @@ 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 ; diff --git a/db/routines/vn/triggers/ticket_beforeUpdate.sql b/db/routines/vn/triggers/ticket_beforeUpdate.sql index 0836b2486..72831bc3d 100644 --- a/db/routines/vn/triggers/ticket_beforeUpdate.sql +++ b/db/routines/vn/triggers/ticket_beforeUpdate.sql @@ -4,7 +4,6 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`ticket_beforeUpdate` FOR EACH ROW BEGIN DECLARE vNewTime TIME; - DECLARE vHasTicketRefund BOOL; SET NEW.editorFk = account.myUser_getId(); @@ -64,14 +63,5 @@ 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 ; diff --git a/db/versions/10862-navyHydrangea/00-alterAgencyTermConfig.sql b/db/versions/10862-navyHydrangea/00-alterAgencyTermConfig.sql new file mode 100644 index 000000000..3409b762e --- /dev/null +++ b/db/versions/10862-navyHydrangea/00-alterAgencyTermConfig.sql @@ -0,0 +1,3 @@ +USE vn; +ALTER TABLE vn.agencyTermConfig + ADD CONSTRAINT agencyTermConfig_expense_FK FOREIGN KEY (expenseFk) REFERENCES vn.expense(id) ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/db/versions/10862-navyHydrangea/00-alterGastosResumen.sql b/db/versions/10862-navyHydrangea/00-alterGastosResumen.sql new file mode 100644 index 000000000..307b8f205 --- /dev/null +++ b/db/versions/10862-navyHydrangea/00-alterGastosResumen.sql @@ -0,0 +1,11 @@ +USE vn; + +ALTER TABLE vn2008.gastos_resumen MODIFY COLUMN Id_Gasto varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL; + +DELETE gr.* + FROM vn2008.gastos_resumen gr LEFT JOIN vn.expense e ON gr.Id_Gasto = e.id + WHERE e.id IS NULL; + +ALTER TABLE vn2008.gastos_resumen + ADD CONSTRAINT gastos_resumen_expense_FK + FOREIGN KEY (Id_Gasto) REFERENCES vn.expense(id) ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/db/versions/10862-navyHydrangea/00-alterInvoiceOutTaxConfig.sql b/db/versions/10862-navyHydrangea/00-alterInvoiceOutTaxConfig.sql new file mode 100644 index 000000000..fc5025c18 --- /dev/null +++ b/db/versions/10862-navyHydrangea/00-alterInvoiceOutTaxConfig.sql @@ -0,0 +1,5 @@ +USE vn; +ALTER TABLE vn.invoiceOutTaxConfig MODIFY COLUMN expenseFk varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL NULL; + +ALTER TABLE vn.invoiceOutTaxConfig + ADD CONSTRAINT invoiceOutTaxConfig_expense_FK FOREIGN KEY (expenseFk) REFERENCES vn.expense(id) ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/db/versions/10862-navyHydrangea/00-alterItemGroupToOffer.sql b/db/versions/10862-navyHydrangea/00-alterItemGroupToOffer.sql new file mode 100644 index 000000000..68611c13c --- /dev/null +++ b/db/versions/10862-navyHydrangea/00-alterItemGroupToOffer.sql @@ -0,0 +1,5 @@ +USE edi; +ALTER TABLE edi.item_groupToOffer MODIFY COLUMN expenseFk varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT '7001000000' NULL; + +ALTER TABLE edi.item_groupToOffer + ADD CONSTRAINT item_groupToOffer_expense_FK FOREIGN KEY (expenseFk) REFERENCES vn.expense(id) ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/db/versions/10862-navyHydrangea/01-ventasContablesPk.sql b/db/versions/10862-navyHydrangea/01-ventasContablesPk.sql new file mode 100644 index 000000000..3f8bf2c79 --- /dev/null +++ b/db/versions/10862-navyHydrangea/01-ventasContablesPk.sql @@ -0,0 +1,14 @@ +USE vn; +-- Eliminar la clave primaria actual +ALTER TABLE bs.ventas_contables DROP PRIMARY KEY; + +-- Agregar la nueva clave primaria incluyendo el campo `gasto` +ALTER TABLE bs.ventas_contables ADD PRIMARY KEY (`year`, `month`, `grupo`, `reino_id`, `tipo_id`, `empresa_id`, `gasto`); + +DELETE vc.* FROM bs.ventas_contables vc LEFT JOIN vn.expense e ON e.id = vc.gasto WHERE e.id IS NULL; + +ALTER TABLE bs.ventas_contables + MODIFY COLUMN gasto VARCHAR(10) + CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL; + +ALTER TABLE bs.ventas_contables ADD CONSTRAINT ventas_contables_expense_FK FOREIGN KEY (gasto) REFERENCES vn.expense(id) ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/db/versions/10862-navyHydrangea/02-updateExpenseRegularize.sql b/db/versions/10862-navyHydrangea/02-updateExpenseRegularize.sql new file mode 100644 index 000000000..90d865c1d --- /dev/null +++ b/db/versions/10862-navyHydrangea/02-updateExpenseRegularize.sql @@ -0,0 +1,8 @@ +DELETE FROM vn.expense + WHERE id ='' AND id IS NULL AND isWithheld = FALSE; +UPDATE vn.expense + SET id='7002090000' + WHERE id='7002009000'; +UPDATE vn.expense + SET id='7001090000' + WHERE id='7001009000'; diff --git a/db/versions/10862-navyHydrangea/03-updateExpense.sql b/db/versions/10862-navyHydrangea/03-updateExpense.sql new file mode 100644 index 000000000..a44c4c504 --- /dev/null +++ b/db/versions/10862-navyHydrangea/03-updateExpense.sql @@ -0,0 +1,44 @@ +UPDATE vn.expense +SET id = CASE id + WHEN 7000010000 THEN 7001001000 + WHEN 7000020000 THEN 7001002000 + WHEN 7000030000 THEN 7001003000 + WHEN 7000040000 THEN 7001004000 + WHEN 7000050000 THEN 7001005000 + WHEN 7000060000 THEN 7001006000 + WHEN 7000070000 THEN 7001007000 + WHEN 7002060000 THEN 7001206000 + WHEN 7002070000 THEN 7001207000 + WHEN 7002030000 THEN 7001203000 + WHEN 7002040000 THEN 7001204000 + WHEN 7002050000 THEN 7001205000 + WHEN 7002020000 THEN 7001202000 + WHEN 7002010000 THEN 7001201000 + WHEN 7001060000 THEN 7001106000 + WHEN 7001070000 THEN 7001107000 + WHEN 7001030000 THEN 7001103000 + WHEN 7001040000 THEN 7001104000 + WHEN 7001050000 THEN 7001105000 + WHEN 7001020000 THEN 7001102000 + WHEN 7001010000 THEN 7001101000 + WHEN 7000080000 THEN 7040008000 + WHEN 7001080000 THEN 7000108000 + WHEN 7002080000 THEN 7001208000 + WHEN 7000090000 THEN 7001009000 + WHEN 7002090000 THEN 7001209000 + WHEN 7002100000 THEN 7001210000 + WHEN 7001090000 THEN 7001109000 + WHEN 7001100000 THEN 7001110000 + WHEN 7000120000 THEN 7001012000 + WHEN 7002120000 THEN 7001212000 + WHEN 7000130000 THEN 7001013000 + WHEN 7000140000 THEN 7001014000 + ELSE id +END +WHERE id IN (7000010000, 7000020000, 7000030000, 7000040000, 7000050000, + 7000060000, 7000070000, 7002060000, 7002070000, 7002030000, + 7002040000, 7002050000, 7002020000, 7002010000, 7001060000, + 7001070000, 7001030000, 7001040000, 7001050000, 7001020000, + 7001010000, 7000080000, 7001080000, 7002080000, 7000090000, + 7002090000, 7002100000, 7001090000, 7001100000, + 7000120000, 7002120000, 7000130000, 7000140000); diff --git a/db/versions/10862-navyHydrangea/04-updateExpenseConflict.sql b/db/versions/10862-navyHydrangea/04-updateExpenseConflict.sql new file mode 100644 index 000000000..0e008081b --- /dev/null +++ b/db/versions/10862-navyHydrangea/04-updateExpenseConflict.sql @@ -0,0 +1,6 @@ +UPDATE vn.expense +SET id = CASE id + WHEN 7000100000 THEN 7001010000 + ELSE id +END +WHERE id IN (7000100000); diff --git a/db/versions/10885-wheatHydrangea/00-revokeUpdateClient.sql b/db/versions/10885-wheatHydrangea/00-revokeUpdateClient.sql new file mode 100644 index 000000000..b22e09615 --- /dev/null +++ b/db/versions/10885-wheatHydrangea/00-revokeUpdateClient.sql @@ -0,0 +1,37 @@ +REVOKE UPDATE ON vn.ticket FROM employee; + +GRANT UPDATE (id, + warehouseFk, + shipped, + nickname, + refFk, + addressFk, + workerFk, + observations, + isSigned, + isLabeled, + isPrinted, + packages, + location, + hour, + created, + isBlocked, + solution, + routeFk, + priority, + hasPriority, + companyFk, + agencyModeFk, + landed, + isBoxed, + isDeleted, + zoneFk, + zonePrice, + zoneBonus, + totalWithVat, + totalWithoutVat, + weight, + clonedFrom, + cmrFk, + editorFk) + ON vn.ticket TO employee; diff --git a/modules/invoiceOut/back/methods/invoiceOut/negativeBases.js b/modules/invoiceOut/back/methods/invoiceOut/negativeBases.js index dc9496b4a..66440616c 100644 --- a/modules/invoiceOut/back/methods/invoiceOut/negativeBases.js +++ b/modules/invoiceOut/back/methods/invoiceOut/negativeBases.js @@ -46,23 +46,19 @@ module.exports = Self => { const stmts = []; let stmt; - stmts.push(`DROP TEMPORARY TABLE IF EXISTS tmp.ticket`); - stmts.push(new ParameterizedSQL( - `CREATE TEMPORARY TABLE tmp.ticket + `CREATE OR REPLACE TEMPORARY TABLE tmp.ticket (KEY (ticketFk)) ENGINE = MEMORY SELECT id ticketFk FROM ticket t - WHERE shipped BETWEEN ? AND ? + WHERE shipped BETWEEN ? AND util.dayEnd(?) AND refFk IS NULL`, [args.from, args.to])); stmts.push(`CALL vn.ticket_getTax(NULL)`); - stmts.push(`DROP TEMPORARY TABLE IF EXISTS tmp.filter`); stmts.push(new ParameterizedSQL( - `CREATE TEMPORARY TABLE tmp.filter + `CREATE OR REPLACE TEMPORARY TABLE tmp.filter ENGINE = MEMORY - SELECT - co.code company, + SELECT co.code company, cou.country, c.id clientId, c.socialName clientSocialName, @@ -75,28 +71,26 @@ module.exports = Self => { c.isTaxDataChecked, w.id comercialId, CONCAT(w.firstName, ' ', w.lastName) comercialName - FROM vn.ticket t - JOIN vn.company co ON co.id = t.companyFk - JOIN vn.sale s ON s.ticketFk = t.id - JOIN vn.client c ON c.id = t.clientFk - JOIN vn.country cou ON cou.id = c.countryFk - LEFT JOIN vn.worker w ON w.id = c.salesPersonFk - JOIN account.user u ON u.id = w.id - LEFT JOIN ( - SELECT ticketFk, taxableBase - FROM tmp.ticketAmount - GROUP BY ticketFk - HAVING taxableBase < 0 - ) negativeBase ON negativeBase.ticketFk = t.id - WHERE t.shipped BETWEEN ? AND ? - AND t.refFk IS NULL - AND c.typeFk IN ('normal','trust') - GROUP BY t.clientFk, negativeBase.taxableBase - HAVING amount < 0`, [args.from, args.to])); + FROM vn.ticket t + JOIN vn.company co ON co.id = t.companyFk + JOIN vn.sale s ON s.ticketFk = t.id + JOIN vn.client c ON c.id = t.clientFk + JOIN vn.country cou ON cou.id = c.countryFk + LEFT JOIN vn.worker w ON w.id = c.salesPersonFk + JOIN account.user u ON u.id = w.id + LEFT JOIN ( + SELECT ticketFk, taxableBase + FROM tmp.ticketAmount + GROUP BY ticketFk + HAVING taxableBase < 0 + ) negativeBase ON negativeBase.ticketFk = t.id + WHERE t.shipped BETWEEN ? AND util.dayEnd(?) + AND t.refFk IS NULL + AND c.typeFk IN ('normal','trust') + GROUP BY t.clientFk, negativeBase.taxableBase + HAVING amount < 0`, [args.from, args.to])); - stmt = new ParameterizedSQL(` - SELECT f.* - FROM tmp.filter f`); + stmt = new ParameterizedSQL(`SELECT * FROM tmp.filter`); if (args.filter) { stmt.merge(conn.makeWhere(args.filter.where)); diff --git a/modules/item/back/methods/item-shelving/specs/addListByItem.spec.js b/modules/item/back/methods/item-shelving/specs/addListByItem.spec.js new file mode 100644 index 000000000..e31ff2e61 --- /dev/null +++ b/modules/item/back/methods/item-shelving/specs/addListByItem.spec.js @@ -0,0 +1,55 @@ +const {models} = require('vn-loopback/server/server'); +const LoopBackContext = require('loopback-context'); + +describe('ItemShelving upsertItem()', () => { + const warehouseFk = 1; + let ctx; + let options; + let tx; + + beforeEach(async() => { + ctx = { + req: { + accessToken: {userId: 9}, + headers: {origin: 'http://localhost'} + }, + args: {} + }; + + spyOn(LoopBackContext, 'getCurrentContext').and.returnValue({ + active: ctx.req + }); + + options = {transaction: tx}; + tx = await models.ItemShelving.beginTransaction({}); + options.transaction = tx; + }); + + afterEach(async() => { + await tx.rollback(); + }); + + it('should add two new records', async() => { + const shelvingFk = 'ZPP'; + const items = [1, 1, 1, 2]; + + await models.ItemShelving.upsertItem(ctx, shelvingFk, items, warehouseFk, options); + const itemShelvings = await models.ItemShelving.find({where: {shelvingFk}}, options); + + expect(itemShelvings.length).toEqual(2); + }); + + it('should update the visible items', async() => { + const shelvingFk = 'GVC'; + const items = [2, 2]; + const {visible: itemsBefore} = await models.ItemShelving.findOne({ + where: {shelvingFk, itemFk: items[0]} + }, options); + await models.ItemShelving.upsertItem(ctx, shelvingFk, items, warehouseFk, options); + const {visible: itemsAfter} = await models.ItemShelving.findOne({ + where: {shelvingFk, itemFk: items[0]} + }, options); + + expect(itemsAfter).toEqual(itemsBefore + 2); + }); +}); diff --git a/modules/item/back/methods/item-shelving/upsertItem.js b/modules/item/back/methods/item-shelving/upsertItem.js new file mode 100644 index 000000000..49c2f1b0d --- /dev/null +++ b/modules/item/back/methods/item-shelving/upsertItem.js @@ -0,0 +1,64 @@ +module.exports = Self => { + Self.remoteMethodCtx('upsertItem', { + 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: `/upsertItem`, + verb: 'POST' + } + }); + + Self.upsertItem = async(ctx, shelvingFk, items, warehouseFk, options) => { + const myOptions = {userId: ctx.req.accessToken.userId}; + let tx; + + if (typeof options == 'object') + Object.assign(myOptions, options); + + if (!myOptions.transaction) { + tx = await Self.beginTransaction({}); + myOptions.transaction = tx; + } + + const discardItems = new Set(); + const itemCounts = items.reduce((acc, item) => { + acc[item] = (acc[item] || 0) + 1; + return acc; + }, {}); + + try { + for (let item of items) { + if (!discardItems.has(item)) { + let quantity = itemCounts[item]; + discardItems.add(item); + + await Self.rawSql('CALL vn.itemShelving_add(?, ?, ?, NULL, NULL, NULL, ?)', + [shelvingFk, item, quantity, warehouseFk], 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 98ff18931..c031d8271 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/upsertItem')(Self); require('../methods/item-shelving/getInventory')(Self); }; diff --git a/modules/ticket/back/methods/ticket/specs/transferClient.spec.js b/modules/ticket/back/methods/ticket/specs/transferClient.spec.js index 5a9edd17e..5f1c09776 100644 --- a/modules/ticket/back/methods/ticket/specs/transferClient.spec.js +++ b/modules/ticket/back/methods/ticket/specs/transferClient.spec.js @@ -1,49 +1,60 @@ const models = require('vn-loopback/server/server').models; describe('Ticket transferClient()', () => { - const userId = 9; - const activeCtx = { - accessToken: {userId: userId}, - }; - const ctx = {req: activeCtx}; + const originalTicketId = 8; + const refundTicketId = 24; + const clientId = 1; + let ctx; + let options; + let tx; + beforeEach(async() => { + ctx = { + req: { + accessToken: {userId: 9}, + headers: {origin: 'http://localhost'} + }, + args: {} + }; + + options = {transaction: tx}; + tx = await models.Ticket.beginTransaction({}); + options.transaction = tx; + }); + + afterEach(async() => { + await tx.rollback(); + }); it('should throw an error as the ticket is not editable', async() => { - const tx = await models.Ticket.beginTransaction({}); - let error; - try { - const options = {transaction: tx}; const ticketId = 4; const clientId = 1; await models.Ticket.transferClient(ctx, ticketId, clientId, options); - - await tx.rollback(); } catch (e) { - await tx.rollback(); - error = e; + expect(e.message).toEqual(`This ticket is locked`); } - - expect(error.message).toEqual(`This ticket is locked`); }); - it('should be assigned a different clientFk', async() => { - const tx = await models.Ticket.beginTransaction({}); - let updatedTicket; - const ticketId = 10; - const clientId = 1; + it('should be assigned a different clientFk in the original ticket', async() => { + await models.Ticket.transferClient(ctx, 2, clientId, options); + const afterTransfer = await models.Ticket.findById(2, null, options); - try { - const options = {transaction: tx}; + expect(afterTransfer.clientFk).toEqual(clientId); + }); - await models.Ticket.transferClient(ctx, ticketId, clientId, options); - updatedTicket = await models.Ticket.findById(ticketId, {fields: ['clientFk']}, options); + it('should be assigned a different clientFk in the original and refund ticket and claim', async() => { + await models.Ticket.transferClient(ctx, originalTicketId, clientId, options); - await tx.rollback(); - } catch (e) { - await tx.rollback(); - throw e; - } + const [originalTicket, refundTicket] = await models.Ticket.find({ + where: {id: {inq: [originalTicketId, refundTicketId]}} + }, options); - expect(updatedTicket.clientFk).toEqual(clientId); + const claim = await models.Claim.findOne({ + where: {ticketFk: originalTicketId} + }, options); + + expect(originalTicket.clientFk).toEqual(clientId); + expect(refundTicket.clientFk).toEqual(clientId); + expect(claim.clientFk).toEqual(clientId); }); }); diff --git a/modules/ticket/back/methods/ticket/transferClient.js b/modules/ticket/back/methods/ticket/transferClient.js index 60e70d710..d38c0e8a7 100644 --- a/modules/ticket/back/methods/ticket/transferClient.js +++ b/modules/ticket/back/methods/ticket/transferClient.js @@ -2,20 +2,17 @@ module.exports = Self => { Self.remoteMethodCtx('transferClient', { description: 'Transfering ticket to another client', accessType: 'WRITE', - accepts: [ - { - arg: 'id', - type: 'number', - required: true, - description: 'the ticket id', - http: {source: 'path'} - }, - { - arg: 'clientFk', - type: 'number', - required: true, - }, - ], + accepts: [{ + arg: 'id', + type: 'number', + required: true, + description: 'the ticket id', + http: {source: 'path'} + }, { + arg: 'clientFk', + type: 'number', + required: true, + }], http: { path: `/:id/transferClient`, verb: 'PATCH' @@ -25,21 +22,51 @@ module.exports = Self => { Self.transferClient = async(ctx, id, clientFk, options) => { const models = Self.app.models; const myOptions = {}; + let tx; + if (typeof options == 'object') Object.assign(myOptions, options); - await Self.isEditableOrThrow(ctx, id, myOptions); + if (!myOptions.transaction) { + tx = await Self.beginTransaction({}); + myOptions.transaction = tx; + } - const ticket = await models.Ticket.findById( - id, - {fields: ['id', 'shipped', 'clientFk', 'addressFk']}, - myOptions - ); - const client = await models.Client.findById(clientFk, {fields: ['id', 'defaultAddressFk']}, myOptions); + try { + await Self.isEditableOrThrow(ctx, id, myOptions); - await ticket.updateAttributes({ - clientFk, - addressFk: client.defaultAddressFk, - }); + const ticketRefund = await models.TicketRefund.findOne({ + where: {or: [{originalTicketFk: id}, {refundTicketFk: id}]}, + include: [{relation: 'refundTicket'}, {relation: 'originalTicket'}] + }, myOptions); + + const {defaultAddressFk: addressFk} = await models.Client.findById(clientFk, + {fields: ['id', 'defaultAddressFk']}, myOptions); + + const attributes = {clientFk, addressFk}; + + const tickets = []; + const ticketIds = []; + + if (ticketRefund) { + const {refundTicket, originalTicket} = ticketRefund; + tickets.push(refundTicket(), originalTicket()); + + for (const ticket of tickets) { + await ticket.updateAttributes(attributes, myOptions); + ticketIds.push(ticket.id); + } + } else { + await Self.updateAll({id}, attributes, myOptions); + ticketIds.push(id); + } + + await models.Claim.updateAll({ticketFk: {inq: ticketIds}}, {clientFk}, myOptions); + + if (tx) await tx.commit(); + } catch (e) { + if (tx) await tx.rollback(); + throw e; + } }; }; diff --git a/modules/worker/back/methods/worker/specs/new.spec.js b/modules/worker/back/methods/worker/specs/new.spec.js index d0830b00f..1f74e9b95 100644 --- a/modules/worker/back/methods/worker/specs/new.spec.js +++ b/modules/worker/back/methods/worker/specs/new.spec.js @@ -36,6 +36,7 @@ describe('Worker new', () => { payMethodFk: 1, roleFk: 1 }; + const req = {accessToken: {userId: 9}}; it('should return error if personal mail already exists', async() => { @@ -140,15 +141,24 @@ describe('Worker new', () => { it('should create a new worker', async() => { const newWorker = await models.Worker.new({args: defaultWorker, req}); - await models.Worker.destroyById(newWorker.id); - await models.Address.destroyAll({clientFk: newWorker.id}); - await models.Mandate.destroyAll({clientFk: newWorker.id}); - await models.Client.destroyById(newWorker.id); - await models.VnUser.destroyById(newWorker.id); + await removeWorker(newWorker.id); expect(newWorker.id).toBeDefined(); }); + it('should create a new client', async() => { + let newWorker; + let client; + try { + newWorker = await models.Worker.new({args: defaultWorker, req}); + client = await models.Client.findById(newWorker.id); + } finally { + await removeWorker(newWorker.id); + } + + expect(client).toBeDefined(); + }); + it('should create a new worker in client', async() => { const bruceWayneId = 1101; const client = await models.Client.findById(bruceWayneId, {fields: ['fi', 'email']}); @@ -170,3 +180,11 @@ describe('Worker new', () => { expect(newWorker.id).toEqual(bruceWayneId); }); }); + +async function removeWorker(id) { + await models.Worker.destroyById(id); + await models.Address.destroyAll({clientFk: id}); + await models.Mandate.destroyAll({clientFk: id}); + await models.Client.destroyById(id); + await models.VnUser.destroyById(id); +} diff --git a/myt.config.yml b/myt.config.yml index 2e37a0d97..0b1d62d25 100755 --- a/myt.config.yml +++ b/myt.config.yml @@ -44,7 +44,6 @@ fixtures: - module - defaultViewConfig vn: - - agencyTermConfig - alertLevel - bookingPlanner - businessType diff --git a/package.json b/package.json index 6f0624360..47b3a1564 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "salix-back", - "version": "24.8.0", + "version": "24.10.0", "author": "Verdnatura Levante SL", "description": "Salix backend", "license": "GPL-3.0", From 5110d6e71d3f26b288e64a18fa5d8f91399792b0 Mon Sep 17 00:00:00 2001 From: davidd Date: Thu, 22 Feb 2024 07:09:35 +0100 Subject: [PATCH 22/24] fix error refs #6372 --- .../00-table.sql | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename db/versions/{10898-6906-workerActivity => 10898-workerActivity}/00-table.sql (100%) diff --git a/db/versions/10898-6906-workerActivity/00-table.sql b/db/versions/10898-workerActivity/00-table.sql similarity index 100% rename from db/versions/10898-6906-workerActivity/00-table.sql rename to db/versions/10898-workerActivity/00-table.sql From d48fd77f48ce87037cd683fe2bd43dafcefab7ea Mon Sep 17 00:00:00 2001 From: davidd Date: Thu, 22 Feb 2024 08:25:38 +0100 Subject: [PATCH 23/24] refs #6372 --- db/versions/10896-salmonOrchid/03-gastos_resumen.sql | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/db/versions/10896-salmonOrchid/03-gastos_resumen.sql b/db/versions/10896-salmonOrchid/03-gastos_resumen.sql index 5fa1f31fb..2308cb1fd 100644 --- a/db/versions/10896-salmonOrchid/03-gastos_resumen.sql +++ b/db/versions/10896-salmonOrchid/03-gastos_resumen.sql @@ -14,5 +14,11 @@ ALTER TABLE IF EXISTS vn.expenseManual ADD CONSTRAINT expenseManual_expense_FK F ALTER TABLE IF EXISTS vn.expenseManual MODIFY COLUMN IF EXISTS companyFk int(10) unsigned NOT NULL; +ALTER TABLE vn.expenseManual MODIFY COLUMN companyFk int(10) unsigned NULL; + +UPDATE vn.expenseManual + SET companyFK= NULL + WHERE companyFk= 0 + ALTER TABLE IF EXISTS vn.expenseManual ADD CONSTRAINT expenseManual_company_FK FOREIGN KEY IF NOT EXISTS (companyFk) REFERENCES vn.company(id) ON DELETE CASCADE ON UPDATE CASCADE; From f4f6eeb6feb1bcf65b2f59a5a972793500fcd2c5 Mon Sep 17 00:00:00 2001 From: pablone Date: Thu, 22 Feb 2024 08:36:14 +0100 Subject: [PATCH 24/24] fix(version): refs #6372 add semicolon --- db/versions/10896-salmonOrchid/03-gastos_resumen.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/versions/10896-salmonOrchid/03-gastos_resumen.sql b/db/versions/10896-salmonOrchid/03-gastos_resumen.sql index 2308cb1fd..dbb71bca2 100644 --- a/db/versions/10896-salmonOrchid/03-gastos_resumen.sql +++ b/db/versions/10896-salmonOrchid/03-gastos_resumen.sql @@ -18,7 +18,7 @@ ALTER TABLE vn.expenseManual MODIFY COLUMN companyFk int(10) unsigned NULL; UPDATE vn.expenseManual SET companyFK= NULL - WHERE companyFk= 0 + WHERE companyFk= 0; ALTER TABLE IF EXISTS vn.expenseManual ADD CONSTRAINT expenseManual_company_FK FOREIGN KEY IF NOT EXISTS (companyFk) REFERENCES vn.company(id) ON DELETE CASCADE ON UPDATE CASCADE;