diff --git a/CHANGELOG.md b/CHANGELOG.md
index f48811338..4eed71921 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [2414.01] - 2024-04-04
+
+### Added
+
+### Changed
+
+### Fixed
+
## [2408.01] - 2024-02-22
### Added
diff --git a/back/methods/dms/downloadFile.js b/back/methods/dms/downloadFile.js
index 1b9150053..d64b15b70 100644
--- a/back/methods/dms/downloadFile.js
+++ b/back/methods/dms/downloadFile.js
@@ -29,7 +29,8 @@ module.exports = Self => {
http: {
path: `/:id/downloadFile`,
verb: 'GET'
- }
+ },
+ accessScopes: ['read:multimedia']
});
Self.downloadFile = async function(ctx, id) {
diff --git a/back/methods/docuware/download.js b/back/methods/docuware/download.js
index a0d72ce01..a1776cde5 100644
--- a/back/methods/docuware/download.js
+++ b/back/methods/docuware/download.js
@@ -42,7 +42,8 @@ module.exports = Self => {
http: {
path: `/:id/download`,
verb: 'GET'
- }
+ },
+ accessScopes: ['read:multimedia']
});
Self.download = async function(id, fileCabinet, filter) {
diff --git a/back/methods/image/download.js b/back/methods/image/download.js
index 2b1a4b546..201e16164 100644
--- a/back/methods/image/download.js
+++ b/back/methods/image/download.js
@@ -47,7 +47,8 @@ module.exports = Self => {
http: {
path: `/:collection/:size/:id/download`,
verb: 'GET'
- }
+ },
+ accessScopes: ['read:multimedia']
});
Self.download = async function(ctx, collection, size, id) {
diff --git a/back/methods/mrw-config/specs/createShipment.spec.js b/back/methods/mrw-config/specs/createShipment.spec.js
index e7bba524a..0f48bc2d3 100644
--- a/back/methods/mrw-config/specs/createShipment.spec.js
+++ b/back/methods/mrw-config/specs/createShipment.spec.js
@@ -49,6 +49,7 @@ describe('MRWConfig createShipment()', () => {
await models.MrwConfig.create(
{
+ 'id': 1,
'url': 'https://url.com',
'user': 'user',
'password': 'password',
diff --git a/back/methods/notification/specs/getList.spec.js b/back/methods/notification/specs/getList.spec.js
index 52ac497a5..6c60d3505 100644
--- a/back/methods/notification/specs/getList.spec.js
+++ b/back/methods/notification/specs/getList.spec.js
@@ -7,7 +7,7 @@ describe('NotificationSubscription getList()', () => {
const notifications = await models.Notification.find({});
const totalAvailable = notifications.length - active.length;
- expect(active.length).toEqual(2);
+ expect(active.length).toEqual(3);
expect(available.length).toEqual(totalAvailable);
});
});
diff --git a/back/methods/vn-user/share-token.js b/back/methods/vn-user/share-token.js
new file mode 100644
index 000000000..8efa22db4
--- /dev/null
+++ b/back/methods/vn-user/share-token.js
@@ -0,0 +1,27 @@
+
+module.exports = Self => {
+ Self.remoteMethodCtx('shareToken', {
+ description: 'Returns token to view files or images and share it',
+ accessType: 'WRITE',
+ accepts: [],
+ returns: {
+ type: 'Object',
+ root: true
+ },
+ http: {
+ path: `/shareToken`,
+ verb: 'GET'
+ }
+ });
+
+ Self.shareToken = async function(ctx) {
+ const {accessToken: token} = ctx.req;
+
+ const user = await Self.findById(token.userId);
+ const multimediaToken = await user.accessTokens.create({
+ scopes: ['read:multimedia']
+ });
+
+ return {multimediaToken};
+ };
+};
diff --git a/back/methods/vn-user/specs/share-token.spec.js b/back/methods/vn-user/specs/share-token.spec.js
new file mode 100644
index 000000000..aaa83817c
--- /dev/null
+++ b/back/methods/vn-user/specs/share-token.spec.js
@@ -0,0 +1,27 @@
+const {models} = require('vn-loopback/server/server');
+describe('Share Token', () => {
+ let ctx = null;
+ beforeAll(async() => {
+ const unAuthCtx = {
+ req: {
+ headers: {},
+ connection: {
+ remoteAddress: '127.0.0.1'
+ },
+ getLocale: () => 'en'
+ },
+ args: {}
+ };
+ let login = await models.VnUser.signIn(unAuthCtx, 'salesAssistant', 'nightmare');
+ let accessToken = await models.AccessToken.findById(login.token);
+ ctx = {req: {accessToken: accessToken}};
+ });
+
+ it('should renew token', async() => {
+ const multimediaToken = await models.VnUser.shareToken(ctx);
+
+ expect(Object.keys(multimediaToken).length).toEqual(1);
+ expect(multimediaToken.multimediaToken.userId).toEqual(ctx.req.accessToken.userId);
+ expect(multimediaToken.multimediaToken.scopes[0]).toEqual('read:multimedia');
+ });
+});
diff --git a/back/model-config.json b/back/model-config.json
index b14fad3e6..f48ec11e6 100644
--- a/back/model-config.json
+++ b/back/model-config.json
@@ -16,7 +16,7 @@
"Accounting": {
"dataSource": "vn"
},
- "Buyer": {
+ "Buyer": {
"dataSource": "vn"
},
"Campaign": {
@@ -94,6 +94,9 @@
"Module": {
"dataSource": "vn"
},
+ "MrwConfig": {
+ "dataSource": "vn"
+ },
"Notification": {
"dataSource": "vn"
},
@@ -166,10 +169,10 @@
"VnRole": {
"dataSource": "vn"
},
- "MrwConfig": {
+ "WorkerActivity": {
+ "dataSource": "vn"
+ },
+ "WorkerActivityType": {
"dataSource": "vn"
}
-}
-
-
-
+}
\ No newline at end of file
diff --git a/back/models/mrw-config.json b/back/models/mrw-config.json
index f0cf799b1..50cf7e8fc 100644
--- a/back/models/mrw-config.json
+++ b/back/models/mrw-config.json
@@ -9,6 +9,7 @@
"properties": {
"id": {
"type": "number",
+ "id": true,
"required": true
},
"url": {
diff --git a/back/models/vn-user.js b/back/models/vn-user.js
index 3a416d7e3..b59f13ffa 100644
--- a/back/models/vn-user.js
+++ b/back/models/vn-user.js
@@ -13,6 +13,7 @@ module.exports = function(Self) {
require('../methods/vn-user/privileges')(Self);
require('../methods/vn-user/validate-auth')(Self);
require('../methods/vn-user/renew-token')(Self);
+ require('../methods/vn-user/share-token')(Self);
require('../methods/vn-user/update-user')(Self);
Self.definition.settings.acls = Self.definition.settings.acls.filter(acl => acl.property !== 'create');
diff --git a/back/models/vn-user.json b/back/models/vn-user.json
index 639603643..5f6ac3f47 100644
--- a/back/models/vn-user.json
+++ b/back/models/vn-user.json
@@ -1,129 +1,140 @@
{
- "name": "VnUser",
- "base": "User",
- "validateUpsert": true,
- "options": {
- "mysql": {
- "table": "account.user"
- }
- },
+ "name": "VnUser",
+ "base": "User",
+ "validateUpsert": true,
+ "options": {
+ "mysql": {
+ "table": "account.user"
+ }
+ },
"mixins": {
"Loggable": true
},
"resetPasswordTokenTTL": "604800",
- "properties": {
- "id": {
- "type": "number",
- "id": true
- },
+ "properties": {
+ "id": {
+ "type": "number",
+ "id": true
+ },
"name": {
- "type": "string",
- "required": true
- },
- "username": {
- "type": "string"
- },
- "roleFk": {
- "type": "number",
- "mysql": {
- "columnName": "role"
- }
- },
- "nickname": {
- "type": "string"
- },
- "lang": {
- "type": "string"
- },
- "active": {
- "type": "boolean"
- },
- "email": {
- "type": "string"
- },
- "emailVerified": {
- "type": "boolean"
- },
- "created": {
- "type": "date"
- },
- "updated": {
- "type": "date"
- },
- "image": {
- "type": "string"
- },
- "hasGrant": {
- "type": "boolean"
- },
+ "type": "string",
+ "required": true
+ },
+ "username": {
+ "type": "string"
+ },
+ "roleFk": {
+ "type": "number",
+ "mysql": {
+ "columnName": "role"
+ }
+ },
+ "nickname": {
+ "type": "string"
+ },
+ "lang": {
+ "type": "string"
+ },
+ "active": {
+ "type": "boolean"
+ },
+ "email": {
+ "type": "string"
+ },
+ "emailVerified": {
+ "type": "boolean"
+ },
+ "created": {
+ "type": "date"
+ },
+ "updated": {
+ "type": "date"
+ },
+ "image": {
+ "type": "string"
+ },
+ "hasGrant": {
+ "type": "boolean"
+ },
"passExpired": {
"type": "date"
},
- "twoFactor": {
- "type": "string"
- }
- },
- "relations": {
- "role": {
- "type": "belongsTo",
- "model": "VnRole",
- "foreignKey": "roleFk"
- },
- "roles": {
- "type": "hasMany",
- "model": "RoleRole",
- "foreignKey": "role",
- "primaryKey": "roleFk"
- },
- "emailUser": {
- "type": "hasOne",
- "model": "EmailUser",
- "foreignKey": "userFk"
- },
- "worker": {
- "type": "hasOne",
- "model": "Worker",
- "foreignKey": "id"
- },
- "userConfig": {
- "type": "hasOne",
- "model": "UserConfig",
- "foreignKey": "userFk"
- }
- },
- "acls": [
- {
- "property": "signIn",
- "accessType": "EXECUTE",
- "principalType": "ROLE",
- "principalId": "$everyone",
- "permission": "ALLOW"
- }, {
- "property": "recoverPassword",
- "accessType": "EXECUTE",
- "principalType": "ROLE",
- "principalId": "$everyone",
- "permission": "ALLOW"
- }, {
- "property": "validateAuth",
- "accessType": "EXECUTE",
- "principalType": "ROLE",
- "principalId": "$everyone",
- "permission": "ALLOW"
- }, {
- "property": "privileges",
- "accessType": "*",
- "principalType": "ROLE",
- "principalId": "$authenticated",
- "permission": "ALLOW"
- }, {
- "property": "renewToken",
- "accessType": "WRITE",
- "principalType": "ROLE",
- "principalId": "$authenticated",
- "permission": "ALLOW"
- }
- ],
+ "twoFactor": {
+ "type": "string"
+ }
+ },
+ "relations": {
+ "role": {
+ "type": "belongsTo",
+ "model": "VnRole",
+ "foreignKey": "roleFk"
+ },
+ "roles": {
+ "type": "hasMany",
+ "model": "RoleRole",
+ "foreignKey": "role",
+ "primaryKey": "roleFk"
+ },
+ "emailUser": {
+ "type": "hasOne",
+ "model": "EmailUser",
+ "foreignKey": "userFk"
+ },
+ "worker": {
+ "type": "hasOne",
+ "model": "Worker",
+ "foreignKey": "id"
+ },
+ "userConfig": {
+ "type": "hasOne",
+ "model": "UserConfig",
+ "foreignKey": "userFk"
+ }
+ },
+ "acls": [
+ {
+ "property": "signIn",
+ "accessType": "EXECUTE",
+ "principalType": "ROLE",
+ "principalId": "$everyone",
+ "permission": "ALLOW"
+ },
+ {
+ "property": "recoverPassword",
+ "accessType": "EXECUTE",
+ "principalType": "ROLE",
+ "principalId": "$everyone",
+ "permission": "ALLOW"
+ },
+ {
+ "property": "validateAuth",
+ "accessType": "EXECUTE",
+ "principalType": "ROLE",
+ "principalId": "$everyone",
+ "permission": "ALLOW"
+ },
+ {
+ "property": "privileges",
+ "accessType": "*",
+ "principalType": "ROLE",
+ "principalId": "$authenticated",
+ "permission": "ALLOW"
+ },
+ {
+ "property": "renewToken",
+ "accessType": "WRITE",
+ "principalType": "ROLE",
+ "principalId": "$authenticated",
+ "permission": "ALLOW"
+ },
+ {
+ "property": "shareToken",
+ "accessType": "WRITE",
+ "principalType": "ROLE",
+ "principalId": "$authenticated",
+ "permission": "ALLOW"
+ }
+ ],
"scopes": {
"preview": {
"fields": [
@@ -140,7 +151,7 @@
"hasGrant",
"realm",
"email",
- "emailVerified"
+ "emailVerified"
]
}
}
diff --git a/back/models/workerActivity.json b/back/models/workerActivity.json
new file mode 100644
index 000000000..e3b994f77
--- /dev/null
+++ b/back/models/workerActivity.json
@@ -0,0 +1,39 @@
+{
+ "name": "WorkerActivity",
+ "base": "VnModel",
+ "options": {
+ "mysql": {
+ "table": "workerActivity"
+ }
+ },
+ "properties": {
+ "id": {
+ "id": true,
+ "type": "number"
+ },
+ "created": {
+ "type": "date"
+ },
+ "model": {
+ "type": "string"
+ },
+ "event": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "relations": {
+ "workerFk": {
+ "type": "belongsTo",
+ "model": "Worker",
+ "foreignKey": "workerFk"
+ },
+ "workerActivityTypeFk": {
+ "type": "belongsTo",
+ "model": "WorkerActivityType",
+ "foreignKey": "workerActivityTypeFk"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/back/models/workerActivityType.json b/back/models/workerActivityType.json
new file mode 100644
index 000000000..f010363a7
--- /dev/null
+++ b/back/models/workerActivityType.json
@@ -0,0 +1,19 @@
+{
+ "name": "WorkerActivityType",
+ "base": "VnModel",
+ "options": {
+ "mysql": {
+ "table": "workerActivityType"
+ }
+ },
+ "properties": {
+ "code": {
+ "id": true,
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "required": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/db/dump/fixtures.after.sql b/db/dump/fixtures.after.sql
index bda625a96..af5509cfe 100644
--- a/db/dump/fixtures.after.sql
+++ b/db/dump/fixtures.after.sql
@@ -7,8 +7,8 @@ SET foreign_key_checks = 0;
-- XXX: vn-database
-INSERT INTO util.config (environment, mockTime, mockUtcTime, mockEnabled)
- VALUES ('local', '2001-01-01 12:00:00', '2001-01-01 11:00:00', TRUE);
+INSERT INTO util.config (id, environment, mockTime, mockUtcTime, mockEnabled)
+ VALUES (1, 'local', '2001-01-01 12:00:00', '2001-01-01 11:00:00', TRUE);
/* #5483
INSERT INTO vn.entryConfig (defaultEntry, mailToNotify, inventorySupplierFk, maxLockTime, defaultSupplierFk)
VALUES(1, NULL, 1, 300, 1);
@@ -70,7 +70,7 @@ UPDATE vn.supplier
UPDATE `vn`.`claimRatio` SET `claimAmount` = '10' WHERE (`clientFk` = '1101');
-INSERT INTO `vn`.`agency` (`name`, `warehouseFk`, `isOwn`, `isAnyVolumeAllowed`)
+INSERT INTO `vn`.`agency` (`name`, `warehouseFk`, `isOwn`, `isAnyVolumeAllowed`)
VALUES
('Agencia', '1', '1', '1'),
('Otra agencia ', '1', '0', '0');
diff --git a/db/dump/fixtures.before.sql b/db/dump/fixtures.before.sql
index 4ad007f5c..4e01532e2 100644
--- a/db/dump/fixtures.before.sql
+++ b/db/dump/fixtures.before.sql
@@ -60,13 +60,13 @@ INSERT INTO `vn`.`ticketConfig` (`id`, `scopeDays`)
VALUES
('1', '6');
-INSERT INTO `vn`.`bionicConfig` (`generalInflationCoeficient`, `minimumDensityVolumetricWeight`, `verdnaturaVolumeBox`, `itemCarryBox`)
+INSERT INTO `vn`.`bionicConfig` (`id`, `generalInflationCoeficient`, `minimumDensityVolumetricWeight`, `verdnaturaVolumeBox`, `itemCarryBox`)
VALUES
- (1.30, 167.00, 138000, 71);
+ (1, 1.30, 167.00, 138000, 71);
-INSERT INTO `vn`.`chatConfig` (`host`, `api`)
+INSERT INTO `vn`.`chatConfig` (`id`, `host`, `api`)
VALUES
- ('https://chat.verdnatura.es', 'https://chat.verdnatura.es/api/v1');
+ (1, 'https://chat.verdnatura.es', 'https://chat.verdnatura.es/api/v1');
INSERT IGNORE INTO `vn`.`greugeConfig`(`id`, `freightPickUpPrice`)
VALUES
@@ -592,13 +592,13 @@ INSERT INTO `vn`.`supplierAccount`(`id`, `supplierFk`, `iban`, `bankEntityFk`)
VALUES
(241, 442, 'ES111122333344111122221111', 128);
-INSERT INTO `vn`.`company`(`id`, `code`, `supplierAccountFk`, `workerManagerFk`, `companyCode`, `sage200Company`, `expired`, `companyGroupFk`, `phytosanitary` , `clientFk`)
+INSERT INTO `vn`.`company`(`id`, `code`, `supplierAccountFk`, `workerManagerFk`, `companyCode`, `expired`, `companyGroupFk`, `phytosanitary` , `clientFk`)
VALUES
- (69 , 'CCs', NULL, 30, NULL, 0, NULL, 1, NULL , NULL),
- (442 , 'VNL', 241, 30, 2 , 1, NULL, 2, 'VNL Company - Plant passport' , 1101),
- (567 , 'VNH', NULL, 30, NULL, 4, NULL, 1, 'VNH Company - Plant passport' , NULL),
- (791 , 'FTH', NULL, 30, NULL, 3, '2015-11-30', 1, NULL , NULL),
- (1381, 'ORN', NULL, 30, NULL, 7, NULL, 1, 'ORN Company - Plant passport' , NULL);
+ (69 , 'CCs', NULL, 30, 0, NULL, 1, NULL , NULL),
+ (442 , 'VNL', 241, 30, 1, NULL, 2, 'VNL Company - Plant passport' , 1101),
+ (567 , 'VNH', NULL, 30, 4, NULL, 1, 'VNH Company - Plant passport' , NULL),
+ (791 , 'FTH', NULL, 30, 3, '2015-11-30', 1, NULL , NULL),
+ (1381, 'ORN', NULL, 30, 7, NULL, 1, 'ORN Company - Plant passport' , NULL);
INSERT INTO `vn`.`taxArea` (`code`, `claveOperacionFactura`, `CodigoTransaccion`)
VALUES
@@ -608,7 +608,8 @@ INSERT INTO `vn`.`taxArea` (`code`, `claveOperacionFactura`, `CodigoTransaccion`
('WORLD', 2, 15);
INSERT INTO vn.invoiceOutConfig
- SET parallelism = 8;
+ SET id = 1,
+ parallelism = 8;
INSERT INTO `vn`.`invoiceOutSerial` (`code`, `description`, `isTaxed`, `taxAreaFk`, `isCEE`, `type`)
VALUES
@@ -714,7 +715,7 @@ INSERT INTO `vn`.`zoneClosure` (`zoneFk`, `dated`, `hour`)
(12, util.VN_CURDATE(), '23:59'),
(13, util.VN_CURDATE(), '23:59');
-INSERT INTO `vn`.`zoneConfig` (`scope`) VALUES ('1');
+INSERT INTO `vn`.`zoneConfig` (`id`, `scope`) VALUES (1, '1');
INSERT INTO `vn`.`route`(`id`, `time`, `workerFk`, `created`, `vehicleFk`, `agencyModeFk`, `description`, `m3`, `cost`, `started`, `finished`, `zoneFk`)
VALUES
@@ -759,8 +760,8 @@ INSERT INTO `vn`.`ticket`(`id`, `priority`, `agencyModeFk`,`warehouseFk`,`routeF
(29, 1, 8, 1, 1, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1103, 'Phone Box', 123, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL),
(30, 1, 8, 1, 1, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1103, 'Phone Box', 123, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL),
(31, 1, 8, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), DATE_ADD(util.VN_CURDATE(), INTERVAL + 2 DAY), 1103, 'Phone Box', 123, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL),
- (32, 1, 8, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), DATE_ADD(util.VN_CURDATE(), INTERVAL + 2 DAY), 1103, 'Phone Box', 123, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL);
-
+ (32, 1, 8, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), DATE_ADD(util.VN_CURDATE(), INTERVAL + 2 DAY), 1103, 'Phone Box', 123, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL),
+ (33, 1, 7, 1, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1102, 'NY roofs', 122, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL);
INSERT INTO `vn`.`ticketObservation`(`id`, `ticketFk`, `observationTypeFk`, `description`)
VALUES
(1, 11, 1, 'ready'),
@@ -983,9 +984,9 @@ INSERT INTO `vn`.`packaging`(`id`, `volume`, `width`, `height`, `depth`, `isPack
('cc', 1640038.00, 56.00, 220.00, 128.00, 1, util.VN_CURDATE(), 15, 90.00),
('pallet 100', 2745600.00, 100.00, 220.00, 120.00, 1, util.VN_CURDATE(), 16, 0.00);
-INSERT INTO `vn`.`packagingConfig`(`upperGap`, `defaultSmallPackageFk`, `defaultBigPackageFk`)
+INSERT INTO `vn`.`packagingConfig`(`id`, `upperGap`, `defaultSmallPackageFk`, `defaultBigPackageFk`)
VALUES
- ('10', 1, 'pallet 100');
+ (1, '10', 1, 'pallet 100');
INSERT INTO `vn`.`expeditionStateType`(`id`, `description`, `code`)
VALUES
@@ -1491,8 +1492,8 @@ INSERT INTO `bs`.`waste`(`buyer`, `year`, `week`, `family`, `itemFk`, `itemTypeF
INSERT INTO `vn`.`buy`(`id`,`entryFk`,`itemFk`,`buyingValue`,`quantity`,`packagingFk`,`stickers`,`freightValue`,`packageValue`,`comissionValue`,`packing`,`grouping`,`groupingMode`,`location`,`price1`,`price2`,`price3`, `printedStickers`,`isChecked`,`isIgnored`,`weight`, `created`)
VALUES
- (1, 1, 1, 50, 5000, 4, 1, 1.500, 1.500, 0.000, 1, 1, 1, NULL, 0.00, 99.6, 99.4, 0, 1, 0, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH)),
- (2, 2, 1, 50, 100, 4, 1, 1.500, 1.500, 0.000, 1, 1, 1, NULL, 0.00, 99.6, 99.4, 0, 1, 0, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH)),
+ (1, 1, 1, 50, 5000, 4, 1, 1.500, 1.500, 0.000, 1, 1, 1, NULL, 0.00, 99.6, 99.4, 0, 1, 0, 1, util.VN_CURDATE() - INTERVAL 2 MONTH),
+ (2, 2, 1, 50, 100, 4, 1, 1.500, 1.500, 0.000, 1, 1, 1, NULL, 0.00, 99.6, 99.4, 0, 1, 0, 1, util.VN_CURDATE() - INTERVAL 1 MONTH),
(3, 3, 1, 50, 100, 4, 1, 1.500, 1.500, 0.000, 1, 1, 0, NULL, 0.00, 99.6, 99.4, 0, 1, 0, 1, util.VN_CURDATE()),
(4, 2, 2, 5, 450, 3, 1, 1.000, 1.000, 0.000, 10, 10, 0, NULL, 0.00, 7.30, 7.00, 0, 1, 0, 2.5, util.VN_CURDATE()),
(5, 3, 3, 55, 500, 5, 1, 1.000, 1.000, 0.000, 1, 1, 0, NULL, 0.00, 78.3, 75.6, 0, 1, 0, 2.5, util.VN_CURDATE()),
@@ -1868,8 +1869,7 @@ INSERT INTO `vn`.`claimEnd`(`id`, `saleFk`, `claimFk`, `workerFk`, `claimDestina
INSERT INTO `vn`.`claimConfig`(`id`, `maxResponsibility`)
VALUES
- (1, 50),
- (2, 30);
+ (1, 50);
INSERT INTO `vn`.`claimRatio`(`clientFk`, `yearSale`, `claimAmount`, `claimingRate`, `priceIncreasing`, `packingRate`)
VALUES
@@ -2504,9 +2504,9 @@ INSERT INTO `hedera`.`imageCollectionSize`(`id`, `collectionFk`,`width`, `height
VALUES
(1, 4, 160, 160);
-INSERT INTO `vn`.`rateConfig`(`rate0`, `rate1`, `rate2`, `rate3`)
+INSERT INTO `vn`.`rateConfig`(`id`, `rate0`, `rate1`, `rate2`, `rate3`)
VALUES
- (36, 31, 25, 21);
+ (1, 36, 31, 25, 21);
INSERT INTO `vn`.`rate`(`dated`, `warehouseFk`, `rate0`, `rate1`, `rate2`, `rate3`)
VALUES
@@ -2697,9 +2697,9 @@ INSERT INTO `bs`.`sale` (`saleFk`, `amount`, `dated`, `typeFk`, `clientFk`)
(4, 33.8, util.VN_CURDATE(), 1, 1101),
(30, 34.4, util.VN_CURDATE(), 1, 1108);
-INSERT INTO `vn`.`docuwareConfig` (`url`)
+INSERT INTO `vn`.`docuwareConfig` (`id`, `url`)
VALUES
- ('http://docuware.url/');
+ (1, 'http://docuware.url/');
INSERT INTO `vn`.`calendarHolidaysName` (`id`, `name`)
VALUES
@@ -2796,11 +2796,12 @@ INSERT INTO `vn`.`packingSite` (`id`, `code`, `hostFk`, `monitorId`)
VALUES
(1, 'h1', 1, '');
-INSERT INTO `vn`.`packingSiteConfig` (`shinobiUrl`, `shinobiToken`, `shinobiGroupKey`, `avgBoxingTime`)
+INSERT INTO `vn`.`packingSiteConfig` (`id`, `shinobiUrl`, `shinobiToken`, `shinobiGroupKey`, `avgBoxingTime`)
VALUES
- ('', 'SHINNOBI_TOKEN', 'GROUP_TOKEN', 6000);
+ (1, '', 'SHINNOBI_TOKEN', 'GROUP_TOKEN', 6000);
INSERT INTO `util`.`notificationConfig`
- SET `cleanDays` = 90;
+ SET `id` = 1,
+ `cleanDays` = 90;
INSERT INTO `util`.`notification` (`id`, `name`, `description`)
VALUES
@@ -2809,7 +2810,8 @@ INSERT INTO `util`.`notification` (`id`, `name`, `description`)
(3, 'not-main-printer-configured', 'A printer distinct than main has been configured'),
(4, 'supplier-pay-method-update', 'A supplier pay method has been updated'),
(5, 'modified-entry', 'An entry has been modified'),
- (6, 'book-entry-deleted', 'accounting entries deleted');
+ (6, 'book-entry-deleted', 'accounting entries deleted'),
+ (7, 'zone-included','An email to notify zoneCollisions');
INSERT INTO `util`.`notificationAcl` (`notificationFk`, `roleFk`)
VALUES
@@ -2819,7 +2821,8 @@ INSERT INTO `util`.`notificationAcl` (`notificationFk`, `roleFk`)
(3, 9),
(4, 1),
(5, 9),
- (6, 9);
+ (6, 9),
+ (7, 9);
INSERT INTO `util`.`notificationQueue` (`id`, `notificationFk`, `params`, `authorFk`, `status`, `created`)
VALUES
@@ -2836,8 +2839,8 @@ INSERT INTO `util`.`notificationSubscription` (`notificationFk`, `userFk`)
(2, 1109),
(1, 9),
(1, 3),
- (6, 9);
-
+ (6, 9),
+ (7, 9);
INSERT INTO `vn`.`routeConfig` (`id`, `defaultWorkCenterFk`)
VALUES
@@ -2853,7 +2856,7 @@ INSERT INTO `vn`.`collection` (`id`, `created`, `workerFk`, `stateFk`, `itemPack
INSERT INTO `vn`.`itemConfig` (`id`, `isItemTagTriggerDisabled`, `monthToDeactivate`, `wasteRecipients`, `validPriorities`, `defaultPriority`, `defaultTag`, `warehouseFk`)
VALUES
- (0, 0, 24, '', '[1,2,3]', 2, 56, 60);
+ (1, 0, 24, '', '[1,2,3]', 2, 56, 60);
INSERT INTO `vn`.`ticketCollection` (`ticketFk`, `collectionFk`, `created`, `level`, `wagon`, `smartTagFk`, `usedShelves`, `itemCount`, `liters`)
VALUES
@@ -2890,7 +2893,7 @@ INSERT INTO `vn`.`ticketLog` (originFk, userFk, `action`, creationDate, changedM
(1, 18, 'insert', '1999-05-09 10:00:00', 'Ticket', 45, 'Super Man' , NULL, '{"id":45,"clientFk":8608,"warehouseFk":60,"shipped":"2023-05-16T22:00:00.000Z","nickname":"Super Man","addressFk":48637,"isSigned":true,"isLabeled":true,"isPrinted":true,"packages":0,"hour":0,"created":"2023-05-16T11:42:56.000Z","isBlocked":false,"hasPriority":false,"companyFk":442,"agencyModeFk":639,"landed":"2023-05-17T22:00:00.000Z","isBoxed":true,"isDeleted":true,"zoneFk":713,"zonePrice":13,"zoneBonus":0}', NULL);
INSERT INTO `vn`.`osTicketConfig` (`id`, `host`, `user`, `password`, `oldStatus`, `newStatusId`, `day`, `comment`, `hostDb`, `userDb`, `passwordDb`, `portDb`, `responseType`, `fromEmailId`, `replyTo`)
VALUES
- (0, 'http://localhost:56596/scp', 'ostadmin', 'Admin1', '1,6', 3, 60, 'Este CAU se ha cerrado automáticamente. Si el problema persiste responda a este mensaje.', 'localhost', 'osticket', 'osticket', 40003, 'reply', 1, 'all');
+ (1, 'http://localhost:56596/scp', 'ostadmin', 'Admin1', '1,6', 3, 60, 'Este CAU se ha cerrado automáticamente. Si el problema persiste responda a este mensaje.', 'localhost', 'osticket', 'osticket', 40003, 'reply', 1, 'all');
INSERT INTO `vn`.`mdbApp` (`app`, `baselineBranchFk`, `userFk`, `locked`)
VALUES
@@ -3068,18 +3071,16 @@ INSERT INTO `vn`.`cmr` (id,truckPlate,observations,senderInstruccions,paymentIns
UPDATE vn.department
SET workerFk = null;
--- NEW WAREHOUSE
-
INSERT INTO vn.packaging
VALUES('--', 2745600.00, 100.00, 120.00, 220.00, 0.00, 1, '2001-01-01 00:00:00.000', NULL, NULL, NULL, 0.00, 16, 0.00, 0, NULL, 0.00, NULL, NULL, 0, NULL, 0, 0);
INSERT IGNORE INTO vn.intrastat
- SET id = 44219999,
- description = 'Manufacturas de madera',
- taxClassFk = 1,
+ SET id = 44219999,
+ description = 'Manufacturas de madera',
+ taxClassFk = 1,
taxCodeFk = 1;
-
+
INSERT IGNORE INTO vn.warehouse
SET id = 999,
name = 'TestingWarehouse',
@@ -3090,33 +3091,33 @@ INSERT IGNORE INTO vn.warehouse
hasProduction = TRUE;
INSERT IGNORE INTO vn.sector
- SET id = 9991,
- description = 'NormalSector',
- warehouseFk = 999,
- code = 'NS',
- isPackagingArea = FALSE,
- sonFk = NULL,
- isMain = TRUE,
+ SET id = 9991,
+ description = 'NormalSector',
+ warehouseFk = 999,
+ code = 'NS',
+ isPackagingArea = FALSE,
+ sonFk = NULL,
+ isMain = TRUE,
itemPackingTypeFk = NULL;
INSERT IGNORE INTO vn.sector
- SET id = 9992,
- description = 'PreviousSector',
- warehouseFk = 999,
- code = 'PS',
- isPackagingArea = FALSE,
- sonFk = NULL,
- isMain = TRUE,
+ SET id = 9992,
+ description = 'PreviousSector',
+ warehouseFk = 999,
+ code = 'PS',
+ isPackagingArea = FALSE,
+ sonFk = NULL,
+ isMain = TRUE,
itemPackingTypeFk = NULL;
INSERT IGNORE INTO vn.sector
- SET id = 9993,
- description = 'MezaninneSector',
- warehouseFk = 999,
- code = 'MS',
- isPackagingArea = FALSE,
- sonFk = 9991,
- isMain = TRUE,
+ SET id = 9993,
+ description = 'MezaninneSector',
+ warehouseFk = 999,
+ code = 'MS',
+ isPackagingArea = FALSE,
+ sonFk = 9991,
+ isMain = TRUE,
itemPackingTypeFk = NULL;
@@ -3150,58 +3151,58 @@ INSERT IGNORE INTO vn.itemType
SET id = 999,
code = 'WOO',
name = 'Wood Objects',
- categoryFk = 3,
+ categoryFk = 3,
workerFk = 103,
isInventory = TRUE,
life = 10,
density = 250,
- itemPackingTypeFk = NULL,
+ itemPackingTypeFk = NULL,
temperatureFk = 'warm';
INSERT IGNORE INTO vn.travel
- SET id = 99,
- shipped = CURDATE(),
+ SET id = 99,
+ shipped = CURDATE(),
landed = CURDATE(),
- warehouseInFk = 999,
- warehouseOutFk = 1,
+ warehouseInFk = 999,
+ warehouseOutFk = 1,
isReceived = TRUE;
INSERT INTO vn.entry
SET id = 999,
supplierFk = 791,
- isConfirmed = TRUE,
+ isConfirmed = TRUE,
dated = CURDATE(),
- travelFk = 99,
+ travelFk = 99,
companyFk = 442;
INSERT INTO vn.ticket
- SET id = 999999,
+ SET id = 999999,
clientFk = 2,
warehouseFk = 999,
shipped = CURDATE(),
- nickname = 'Cliente',
+ nickname = 'Cliente',
addressFk = 1,
- companyFk = 442,
- agencyModeFk = 10,
+ companyFk = 442,
+ agencyModeFk = 10,
landed = CURDATE();
INSERT INTO vn.collection
- SET id = 10101010,
+ SET id = 10101010,
workerFk = 9;
-
+
INSERT IGNORE INTO vn.ticketCollection
- SET id = 10101010,
- ticketFk = 999999,
+ SET id = 10101010,
+ ticketFk = 999999,
collectionFk = 10101010;
-
+
INSERT INTO vn.item
SET id = 999991,
- name = 'Palito para pinchos',
+ name = 'Palito para pinchos',
`size` = 25,
- stems = NULL,
- category = 'EXT',
- typeFk = 999,
- longName = 'Palito para pinchos',
+ stems = NULL,
+ category = 'EXT',
+ typeFk = 999,
+ longName = 'Palito para pinchos',
itemPackingTypeFk = NULL,
originFk = 1,
weightByPiece = 6,
@@ -3228,19 +3229,19 @@ INSERT INTO vn.sale
SET id = 99991,
itemFk = 999991,
ticketFk = 999999,
- concept = 'Palito para pinchos',
- quantity = 3,
- price = 1,
+ concept = 'Palito para pinchos',
+ quantity = 3,
+ price = 1,
discount = 0;
INSERT INTO vn.item
SET id = 999992,
- name = 'Madera verde',
+ name = 'Madera verde',
`size` = 10,
- stems = NULL,
- category = 'EXT',
- typeFk = 999,
- longName = 'Madera verde',
+ stems = NULL,
+ category = 'EXT',
+ typeFk = 999,
+ longName = 'Madera verde',
itemPackingTypeFk = NULL,
originFk = 1,
weightByPiece = 50,
@@ -3267,19 +3268,19 @@ INSERT INTO vn.sale
SET id = 99992,
itemFk = 999992,
ticketFk = 999999,
- concept = 'Madera Verde',
- quantity = 10,
- price = 1,
+ concept = 'Madera Verde',
+ quantity = 10,
+ price = 1,
discount = 0;
INSERT INTO vn.item
SET id = 999993,
- name = 'Madera Roja/Morada',
+ name = 'Madera Roja/Morada',
`size` = 12,
- stems = 2,
- category = 'EXT',
- typeFk = 999,
- longName = 'Madera Roja/Morada',
+ stems = 2,
+ category = 'EXT',
+ typeFk = 999,
+ longName = 'Madera Roja/Morada',
itemPackingTypeFk = NULL,
originFk = 1,
weightByPiece = 35,
@@ -3303,30 +3304,30 @@ INSERT INTO vn.buy
weight = 25;
INSERT INTO vn.itemShelving
- SET id = 9931,
- itemFk = 999993,
- shelvingFk = 'NCC',
- visible = 10,
- `grouping` = 5,
+ SET id = 9931,
+ itemFk = 999993,
+ shelvingFk = 'NCC',
+ visible = 10,
+ `grouping` = 5,
packing = 10;
-
+
INSERT INTO vn.sale
SET id = 99993,
itemFk = 999993,
ticketFk = 999999,
- concept = 'Madera Roja/Morada',
- quantity = 15,
- price = 1,
+ concept = 'Madera Roja/Morada',
+ quantity = 15,
+ price = 1,
discount = 0;
INSERT INTO vn.item
SET id = 999994,
- name = 'Madera Naranja',
+ name = 'Madera Naranja',
`size` = 18,
- stems = 1,
- category = 'EXT',
- typeFk = 999,
- longName = 'Madera Naranja',
+ stems = 1,
+ category = 'EXT',
+ typeFk = 999,
+ longName = 'Madera Naranja',
itemPackingTypeFk = NULL,
originFk = 1,
weightByPiece = 160,
@@ -3353,19 +3354,19 @@ INSERT INTO vn.sale
SET id = 99994,
itemFk = 999994,
ticketFk = 999999,
- concept = 'Madera Naranja',
- quantity = 4,
- price = 1,
+ concept = 'Madera Naranja',
+ quantity = 4,
+ price = 1,
discount = 0;
-
+
INSERT INTO vn.item
SET id = 999995,
- name = 'Madera Amarilla',
+ name = 'Madera Amarilla',
`size` = 11,
- stems = 5,
- category = 'EXT',
- typeFk = 999,
- longName = 'Madera Amarilla',
+ stems = 5,
+ category = 'EXT',
+ typeFk = 999,
+ longName = 'Madera Amarilla',
itemPackingTypeFk = NULL,
originFk = 1,
weightByPiece = 78,
@@ -3392,20 +3393,20 @@ INSERT INTO vn.sale
SET id = 99995,
itemFk = 999995,
ticketFk = 999999,
- concept = 'Madera Amarilla',
- quantity = 5,
- price = 1,
+ concept = 'Madera Amarilla',
+ quantity = 5,
+ price = 1,
discount = 0;
-
+
-- Palito naranja
INSERT INTO vn.item
SET id = 999998,
- name = 'Palito naranja',
+ name = 'Palito naranja',
`size` = 11,
- stems = 1,
- category = 'EXT',
- typeFk = 999,
- longName = 'Palito naranja',
+ stems = 1,
+ category = 'EXT',
+ typeFk = 999,
+ longName = 'Palito naranja',
itemPackingTypeFk = NULL,
originFk = 1,
weightByPiece = 78,
@@ -3432,20 +3433,20 @@ INSERT INTO vn.sale
SET id = 99998,
itemFk = 999998,
ticketFk = 999999,
- concept = 'Palito naranja',
- quantity = 60,
- price = 1,
+ concept = 'Palito naranja',
+ quantity = 60,
+ price = 1,
discount = 0;
-- Palito amarillo
INSERT INTO vn.item
SET id = 999999,
- name = 'Palito amarillo',
+ name = 'Palito amarillo',
`size` = 11,
- stems = 1,
- category = 'EXT',
- typeFk = 999,
- longName = 'Palito amarillo',
+ stems = 1,
+ category = 'EXT',
+ typeFk = 999,
+ longName = 'Palito amarillo',
itemPackingTypeFk = NULL,
originFk = 1,
weightByPiece = 78,
@@ -3472,20 +3473,20 @@ INSERT INTO vn.sale
SET id = 99999,
itemFk = 999999,
ticketFk = 999999,
- concept = 'Palito amarillo',
- quantity = 50,
- price = 1,
+ concept = 'Palito amarillo',
+ quantity = 50,
+ price = 1,
discount = 0;
-- Palito azul
INSERT INTO vn.item
SET id = 1000000,
- name = 'Palito azul',
+ name = 'Palito azul',
`size` = 10,
- stems = 1,
- category = 'EXT',
- typeFk = 999,
- longName = 'Palito azul',
+ stems = 1,
+ category = 'EXT',
+ typeFk = 999,
+ longName = 'Palito azul',
itemPackingTypeFk = NULL,
originFk = 1,
weightByPiece = 78,
@@ -3512,20 +3513,20 @@ INSERT INTO vn.sale
SET id = 100000,
itemFk = 1000000,
ticketFk = 999999,
- concept = 'Palito azul',
- quantity = 50,
- price = 1,
+ concept = 'Palito azul',
+ quantity = 50,
+ price = 1,
discount = 0;
-- Palito rojo
INSERT INTO vn.item
SET id = 1000001,
- name = 'Palito rojo',
+ name = 'Palito rojo',
`size` = 10,
- stems = NULL,
- category = 'EXT',
- typeFk = 999,
- longName = 'Palito rojo',
+ stems = NULL,
+ category = 'EXT',
+ typeFk = 999,
+ longName = 'Palito rojo',
itemPackingTypeFk = NULL,
originFk = 1,
weightByPiece = 78,
@@ -3553,20 +3554,20 @@ INSERT INTO vn.sale
SET id = 100001,
itemFk = 1000001,
ticketFk = 999999,
- concept = 'Palito rojo',
- quantity = 10,
- price = 1,
+ concept = 'Palito rojo',
+ quantity = 10,
+ price = 1,
discount = 0;
-
+
-- Previa
INSERT IGNORE INTO vn.item
SET id = 999996,
- name = 'Bolas de madera',
+ name = 'Bolas de madera',
`size` = 2,
- stems = 4,
- category = 'EXT',
- typeFk = 999,
- longName = 'Bolas de madera',
+ stems = 4,
+ category = 'EXT',
+ typeFk = 999,
+ longName = 'Bolas de madera',
itemPackingTypeFk = NULL,
originFk = 1,
weightByPiece = 20,
@@ -3593,20 +3594,20 @@ INSERT vn.sale
SET id = 99996,
itemFk = 999996,
ticketFk = 999999,
- concept = 'Bolas de madera',
- quantity = 4,
- price = 7,
+ concept = 'Bolas de madera',
+ quantity = 4,
+ price = 7,
discount = 0,
isPicked = TRUE;
INSERT IGNORE INTO vn.item
SET id = 999997,
- name = 'Palitos de polo MIX',
+ name = 'Palitos de polo MIX',
`size` = 14,
- stems = NULL,
- category = 'EXT',
- typeFk = 999,
- longName = 'Palitos de polo MIX',
+ stems = NULL,
+ category = 'EXT',
+ typeFk = 999,
+ longName = 'Palitos de polo MIX',
itemPackingTypeFk = NULL,
originFk = 1,
weightByPiece = 20,
@@ -3633,9 +3634,9 @@ INSERT vn.sale
SET id = 99997,
itemFk = 999997,
ticketFk = 999999,
- concept = 'Palitos de polo MIX',
- quantity = 5,
- price = 7,
+ concept = 'Palitos de polo MIX',
+ quantity = 5,
+ price = 7,
discount = 0;
USE vn;
@@ -3668,38 +3669,38 @@ VALUES
-- Previous for Bolas de madera
INSERT IGNORE INTO vn.sectorCollection
- SET id = 99,
- userFk = 1,
+ SET id = 99,
+ userFk = 1,
sectorFk = 9992;
INSERT IGNORE INTO vn.saleGroup
- SET id = 4,
- userFk = 1,
- parkingFk = 9,
+ SET id = 4,
+ userFk = 1,
+ parkingFk = 9,
sectorFk = 9992;
INSERT IGNORE INTO vn.sectorCollectionSaleGroup
SET id = 9999,
- sectorCollectionFk = 99,
+ sectorCollectionFk = 99,
saleGroupFk = 999;
INSERT vn.saleGroupDetail
- SET id = 99991,
- saleFk = 99996,
+ SET id = 99991,
+ saleFk = 99996,
saleGroupFk = 999;
-
+
INSERT INTO vn.saleTracking
SET id = 7,
- saleFk = 99996,
+ saleFk = 99996,
isChecked = TRUE,
workerFk = 103,
stateFk = 28;
-
+
INSERT IGNORE INTO vn.itemShelvingSale
- SET id = 991,
- itemShelvingFk = 9962,
- saleFk = 99996,
- quantity = 5,
+ SET id = 991,
+ itemShelvingFk = 9962,
+ saleFk = 99996,
+ quantity = 5,
userFk = 1;
UPDATE vn.ticket
@@ -3713,8 +3714,8 @@ UPDATE vn.collection
UPDATE vn.sale
SET isPicked =FALSE;
-INSERT INTO vn.machineWorkerConfig(maxHours)
- VALUES(12);
+INSERT INTO vn.machineWorkerConfig(id, maxHours)
+ VALUES(1, 12);
INSERT INTO vn.workerAppTester(workerFk) VALUES(66);
@@ -3732,4 +3733,7 @@ UPDATE vn.saleTracking SET stateFk = 26 WHERE id = 5;
INSERT INTO vn.report (name) VALUES ('LabelCollection');
INSERT INTO vn.parkingLog(originFk, userFk, `action`, creationDate, description, changedModel,oldInstance, newInstance, changedModelId, changedModelValue)
- VALUES(1, 18, 'update', util.VN_CURDATE(), NULL, 'SaleGroup', '{"parkingFk":null}', '{"parkingFk":1}', 1, NULL);
\ No newline at end of file
+ VALUES(1, 18, 'update', util.VN_CURDATE(), NULL, 'SaleGroup', '{"parkingFk":null}', '{"parkingFk":1}', 1, NULL);
+
+INSERT INTO vn.ticketLog (originFk,userFk,`action`,creationDate,changedModel,newInstance,changedModelId,changedModelValue)
+ VALUES (18,9,'insert','2001-01-01 11:01:00.000','Ticket','{"isDeleted":true}',45,'Super Man');
diff --git a/db/routines/sage/procedures/invoiceIn_add.sql b/db/routines/sage/procedures/invoiceIn_add.sql
index a2690deb0..0898d6810 100644
--- a/db/routines/sage/procedures/invoiceIn_add.sql
+++ b/db/routines/sage/procedures/invoiceIn_add.sql
@@ -3,10 +3,11 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `sage`.`invoiceIn_add`(vI
BEGIN
/**
* Traslada la info de contabilidad relacionada con las facturas recibidas
- *
+ *
* @vInvoiceInFk Factura recibida
* @vXDiarioFk Id tabla XDiario
- */
+ */
+ DECLARE vInvoiceInOriginalFk INT;
DECLARE vDone BOOL DEFAULT FALSE;
DECLARE vBase DOUBLE;
DECLARE vVat DOUBLE;
@@ -23,25 +24,25 @@ BEGIN
DECLARE vInvoiceTypeInformative VARCHAR(1);
DECLARE vIsInformativeExportation BOOL DEFAULT FALSE;
- DECLARE vCursor CURSOR FOR
+ DECLARE vCursor CURSOR FOR
SELECT it.taxableBase,
CAST((( it.taxableBase / 100) * t.PorcentajeIva) AS DECIMAL (10,2)),
t.PorcentajeIva,
it.transactionTypeSageFk,
it.taxTypeSageFk,
tty.isIntracommunity,
- tt.ClaveOperacionDefecto
+ tt.ClaveOperacionDefecto
FROM vn.invoiceIn i
JOIN vn.invoiceInTax it ON it.InvoiceInFk = i.id
JOIN TiposIva t ON t.CodigoIva = it.taxTypeSageFk
JOIN taxType tty ON tty.id = t.CodigoIva
JOIN TiposTransacciones tt ON tt.CodigoTransaccion = it.transactionTypeSageFk
LEFT JOIN vn.dua d ON d.id = vInvoiceInFk
- WHERE i.id = vInvoiceInFk
+ WHERE i.id = vInvoiceInFk
AND d.id IS NULL;
-
+
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
-
+
DELETE FROM movContaIVA
WHERE id = vXDiarioFk;
@@ -64,22 +65,22 @@ BEGIN
vTaxCode,
vIsIntracommunity,
vOperationCode;
-
- IF vDone THEN
+
+ IF vDone THEN
LEAVE l;
END IF;
- SET vTransactionCodeOld = vTransactionCode;
- SET vTaxCodeOld = vTaxCode;
+ SET vTransactionCodeOld = vTransactionCode;
+ SET vTaxCodeOld = vTaxCode;
- IF vOperationCode IS NOT NULL THEN
+ IF vOperationCode IS NOT NULL THEN
UPDATE movContaIVA
SET ClaveOperacionFactura = vOperationCode
WHERE id = vXDiarioFk;
END IF;
-
+
SET vCounter = vCounter + 1;
- CASE vCounter
+ CASE vCounter
WHEN 1 THEN
UPDATE movContaIVA
SET BaseIva1 = vBase,
@@ -115,31 +116,31 @@ BEGIN
WHERE id = vXDiarioFk;
ELSE
SELECT vXDiarioFk INTO vXDiarioFk;
- END CASE;
+ END CASE;
IF vIsIntracommunity THEN
UPDATE movContaIVA
SET Intracomunitaria = TRUE
WHERE id = vXDiarioFk;
END IF;
-
- SET vTransactionCodeOld = vTransactionCode;
- SET vTaxCodeOld = vTaxCode;
-
+
+ SET vTransactionCodeOld = vTransactionCode;
+ SET vTaxCodeOld = vTaxCode;
+
END LOOP;
CLOSE vCursor;
SELECT d.ASIEN AND x.ASIEN IS NULL INTO vIsInformativeExportation
FROM vn.dua d
- LEFT JOIN vn.XDiario x ON x.ASIEN = d.ASIEN
+ LEFT JOIN vn.XDiario x ON x.ASIEN = d.ASIEN
AND x.SERIE = vSerialDua COLLATE utf8mb3_unicode_ci
WHERE d.ASIEN = (
SELECT ASIEN
- FROM vn.XDiario
+ FROM vn.XDiario
WHERE id = vXDiarioFk)
LIMIT 1;
-
+
UPDATE movContaIVA mci
JOIN tmp.invoiceIn ii ON ii.id = vInvoiceInFk
JOIN vn.XDiario x ON x.id = mci.id
@@ -151,13 +152,13 @@ BEGIN
mci.Serie = ii.serial,
mci.Factura = ii.id,
mci.FechaFactura = ii.issued,
- mci.ImporteFactura = IFNULL(mci.BaseIva1, 0) + IFNULL(mci.CuotaIva1, 0) +
- IFNULL(mci.BaseIva2, 0) + IFNULL(mci.CuotaIva2, 0) +
- IFNULL(mci.BaseIva3, 0) + IFNULL(mci.CuotaIva3, 0) +
+ mci.ImporteFactura = IFNULL(mci.BaseIva1, 0) + IFNULL(mci.CuotaIva1, 0) +
+ IFNULL(mci.BaseIva2, 0) + IFNULL(mci.CuotaIva2, 0) +
+ IFNULL(mci.BaseIva3, 0) + IFNULL(mci.CuotaIva3, 0) +
IFNULL(mci.BaseIva4, 0) + IFNULL(mci.CuotaIva4, 0),
- mci.TipoFactura = IF(id.id,
- IF( ii.serial = vSerialDua COLLATE utf8mb3_unicode_ci, vInvoiceTypeReceived, vInvoiceTypeInformative),
- IF(vIsInformativeExportation,vInvoiceTypeInformative, vInvoiceTypeReceived)),
+ mci.TipoFactura = IF(id.id,
+ IF( ii.serial = vSerialDua COLLATE utf8mb3_unicode_ci, vInvoiceTypeReceived, vInvoiceTypeInformative),
+ IF(vIsInformativeExportation,vInvoiceTypeInformative, vInvoiceTypeReceived)),
mci.CodigoCuentaFactura = x.SUBCTA,
mci.CifDni = IF(LEFT(TRIM(s.nif), 2) = n.SiglaNacion, SUBSTRING(TRIM(s.nif), 3), s.nif),
mci.Nombre = s.name,
@@ -185,7 +186,7 @@ BEGIN
JOIN (SELECT SUM(x2.BASEEURO) taxableBase, SUM(x2.EURODEBE) taxBase
FROM vn.XDiario x1
JOIN vn.XDiario x2 ON x1.ASIEN = x2.ASIEN
- WHERE x2.BASEEURO <> 0
+ WHERE x2.BASEEURO <> 0
AND x1.id = vXDiarioFk
)sub
JOIN ClavesOperacion co ON co.Descripcion = 'Arrendamiento de locales de negocio'
@@ -193,10 +194,41 @@ BEGIN
mci.ClaveOperacionFactura = IF( t.Retencion = 'ARRENDAMIENTO Y SUBARRENDAMIENTO', co.ClaveOperacionFactura_, mci.ClaveOperacionFactura),
mci.BaseRetencion = IF (t.Retencion = 'ACTIVIDADES AGRICOLAS O GANADERAS', sub.taxableBase + sub.taxBase, sub.taxableBase),
mci.PorRetencion = t.PorcentajeRetencion,
- mci.ImporteRetencion = iit.taxableBase * - 1
- WHERE mci.id = vXDiarioFk
+ mci.ImporteRetencion = iit.taxableBase * - 1
+ WHERE mci.id = vXDiarioFk
AND e.name = 'Retenciones'
AND id.id IS NULL;
+ SELECT correctedFk INTO vInvoiceInOriginalFk
+ FROM vn.invoiceInCorrection
+ WHERE correctingFk = vInvoiceInFk;
+
+ IF vInvoiceInOriginalFk THEN
+
+ UPDATE movContaIVA mci
+ JOIN vn.invoiceInRefund iir ON iir.invoiceInRefundFk = vInvoiceInFk
+ JOIN (SELECT issued,
+ SUM(sub.taxableBase) taxableBase,
+ SUM(ROUND((sub.taxableBase * sub.PorcentajeIva) / 100 , 2)) vat
+ FROM(SELECT issued,
+ SUM(iit.taxableBase) taxableBase,
+ ti.PorcentajeIva
+ FROM vn.invoiceIn i
+ JOIN vn.invoiceInTax iit ON iit.invoiceInFk = i.id
+ JOIN sage.TiposIva ti ON ti.CodigoIva = iit.taxTypeSageFk
+ WHERE i.id = vInvoiceInOriginalFk
+ GROUP BY ti.CodigoIva)sub
+ )invoiceInOriginal
+ JOIN ClavesOperacion co ON co.Descripcion = 'Factura rectificativa'
+ SET mci.TipoRectificativa = iir.refundCategoryFk,
+ mci.ClaseAbonoRectificativas = iir.refundType,
+ mci.FechaFacturaOriginal = invoiceInOriginal.issued,
+ mci.FechaOperacion = invoiceInOriginal.issued,
+ mci.BaseImponibleOriginal = invoiceInOriginal.taxableBase,
+ mci.CuotaIvaOriginal = invoiceInOriginal.vat,
+ mci.ClaveOperacionFactura = co.ClaveOperacionFactura_
+ WHERE mci.id = vXDiarioFk;
+
+ END IF;
END$$
-DELIMITER ;
+DELIMITER ;
\ No newline at end of file
diff --git a/db/routines/sage/procedures/pgc_add.sql b/db/routines/sage/procedures/pgc_add.sql
index ebcb2d043..78d80a9fe 100644
--- a/db/routines/sage/procedures/pgc_add.sql
+++ b/db/routines/sage/procedures/pgc_add.sql
@@ -17,13 +17,13 @@ BEGIN
e.id accountFk,
UCASE(e.name),
''
- FROM expense e
+ FROM vn.expense e
UNION
SELECT company_getCode(vCompanyFk),
a.account,
UCASE(a.bank),
''
- FROM accounting a
+ FROM vn.accounting a
WHERE a.isActive
AND a.`account`
UNION
diff --git a/db/routines/vn/functions/travel_hasUniqueAwb.sql b/db/routines/vn/functions/travel_hasUniqueAwb.sql
new file mode 100644
index 000000000..e918f1a26
--- /dev/null
+++ b/db/routines/vn/functions/travel_hasUniqueAwb.sql
@@ -0,0 +1,28 @@
+DELIMITER $$
+CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `vn`.`travel_hasUniqueAwb`(
+ vSelf INT
+)
+ RETURNS BOOL
+ READS SQL DATA
+BEGIN
+/**
+ * Comprueba que el travel pasado tiene un AWB lógico,
+ * no se pueden tener varios AWB asociados al mismo DUA
+ *
+ * @param vSelf Id del travel
+ */
+ DECLARE vHasUniqueAwb BOOL DEFAULT TRUE;
+
+ SELECT NOT COUNT(t2.awbFk) INTO vHasUniqueAwb
+ FROM entry e
+ JOIN travel t ON t.id = e.travelFk
+ JOIN duaEntry de ON de.entryFk = e.id
+ JOIN duaEntry de2 ON de2.duaFk = de.duaFk
+ JOIN entry e2 ON e2.id = de2.entryFk
+ JOIN travel t2 ON t2.id = e2.travelFk
+ WHERE t.id = vSelf
+ AND t2.awbFk <> t.awbFk;
+
+ RETURN vHasUniqueAwb;
+END$$
+DELIMITER ;
diff --git a/db/routines/vn/procedures/inventory_repair.sql b/db/routines/vn/procedures/inventory_repair.sql
index ea65ac37d..93527d84b 100644
--- a/db/routines/vn/procedures/inventory_repair.sql
+++ b/db/routines/vn/procedures/inventory_repair.sql
@@ -37,7 +37,7 @@ BEGIN
LEFT JOIN origin o ON o.id = i.originFk
) ON it.id = i.typeFk
LEFT JOIN edi.ekt ek ON b.ektFk = ek.id
- WHERE (b.packagingFk = "--" OR b.price2 = 0 OR b.packing = 0 OR b.buyingValue = 0) AND tr.landed > util.firstDayOfMonth(TIMESTAMPADD(MONTH,-1,util.VN_CURDATE())) AND s.name = 'INVENTARIO';
+ WHERE (b.packagingFk = "--" OR b.price2 = 0 OR b.buyingValue = 0) AND tr.landed > util.firstDayOfMonth(TIMESTAMPADD(MONTH,-1,util.VN_CURDATE())) AND s.name = 'INVENTARIO';
DROP TEMPORARY TABLE IF EXISTS tmp.lastEntryOk;
CREATE TEMPORARY TABLE tmp.lastEntryOk
@@ -94,11 +94,6 @@ BEGIN
JOIN tmp.lastEntryOkGroup eo ON eo.itemFk = lt.itemFk AND eo.warehouseFk = lt.warehouseFk
SET b.price2 = eo.price2 WHERE b.price2 = 0 ;
- UPDATE buy b
- JOIN tmp.lastEntry lt ON lt.buyFk = b.id
- JOIN tmp.lastEntryOkGroup eo ON eo.itemFk = lt.itemFk AND eo.warehouseFk = lt.warehouseFk
- SET b.packing = eo.packing WHERE b.packing = 0;
-
UPDATE buy b
JOIN tmp.lastEntry lt ON lt.buyFk = b.id
JOIN tmp.lastEntryOkGroup eo ON eo.itemFk = lt.itemFk AND eo.warehouseFk = lt.warehouseFk
diff --git a/db/routines/vn/procedures/invoiceInTaxMakeByDua.sql b/db/routines/vn/procedures/invoiceInTaxMakeByDua.sql
index 2ff478d6b..3453516cc 100644
--- a/db/routines/vn/procedures/invoiceInTaxMakeByDua.sql
+++ b/db/routines/vn/procedures/invoiceInTaxMakeByDua.sql
@@ -1,8 +1,11 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`invoiceInTaxMakeByDua`(vDuaFk INT)
+CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`invoiceInTaxMakeByDua`(
+ vDuaFk INT
+)
BEGIN
/**
- * Borra los valores de duaTax y sus vctos. y los vuelve a crear en base a la tabla duaEntry
+ * Borra los valores de duaTax y sus vctos. y los vuelve a
+ * crear en base a la tabla duaEntry.
*
* @param vDuaFk Id del dua a recalcular
*/
@@ -26,7 +29,7 @@ BEGIN
LEAVE l;
END IF;
- CALL vn2008.recibidaIvaInsert(vInvoiceInFk);
+ CALL invoiceInTax_recalc(vInvoiceInFk);
CALL invoiceInDueDay_recalc(vInvoiceInFk);
END LOOP;
diff --git a/db/routines/vn/procedures/invoiceInTax_recalc.sql b/db/routines/vn/procedures/invoiceInTax_recalc.sql
new file mode 100644
index 000000000..3b5ce5247
--- /dev/null
+++ b/db/routines/vn/procedures/invoiceInTax_recalc.sql
@@ -0,0 +1,62 @@
+DELIMITER $$
+CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`invoiceInTax_recalc`(
+ vInvoiceInFk INT
+)
+BEGIN
+/**
+ * Recalcula y actualiza los impuestos de la factura
+ * usando la última tasa de cambio y detalles de compra.
+ *
+ * @param vInvoiceInFk Id de factura recibida
+ */
+ DECLARE vRate DOUBLE DEFAULT 1;
+ DECLARE vDated DATE;
+ DECLARE vExpenseFk INT;
+
+ SELECT MAX(rr.dated) INTO vDated
+ FROM referenceRate rr
+ JOIN invoiceIn ii ON ii.id = vInvoiceInFk
+ WHERE rr.dated <= ii.issued
+ AND rr.currencyFk = ii.currencyFk;
+
+ IF vDated THEN
+ SELECT `value` INTO vRate
+ FROM referenceRate
+ WHERE dated = vDated;
+ END IF;
+
+ DELETE FROM invoiceInTax WHERE invoiceInFk = vInvoiceInFk;
+
+ SELECT id INTO vExpenseFk
+ FROM expense
+ WHERE code = 'extraCommGoodsAcquisition';
+
+ IF vExpenseFk IS NULL THEN
+ CALL util.throw('Expense extraCommGoodsAcquisition not exists');
+ END IF;
+
+ INSERT INTO invoiceInTax(
+ invoiceInFk,
+ taxableBase,
+ expenseFk,
+ foreignValue,
+ taxTypeSageFk,
+ transactionTypeSageFk
+ )
+ SELECT ii.id,
+ SUM(b.buyingValue * b.quantity) / vRate bi,
+ vExpenseFk,
+ IF(c.code = 'EUR', NULL, SUM(b.buyingValue * b.quantity)),
+ s.taxTypeSageFk,
+ s.transactionTypeSageFk
+ FROM invoiceIn ii
+ JOIN currency c ON c.id = ii.currencyFk
+ JOIN `entry` e ON e.invoiceInFk = ii.id
+ JOIN supplier s ON s.id = e.supplierFk
+ JOIN buy b ON b.entryFk = e.id
+ LEFT JOIN referenceRate rr ON rr.currencyFk = ii.currencyFk
+ AND rr.dated = ii.issued
+ WHERE ii.id = vInvoiceInFk
+ HAVING bi IS NOT NULL;
+END$$
+DELIMITER ;
diff --git a/db/routines/vn/procedures/invoiceIn_add.sql b/db/routines/vn/procedures/invoiceIn_add.sql
deleted file mode 100644
index 0898d6810..000000000
--- a/db/routines/vn/procedures/invoiceIn_add.sql
+++ /dev/null
@@ -1,234 +0,0 @@
-DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `sage`.`invoiceIn_add`(vInvoiceInFk INT, vXDiarioFk INT)
-BEGIN
-/**
- * Traslada la info de contabilidad relacionada con las facturas recibidas
- *
- * @vInvoiceInFk Factura recibida
- * @vXDiarioFk Id tabla XDiario
- */
- DECLARE vInvoiceInOriginalFk INT;
- DECLARE vDone BOOL DEFAULT FALSE;
- DECLARE vBase DOUBLE;
- DECLARE vVat DOUBLE;
- DECLARE vRate DOUBLE;
- DECLARE vTransactionCode INT;
- DECLARE vCounter INT DEFAULT 0;
- DECLARE vTransactionCodeOld INT;
- DECLARE vTaxCode INT;
- DECLARE vTaxCodeOld INT;
- DECLARE vOperationCode VARCHAR(1);
- DECLARE vIsIntracommunity BOOL DEFAULT FALSE;
- DECLARE vSerialDua VARCHAR(1) DEFAULT 'D';
- DECLARE vInvoiceTypeReceived VARCHAR(1);
- DECLARE vInvoiceTypeInformative VARCHAR(1);
- DECLARE vIsInformativeExportation BOOL DEFAULT FALSE;
-
- DECLARE vCursor CURSOR FOR
- SELECT it.taxableBase,
- CAST((( it.taxableBase / 100) * t.PorcentajeIva) AS DECIMAL (10,2)),
- t.PorcentajeIva,
- it.transactionTypeSageFk,
- it.taxTypeSageFk,
- tty.isIntracommunity,
- tt.ClaveOperacionDefecto
- FROM vn.invoiceIn i
- JOIN vn.invoiceInTax it ON it.InvoiceInFk = i.id
- JOIN TiposIva t ON t.CodigoIva = it.taxTypeSageFk
- JOIN taxType tty ON tty.id = t.CodigoIva
- JOIN TiposTransacciones tt ON tt.CodigoTransaccion = it.transactionTypeSageFk
- LEFT JOIN vn.dua d ON d.id = vInvoiceInFk
- WHERE i.id = vInvoiceInFk
- AND d.id IS NULL;
-
- DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
-
- DELETE FROM movContaIVA
- WHERE id = vXDiarioFk;
-
- SELECT codeSage INTO vInvoiceTypeReceived
- FROM invoiceType WHERE code ='received';
-
- SELECT codeSage INTO vInvoiceTypeInformative
- FROM invoiceType WHERE code ='informative';
-
- INSERT INTO movContaIVA(id, LibreA1)
- VALUES (vXDiarioFk, vInvoiceInFk);
-
- OPEN vCursor;
-
- l: LOOP
- FETCH vCursor INTO vBase,
- vVat,
- vRate,
- vTransactionCode,
- vTaxCode,
- vIsIntracommunity,
- vOperationCode;
-
- IF vDone THEN
- LEAVE l;
- END IF;
-
- SET vTransactionCodeOld = vTransactionCode;
- SET vTaxCodeOld = vTaxCode;
-
- IF vOperationCode IS NOT NULL THEN
- UPDATE movContaIVA
- SET ClaveOperacionFactura = vOperationCode
- WHERE id = vXDiarioFk;
- END IF;
-
- SET vCounter = vCounter + 1;
- CASE vCounter
- WHEN 1 THEN
- UPDATE movContaIVA
- SET BaseIva1 = vBase,
- PorIva1 = vRate,
- CuotaIva1 = vVat,
- CodigoTransaccion1 = vTransactionCode,
- CodigoIva1 = vTaxCode
- WHERE id = vXDiarioFk;
-
- WHEN 2 THEN
- UPDATE movContaIVA
- SET BaseIva2 = vBase,
- PorIva2 = vRate,
- CuotaIva2 = vVat,
- CodigoTransaccion2 = vTransactionCode,
- CodigoIva2 = vTaxCode
- WHERE id = vXDiarioFk;
- WHEN 3 THEN
- UPDATE movContaIVA
- SET BaseIva3 = vBase,
- PorIva3 = vRate,
- CuotaIva3 = vVat,
- CodigoTransaccion3 = vTransactionCode,
- CodigoIva3 = vTaxCode
- WHERE id = vXDiarioFk;
- WHEN 4 THEN
- UPDATE movContaIVA
- SET BaseIva4 = vBase,
- PorIva4 = vRate,
- CuotaIva4 = vVat,
- CodigoTransaccion4 = vTransactionCode,
- CodigoIva4 = vTaxCode
- WHERE id = vXDiarioFk;
- ELSE
- SELECT vXDiarioFk INTO vXDiarioFk;
- END CASE;
-
- IF vIsIntracommunity THEN
- UPDATE movContaIVA
- SET Intracomunitaria = TRUE
- WHERE id = vXDiarioFk;
- END IF;
-
- SET vTransactionCodeOld = vTransactionCode;
- SET vTaxCodeOld = vTaxCode;
-
- END LOOP;
-
- CLOSE vCursor;
-
- SELECT d.ASIEN AND x.ASIEN IS NULL INTO vIsInformativeExportation
- FROM vn.dua d
- LEFT JOIN vn.XDiario x ON x.ASIEN = d.ASIEN
- AND x.SERIE = vSerialDua COLLATE utf8mb3_unicode_ci
- WHERE d.ASIEN = (
- SELECT ASIEN
- FROM vn.XDiario
- WHERE id = vXDiarioFk)
- LIMIT 1;
-
- UPDATE movContaIVA mci
- JOIN tmp.invoiceIn ii ON ii.id = vInvoiceInFk
- JOIN vn.XDiario x ON x.id = mci.id
- LEFT JOIN tmp.invoiceDua id ON id.id = mci.id
- JOIN vn.supplier s ON s.id = ii.supplierFk
- JOIN Naciones n ON n.countryFk = s.countryFk
- SET mci.CodigoDivisa = ii.currencyFk,
- mci.Año = YEAR(ii.issued),
- mci.Serie = ii.serial,
- mci.Factura = ii.id,
- mci.FechaFactura = ii.issued,
- mci.ImporteFactura = IFNULL(mci.BaseIva1, 0) + IFNULL(mci.CuotaIva1, 0) +
- IFNULL(mci.BaseIva2, 0) + IFNULL(mci.CuotaIva2, 0) +
- IFNULL(mci.BaseIva3, 0) + IFNULL(mci.CuotaIva3, 0) +
- IFNULL(mci.BaseIva4, 0) + IFNULL(mci.CuotaIva4, 0),
- mci.TipoFactura = IF(id.id,
- IF( ii.serial = vSerialDua COLLATE utf8mb3_unicode_ci, vInvoiceTypeReceived, vInvoiceTypeInformative),
- IF(vIsInformativeExportation,vInvoiceTypeInformative, vInvoiceTypeReceived)),
- mci.CodigoCuentaFactura = x.SUBCTA,
- mci.CifDni = IF(LEFT(TRIM(s.nif), 2) = n.SiglaNacion, SUBSTRING(TRIM(s.nif), 3), s.nif),
- mci.Nombre = s.name,
- mci.SiglaNacion = n.SiglaNacion,
- mci.EjercicioFactura = YEAR(ii.issued),
- mci.FechaOperacion = ii.issued,
- mci.MantenerAsiento = TRUE,
- mci.SuFacturaNo = ii.supplierRef,
- mci.IvaDeducible1 = IF(id.id, FALSE, IF(IFNULL(mci.BaseIva1, FALSE) = FALSE, FALSE, ii.isVatDeductible)),
- mci.IvaDeducible2 = IF(id.id, FALSE, IF(IFNULL(mci.BaseIva2, FALSE) = FALSE, FALSE, ii.isVatDeductible)),
- mci.IvaDeducible3 = IF(id.id, FALSE, IF(IFNULL(mci.BaseIva3, FALSE) = FALSE, FALSE, ii.isVatDeductible)),
- mci.IvaDeducible4 = IF(id.id, FALSE, IF(IFNULL(mci.BaseIva4, FALSE) = FALSE, FALSE, ii.isVatDeductible)),
- mci.FechaFacturaOriginal = x.FECHA_EX
- WHERE mci.id = vXDiarioFk;
-
- -- RETENCIONES
- UPDATE movContaIVA mci
- JOIN vn.invoiceIn ii ON ii.id = vInvoiceInFk
- JOIN vn.XDiario x ON x.id = mci.id
- JOIN vn.supplier s ON s.id = supplierFk
- JOIN vn.invoiceInTax iit ON iit.invoiceInFk = ii.id
- JOIN vn.expense e ON e.id = iit.expenseFk
- JOIN TiposRetencion t ON t.CodigoRetencion = ii.withholdingSageFk
- LEFT JOIN tmp.invoiceDua id ON id.id = mci.id
- JOIN (SELECT SUM(x2.BASEEURO) taxableBase, SUM(x2.EURODEBE) taxBase
- FROM vn.XDiario x1
- JOIN vn.XDiario x2 ON x1.ASIEN = x2.ASIEN
- WHERE x2.BASEEURO <> 0
- AND x1.id = vXDiarioFk
- )sub
- JOIN ClavesOperacion co ON co.Descripcion = 'Arrendamiento de locales de negocio'
- SET mci.CodigoRetencion = t.CodigoRetencion,
- mci.ClaveOperacionFactura = IF( t.Retencion = 'ARRENDAMIENTO Y SUBARRENDAMIENTO', co.ClaveOperacionFactura_, mci.ClaveOperacionFactura),
- mci.BaseRetencion = IF (t.Retencion = 'ACTIVIDADES AGRICOLAS O GANADERAS', sub.taxableBase + sub.taxBase, sub.taxableBase),
- mci.PorRetencion = t.PorcentajeRetencion,
- mci.ImporteRetencion = iit.taxableBase * - 1
- WHERE mci.id = vXDiarioFk
- AND e.name = 'Retenciones'
- AND id.id IS NULL;
-
- SELECT correctedFk INTO vInvoiceInOriginalFk
- FROM vn.invoiceInCorrection
- WHERE correctingFk = vInvoiceInFk;
-
- IF vInvoiceInOriginalFk THEN
-
- UPDATE movContaIVA mci
- JOIN vn.invoiceInRefund iir ON iir.invoiceInRefundFk = vInvoiceInFk
- JOIN (SELECT issued,
- SUM(sub.taxableBase) taxableBase,
- SUM(ROUND((sub.taxableBase * sub.PorcentajeIva) / 100 , 2)) vat
- FROM(SELECT issued,
- SUM(iit.taxableBase) taxableBase,
- ti.PorcentajeIva
- FROM vn.invoiceIn i
- JOIN vn.invoiceInTax iit ON iit.invoiceInFk = i.id
- JOIN sage.TiposIva ti ON ti.CodigoIva = iit.taxTypeSageFk
- WHERE i.id = vInvoiceInOriginalFk
- GROUP BY ti.CodigoIva)sub
- )invoiceInOriginal
- JOIN ClavesOperacion co ON co.Descripcion = 'Factura rectificativa'
- SET mci.TipoRectificativa = iir.refundCategoryFk,
- mci.ClaseAbonoRectificativas = iir.refundType,
- mci.FechaFacturaOriginal = invoiceInOriginal.issued,
- mci.FechaOperacion = invoiceInOriginal.issued,
- mci.BaseImponibleOriginal = invoiceInOriginal.taxableBase,
- mci.CuotaIvaOriginal = invoiceInOriginal.vat,
- mci.ClaveOperacionFactura = co.ClaveOperacionFactura_
- WHERE mci.id = vXDiarioFk;
-
- END IF;
-END$$
-DELIMITER ;
\ No newline at end of file
diff --git a/db/routines/vn/procedures/item_getSimilar.sql b/db/routines/vn/procedures/item_getSimilar.sql
index e8b791d29..0ddfe21b5 100644
--- a/db/routines/vn/procedures/item_getSimilar.sql
+++ b/db/routines/vn/procedures/item_getSimilar.sql
@@ -19,93 +19,74 @@ BEGIN
DECLARE vTypeFk INT;
DECLARE vPriority INT DEFAULT 1;
- DECLARE vTag1 VARCHAR(20) COLLATE 'utf8_unicode_ci';
- DECLARE vTag5 VARCHAR(20) COLLATE 'utf8_unicode_ci';
- DECLARE vTag6 VARCHAR(20) COLLATE 'utf8_unicode_ci';
- DECLARE vTag7 VARCHAR(20) COLLATE 'utf8_unicode_ci';
- DECLARE vTag8 VARCHAR(20) COLLATE 'utf8_unicode_ci';
-
- DECLARE vValue1 VARCHAR(50) COLLATE 'utf8_unicode_ci';
- DECLARE vValue5 VARCHAR(50) COLLATE 'utf8_unicode_ci';
- DECLARE vValue6 VARCHAR(50) COLLATE 'utf8_unicode_ci';
- DECLARE vValue7 VARCHAR(50) COLLATE 'utf8_unicode_ci';
- DECLARE vValue8 VARCHAR(50) COLLATE 'utf8_unicode_ci';
-
- SELECT typeFk,
- tag5,
- value5,
- tag6,
- value6,
- tag7,
- value7,
- tag8,
- value8,
- t.name,
- it.value
- INTO vTypeFk,
- vTag5,
- vValue5,
- vTag6,
- vValue6,
- vTag7,
- vValue7,
- vTag8,
- vValue8,
- vTag1,
- vValue1
- FROM item i
- LEFT JOIN itemTag it ON it.itemFk = i.id
- AND it.priority = vPriority
- LEFT JOIN tag t ON t.id = it.tagFk
- WHERE i.id = vSelf;
-
CALL cache.available_refresh(vCalcFk, FALSE, vWarehouseFk, vDated);
+
+ WITH itemTags AS (
+ SELECT i.id,
+ typeFk,
+ tag5,
+ value5,
+ tag6,
+ value6,
+ tag7,
+ value7,
+ tag8,
+ value8,
+ t.name,
+ it.value
+ FROM vn.item i
+ LEFT JOIN vn.itemTag it ON it.itemFk = i.id
+ AND it.priority = vPriority
+ LEFT JOIN vn.tag t ON t.id = it.tagFk
+ WHERE i.id = vSelf
+ )
SELECT i.id itemFk,
i.longName,
i.subName,
i.tag5,
i.value5,
- (i.value5 <=> vValue5) match5,
+ (i.value5 <=> its.value5) match5,
i.tag6,
i.value6,
- (i.value6 <=> vValue6) match6,
+ (i.value6 <=> its.value6) match6,
i.tag7,
i.value7,
- (i.value7 <=> vValue7) match7,
+ (i.value7 <=> its.value7) match7,
i.tag8,
i.value8,
- (i.value8 <=> vValue8) match8,
+ (i.value8 <=> its.value8) match8,
a.available,
IFNULL(ip.counter, 0) `counter`,
IF(b.groupingMode = 1, b.grouping, b.packing) minQuantity,
iss.visible located
- FROM item i
- STRAIGHT_JOIN cache.available a ON a.item_id = i.id
+ FROM vn.item i
+ JOIN cache.available a ON a.item_id = i.id
AND a.calc_id = vCalcFk
- LEFT JOIN itemProposal ip ON ip.mateFk = i.id
+ LEFT JOIN vn.itemProposal ip ON ip.mateFk = i.id
AND ip.itemFk = vSelf
- LEFT JOIN itemTag it ON it.itemFk = i.id
+ LEFT JOIN vn.itemTag it ON it.itemFk = i.id
AND it.priority = vPriority
- LEFT JOIN tag t ON t.id = it.tagFk
+ LEFT JOIN vn.tag t ON t.id = it.tagFk
LEFT JOIN cache.last_buy lb ON lb.item_id = i.id
AND lb.warehouse_id = vWarehouseFk
- LEFT JOIN buy b ON b.id = lb.buy_id
- LEFT JOIN itemShelvingStock iss ON iss.itemFk = i.id
+ LEFT JOIN vn.buy b ON b.id = lb.buy_id
+ LEFT JOIN vn.itemShelvingStock iss ON iss.itemFk = i.id
AND iss.warehouseFk = vWarehouseFk
+ JOIN itemTags its
WHERE a.available > 0
- AND IF(vShowType, i.typeFk = vTypeFk, TRUE)
+ AND IF(vShowType, i.typeFk = its.typeFk, TRUE)
AND i.id <> vSelf
ORDER BY `counter` DESC,
- (t.name = vTag1) DESC,
- (it.value = vValue1) DESC,
- (i.tag5 = vTag5) DESC,
+ (t.name = its.name) DESC,
+ (it.value = its.value) DESC,
+ (i.tag5 = its.tag5) DESC,
match5 DESC,
- (i.tag6 = vTag6) DESC,
+ (i.tag6 = its.tag6) DESC,
match6 DESC,
- (i.tag7 = vTag7) DESC,
+ (i.tag7 = its.tag7) DESC,
match7 DESC,
- (i.tag8 = vTag8) DESC,
+ (i.tag8 = its.tag8) DESC,
match8 DESC;
END$$
DELIMITER ;
diff --git a/db/routines/vn/procedures/zone_getCollisions.sql b/db/routines/vn/procedures/zone_getCollisions.sql
index f6779e1b7..023b9aac2 100644
--- a/db/routines/vn/procedures/zone_getCollisions.sql
+++ b/db/routines/vn/procedures/zone_getCollisions.sql
@@ -1,8 +1,9 @@
DELIMITER $$
+
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`zone_getCollisions`()
BEGIN
/**
- * Calcula si para un mismo codigo postal y dia
+ * Calcula si para un mismo codigo postal y dia
* hay mas de una zona configurada y manda correo
*
*/
@@ -10,17 +11,18 @@ BEGIN
DECLARE vZoneFk INT;
DECLARE vIsDone INT DEFAULT FALSE;
DECLARE vTableCollisions TEXT;
+ DECLARE json_data JSON;
DECLARE cur1 CURSOR FOR SELECT zoneFk from tmp.zoneOption;
-
+
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vIsDone = TRUE;
DROP TEMPORARY TABLE IF EXISTS tmp.zone;
CREATE TEMPORARY TABLE tmp.zone
- SELECT z.id
+ SELECT z.id
FROM zone z
JOIN agencyMode am ON am.id = z.agencyModeFk
JOIN deliveryMethod dm ON dm.id = am.deliveryMethodFk
- WHERE dm.code IN ('AGENCY','DELIVERY');
+ WHERE dm.code IN ('AGENCY','DELIVERY');
CALL zone_getOptionsForShipment(util.VN_CURDATE(),FALSE);
@@ -35,7 +37,7 @@ BEGIN
PRIMARY KEY zoneFkk (zoneFk, geoFk),
INDEX(geoFk))
ENGINE = MyISAM;
-
+
OPEN cur1;
cur1Loop: LOOP
SET vIsDone = FALSE;
@@ -43,82 +45,63 @@ BEGIN
IF vIsDone THEN
LEAVE cur1Loop;
END IF;
-
+
CALL zone_getLeaves(vZoneFk, NULL, NULL, TRUE);
- myLoop: LOOP
+ myLoop: LOOP
SET vGeoFk = NULL;
- SELECT geoFk INTO vGeoFk
+ SELECT geoFk INTO vGeoFk
FROM tmp.zoneNodes zn
WHERE NOT isChecked
LIMIT 1;
-
+
IF vGeoFk IS NULL THEN
LEAVE myLoop;
END IF;
-
+
CALL zone_getLeaves(vZoneFk, vGeoFk, NULL, TRUE);
UPDATE tmp.zoneNodes
- SET isChecked = TRUE
+ SET isChecked = TRUE
WHERE geoFk = vGeoFk;
END LOOP;
END LOOP;
CLOSE cur1;
- DELETE FROM tmp.zoneNodes
+ DELETE FROM tmp.zoneNodes
WHERE sons > 0;
-
+
DROP TEMPORARY TABLE IF EXISTS geoCollision;
CREATE TEMPORARY TABLE geoCollision
SELECT z.agencyModeFk, zn.geoFk, zw.warehouseFk
FROM tmp.zoneNodes zn
JOIN zone z ON z.id = zn.zoneFk
- JOIN zoneWarehouse zw ON z.id = zw.zoneFk
+ JOIN zoneWarehouse zw ON z.id = zw.zoneFk
GROUP BY z.agencyModeFk, zn.geoFk, zw.warehouseFk
HAVING count(*) > 1;
-
- SELECT '
-
- C.Postal |
- Número de zona |
- Precio |
- Zona |
- Almacén |
- Salix |
-
' INTO vTableCollisions;
-
- INSERT INTO mail (receiver,replyTo,subject,body)
- SELECT 'pepe@verdnatura.es' receiver,
- 'noreply@verdnatura.es' replyTo,
- CONCAT('Colisiones en zonas ', util.VN_CURDATE()) subject,
- CONCAT(vTableCollisions,
- GROUP_CONCAT(sub.td SEPARATOR ''),
- '
') body
- FROM(SELECT
- CONCAT('
- ', zn.name, ' |
- ', zoneFk,' |
- ', z.price,' |
- ', z.name,' |
- ', w.name, ' |
- ', CONCAT(''
- 'https://salix.verdnatura.es/#!/zone/',
- zoneFk,
- '/location?q=%7B%22search%22:%22',
- zn.name,
- '%22%7D'),' |
-
') td
- FROM tmp.zoneNodes zn
- JOIN zone z ON z.id = zn.zoneFk
- JOIN geoCollision gc ON gc.agencyModeFk = z.agencyModeFk AND zn.geoFk = gc.geoFk
- JOIN warehouse w ON w.id = gc.warehouseFk) sub;
-
- DROP TEMPORARY TABLE
- geoCollision,
+
+ -- Recojo los datos de la zona que ha dado conflicto
+ SELECT JSON_ARRAYAGG(
+ JSON_OBJECT(
+ 'zoneFk', zoneFk,
+ 'zn', JSON_OBJECT('name', zn.name),
+ 'z', JSON_OBJECT('name', z.name,'price', z.price),
+ 'w', JSON_OBJECT('name', w.name)
+ )
+ ) FROM tmp.zoneNodes zn
+ JOIN zone z ON z.id = zn.zoneFk
+ JOIN geoCollision gc ON gc.agencyModeFk = z.agencyModeFk AND zn.geoFk = gc.geoFk
+ JOIN warehouse w ON w.id = gc.warehouseFk
+ INTO json_data;
+
+ -- Creo un registro de la notificacion 'zone-included' para reportar via email
+ SELECT util.notification_send(
+ 'zone-included',
+ JSON_OBJECT('zoneCollisions',json_data),
+ account.myUser_getId()
+ );
+
+ DROP TEMPORARY TABLE
+ geoCollision,
tmp.zone,
tmp.zoneNodes;
END$$
diff --git a/db/routines/vn/triggers/buy_beforeInsert.sql b/db/routines/vn/triggers/buy_beforeInsert.sql
index c88bef05a..a05f2810b 100644
--- a/db/routines/vn/triggers/buy_beforeInsert.sql
+++ b/db/routines/vn/triggers/buy_beforeInsert.sql
@@ -9,6 +9,7 @@ trig: BEGIN
DECLARE vGroupingMode TINYINT;
DECLARE vGenericFk INT;
DECLARE vGenericInDate BOOL;
+ DECLARE vBuyerFk INT;
IF @isModeInventory THEN
LEAVE trig;
@@ -20,6 +21,13 @@ trig: BEGIN
SET NEW.editorFk = account.myUser_getId();
+ SELECT it.workerFk INTO vBuyerFk
+ FROM item i
+ JOIN itemType it ON it.id = i.typeFk
+ WHERE i.id = NEW.itemFk;
+
+ SET NEW.buyerFk = vBuyerFk;
+
CALL buy_checkGrouping(NEW.`grouping`);
SELECT t.warehouseInFk, t.landed
diff --git a/db/routines/vn/triggers/buy_beforeUpdate.sql b/db/routines/vn/triggers/buy_beforeUpdate.sql
index fc03c456f..40e0df984 100644
--- a/db/routines/vn/triggers/buy_beforeUpdate.sql
+++ b/db/routines/vn/triggers/buy_beforeUpdate.sql
@@ -7,6 +7,7 @@ trig:BEGIN
DECLARE vGenericInDate BOOL;
DECLARE vIsInventory BOOL;
DECLARE vDefaultEntry INT;
+ DECLARE vBuyerFk INT;
IF @isTriggerDisabled THEN
LEAVE trig;
@@ -65,6 +66,15 @@ trig:BEGIN
SET NEW.isIgnored = TRUE;
END IF;
+ IF NOT (NEW.itemFk <=> OLD.itemFk) THEN
+ SELECT it.workerFk INTO vBuyerFk
+ FROM item i
+ JOIN itemType it ON it.id = i.typeFk
+ WHERE i.id = NEW.itemFk;
+
+ SET NEW.buyerFk = vBuyerFk;
+ END IF;
+
IF NOT (NEW.itemFk <=> OLD.itemFk) OR
NOT (OLD.entryFk <=> NEW.entryFk) THEN
CREATE OR REPLACE TEMPORARY TABLE tmp.buysToCheck
diff --git a/db/routines/vn/triggers/entry_beforeInsert.sql b/db/routines/vn/triggers/entry_beforeInsert.sql
index f475630db..c0c0aa28c 100644
--- a/db/routines/vn/triggers/entry_beforeInsert.sql
+++ b/db/routines/vn/triggers/entry_beforeInsert.sql
@@ -7,6 +7,8 @@ BEGIN
CALL supplier_checkIsActive(NEW.supplierFk);
SET NEW.currencyFk = entry_getCurrency(NEW.currencyFk, NEW.supplierFk);
SET NEW.commission = entry_getCommission(NEW.travelFk, NEW.currencyFk,NEW.supplierFk);
-
+ IF NEW.travelFk IS NOT NULL AND NOT travel_hasUniqueAwb(NEW.travelFk) THEN
+ CALL util.throw('The travel is incorrect, there is a different AWB in the associated entries');
+ END IF;
END$$
DELIMITER ;
diff --git a/db/routines/vn/triggers/entry_beforeUpdate.sql b/db/routines/vn/triggers/entry_beforeUpdate.sql
index 60b83002c..384feb458 100644
--- a/db/routines/vn/triggers/entry_beforeUpdate.sql
+++ b/db/routines/vn/triggers/entry_beforeUpdate.sql
@@ -8,13 +8,18 @@ BEGIN
DECLARE vHasDistinctWarehouses BOOL;
SET NEW.editorFk = account.myUser_getId();
+
+ IF NOT (NEW.travelFk <=> OLD.travelFk) THEN
- IF !(NEW.travelFk <=> OLD.travelFk) THEN
+ IF NEW.travelFk IS NOT NULL AND NOT travel_hasUniqueAwb(NEW.travelFk) THEN
+ CALL util.throw('The travel is incorrect, there is a different AWB in the associated entries');
+ END IF;
+
SELECT COUNT(*) > 0 INTO vIsVirtual
FROM entryVirtual WHERE entryFk = NEW.id;
- SELECT !(o.warehouseInFk <=> n.warehouseInFk)
- OR !(o.warehouseOutFk <=> n.warehouseOutFk)
+ SELECT NOT (o.warehouseInFk <=> n.warehouseInFk)
+ OR NOT (o.warehouseOutFk <=> n.warehouseOutFk)
INTO vHasDistinctWarehouses
FROM travel o, travel n
WHERE o.id = OLD.travelFk
@@ -43,9 +48,8 @@ BEGIN
SET NEW.currencyFk = entry_getCurrency(NEW.currencyFk, NEW.supplierFk);
END IF;
- IF NOT (NEW.travelFk <=> OLD.travelFk)
- OR NOT (NEW.currencyFk <=> OLD.currencyFk) THEN
- SET NEW.commission = entry_getCommission(NEW.travelFk, NEW.currencyFk,NEW.supplierFk);
+ IF NOT (NEW.travelFk <=> OLD.travelFk) OR NOT (NEW.currencyFk <=> OLD.currencyFk) THEN
+ SET NEW.commission = entry_getCommission(NEW.travelFk, NEW.currencyFk, NEW.supplierFk);
END IF;
END$$
DELIMITER ;
diff --git a/db/routines/vn/triggers/travel_afterUpdate.sql b/db/routines/vn/triggers/travel_afterUpdate.sql
index b4e40ae41..7752505e3 100644
--- a/db/routines/vn/triggers/travel_afterUpdate.sql
+++ b/db/routines/vn/triggers/travel_afterUpdate.sql
@@ -5,7 +5,7 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`travel_afterUpdate`
BEGIN
CALL stock.log_add('travel', NEW.id, OLD.id);
- IF !(NEW.shipped <=> OLD.shipped) THEN
+ IF NOT(NEW.shipped <=> OLD.shipped) THEN
UPDATE entry
SET commission = entry_getCommission(travelFk, currencyFk,supplierFk)
WHERE travelFk = NEW.id;
@@ -23,5 +23,9 @@ BEGIN
CALL buy_checkItem();
END IF;
END IF;
+
+ IF (NOT(NEW.awbFk <=> OLD.awbFk)) AND NEW.awbFk IS NOT NULL AND NOT travel_hasUniqueAwb(NEW.id) THEN
+ CALL util.throw('The AWB is incorrect, there is a different AWB in the associated entries');
+ END IF;
END$$
DELIMITER ;
diff --git a/db/routines/vn/triggers/travel_beforeInsert.sql b/db/routines/vn/triggers/travel_beforeInsert.sql
index 4e1dae3ef..817bd69bb 100644
--- a/db/routines/vn/triggers/travel_beforeInsert.sql
+++ b/db/routines/vn/triggers/travel_beforeInsert.sql
@@ -8,5 +8,9 @@ BEGIN
CALL travel_checkDates(NEW.shipped, NEW.landed);
CALL travel_checkWarehouseIsFeedStock(NEW.warehouseInFk);
+
+ IF NEW.awbFk IS NOT NULL AND NOT travel_hasUniqueAwb(NEW.id) THEN
+ CALL util.throw('The AWB is incorrect, there is a different AWB in the associated entries');
+ END IF;
END$$
DELIMITER ;
diff --git a/db/routines/vn/triggers/zoneIncluded_afterDelete.sql b/db/routines/vn/triggers/zoneIncluded_afterDelete.sql
index 6d184bb12..18332bb55 100644
--- a/db/routines/vn/triggers/zoneIncluded_afterDelete.sql
+++ b/db/routines/vn/triggers/zoneIncluded_afterDelete.sql
@@ -8,5 +8,6 @@ BEGIN
`changedModel` = 'zoneIncluded',
`changedModelId` = OLD.zoneFk,
`userFk` = account.myUser_getId();
+
END$$
DELIMITER ;
diff --git a/db/routines/vn/triggers/zoneIncluded_beforeInsert.sql b/db/routines/vn/triggers/zoneIncluded_beforeInsert.sql
index 5eff33efa..18895c9a5 100644
--- a/db/routines/vn/triggers/zoneIncluded_beforeInsert.sql
+++ b/db/routines/vn/triggers/zoneIncluded_beforeInsert.sql
@@ -4,5 +4,6 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`zoneIncluded_beforeIn
FOR EACH ROW
BEGIN
SET NEW.editorFk = account.myUser_getId();
+
END$$
DELIMITER ;
diff --git a/db/routines/vn/triggers/zoneIncluded_beforeUpdate.sql b/db/routines/vn/triggers/zoneIncluded_beforeUpdate.sql
index 445f37699..e3f0a27e2 100644
--- a/db/routines/vn/triggers/zoneIncluded_beforeUpdate.sql
+++ b/db/routines/vn/triggers/zoneIncluded_beforeUpdate.sql
@@ -4,5 +4,6 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`zoneIncluded_beforeUp
FOR EACH ROW
BEGIN
SET NEW.editorFk = account.myUser_getId();
+
END$$
DELIMITER ;
diff --git a/db/routines/vn2008/procedures/ListaTicketsEncajados.sql b/db/routines/vn2008/procedures/ListaTicketsEncajados.sql
deleted file mode 100644
index ce99916ee..000000000
--- a/db/routines/vn2008/procedures/ListaTicketsEncajados.sql
+++ /dev/null
@@ -1,25 +0,0 @@
-DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`ListaTicketsEncajados`(IN intId_Trabajador int)
-BEGIN
-
-SELECT Agencia,
- Consignatario,
- ti.Id_Ticket,
- ts.userFk Id_Trabajador,
- IFNULL(ncajas,0) AS ncajas,
- IFNULL(nbultos,0) AS nbultos,
- IFNULL(notros,0) AS notros,
- ts.code AS Estado
- FROM Tickets ti
- INNER JOIN Consignatarios ON ti.Id_Consigna = Consignatarios.Id_consigna
- INNER JOIN Agencias ON ti.Id_Agencia = Agencias.Id_Agencia
- LEFT JOIN (SELECT ticketFk,count(*) AS ncajas FROM vn.expedition WHERE packagingFk=94 GROUP BY ticketFk) sub1 ON ti.Id_Ticket=sub1.ticketFk
- LEFT JOIN (SELECT ticketFk,count(*) AS nbultos FROM vn.expedition WHERE packagingFk IS NULL GROUP BY ticketFk) sub2 ON ti.Id_Ticket=sub2.ticketFk
- LEFT JOIN (SELECT ticketFk,count(*) AS notros FROM vn.expedition WHERE packagingFk >0 GROUP BY ticketFk) sub3 ON ti.Id_Ticket=sub3.ticketFk
- INNER JOIN vn.ticketState ts ON ti.Id_ticket = ts.ticketFk
- WHERE ti.Fecha=util.VN_CURDATE() AND
- ts.userFk=intId_Trabajador
- GROUP BY ti.Id_Ticket;
-
-END$$
-DELIMITER ;
diff --git a/db/routines/vn2008/procedures/customerDebtEvolution.sql b/db/routines/vn2008/procedures/customerDebtEvolution.sql
deleted file mode 100644
index b9763b985..000000000
--- a/db/routines/vn2008/procedures/customerDebtEvolution.sql
+++ /dev/null
@@ -1,49 +0,0 @@
-DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`customerDebtEvolution`(IN vCustomer INT)
-BEGIN
-
-SELECT * FROM
-(
- SELECT day, date, @s:= round(IFNULL(Euros,0) + @s,2) as Saldo, Euros, Credito, 0 as Cero
- FROM
- (
- SELECT day, date, IFNULL(Euros,0) as Euros, Credito
- FROM time
- JOIN (SELECT @s:= 0, - Credito as Credito FROM Clientes WHERE Id_Cliente = vCustomer) c
- LEFT JOIN
- (SELECT Euros, date(Fecha) as Fecha FROM
- (
- SELECT Fechacobro as Fecha, Entregado as Euros
- FROM Recibos
- WHERE Id_Cliente = vCustomer
- AND Fechacobro >= '2017-01-01'
- UNION ALL
- SELECT vn.getDueDate(io.issued,c.Vencimiento), - io.amount
- FROM vn.invoiceOut io
- JOIN Clientes c ON io.clientFk = c.Id_Cliente
- WHERE io.clientFk = vCustomer
- AND io.issued >= '2017-01-01'
- UNION ALL
- SELECT '2016-12-31', Debt
- FROM bi.customerDebtInventory
- WHERE Id_Cliente = vCustomer
- UNION ALL
- SELECT Fecha, - SUM(Cantidad * Preu * (100 - Descuento ) * 1.10 / 100)
- FROM Tickets t
- JOIN Movimientos m on m.Id_Ticket = t.Id_Ticket
- WHERE Id_Cliente = vCustomer
- AND Factura IS NULL
- AND Fecha >= '2017-01-01'
- GROUP BY Fecha
- ) sub2
- ORDER BY Fecha
- )sub ON time.date = sub.Fecha
- WHERE time.date BETWEEN '2016-12-31' AND util.VN_CURDATE()
- ORDER BY date
- ) sub3
-)sub4
-;
-
-
-END$$
-DELIMITER ;
diff --git a/db/routines/vn2008/procedures/preOrdenarRuta.sql b/db/routines/vn2008/procedures/preOrdenarRuta.sql
deleted file mode 100644
index b5fd2b24b..000000000
--- a/db/routines/vn2008/procedures/preOrdenarRuta.sql
+++ /dev/null
@@ -1,22 +0,0 @@
-DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`preOrdenarRuta`(IN vRutaId INT)
-BEGIN
-/* Usa los valores del ultimo año para adivinar el orden de los tickets en la ruta
- * vRutaId id ruta
- * DEPRECATED use vn.routeGressPriority
-*/
-
-UPDATE Tickets mt
-JOIN (
- SELECT tt.Id_Consigna, round(ifnull(avg(t.Prioridad),0),0) as Prioridad
- from Tickets t
- JOIN Tickets tt on tt.Id_Consigna = t.Id_Consigna
- where t.Fecha > TIMESTAMPADD(YEAR,-1,util.VN_CURDATE())
- AND tt.Id_Ruta = vRutaId
- GROUP BY Id_Consigna
- ) sub ON sub.Id_Consigna = mt.Id_Consigna
- SET mt.Prioridad = sub.Prioridad
- WHERE mt.Id_Ruta = vRutaId;
-
-END$$
-DELIMITER ;
diff --git a/db/routines/vn2008/procedures/prepare_ticket_list.sql b/db/routines/vn2008/procedures/prepare_ticket_list.sql
deleted file mode 100644
index e407a91b7..000000000
--- a/db/routines/vn2008/procedures/prepare_ticket_list.sql
+++ /dev/null
@@ -1,22 +0,0 @@
-DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`prepare_ticket_list`(vStartingDate DATETIME, vEndingDate DATETIME)
-BEGIN
- DROP TEMPORARY TABLE IF EXISTS tmp.ticket_list;
- CREATE TEMPORARY TABLE tmp.ticket_list
- (PRIMARY KEY (Id_Ticket))
- ENGINE = MEMORY
- SELECT t.Id_Ticket, c.Id_Cliente
- FROM Tickets t
- LEFT JOIN vn.ticketState ts ON ts.ticketFk = t.Id_Ticket
- JOIN Clientes c ON c.Id_Cliente = t.Id_Cliente
- WHERE c.typeFk IN ('normal','handMaking','internalUse')
- AND (
- Fecha BETWEEN util.today() AND vEndingDate
- OR (
- ts.alertLevel < 3
- AND t.Fecha >= vStartingDate
- AND t.Fecha < util.today()
- )
- );
-END$$
-DELIMITER ;
diff --git a/db/routines/vn2008/procedures/recibidaIvaInsert.sql b/db/routines/vn2008/procedures/recibidaIvaInsert.sql
deleted file mode 100644
index e2aba0a35..000000000
--- a/db/routines/vn2008/procedures/recibidaIvaInsert.sql
+++ /dev/null
@@ -1,39 +0,0 @@
-DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`recibidaIvaInsert`(IN vId INT)
-BEGIN
-
- DECLARE vRate DOUBLE DEFAULT 1;
- DECLARE vDated DATE;
-
- SELECT MAX(rr.date) INTO vDated
- FROM reference_rate rr
- JOIN recibida r ON r.id = vId
- WHERE rr.date <= r.fecha
- AND rr.moneda_id = r.moneda_id ;
-
- IF vDated THEN
-
- SELECT rate INTO vRate
- FROM reference_rate
- WHERE `date` = vDated;
- END IF;
-
- DELETE FROM recibida_iva WHERE recibida_id = vId;
-
- INSERT INTO recibida_iva(recibida_id, bi, gastos_id, divisa, taxTypeSageFk, transactionTypeSageFk)
- SELECT r.id,
- SUM(Costefijo * Cantidad) / IFNULL(vRate,1) bi,
- 6003000000,
- IF(r.moneda_id = 1,NULL,SUM(Costefijo * Cantidad )) divisa,
- taxTypeSageFk,
- transactionTypeSageFk
- FROM recibida r
- JOIN Entradas e ON e.recibida_id = r.id
- JOIN Proveedores p ON p.Id_Proveedor = e.Id_Proveedor
- JOIN Compres c ON c.Id_Entrada = e.Id_Entrada
- LEFT JOIN reference_rate rr ON rr.moneda_id = r.moneda_id AND rr.date = r.fecha
- WHERE r.id = vId
- HAVING bi IS NOT NULL;
-
-END$$
-DELIMITER ;
diff --git a/db/routines/vn2008/views/empresa.sql b/db/routines/vn2008/views/empresa.sql
index 3b43ee574..8c80a06e8 100644
--- a/db/routines/vn2008/views/empresa.sql
+++ b/db/routines/vn2008/views/empresa.sql
@@ -5,7 +5,6 @@ AS SELECT `c`.`id` AS `id`,
`c`.`code` AS `abbreviation`,
`c`.`supplierAccountFk` AS `Id_Proveedores_account`,
`c`.`workerManagerFk` AS `gerente_id`,
- `c`.`sage200Company` AS `digito_factura`,
`c`.`phytosanitary` AS `phytosanitary`,
`c`.`companyCode` AS `CodigoEmpresa`,
`c`.`companyGroupFk` AS `empresa_grupo`,
diff --git a/db/versions/10880-salmonHydrangea/00-firstScript.sql b/db/versions/10880-salmonHydrangea/00-firstScript.sql
new file mode 100644
index 000000000..934fc2020
--- /dev/null
+++ b/db/versions/10880-salmonHydrangea/00-firstScript.sql
@@ -0,0 +1 @@
+ALTER TABLE vn.buy ADD buyerFk int(10) unsigned DEFAULT NULL NULL;
diff --git a/db/versions/10881-greenHydrangea/00-alterTableNotification.sql b/db/versions/10881-greenHydrangea/00-alterTableNotification.sql
new file mode 100644
index 000000000..068d77839
--- /dev/null
+++ b/db/versions/10881-greenHydrangea/00-alterTableNotification.sql
@@ -0,0 +1 @@
+ALTER TABLE util.notification MODIFY COLUMN id int(11) auto_increment NOT NULL;
diff --git a/db/versions/10881-greenHydrangea/01-notification.vn.sql b/db/versions/10881-greenHydrangea/01-notification.vn.sql
new file mode 100644
index 000000000..ab5480548
--- /dev/null
+++ b/db/versions/10881-greenHydrangea/01-notification.vn.sql
@@ -0,0 +1,15 @@
+INSERT IGNORE INTO util.notification ( `name`,`description`)
+ VALUES
+ ( 'zone-included','An email to notify zoneCollisions');
+
+-- Change value if destionation user should be different
+SET @DESTINATION_USER = "pepe";
+
+SET @MaxId = LAST_INSERT_ID();
+
+INSERT IGNORE INTO util.notificationSubscription (notificationFk,userFk)
+ VALUES(
+ @MaxId, (SELECT id from `account`.`user` where name = @DESTINATION_USER));
+
+INSERT IGNORE INTO util.notificationAcl (notificationFk,roleFk)
+ SELECT @MaxId, (SELECT role from `account`.`user` where name = @DESTINATION_USER) FROM util.notification WHERE name= "zone-included";
diff --git a/db/versions/10892-yellowGerbera/00-firstScript.sql b/db/versions/10892-yellowGerbera/00-firstScript.sql
new file mode 100644
index 000000000..52dbdbee1
--- /dev/null
+++ b/db/versions/10892-yellowGerbera/00-firstScript.sql
@@ -0,0 +1,19 @@
+SET @isTriggerDisabled := TRUE;
+
+UPDATE vn.buy
+ SET packing = 1
+ WHERE packing IS NULL
+ OR packing <= 0;
+
+UPDATE vn.itemShelving
+ SET packing = 1
+ WHERE packing IS NULL
+ OR NOT packing;
+
+SET @isTriggerDisabled := FALSE;
+
+ALTER TABLE vn.buy MODIFY COLUMN packing int(11) NOT NULL DEFAULT 1 CHECK(packing > 0);
+ALTER TABLE vn.itemShelving MODIFY COLUMN packing int(11) NOT NULL DEFAULT 1 CHECK(packing > 0);
+
+-- Antes tenia '0=sin obligar 1=groping 2=packing' (groping → grouping)
+ALTER TABLE vn.buy MODIFY COLUMN groupingMode tinyint(4) DEFAULT 0 NOT NULL COMMENT '0=sin obligar 1=grouping 2=packing';
diff --git a/db/versions/10893-limeFern/00-sage.sql b/db/versions/10893-limeFern/00-sage.sql
new file mode 100644
index 000000000..d4c7e6221
--- /dev/null
+++ b/db/versions/10893-limeFern/00-sage.sql
@@ -0,0 +1,73 @@
+-- Auto-generated SQL script #202403061303
+UPDATE vn.company
+ SET companyCode=0
+ WHERE id=69;
+UPDATE vn.company
+ SET companyCode=1
+ WHERE id=442;
+UPDATE vn.company
+ SET companyCode=4
+ WHERE id=567;
+UPDATE vn.company
+ SET companyCode=2
+ WHERE id=791;
+UPDATE vn.company
+ SET companyCode=3
+ WHERE id=792;
+UPDATE vn.company
+ SET companyCode=5
+ WHERE id=965;
+UPDATE vn.company
+ SET companyCode=7
+ WHERE id=1381;
+UPDATE vn.company
+ SET companyCode=3
+ WHERE id=1463;
+UPDATE vn.company
+ SET companyCode=8
+ WHERE id=2142;
+UPDATE vn.company
+ SET companyCode=6
+ WHERE id=2393;
+UPDATE vn.company
+ SET companyCode=9
+ WHERE id=3869;
+
+-- Auto-generated SQL script #202403061311
+UPDATE vn.company
+ SET sage200Company=NULL
+ WHERE id=69;
+UPDATE vn.company
+ SET sage200Company=NULL
+ WHERE id=442;
+UPDATE vn.company
+ SET sage200Company=NULL
+ WHERE id=567;
+UPDATE vn.company
+ SET sage200Company=NULL
+ WHERE id=791;
+UPDATE vn.company
+ SET sage200Company=NULL
+ WHERE id=792;
+UPDATE vn.company
+ SET sage200Company=NULL
+ WHERE id=965;
+UPDATE vn.company
+ SET sage200Company=NULL
+ WHERE id=1381;
+UPDATE vn.company
+ SET sage200Company=NULL
+ WHERE id=1463;
+UPDATE vn.company
+ SET sage200Company=NULL
+ WHERE id=2142;
+UPDATE vn.company
+ SET sage200Company=NULL
+ WHERE id=2393;
+UPDATE vn.company
+ SET sage200Company=NULL
+ WHERE id=3869;
+
+
+ALTER TABLE vn.company CHANGE sage200Company sage200Company__ int(2) DEFAULT NULL NULL COMMENT '@deprecated 06/03/2024';
+ALTER TABLE vn.company MODIFY COLUMN sage200Company__ int(2) DEFAULT NULL NULL COMMENT '@deprecated 06/03/2024';
diff --git a/db/versions/10905-grayIvy/00-firstScript.sql b/db/versions/10905-grayIvy/00-firstScript.sql
new file mode 100644
index 000000000..cca41cd48
--- /dev/null
+++ b/db/versions/10905-grayIvy/00-firstScript.sql
@@ -0,0 +1,36 @@
+USE vn;
+
+CREATE OR REPLACE TABLE vn.workerActivityType (
+ `code` varchar(20) NOT NULL,
+ `description` varchar(45) NOT NULL,
+ PRIMARY KEY (`code`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
+
+ALTER TABLE vn.department ADD workerActivityTypeFk varchar(20) NULL COMMENT 'Indica la actitividad que desempeña por defecto ese departamento';
+ALTER TABLE vn.department ADD CONSTRAINT department_workerActivityType_FK FOREIGN KEY (workerActivityTypeFk) REFERENCES vn.workerActivityType(code) ON DELETE CASCADE ON UPDATE CASCADE;
+
+
+
+INSERT INTO vn.workerActivityType (code, description) VALUES('ON_CHECKING', 'REVISION');
+INSERT INTO vn.workerActivityType (code, description) VALUES('PREVIOUS_CAM', 'CAMARA');
+INSERT INTO vn.workerActivityType (code, description) VALUES('PREVIOUS_ART', 'ARTIFICIAL');
+INSERT INTO vn.workerActivityType (code, description) VALUES('ON_PREPARATION', 'SACADO');
+INSERT INTO vn.workerActivityType (code, description) VALUES('PACKING', 'ENCAJADO');
+INSERT INTO vn.workerActivityType (code, description) VALUES('FIELD', 'CAMPOS');
+INSERT INTO vn.workerActivityType (code, description) VALUES('DELIVERY', 'REPARTO');
+INSERT INTO vn.workerActivityType (code, description) VALUES('STORAGE', 'ALMACENAJE');
+INSERT INTO vn.workerActivityType (code, description) VALUES('PALLETIZING', 'PALETIZADO');
+INSERT INTO vn.workerActivityType (code, description) VALUES('STOP', 'PARADA');
+
+
+INSERT INTO salix.ACL ( model, property, accessType, permission, principalType, principalId) VALUES('WorkerActivityType', '*', 'READ', 'ALLOW', 'ROLE', 'production');
+INSERT INTO salix.ACL ( model, property, accessType, permission, principalType, principalId) VALUES('WorkerActivity', '*', '*', 'ALLOW', 'ROLE', 'production');
+
+
+ALTER TABLE vn.workerActivity MODIFY COLUMN event enum('open','close','insert','delete','update','refresh') CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL;
+ALTER TABLE vn.workerActivity MODIFY COLUMN model enum('COM','ENT','TPV','ENC','LAB','ETI','APP') CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL;
+
+
+ALTER TABLE vn.workerActivity ADD workerActivityTypeFk varchar(20) NULL;
+ALTER TABLE vn.workerActivity ADD CONSTRAINT workerActivity_workerActivityType_FK FOREIGN KEY (workerActivityTypeFk) REFERENCES vn.workerActivityType(code) ON DELETE CASCADE ON UPDATE CASCADE;
+
diff --git a/db/versions/10919-brownMoss/00-firstScript.sql b/db/versions/10919-brownMoss/00-firstScript.sql
new file mode 100644
index 000000000..640d2180a
--- /dev/null
+++ b/db/versions/10919-brownMoss/00-firstScript.sql
@@ -0,0 +1,3 @@
+-- Place your SQL code here
+
+
diff --git a/db/versions/10953-redChico/00-account.sql b/db/versions/10953-redChico/00-account.sql
new file mode 100644
index 000000000..e6944a686
--- /dev/null
+++ b/db/versions/10953-redChico/00-account.sql
@@ -0,0 +1,23 @@
+-- account.accountConfig
+ALTER TABLE account.accountConfig MODIFY COLUMN id tinyint(3) unsigned NOT NULL;
+ALTER TABLE account.accountConfig ADD CONSTRAINT accountConfig_check CHECK (id = 1);
+
+-- account.ldapConfig
+ALTER TABLE account.ldapConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE account.ldapConfig ADD CONSTRAINT ldapConfig_check CHECK (id = 1);
+
+-- account.mailConfig
+ALTER TABLE account.mailConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE account.mailConfig ADD CONSTRAINT mailConfig_check CHECK (id = 1);
+
+-- account.roleConfig
+ALTER TABLE account.roleConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE account.roleConfig ADD CONSTRAINT roleConfig_check CHECK (id = 1);
+
+-- account.sambaConfig
+ALTER TABLE account.sambaConfig MODIFY COLUMN id tinyint(3) unsigned NOT NULL;
+ALTER TABLE account.sambaConfig ADD CONSTRAINT sambaConfig_check CHECK (id = 1);
+
+-- account.userConfig
+ALTER TABLE account.userConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE account.userConfig ADD CONSTRAINT userConfig_check CHECK (id = 1);
diff --git a/db/versions/10953-redChico/01-bs.sql b/db/versions/10953-redChico/01-bs.sql
new file mode 100644
index 000000000..e451c8205
--- /dev/null
+++ b/db/versions/10953-redChico/01-bs.sql
@@ -0,0 +1,7 @@
+-- bs.nightTaskConfig
+ALTER TABLE bs.nightTaskConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE bs.nightTaskConfig ADD CONSTRAINT nightTaskConfig_check CHECK (id = 1);
+
+-- bs.workerProductivityConfig
+ALTER TABLE bs.workerProductivityConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE bs.workerProductivityConfig ADD CONSTRAINT workerProductivityConfig_check CHECK (id = 1);
diff --git a/db/versions/10953-redChico/02-edi.sql b/db/versions/10953-redChico/02-edi.sql
new file mode 100644
index 000000000..e97cfcec8
--- /dev/null
+++ b/db/versions/10953-redChico/02-edi.sql
@@ -0,0 +1,15 @@
+-- edi.exchangeConfig
+ALTER TABLE edi.exchangeConfig MODIFY COLUMN id tinyint(3) unsigned NOT NULL;
+ALTER TABLE edi.exchangeConfig ADD CONSTRAINT exchangeConfig_check CHECK (id = 1);
+
+-- edi.ftpConfig
+ALTER TABLE edi.ftpConfig MODIFY COLUMN id tinyint(3) unsigned NOT NULL;
+ALTER TABLE edi.ftpConfig ADD CONSTRAINT ftpConfig_check CHECK (id = 1);
+
+-- edi.imapConfig (Tiene más de 1 registro en producción)
+-- ALTER TABLE edi.imapConfig MODIFY COLUMN id tinyint(3) unsigned NOT NULL;
+-- ALTER TABLE edi.imapConfig ADD CONSTRAINT imapConfig_check CHECK (id = 1);
+
+-- edi.offerRefreshConfig
+ALTER TABLE edi.offerRefreshConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE edi.offerRefreshConfig ADD CONSTRAINT offerRefreshConfig_check CHECK (id = 1);
\ No newline at end of file
diff --git a/db/versions/10953-redChico/03-hedera.sql b/db/versions/10953-redChico/03-hedera.sql
new file mode 100644
index 000000000..3c86fb593
--- /dev/null
+++ b/db/versions/10953-redChico/03-hedera.sql
@@ -0,0 +1,27 @@
+-- hedera.config
+ALTER TABLE hedera.config MODIFY COLUMN id tinyint(3) unsigned NOT NULL;
+ALTER TABLE hedera.config ADD CONSTRAINT config_check CHECK (id = 1);
+
+-- hedera.imageConfig
+ALTER TABLE hedera.imageConfig MODIFY COLUMN id tinyint(3) unsigned NOT NULL;
+ALTER TABLE hedera.imageConfig ADD CONSTRAINT imageConfig_check CHECK (id = 1);
+
+-- hedera.mailConfig
+ALTER TABLE hedera.mailConfig MODIFY COLUMN id tinyint(3) unsigned NOT NULL;
+ALTER TABLE hedera.mailConfig ADD CONSTRAINT mailConfig_check CHECK (id = 1);
+
+-- hedera.orderConfig
+ALTER TABLE hedera.orderConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE hedera.orderConfig ADD CONSTRAINT orderConfig_check CHECK (id = 1);
+
+-- hedera.shelfConfig (Tiene más de 1 registro en producción)
+-- ALTER TABLE hedera.shelfConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+-- ALTER TABLE hedera.shelfConfig ADD CONSTRAINT shelfConfig_check CHECK (id = 1);
+
+-- hedera.tpvConfig
+ALTER TABLE hedera.tpvConfig MODIFY COLUMN id tinyint(3) unsigned NOT NULL;
+ALTER TABLE hedera.tpvConfig ADD CONSTRAINT tpvConfig_check CHECK (id = 1);
+
+-- hedera.tpvImapConfig
+ALTER TABLE hedera.tpvImapConfig MODIFY COLUMN id tinyint(3) unsigned NOT NULL;
+ALTER TABLE hedera.tpvImapConfig ADD CONSTRAINT tpvImapConfig_check CHECK (id = 1);
diff --git a/db/versions/10953-redChico/04-pbx.sql b/db/versions/10953-redChico/04-pbx.sql
new file mode 100644
index 000000000..49f4172c4
--- /dev/null
+++ b/db/versions/10953-redChico/04-pbx.sql
@@ -0,0 +1,15 @@
+-- pbx.config
+ALTER TABLE pbx.config MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE pbx.config ADD CONSTRAINT config_check CHECK (id = 1);
+
+-- pbx.followmeConfig
+ALTER TABLE pbx.followmeConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE pbx.followmeConfig ADD CONSTRAINT followmeConfig_check CHECK (id = 1);
+
+-- pbx.queueConfig (Tiene más de 1 registro en producción)
+-- ALTER TABLE pbx.queueConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+-- ALTER TABLE pbx.queueConfig ADD CONSTRAINT queueConfig_check CHECK (id = 1);
+
+-- pbx.sipConfig
+ALTER TABLE pbx.sipConfig MODIFY COLUMN id mediumint(8) unsigned NOT NULL;
+ALTER TABLE pbx.sipConfig ADD CONSTRAINT sipConfig_check CHECK (id = 1);
diff --git a/db/versions/10953-redChico/05-sage.sql b/db/versions/10953-redChico/05-sage.sql
new file mode 100644
index 000000000..ee60f5f7d
--- /dev/null
+++ b/db/versions/10953-redChico/05-sage.sql
@@ -0,0 +1,3 @@
+-- sage.config
+ALTER TABLE sage.config MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE sage.config ADD CONSTRAINT config_check CHECK (id = 1);
diff --git a/db/versions/10953-redChico/06-salix.sql b/db/versions/10953-redChico/06-salix.sql
new file mode 100644
index 000000000..d6a248f0d
--- /dev/null
+++ b/db/versions/10953-redChico/06-salix.sql
@@ -0,0 +1,7 @@
+-- salix.accessTokenConfig
+ALTER TABLE salix.accessTokenConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE salix.accessTokenConfig ADD CONSTRAINT accessTokenConfig_check CHECK (id = 1);
+
+-- salix.printConfig
+ALTER TABLE salix.printConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE salix.printConfig ADD CONSTRAINT printConfig_check CHECK (id = 1);
diff --git a/db/versions/10953-redChico/06-srt.sql b/db/versions/10953-redChico/06-srt.sql
new file mode 100644
index 000000000..53000eee6
--- /dev/null
+++ b/db/versions/10953-redChico/06-srt.sql
@@ -0,0 +1,3 @@
+-- srt.config
+ALTER TABLE srt.config MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE srt.config ADD CONSTRAINT config_check CHECK (id = 1);
diff --git a/db/versions/10953-redChico/07-util.sql b/db/versions/10953-redChico/07-util.sql
new file mode 100644
index 000000000..152dce3d1
--- /dev/null
+++ b/db/versions/10953-redChico/07-util.sql
@@ -0,0 +1,11 @@
+-- util.config
+ALTER TABLE util.config MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE util.config ADD CONSTRAINT config_check CHECK (id = 1);
+
+-- util.notificationConfig
+ALTER TABLE util.notificationConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE util.notificationConfig ADD CONSTRAINT notificationConfig_check CHECK (id = 1);
+
+-- util.versionConfig
+ALTER TABLE util.versionConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE util.versionConfig ADD CONSTRAINT versionConfig_check CHECK (id = 1);
diff --git a/db/versions/10953-redChico/08-vn.sql b/db/versions/10953-redChico/08-vn.sql
new file mode 100644
index 000000000..14bd3b13f
--- /dev/null
+++ b/db/versions/10953-redChico/08-vn.sql
@@ -0,0 +1,87 @@
+-- vn.accountingConfig
+ALTER TABLE vn.accountingConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.accountingConfig ADD CONSTRAINT accountingConfig_check CHECK (id = 1);
+
+-- vn.auctionConfig
+ALTER TABLE vn.auctionConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.auctionConfig ADD CONSTRAINT auctionConfig_check CHECK (id = 1);
+
+-- vn.autoRadioConfig
+ALTER TABLE vn.autoRadioConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.autoRadioConfig ADD CONSTRAINT autoRadioConfig_check CHECK (id = 1);
+
+-- vn.bankEntityConfig
+ALTER TABLE vn.bankEntityConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.bankEntityConfig ADD CONSTRAINT bankEntityConfig_check CHECK (id = 1);
+
+-- vn.bionicConfig
+ALTER TABLE vn.bionicConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.bionicConfig ADD CONSTRAINT bionicConfig_check CHECK (id = 1);
+
+-- vn.buyConfig
+ALTER TABLE vn.buyConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.buyConfig ADD CONSTRAINT buyConfig_check CHECK (id = 1);
+
+-- vn.chatConfig
+ALTER TABLE vn.chatConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.chatConfig ADD CONSTRAINT chatConfig_check CHECK (id = 1);
+
+-- vn.claimConfig
+ALTER TABLE vn.claimConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.claimConfig ADD CONSTRAINT claimConfig_check CHECK (id = 1);
+
+-- vn.clientConfig
+ALTER TABLE vn.clientConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.clientConfig ADD CONSTRAINT clientConfig_check CHECK (id = 1);
+
+-- vn.comparativeAddConfig
+ALTER TABLE vn.comparativeAddConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.comparativeAddConfig ADD CONSTRAINT comparativeAddConfig_check CHECK (id = 1);
+
+-- vn.comparativeConfig
+ALTER TABLE vn.comparativeConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.comparativeConfig ADD CONSTRAINT comparativeConfig_check CHECK (id = 1);
+
+-- vn.config
+ALTER TABLE vn.config MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.config ADD CONSTRAINT config_check CHECK (id = 1);
+
+-- vn.conveyorConfig (Tiene más de 1 registro en producción)
+-- ALTER TABLE vn.conveyorConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+-- ALTER TABLE vn.conveyorConfig ADD CONSTRAINT conveyorConfig_check CHECK (id = 1);
+
+-- vn.deviceProductionConfig
+ALTER TABLE vn.deviceProductionConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.deviceProductionConfig ADD CONSTRAINT deviceProductionConfig_check CHECK (id = 1);
+
+-- vn.docuwareConfig
+ALTER TABLE vn.docuwareConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.docuwareConfig ADD CONSTRAINT docuwareConfig_check CHECK (id = 1);
+
+-- vn.floramondoConfig
+ALTER TABLE vn.floramondoConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.floramondoConfig ADD CONSTRAINT floramondoConfig_check CHECK (id = 1);
+
+-- vn.franceExpressConfig
+ALTER TABLE vn.franceExpressConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.franceExpressConfig ADD CONSTRAINT franceExpressConfig_check CHECK (id = 1);
+
+-- vn.glsConfig
+ALTER TABLE vn.glsConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.glsConfig ADD CONSTRAINT glsConfig_check CHECK (id = 1);
+
+-- vn.greugeConfig
+ALTER TABLE vn.greugeConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.greugeConfig ADD CONSTRAINT greugeConfig_check CHECK (id = 1);
+
+-- vn.inventoryConfig
+ALTER TABLE vn.inventoryConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.inventoryConfig ADD CONSTRAINT inventoryConfig_check CHECK (id = 1);
+
+-- vn.invoiceInConfig
+ALTER TABLE vn.invoiceInConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.invoiceInConfig ADD CONSTRAINT invoiceInConfig_check CHECK (id = 1);
+
+-- vn.invoiceOutConfig
+ALTER TABLE vn.invoiceOutConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.invoiceOutConfig ADD CONSTRAINT invoiceOutConfig_check CHECK (id = 1);
diff --git a/db/versions/10953-redChico/08-vn2.sql b/db/versions/10953-redChico/08-vn2.sql
new file mode 100644
index 000000000..42985365e
--- /dev/null
+++ b/db/versions/10953-redChico/08-vn2.sql
@@ -0,0 +1,91 @@
+-- vn.invoiceOutTaxConfig (Tiene más de 1 registro en producción)
+-- ALTER TABLE vn.invoiceOutTaxConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+-- ALTER TABLE vn.invoiceOutTaxConfig ADD CONSTRAINT invoiceOutTaxConfig_check CHECK (id = 1);
+
+-- vn.itemConfig
+ALTER TABLE vn.itemConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.itemConfig ADD CONSTRAINT itemConfig_check CHECK (id = 1);
+
+-- vn.machineWorkerConfig
+ALTER TABLE vn.machineWorkerConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.machineWorkerConfig ADD CONSTRAINT machineWorkerConfig_check CHECK (id = 1);
+
+-- vn.mdbConfig
+ALTER TABLE vn.mdbConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.mdbConfig ADD CONSTRAINT mdbConfig_check CHECK (id = 1);
+
+-- vn.mrwConfig
+ALTER TABLE vn.mrwConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.mrwConfig ADD CONSTRAINT mrwConfig_check CHECK (id = 1);
+
+-- vn.osTicketConfig
+ALTER TABLE vn.osTicketConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.osTicketConfig ADD CONSTRAINT osTicketConfig_check CHECK (id = 1);
+
+-- vn.packagingConfig
+ALTER TABLE vn.packagingConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.packagingConfig ADD CONSTRAINT packagingConfig_check CHECK (id = 1);
+
+-- vn.packingSiteConfig
+ALTER TABLE vn.packingSiteConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.packingSiteConfig ADD CONSTRAINT packingSiteConfig_check CHECK (id = 1);
+
+-- vn.productionConfig
+ALTER TABLE vn.productionConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.productionConfig ADD CONSTRAINT productionConfig_check CHECK (id = 1);
+
+-- vn.rateConfig
+ALTER TABLE vn.rateConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.rateConfig ADD CONSTRAINT rateConfig_check CHECK (id = 1);
+
+-- vn.routeConfig
+ALTER TABLE vn.routeConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.routeConfig ADD CONSTRAINT routeConfig_check CHECK (id = 1);
+
+-- vn.salespersonConfig
+ALTER TABLE vn.salespersonConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.salespersonConfig ADD CONSTRAINT salespersonConfig_check CHECK (id = 1);
+
+-- vn.sendingConfig
+ALTER TABLE vn.sendingConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.sendingConfig ADD CONSTRAINT sendingConfig_check CHECK (id = 1);
+
+-- vn.smsConfig
+ALTER TABLE vn.smsConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.smsConfig ADD CONSTRAINT smsConfig_check CHECK (id = 1);
+
+-- vn.ticketConfig
+ALTER TABLE vn.ticketConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.ticketConfig ADD CONSTRAINT ticketConfig_check CHECK (id = 1);
+
+-- vn.tillConfig
+ALTER TABLE vn.tillConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.tillConfig ADD CONSTRAINT tillConfig_check CHECK (id = 1);
+
+-- vn.travelConfig
+ALTER TABLE vn.travelConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.travelConfig ADD CONSTRAINT travelConfig_check CHECK (id = 1);
+
+-- vn.viaexpressConfig
+ALTER TABLE vn.viaexpressConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.viaexpressConfig ADD CONSTRAINT viaexpressConfig_check CHECK (id = 1);
+
+-- vn.wagonConfig
+ALTER TABLE vn.wagonConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.wagonConfig ADD CONSTRAINT wagonConfig_check CHECK (id = 1);
+
+-- vn.workerConfig
+ALTER TABLE vn.workerConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.workerConfig ADD CONSTRAINT workerConfig_check CHECK (id = 1);
+
+-- vn.workerTimeControlConfig
+ALTER TABLE vn.workerTimeControlConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.workerTimeControlConfig ADD CONSTRAINT workerTimeControlConfig_check CHECK (id = 1);
+
+-- vn.zipConfig
+ALTER TABLE vn.zipConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.zipConfig ADD CONSTRAINT zipConfig_check CHECK (id = 1);
+
+-- vn.zoneConfig
+ALTER TABLE vn.zoneConfig MODIFY COLUMN id int(10) unsigned NOT NULL;
+ALTER TABLE vn.zoneConfig ADD CONSTRAINT zoneConfig_check CHECK (id = 1);
diff --git a/db/versions/10959-bronzePalmetto/00-firstScript.sql b/db/versions/10959-bronzePalmetto/00-firstScript.sql
new file mode 100644
index 000000000..323238d2e
--- /dev/null
+++ b/db/versions/10959-bronzePalmetto/00-firstScript.sql
@@ -0,0 +1 @@
+ALTER TABLE util.debug MODIFY COLUMN value text CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL NULL;
diff --git a/e2e/paths/05-ticket/09_weekly.spec.js b/e2e/paths/05-ticket/09_weekly.spec.js
index 74febfd01..20cfa0d13 100644
--- a/e2e/paths/05-ticket/09_weekly.spec.js
+++ b/e2e/paths/05-ticket/09_weekly.spec.js
@@ -24,7 +24,7 @@ describe('Ticket descriptor path', () => {
it('should go back to the ticket index then search and access a ticket summary', async() => {
await page.accessToSection('ticket.index');
- await page.accessToSearchResult('11');
+ await page.accessToSearchResult('33');
});
it('should add the ticket to thursday turn using the descriptor more menu', async() => {
@@ -33,7 +33,7 @@ describe('Ticket descriptor path', () => {
await page.waitToClick(selectors.ticketDescriptor.thursdayButton);
const message = await page.waitForSnackbar();
- expect(message.text).toContain('Data saved!');
+ expect(message.text).toContain('Current ticket deleted and added to shift');
});
it('should again click on the Tickets button of the top bar menu', async() => {
@@ -43,7 +43,7 @@ describe('Ticket descriptor path', () => {
await page.waitForState('ticket.index');
});
- it('should confirm the ticket 11 was added to thursday', async() => {
+ it('should confirm the ticket 33 was added to thursday', async() => {
await page.accessToSection('ticket.weekly.index');
const result = await page.waitToGetProperty(selectors.ticketsIndex.thirdWeeklyTicket, 'value');
@@ -57,8 +57,8 @@ describe('Ticket descriptor path', () => {
await page.waitForState('ticket.index');
});
- it('should now search for the ticket 11', async() => {
- await page.accessToSearchResult('11');
+ it('should now search for the ticket 33', async() => {
+ await page.accessToSearchResult('33');
await page.waitForState('ticket.card.summary');
});
@@ -68,7 +68,7 @@ describe('Ticket descriptor path', () => {
await page.waitToClick(selectors.ticketDescriptor.saturdayButton);
const message = await page.waitForSnackbar();
- expect(message.text).toContain('Data saved!');
+ expect(message.text).toContain('Current ticket deleted and added to shift');
});
it('should click on the Tickets button of the top bar menu once again', async() => {
@@ -78,7 +78,7 @@ describe('Ticket descriptor path', () => {
await page.waitForState('ticket.index');
});
- it('should confirm the ticket 11 was added on saturday', async() => {
+ it('should confirm the ticket 33 was added on saturday', async() => {
await page.accessToSection('ticket.weekly.index');
await page.waitForTimeout(5000);
@@ -87,14 +87,14 @@ describe('Ticket descriptor path', () => {
expect(result).toEqual('Saturday');
});
- it('should now search for the weekly ticket 11', async() => {
- await page.doSearch('11');
+ it('should now search for the weekly ticket 33', async() => {
+ await page.doSearch('33');
const nResults = await page.countElement(selectors.ticketsIndex.searchWeeklyResult);
expect(nResults).toEqual(2);
});
- it('should delete the weekly ticket 11', async() => {
+ it('should delete the weekly ticket 33', async() => {
await page.waitToClick(selectors.ticketsIndex.firstWeeklyTicketDeleteIcon);
await page.waitToClick(selectors.ticketsIndex.acceptDeleteTurn);
const message = await page.waitForSnackbar();
diff --git a/front/core/services/auth.js b/front/core/services/auth.js
index 844a5145d..753bc3fba 100644
--- a/front/core/services/auth.js
+++ b/front/core/services/auth.js
@@ -83,22 +83,27 @@ export default class Auth {
}
onLoginOk(json, now, remember) {
- this.vnToken.set(json.data.token, now, json.data.ttl, remember);
-
- return this.loadAcls().then(() => {
- let continueHash = this.$state.params.continue;
- if (continueHash)
- this.$window.location = continueHash;
- else
- this.$state.go('home');
- });
+ return this.$http.get('VnUsers/ShareToken', {
+ headers: {Authorization: json.data.token}
+ }).then(({data}) => {
+ this.vnToken.set(json.data.token, data.multimediaToken.id, now, json.data.ttl, remember);
+ this.loadAcls().then(() => {
+ let continueHash = this.$state.params.continue;
+ if (continueHash)
+ this.$window.location = continueHash;
+ else
+ this.$state.go('home');
+ });
+ }).catch(() => {});
}
logout() {
+ this.$http.post('Accounts/logout', null, {headers: {'Authorization': this.vnToken.tokenMultimedia},
+ }).catch(() => {});
+
let promise = this.$http.post('VnUsers/logout', null, {
headers: {Authorization: this.vnToken.token}
}).catch(() => {});
-
this.vnToken.unset();
this.loggedIn = false;
this.vnModules.reset();
diff --git a/front/core/services/interceptor.js b/front/core/services/interceptor.js
index 0c3253c69..90d813ed4 100644
--- a/front/core/services/interceptor.js
+++ b/front/core/services/interceptor.js
@@ -19,7 +19,7 @@ function interceptor($q, vnApp, $translate) {
if (config.url.charAt(0) !== '/' && apiPath)
config.url = `${apiPath}${config.url}`;
- if (token)
+ if (token && !config.headers.Authorization)
config.headers.Authorization = token;
if ($translate.use())
config.headers['Accept-Language'] = $translate.use();
diff --git a/front/core/services/token.js b/front/core/services/token.js
index c8cb4f6bb..125de6b9a 100644
--- a/front/core/services/token.js
+++ b/front/core/services/token.js
@@ -24,21 +24,22 @@ export default class Token {
} catch (e) {}
}
- set(token, created, ttl, remember) {
+ set(token, tokenMultimedia, created, ttl, remember) {
this.unset();
Object.assign(this, {
token,
+ tokenMultimedia,
created,
ttl,
remember
});
- this.vnInterceptor.setToken(token);
+ this.vnInterceptor.setToken(token, tokenMultimedia);
try {
if (remember)
- this.setStorage(localStorage, token, created, ttl);
+ this.setStorage(localStorage, token, tokenMultimedia, created, ttl);
else
- this.setStorage(sessionStorage, token, created, ttl);
+ this.setStorage(sessionStorage, token, tokenMultimedia, created, ttl);
} catch (err) {
console.error(err);
}
@@ -46,6 +47,7 @@ export default class Token {
unset() {
this.token = null;
+ this.tokenMultimedia = null;
this.created = null;
this.ttl = null;
this.remember = null;
@@ -57,13 +59,15 @@ export default class Token {
getStorage(storage) {
this.token = storage.getItem('vnToken');
+ this.tokenMultimedia = storage.getItem('vnTokenMultimedia');
if (!this.token) return;
const created = storage.getItem('vnTokenCreated');
this.created = created && new Date(created);
this.ttl = storage.getItem('vnTokenTtl');
}
- setStorage(storage, token, created, ttl) {
+ setStorage(storage, token, tokenMultimedia, created, ttl) {
+ storage.setItem('vnTokenMultimedia', tokenMultimedia);
storage.setItem('vnToken', token);
storage.setItem('vnTokenCreated', created.toJSON());
storage.setItem('vnTokenTtl', ttl);
@@ -71,6 +75,7 @@ export default class Token {
removeStorage(storage) {
storage.removeItem('vnToken');
+ storage.removeItem('vnTokenMultimedia');
storage.removeItem('vnTokenCreated');
storage.removeItem('vnTokenTtl');
}
diff --git a/front/salix/components/layout/index.js b/front/salix/components/layout/index.js
index 89912d4e3..e935c6d99 100644
--- a/front/salix/components/layout/index.js
+++ b/front/salix/components/layout/index.js
@@ -23,8 +23,7 @@ export class Layout extends Component {
if (!this.$.$root.user) return;
const userId = this.$.$root.user.id;
- const token = this.vnToken.token;
- return `/api/Images/user/160x160/${userId}/download?access_token=${token}`;
+ return `/api/Images/user/160x160/${userId}/download?access_token=${this.vnToken.tokenMultimedia}`;
}
refresh() {
diff --git a/front/salix/components/log/index.html b/front/salix/components/log/index.html
index c75030100..a3aaf0011 100644
--- a/front/salix/components/log/index.html
+++ b/front/salix/components/log/index.html
@@ -31,7 +31,7 @@
ng-click="$ctrl.showDescriptor($event, userLog)">
+ ng-src="/api/Images/user/160x160/{{::userLog.userFk}}/download?access_token={{::$ctrl.vnToken.tokenMultimedia}}">
@@ -181,7 +181,7 @@
val="{{::nickname}}">
+ ng-src="/api/Images/user/160x160/{{::id}}/download?access_token={{::$ctrl.vnToken.tokenMultimedia}}">