7152-devToTest_2414 #2228
|
@ -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/),
|
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).
|
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
|
## [2408.01] - 2024-02-22
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
|
@ -29,7 +29,8 @@ module.exports = Self => {
|
||||||
http: {
|
http: {
|
||||||
path: `/:id/downloadFile`,
|
path: `/:id/downloadFile`,
|
||||||
verb: 'GET'
|
verb: 'GET'
|
||||||
}
|
},
|
||||||
|
accessScopes: ['read:multimedia']
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.downloadFile = async function(ctx, id) {
|
Self.downloadFile = async function(ctx, id) {
|
||||||
|
|
|
@ -42,7 +42,8 @@ module.exports = Self => {
|
||||||
http: {
|
http: {
|
||||||
path: `/:id/download`,
|
path: `/:id/download`,
|
||||||
verb: 'GET'
|
verb: 'GET'
|
||||||
}
|
},
|
||||||
|
accessScopes: ['read:multimedia']
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.download = async function(id, fileCabinet, filter) {
|
Self.download = async function(id, fileCabinet, filter) {
|
||||||
|
|
|
@ -47,7 +47,8 @@ module.exports = Self => {
|
||||||
http: {
|
http: {
|
||||||
path: `/:collection/:size/:id/download`,
|
path: `/:collection/:size/:id/download`,
|
||||||
verb: 'GET'
|
verb: 'GET'
|
||||||
}
|
},
|
||||||
|
accessScopes: ['read:multimedia']
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.download = async function(ctx, collection, size, id) {
|
Self.download = async function(ctx, collection, size, id) {
|
||||||
|
|
|
@ -4,20 +4,21 @@ describe('image download()', () => {
|
||||||
const collection = 'user';
|
const collection = 'user';
|
||||||
const size = '160x160';
|
const size = '160x160';
|
||||||
const employeeId = 1;
|
const employeeId = 1;
|
||||||
|
const developerId = 9;
|
||||||
|
const jessicaJonesId = 1110;
|
||||||
const ctx = {req: {accessToken: {userId: employeeId}}};
|
const ctx = {req: {accessToken: {userId: employeeId}}};
|
||||||
|
|
||||||
it('should return the image content-type of the user', async() => {
|
it('should return the image content-type of the user', async() => {
|
||||||
const userId = 9;
|
const image = await models.Image.download(ctx, collection, size, developerId);
|
||||||
const image = await models.Image.download(ctx, collection, size, userId);
|
|
||||||
const contentType = image[1];
|
const contentType = image[1];
|
||||||
|
|
||||||
expect(contentType).toEqual('image/png');
|
expect(contentType).toEqual('image/png');
|
||||||
});
|
});
|
||||||
|
|
||||||
it(`should return false if the user doesn't have image`, async() => {
|
it('should return the user profile picture', async() => {
|
||||||
const userId = 1110;
|
const image = await models.Image.download(ctx, collection, size, jessicaJonesId);
|
||||||
const image = await models.Image.download(ctx, collection, size, userId);
|
const fileName = image[2];
|
||||||
|
|
||||||
expect(image).toBeFalse();
|
expect(fileName).toMatch('1110.png');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -49,6 +49,7 @@ describe('MRWConfig createShipment()', () => {
|
||||||
|
|
||||||
await models.MrwConfig.create(
|
await models.MrwConfig.create(
|
||||||
{
|
{
|
||||||
|
'id': 1,
|
||||||
'url': 'https://url.com',
|
'url': 'https://url.com',
|
||||||
'user': 'user',
|
'user': 'user',
|
||||||
'password': 'password',
|
'password': 'password',
|
||||||
|
|
|
@ -7,7 +7,7 @@ describe('NotificationSubscription getList()', () => {
|
||||||
const notifications = await models.Notification.find({});
|
const notifications = await models.Notification.find({});
|
||||||
const totalAvailable = notifications.length - active.length;
|
const totalAvailable = notifications.length - active.length;
|
||||||
|
|
||||||
expect(active.length).toEqual(2);
|
expect(active.length).toEqual(3);
|
||||||
expect(available.length).toEqual(totalAvailable);
|
expect(available.length).toEqual(totalAvailable);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -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};
|
||||||
|
};
|
||||||
|
};
|
|
@ -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');
|
||||||
|
});
|
||||||
|
});
|
|
@ -9,6 +9,7 @@
|
||||||
"properties": {
|
"properties": {
|
||||||
"id": {
|
"id": {
|
||||||
"type": "number",
|
"type": "number",
|
||||||
|
"id": true,
|
||||||
"required": true
|
"required": true
|
||||||
},
|
},
|
||||||
"url": {
|
"url": {
|
||||||
|
|
|
@ -13,6 +13,7 @@ module.exports = function(Self) {
|
||||||
require('../methods/vn-user/privileges')(Self);
|
require('../methods/vn-user/privileges')(Self);
|
||||||
require('../methods/vn-user/validate-auth')(Self);
|
require('../methods/vn-user/validate-auth')(Self);
|
||||||
require('../methods/vn-user/renew-token')(Self);
|
require('../methods/vn-user/renew-token')(Self);
|
||||||
|
require('../methods/vn-user/share-token')(Self);
|
||||||
require('../methods/vn-user/update-user')(Self);
|
require('../methods/vn-user/update-user')(Self);
|
||||||
|
|
||||||
Self.definition.settings.acls = Self.definition.settings.acls.filter(acl => acl.property !== 'create');
|
Self.definition.settings.acls = Self.definition.settings.acls.filter(acl => acl.property !== 'create');
|
||||||
|
|
|
@ -98,30 +98,41 @@
|
||||||
"principalType": "ROLE",
|
"principalType": "ROLE",
|
||||||
"principalId": "$everyone",
|
"principalId": "$everyone",
|
||||||
"permission": "ALLOW"
|
"permission": "ALLOW"
|
||||||
}, {
|
},
|
||||||
|
{
|
||||||
"property": "recoverPassword",
|
"property": "recoverPassword",
|
||||||
"accessType": "EXECUTE",
|
"accessType": "EXECUTE",
|
||||||
"principalType": "ROLE",
|
"principalType": "ROLE",
|
||||||
"principalId": "$everyone",
|
"principalId": "$everyone",
|
||||||
"permission": "ALLOW"
|
"permission": "ALLOW"
|
||||||
}, {
|
},
|
||||||
|
{
|
||||||
"property": "validateAuth",
|
"property": "validateAuth",
|
||||||
"accessType": "EXECUTE",
|
"accessType": "EXECUTE",
|
||||||
"principalType": "ROLE",
|
"principalType": "ROLE",
|
||||||
"principalId": "$everyone",
|
"principalId": "$everyone",
|
||||||
"permission": "ALLOW"
|
"permission": "ALLOW"
|
||||||
}, {
|
},
|
||||||
|
{
|
||||||
"property": "privileges",
|
"property": "privileges",
|
||||||
"accessType": "*",
|
"accessType": "*",
|
||||||
"principalType": "ROLE",
|
"principalType": "ROLE",
|
||||||
"principalId": "$authenticated",
|
"principalId": "$authenticated",
|
||||||
"permission": "ALLOW"
|
"permission": "ALLOW"
|
||||||
}, {
|
},
|
||||||
|
{
|
||||||
"property": "renewToken",
|
"property": "renewToken",
|
||||||
"accessType": "WRITE",
|
"accessType": "WRITE",
|
||||||
"principalType": "ROLE",
|
"principalType": "ROLE",
|
||||||
"principalId": "$authenticated",
|
"principalId": "$authenticated",
|
||||||
"permission": "ALLOW"
|
"permission": "ALLOW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"property": "shareToken",
|
||||||
|
"accessType": "WRITE",
|
||||||
|
"principalType": "ROLE",
|
||||||
|
"principalId": "$authenticated",
|
||||||
|
"permission": "ALLOW"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"scopes": {
|
"scopes": {
|
||||||
|
|
|
@ -7,8 +7,8 @@ SET foreign_key_checks = 0;
|
||||||
|
|
||||||
-- XXX: vn-database
|
-- XXX: vn-database
|
||||||
|
|
||||||
INSERT INTO util.config (environment, mockTime, mockUtcTime, mockEnabled)
|
INSERT INTO util.config (id, environment, mockTime, mockUtcTime, mockEnabled)
|
||||||
VALUES ('local', '2001-01-01 12:00:00', '2001-01-01 11:00:00', TRUE);
|
VALUES (1, 'local', '2001-01-01 12:00:00', '2001-01-01 11:00:00', TRUE);
|
||||||
/* #5483
|
/* #5483
|
||||||
INSERT INTO vn.entryConfig (defaultEntry, mailToNotify, inventorySupplierFk, maxLockTime, defaultSupplierFk)
|
INSERT INTO vn.entryConfig (defaultEntry, mailToNotify, inventorySupplierFk, maxLockTime, defaultSupplierFk)
|
||||||
VALUES(1, NULL, 1, 300, 1);
|
VALUES(1, NULL, 1, 300, 1);
|
||||||
|
|
|
@ -60,13 +60,13 @@ INSERT INTO `vn`.`ticketConfig` (`id`, `scopeDays`)
|
||||||
VALUES
|
VALUES
|
||||||
('1', '6');
|
('1', '6');
|
||||||
|
|
||||||
INSERT INTO `vn`.`bionicConfig` (`generalInflationCoeficient`, `minimumDensityVolumetricWeight`, `verdnaturaVolumeBox`, `itemCarryBox`)
|
INSERT INTO `vn`.`bionicConfig` (`id`, `generalInflationCoeficient`, `minimumDensityVolumetricWeight`, `verdnaturaVolumeBox`, `itemCarryBox`)
|
||||||
VALUES
|
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
|
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`)
|
INSERT IGNORE INTO `vn`.`greugeConfig`(`id`, `freightPickUpPrice`)
|
||||||
VALUES
|
VALUES
|
||||||
|
@ -118,18 +118,18 @@ INSERT INTO `hedera`.`tpvConfig`(`id`, `currency`, `terminal`, `transactionType`
|
||||||
|
|
||||||
INSERT INTO `account`.`user`(`id`,`name`,`nickname`, `password`,`role`,`active`,`email`,`lang`, `image`)
|
INSERT INTO `account`.`user`(`id`,`name`,`nickname`, `password`,`role`,`active`,`email`,`lang`, `image`)
|
||||||
VALUES
|
VALUES
|
||||||
(1101, 'BruceWayne', 'Bruce Wayne', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 2, 1, 'BruceWayne@mydomain.com', 'es', 'e7723f0b24ff05b32ed09d95196f2f29'),
|
(1101, 'BruceWayne', 'Bruce Wayne', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 2, 1, 'BruceWayne@mydomain.com', 'es','1101'),
|
||||||
(1102, 'PetterParker', 'Petter Parker', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 2, 1, 'PetterParker@mydomain.com', 'en', 'e7723f0b24ff05b32ed09d95196f2f29'),
|
(1102, 'PetterParker', 'Petter Parker', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 2, 1, 'PetterParker@mydomain.com', 'en','1102'),
|
||||||
(1103, 'ClarkKent', 'Clark Kent', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 2, 1, 'ClarkKent@mydomain.com', 'fr', 'e7723f0b24ff05b32ed09d95196f2f29'),
|
(1103, 'ClarkKent', 'Clark Kent', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 2, 1, 'ClarkKent@mydomain.com', 'fr','1103'),
|
||||||
(1104, 'TonyStark', 'Tony Stark', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 2, 1, 'TonyStark@mydomain.com', 'es', 'e7723f0b24ff05b32ed09d95196f2f29'),
|
(1104, 'TonyStark', 'Tony Stark', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 2, 1, 'TonyStark@mydomain.com', 'es','1104'),
|
||||||
(1105, 'MaxEisenhardt', 'Max Eisenhardt', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 2, 1, 'MaxEisenhardt@mydomain.com', 'pt', 'e7723f0b24ff05b32ed09d95196f2f29'),
|
(1105, 'MaxEisenhardt', 'Max Eisenhardt', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 2, 1, 'MaxEisenhardt@mydomain.com', 'pt','1105'),
|
||||||
(1106, 'DavidCharlesHaller', 'David Charles Haller', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 1, 1, 'DavidCharlesHaller@mydomain.com', 'en', 'e7723f0b24ff05b32ed09d95196f2f29'),
|
(1106, 'DavidCharlesHaller', 'David Charles Haller', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 1, 1, 'DavidCharlesHaller@mydomain.com', 'en','1106'),
|
||||||
(1107, 'HankPym', 'Hank Pym', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 1, 1, 'HankPym@mydomain.com', 'en', 'e7723f0b24ff05b32ed09d95196f2f29'),
|
(1107, 'HankPym', 'Hank Pym', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 1, 1, 'HankPym@mydomain.com', 'en','1107'),
|
||||||
(1108, 'CharlesXavier', 'Charles Xavier', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 1, 1, 'CharlesXavier@mydomain.com', 'en', 'e7723f0b24ff05b32ed09d95196f2f29'),
|
(1108, 'CharlesXavier', 'Charles Xavier', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 1, 1, 'CharlesXavier@mydomain.com', 'en','1108'),
|
||||||
(1109, 'BruceBanner', 'Bruce Banner', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 1, 1, 'BruceBanner@mydomain.com', 'en', 'e7723f0b24ff05b32ed09d95196f2f29'),
|
(1109, 'BruceBanner', 'Bruce Banner', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 1, 1, 'BruceBanner@mydomain.com', 'en','1109'),
|
||||||
(1110, 'JessicaJones', 'Jessica Jones', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 1, 1, 'JessicaJones@mydomain.com', 'en', NULL),
|
(1110, 'JessicaJones', 'Jessica Jones', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 1, 1, 'JessicaJones@mydomain.com', 'en','1110'),
|
||||||
(1111, 'Missing', 'Missing', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 2, 0, NULL, 'en', NULL),
|
(1111, 'Missing', 'Missing', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 2, 0, NULL, 'en','e7723f0b24ff05b32ed09d95196f2f29'),
|
||||||
(1112, 'Trash', 'Trash', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 2, 0, NULL, 'en', NULL);
|
(1112, 'Trash', 'Trash', '$2b$10$UzQHth.9UUQ1T5aiQJ21lOU0oVlbxoqH4PFM9V8T90KNSAcg0eEL2', 2, 0, NULL, 'en','e7723f0b24ff05b32ed09d95196f2f29');
|
||||||
|
|
||||||
UPDATE account.`user`
|
UPDATE account.`user`
|
||||||
SET passExpired = DATE_SUB(util.VN_CURDATE(), INTERVAL 1 YEAR)
|
SET passExpired = DATE_SUB(util.VN_CURDATE(), INTERVAL 1 YEAR)
|
||||||
|
@ -592,13 +592,13 @@ INSERT INTO `vn`.`supplierAccount`(`id`, `supplierFk`, `iban`, `bankEntityFk`)
|
||||||
VALUES
|
VALUES
|
||||||
(241, 442, 'ES111122333344111122221111', 128);
|
(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
|
VALUES
|
||||||
(69 , 'CCs', NULL, 30, NULL, 0, NULL, 1, NULL , NULL),
|
(69 , 'CCs', NULL, 30, 0, NULL, 1, NULL , NULL),
|
||||||
(442 , 'VNL', 241, 30, 2 , 1, NULL, 2, 'VNL Company - Plant passport' , 1101),
|
(442 , 'VNL', 241, 30, 1, NULL, 2, 'VNL Company - Plant passport' , 1101),
|
||||||
(567 , 'VNH', NULL, 30, NULL, 4, NULL, 1, 'VNH Company - Plant passport' , NULL),
|
(567 , 'VNH', NULL, 30, 4, NULL, 1, 'VNH Company - Plant passport' , NULL),
|
||||||
(791 , 'FTH', NULL, 30, NULL, 3, '2015-11-30', 1, NULL , NULL),
|
(791 , 'FTH', NULL, 30, 3, '2015-11-30', 1, NULL , NULL),
|
||||||
(1381, 'ORN', NULL, 30, NULL, 7, NULL, 1, 'ORN Company - Plant passport' , NULL);
|
(1381, 'ORN', NULL, 30, 7, NULL, 1, 'ORN Company - Plant passport' , NULL);
|
||||||
|
|
||||||
INSERT INTO `vn`.`taxArea` (`code`, `claveOperacionFactura`, `CodigoTransaccion`)
|
INSERT INTO `vn`.`taxArea` (`code`, `claveOperacionFactura`, `CodigoTransaccion`)
|
||||||
VALUES
|
VALUES
|
||||||
|
@ -608,7 +608,8 @@ INSERT INTO `vn`.`taxArea` (`code`, `claveOperacionFactura`, `CodigoTransaccion`
|
||||||
('WORLD', 2, 15);
|
('WORLD', 2, 15);
|
||||||
|
|
||||||
INSERT INTO vn.invoiceOutConfig
|
INSERT INTO vn.invoiceOutConfig
|
||||||
SET parallelism = 8;
|
SET id = 1,
|
||||||
|
parallelism = 8;
|
||||||
|
|
||||||
INSERT INTO `vn`.`invoiceOutSerial` (`code`, `description`, `isTaxed`, `taxAreaFk`, `isCEE`, `type`)
|
INSERT INTO `vn`.`invoiceOutSerial` (`code`, `description`, `isTaxed`, `taxAreaFk`, `isCEE`, `type`)
|
||||||
VALUES
|
VALUES
|
||||||
|
@ -714,7 +715,7 @@ INSERT INTO `vn`.`zoneClosure` (`zoneFk`, `dated`, `hour`)
|
||||||
(12, util.VN_CURDATE(), '23:59'),
|
(12, util.VN_CURDATE(), '23:59'),
|
||||||
(13, 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`)
|
INSERT INTO `vn`.`route`(`id`, `time`, `workerFk`, `created`, `vehicleFk`, `agencyModeFk`, `description`, `m3`, `cost`, `started`, `finished`, `zoneFk`)
|
||||||
VALUES
|
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),
|
(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),
|
(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),
|
(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`)
|
INSERT INTO `vn`.`ticketObservation`(`id`, `ticketFk`, `observationTypeFk`, `description`)
|
||||||
VALUES
|
VALUES
|
||||||
(1, 11, 1, 'ready'),
|
(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),
|
('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);
|
('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
|
VALUES
|
||||||
('10', 1, 'pallet 100');
|
(1, '10', 1, 'pallet 100');
|
||||||
|
|
||||||
INSERT INTO `vn`.`expeditionStateType`(`id`, `description`, `code`)
|
INSERT INTO `vn`.`expeditionStateType`(`id`, `description`, `code`)
|
||||||
VALUES
|
VALUES
|
||||||
|
@ -1868,8 +1869,7 @@ INSERT INTO `vn`.`claimEnd`(`id`, `saleFk`, `claimFk`, `workerFk`, `claimDestina
|
||||||
|
|
||||||
INSERT INTO `vn`.`claimConfig`(`id`, `maxResponsibility`)
|
INSERT INTO `vn`.`claimConfig`(`id`, `maxResponsibility`)
|
||||||
VALUES
|
VALUES
|
||||||
(1, 50),
|
(1, 50);
|
||||||
(2, 30);
|
|
||||||
|
|
||||||
INSERT INTO `vn`.`claimRatio`(`clientFk`, `yearSale`, `claimAmount`, `claimingRate`, `priceIncreasing`, `packingRate`)
|
INSERT INTO `vn`.`claimRatio`(`clientFk`, `yearSale`, `claimAmount`, `claimingRate`, `priceIncreasing`, `packingRate`)
|
||||||
VALUES
|
VALUES
|
||||||
|
@ -1980,10 +1980,10 @@ INSERT INTO `pbx`.`sip`(`user_id`, `extension`)
|
||||||
(5, 1102),
|
(5, 1102),
|
||||||
(9, 1201);
|
(9, 1201);
|
||||||
|
|
||||||
INSERT INTO `vn`.`professionalCategory` (`id`, `name`, `level`, `dayBreak`)
|
INSERT INTO `vn`.`professionalCategory` (`id`, `description`)
|
||||||
VALUES
|
VALUES
|
||||||
(1, 'employee', NULL, NULL),
|
(1, 'employee'),
|
||||||
(2, 'florist', NULL, NULL);
|
(2, 'florist');
|
||||||
|
|
||||||
INSERT INTO `vn`.`calendarType` (`id`, `description`, `hoursWeek`, `isPartial`)
|
INSERT INTO `vn`.`calendarType` (`id`, `description`, `hoursWeek`, `isPartial`)
|
||||||
VALUES
|
VALUES
|
||||||
|
@ -2400,7 +2400,8 @@ INSERT INTO `vn`.`dmsType`(`id`, `name`, `readRoleFk`, `writeRoleFk`, `code`)
|
||||||
(18, 'dua', NULL, NULL, 'dua'),
|
(18, 'dua', NULL, NULL, 'dua'),
|
||||||
(19, 'inmovilizado', NULL, NULL, 'fixedAssets'),
|
(19, 'inmovilizado', NULL, NULL, 'fixedAssets'),
|
||||||
(20, 'Reclamación', 1, 1, 'claim'),
|
(20, 'Reclamación', 1, 1, 'claim'),
|
||||||
(21, 'Entrada', 1, 1, 'entry');
|
(21, 'Entrada', 1, 1, 'entry'),
|
||||||
|
(22, 'Proveedor', 1, 1, 'supplier');
|
||||||
|
|
||||||
INSERT INTO `vn`.`dms`(`id`, `dmsTypeFk`, `file`, `contentType`, `workerFk`, `warehouseFk`, `companyFk`, `hardCopyNumber`, `hasFile`, `reference`, `description`, `created`)
|
INSERT INTO `vn`.`dms`(`id`, `dmsTypeFk`, `file`, `contentType`, `workerFk`, `warehouseFk`, `companyFk`, `hardCopyNumber`, `hasFile`, `reference`, `description`, `created`)
|
||||||
VALUES
|
VALUES
|
||||||
|
@ -2412,7 +2413,8 @@ INSERT INTO `vn`.`dms`(`id`, `dmsTypeFk`, `file`, `contentType`, `workerFk`, `wa
|
||||||
(6, 5, '6.txt', 'text/plain', 5, 1, 442, NULL, TRUE, 'NotExists', 'DoesNotExists', util.VN_CURDATE()),
|
(6, 5, '6.txt', 'text/plain', 5, 1, 442, NULL, TRUE, 'NotExists', 'DoesNotExists', util.VN_CURDATE()),
|
||||||
(7, 20, '7.jpg', 'image/jpeg', 9, 1, 442, NULL, FALSE, '1', 'TICKET ID DEL CLIENTE BRUCE WAYNE ID 1101', util.VN_CURDATE()),
|
(7, 20, '7.jpg', 'image/jpeg', 9, 1, 442, NULL, FALSE, '1', 'TICKET ID DEL CLIENTE BRUCE WAYNE ID 1101', util.VN_CURDATE()),
|
||||||
(8, 20, '8.mp4', 'video/mp4', 9, 1, 442, NULL, FALSE, '1', 'TICKET ID DEL CLIENTE BRUCE WAYNE ID 1101', util.VN_CURDATE()),
|
(8, 20, '8.mp4', 'video/mp4', 9, 1, 442, NULL, FALSE, '1', 'TICKET ID DEL CLIENTE BRUCE WAYNE ID 1101', util.VN_CURDATE()),
|
||||||
(9, 21, '7.jpg', 'image/jpeg', 9, 1, 442, NULL, FALSE, '1', 'ENTRADA ID 1', util.VN_CURDATE());
|
(9, 21, '7.jpg', 'image/jpeg', 9, 1, 442, NULL, FALSE, '1', 'ENTRADA ID 1', util.VN_CURDATE()),
|
||||||
|
(10, 21, '7.jpg', 'image/jpeg', 9, 1, 442, NULL, FALSE, '1', 'ENTRADA DE PRUEBA', util.VN_CURDATE());
|
||||||
|
|
||||||
INSERT INTO `vn`.`claimDms`(`claimFk`, `dmsFk`)
|
INSERT INTO `vn`.`claimDms`(`claimFk`, `dmsFk`)
|
||||||
VALUES
|
VALUES
|
||||||
|
@ -2504,9 +2506,9 @@ INSERT INTO `hedera`.`imageCollectionSize`(`id`, `collectionFk`,`width`, `height
|
||||||
VALUES
|
VALUES
|
||||||
(1, 4, 160, 160);
|
(1, 4, 160, 160);
|
||||||
|
|
||||||
INSERT INTO `vn`.`rateConfig`(`rate0`, `rate1`, `rate2`, `rate3`)
|
INSERT INTO `vn`.`rateConfig`(`id`, `rate0`, `rate1`, `rate2`, `rate3`)
|
||||||
VALUES
|
VALUES
|
||||||
(36, 31, 25, 21);
|
(1, 36, 31, 25, 21);
|
||||||
|
|
||||||
INSERT INTO `vn`.`rate`(`dated`, `warehouseFk`, `rate0`, `rate1`, `rate2`, `rate3`)
|
INSERT INTO `vn`.`rate`(`dated`, `warehouseFk`, `rate0`, `rate1`, `rate2`, `rate3`)
|
||||||
VALUES
|
VALUES
|
||||||
|
@ -2697,9 +2699,9 @@ INSERT INTO `bs`.`sale` (`saleFk`, `amount`, `dated`, `typeFk`, `clientFk`)
|
||||||
(4, 33.8, util.VN_CURDATE(), 1, 1101),
|
(4, 33.8, util.VN_CURDATE(), 1, 1101),
|
||||||
(30, 34.4, util.VN_CURDATE(), 1, 1108);
|
(30, 34.4, util.VN_CURDATE(), 1, 1108);
|
||||||
|
|
||||||
INSERT INTO `vn`.`docuwareConfig` (`url`)
|
INSERT INTO `vn`.`docuwareConfig` (`id`, `url`)
|
||||||
VALUES
|
VALUES
|
||||||
('http://docuware.url/');
|
(1, 'http://docuware.url/');
|
||||||
|
|
||||||
INSERT INTO `vn`.`calendarHolidaysName` (`id`, `name`)
|
INSERT INTO `vn`.`calendarHolidaysName` (`id`, `name`)
|
||||||
VALUES
|
VALUES
|
||||||
|
@ -2796,12 +2798,13 @@ INSERT INTO `vn`.`packingSite` (`id`, `code`, `hostFk`, `monitorId`)
|
||||||
VALUES
|
VALUES
|
||||||
(1, 'h1', 1, '');
|
(1, 'h1', 1, '');
|
||||||
|
|
||||||
INSERT INTO `vn`.`packingSiteConfig` (`shinobiUrl`, `shinobiToken`, `shinobiGroupKey`, `avgBoxingTime`)
|
INSERT INTO `vn`.`packingSiteConfig` (`id`, `shinobiUrl`, `shinobiToken`, `shinobiGroupKey`, `avgBoxingTime`)
|
||||||
VALUES
|
VALUES
|
||||||
('', 'SHINNOBI_TOKEN', 'GROUP_TOKEN', 6000);
|
(1, '', 'SHINNOBI_TOKEN', 'GROUP_TOKEN', 6000);
|
||||||
INSERT INTO `util`.`notificationConfig`
|
INSERT INTO `util`.`notificationConfig`
|
||||||
SET `cleanDays` = 90;
|
SET `id` = 1,
|
||||||
|
`cleanDays` = 90;
|
||||||
|
TRUNCATE `util`.`notification`;
|
||||||
INSERT INTO `util`.`notification` (`id`, `name`, `description`)
|
INSERT INTO `util`.`notification` (`id`, `name`, `description`)
|
||||||
VALUES
|
VALUES
|
||||||
(1, 'print-email', 'notification fixture one'),
|
(1, 'print-email', 'notification fixture one'),
|
||||||
|
@ -2809,8 +2812,10 @@ INSERT INTO `util`.`notification` (`id`, `name`, `description`)
|
||||||
(3, 'not-main-printer-configured', 'A printer distinct than main has been configured'),
|
(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'),
|
(4, 'supplier-pay-method-update', 'A supplier pay method has been updated'),
|
||||||
(5, 'modified-entry', 'An entry has been modified'),
|
(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');
|
||||||
|
|
||||||
|
TRUNCATE `util`.`notificationAcl`;
|
||||||
INSERT INTO `util`.`notificationAcl` (`notificationFk`, `roleFk`)
|
INSERT INTO `util`.`notificationAcl` (`notificationFk`, `roleFk`)
|
||||||
VALUES
|
VALUES
|
||||||
(1, 9),
|
(1, 9),
|
||||||
|
@ -2819,13 +2824,16 @@ INSERT INTO `util`.`notificationAcl` (`notificationFk`, `roleFk`)
|
||||||
(3, 9),
|
(3, 9),
|
||||||
(4, 1),
|
(4, 1),
|
||||||
(5, 9),
|
(5, 9),
|
||||||
(6, 9);
|
(6, 9),
|
||||||
|
(7, 9);
|
||||||
|
|
||||||
|
TRUNCATE `util`.`notificationQueue`;
|
||||||
INSERT INTO `util`.`notificationQueue` (`id`, `notificationFk`, `params`, `authorFk`, `status`, `created`)
|
INSERT INTO `util`.`notificationQueue` (`id`, `notificationFk`, `params`, `authorFk`, `status`, `created`)
|
||||||
VALUES
|
VALUES
|
||||||
(1, 'print-email', '{"id": "1"}', 9, 'pending', util.VN_CURDATE()),
|
(1, 'print-email', '{"id": "1"}', 9, 'pending', util.VN_CURDATE()),
|
||||||
(2, 'print-email', '{"id": "2"}', null, 'pending', util.VN_CURDATE()),
|
(2, 'print-email', '{"id": "2"}', null, 'pending', util.VN_CURDATE()),
|
||||||
(3, 'print-email', null, null, 'pending', util.VN_CURDATE());
|
(3, 'print-email', null, null, 'pending', util.VN_CURDATE());
|
||||||
|
TRUNCATE `util`.`notificationSubscription`;
|
||||||
|
|
||||||
INSERT INTO `util`.`notificationSubscription` (`notificationFk`, `userFk`)
|
INSERT INTO `util`.`notificationSubscription` (`notificationFk`, `userFk`)
|
||||||
VALUES
|
VALUES
|
||||||
|
@ -2836,8 +2844,8 @@ INSERT INTO `util`.`notificationSubscription` (`notificationFk`, `userFk`)
|
||||||
(2, 1109),
|
(2, 1109),
|
||||||
(1, 9),
|
(1, 9),
|
||||||
(1, 3),
|
(1, 3),
|
||||||
(6, 9);
|
(6, 9),
|
||||||
|
(7, 9);
|
||||||
|
|
||||||
INSERT INTO `vn`.`routeConfig` (`id`, `defaultWorkCenterFk`)
|
INSERT INTO `vn`.`routeConfig` (`id`, `defaultWorkCenterFk`)
|
||||||
VALUES
|
VALUES
|
||||||
|
@ -2853,7 +2861,7 @@ INSERT INTO `vn`.`collection` (`id`, `created`, `workerFk`, `stateFk`, `itemPack
|
||||||
|
|
||||||
INSERT INTO `vn`.`itemConfig` (`id`, `isItemTagTriggerDisabled`, `monthToDeactivate`, `wasteRecipients`, `validPriorities`, `defaultPriority`, `defaultTag`, `warehouseFk`)
|
INSERT INTO `vn`.`itemConfig` (`id`, `isItemTagTriggerDisabled`, `monthToDeactivate`, `wasteRecipients`, `validPriorities`, `defaultPriority`, `defaultTag`, `warehouseFk`)
|
||||||
VALUES
|
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`)
|
INSERT INTO `vn`.`ticketCollection` (`ticketFk`, `collectionFk`, `created`, `level`, `wagon`, `smartTagFk`, `usedShelves`, `itemCount`, `liters`)
|
||||||
VALUES
|
VALUES
|
||||||
|
@ -2890,7 +2898,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);
|
(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`)
|
INSERT INTO `vn`.`osTicketConfig` (`id`, `host`, `user`, `password`, `oldStatus`, `newStatusId`, `day`, `comment`, `hostDb`, `userDb`, `passwordDb`, `portDb`, `responseType`, `fromEmailId`, `replyTo`)
|
||||||
VALUES
|
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`)
|
INSERT INTO `vn`.`mdbApp` (`app`, `baselineBranchFk`, `userFk`, `locked`)
|
||||||
VALUES
|
VALUES
|
||||||
|
@ -3068,8 +3076,6 @@ INSERT INTO `vn`.`cmr` (id,truckPlate,observations,senderInstruccions,paymentIns
|
||||||
UPDATE vn.department
|
UPDATE vn.department
|
||||||
SET workerFk = null;
|
SET workerFk = null;
|
||||||
|
|
||||||
-- NEW WAREHOUSE
|
|
||||||
|
|
||||||
INSERT INTO vn.packaging
|
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);
|
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);
|
||||||
|
|
||||||
|
@ -3713,8 +3719,8 @@ UPDATE vn.collection
|
||||||
UPDATE vn.sale
|
UPDATE vn.sale
|
||||||
SET isPicked =FALSE;
|
SET isPicked =FALSE;
|
||||||
|
|
||||||
INSERT INTO vn.machineWorkerConfig(maxHours)
|
INSERT INTO vn.machineWorkerConfig(id, maxHours)
|
||||||
VALUES(12);
|
VALUES(1, 12);
|
||||||
|
|
||||||
INSERT INTO vn.workerAppTester(workerFk) VALUES(66);
|
INSERT INTO vn.workerAppTester(workerFk) VALUES(66);
|
||||||
|
|
||||||
|
@ -3733,3 +3739,10 @@ INSERT INTO vn.report (name) VALUES ('LabelCollection');
|
||||||
|
|
||||||
INSERT INTO vn.parkingLog(originFk, userFk, `action`, creationDate, description, changedModel,oldInstance, newInstance, changedModelId, changedModelValue)
|
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);
|
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');
|
||||||
|
|
||||||
|
INSERT INTO `vn`.`supplierDms`(`supplierFk`, `dmsFk`, `editorFk`)
|
||||||
|
VALUES
|
||||||
|
(1, 10, 9);
|
|
@ -0,0 +1,22 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE
|
||||||
|
DEFINER=`root`@`localhost`
|
||||||
|
EVENT `floranet`.`clean`
|
||||||
|
ON SCHEDULE EVERY 1 DAY
|
||||||
|
STARTS '2024-01-01 23:00:00.000'
|
||||||
|
ON COMPLETION PRESERVE
|
||||||
|
ENABLE
|
||||||
|
DO
|
||||||
|
BEGIN
|
||||||
|
DELETE
|
||||||
|
FROM `order`
|
||||||
|
WHERE created < CURDATE()
|
||||||
|
AND isPaid = FALSE;
|
||||||
|
|
||||||
|
DELETE c.*
|
||||||
|
FROM catalogue c
|
||||||
|
LEFT JOIN `order` o ON o.catalogueFk = c.id
|
||||||
|
WHERE c.created < CURDATE()
|
||||||
|
AND o.id IS NULL;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -0,0 +1,52 @@
|
||||||
|
DROP PROCEDURE IF EXISTS floranet.catalogue_get;
|
||||||
|
|
||||||
|
DELIMITER $$
|
||||||
|
$$
|
||||||
|
CREATE DEFINER=`root`@`localhost` PROCEDURE floranet.catalogue_get(vLanded DATE, vPostalCode VARCHAR(15))
|
||||||
|
READS SQL DATA
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Returns list, price and all the stuff regarding the floranet items
|
||||||
|
*
|
||||||
|
* @param vLanded Delivery date
|
||||||
|
* @param vPostalCode Delivery address postal code
|
||||||
|
*/
|
||||||
|
DECLARE vLastCatalogueFk INT;
|
||||||
|
|
||||||
|
START TRANSACTION;
|
||||||
|
|
||||||
|
SELECT * FROM catalogue FOR UPDATE;
|
||||||
|
|
||||||
|
SELECT MAX(id) INTO vLastCatalogueFk
|
||||||
|
FROM catalogue;
|
||||||
|
|
||||||
|
INSERT INTO catalogue(
|
||||||
|
name,
|
||||||
|
price,
|
||||||
|
itemFk,
|
||||||
|
dated,
|
||||||
|
postalCode,
|
||||||
|
`type`,
|
||||||
|
image,
|
||||||
|
description
|
||||||
|
)
|
||||||
|
SELECT i.name,
|
||||||
|
i.`size`,
|
||||||
|
i.id,
|
||||||
|
vLanded,
|
||||||
|
vPostalCode,
|
||||||
|
it.name,
|
||||||
|
CONCAT('https://cdn.verdnatura.es/image/catalog/1600x900/', i.image),
|
||||||
|
i.description
|
||||||
|
FROM vn.item i
|
||||||
|
JOIN vn.itemType it ON it.id = i.typeFk
|
||||||
|
WHERE it.code IN ('FNR','FNP');
|
||||||
|
|
||||||
|
SELECT *
|
||||||
|
FROM catalogue
|
||||||
|
WHERE id > IFNULL(vLastCatalogueFk,0);
|
||||||
|
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -0,0 +1,20 @@
|
||||||
|
DROP PROCEDURE IF EXISTS floranet.contact_request;
|
||||||
|
|
||||||
|
DELIMITER $$
|
||||||
|
$$
|
||||||
|
CREATE DEFINER=`root`@`localhost`
|
||||||
|
PROCEDURE floranet.contact_request(
|
||||||
|
vName VARCHAR(100),
|
||||||
|
vPhone VARCHAR(15),
|
||||||
|
vEmail VARCHAR(100),
|
||||||
|
vMessage TEXT)
|
||||||
|
READS SQL DATA
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Set actions for contact request.
|
||||||
|
*
|
||||||
|
* @param vPostalCode Delivery address postal code
|
||||||
|
*/
|
||||||
|
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -0,0 +1,29 @@
|
||||||
|
DROP PROCEDURE IF EXISTS floranet.deliveryDate_get;
|
||||||
|
|
||||||
|
DELIMITER $$
|
||||||
|
$$
|
||||||
|
CREATE DEFINER=`root`@`localhost` PROCEDURE `floranet`.`deliveryDate_get`(vPostalCode VARCHAR(15))
|
||||||
|
READS SQL DATA
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Returns available dates for this postalCode, in the next seven days
|
||||||
|
*
|
||||||
|
* @param vPostalCode Delivery address postal code
|
||||||
|
*/
|
||||||
|
DECLARE vCurrentDayOfWeek INT;
|
||||||
|
|
||||||
|
SET vCurrentDayOfWeek = DAYOFWEEK(NOW());
|
||||||
|
|
||||||
|
SELECT DISTINCT nextDay
|
||||||
|
FROM (
|
||||||
|
SELECT CURDATE() + INTERVAL IF(
|
||||||
|
apc.dayOfWeek >= vCurrentDayOfWeek,
|
||||||
|
apc.dayOfWeek - vCurrentDayOfWeek,
|
||||||
|
7 - apc.dayOfWeek
|
||||||
|
) DAY nextDay,
|
||||||
|
NOW() + INTERVAL apc.hoursInAdvance - 12 HOUR minDeliveryTime
|
||||||
|
FROM addressPostCode apc
|
||||||
|
WHERE apc.postCode = vPostalCode
|
||||||
|
HAVING nextDay > minDeliveryTime) sub;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -0,0 +1,25 @@
|
||||||
|
DROP PROCEDURE IF EXISTS floranet.order_confirm;
|
||||||
|
|
||||||
|
DELIMITER $$
|
||||||
|
$$
|
||||||
|
|
||||||
|
CREATE DEFINER=`root`@`localhost`PROCEDURE floranet.order_confirm(vCatalogueFk INT)
|
||||||
|
READS SQL DATA
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
/** Update order.isPaid field
|
||||||
|
*
|
||||||
|
* @param vCatalogueFk floranet.catalogue.id
|
||||||
|
*
|
||||||
|
* @returns floranet.order.isPaid
|
||||||
|
*/
|
||||||
|
UPDATE `order`
|
||||||
|
SET isPaid = TRUE,
|
||||||
|
payed = NOW()
|
||||||
|
WHERE catalogueFk = vCatalogueFk;
|
||||||
|
|
||||||
|
SELECT isPaid
|
||||||
|
FROM `order`
|
||||||
|
WHERE catalogueFk = vCatalogueFk;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -0,0 +1,42 @@
|
||||||
|
DROP PROCEDURE IF EXISTS floranet.order_put;
|
||||||
|
|
||||||
|
DELIMITER $$
|
||||||
|
$$
|
||||||
|
CREATE DEFINER=`root`@`localhost` PROCEDURE floranet.order_put(vOrder JSON)
|
||||||
|
READS SQL DATA
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Get and process an order
|
||||||
|
*
|
||||||
|
* @param vOrder Data of the order
|
||||||
|
*
|
||||||
|
* Customer data: <customerName>, <email>, <customerPhone>
|
||||||
|
*
|
||||||
|
* Item data: <catalogueFk>, <message>
|
||||||
|
*
|
||||||
|
* Delivery data: <deliveryName>, <address>, <deliveryPhone>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
INSERT IGNORE INTO `order`(
|
||||||
|
catalogueFk,
|
||||||
|
customerName,
|
||||||
|
email,
|
||||||
|
customerPhone,
|
||||||
|
message,
|
||||||
|
deliveryName,
|
||||||
|
address,
|
||||||
|
deliveryPhone
|
||||||
|
)
|
||||||
|
VALUES (JSON_UNQUOTE(JSON_EXTRACT(vOrder,'$.catalogueFk')),
|
||||||
|
JSON_UNQUOTE(JSON_EXTRACT(vOrder,'$.customerName')),
|
||||||
|
JSON_UNQUOTE(JSON_EXTRACT(vOrder,'$.email')),
|
||||||
|
JSON_UNQUOTE(JSON_EXTRACT(vOrder,'$.customerPhone')),
|
||||||
|
JSON_UNQUOTE(JSON_EXTRACT(vOrder,'$.message')),
|
||||||
|
JSON_UNQUOTE(JSON_EXTRACT(vOrder,'$.deliveryName')),
|
||||||
|
JSON_UNQUOTE(JSON_EXTRACT(vOrder,'$.address')),
|
||||||
|
JSON_UNQUOTE(JSON_EXTRACT(vOrder,'$.deliveryPhone'))
|
||||||
|
);
|
||||||
|
|
||||||
|
SELECT LAST_INSERT_ID() orderFk;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -0,0 +1,19 @@
|
||||||
|
DROP PROCEDURE IF EXISTS floranet.sliders_get;
|
||||||
|
|
||||||
|
DELIMITER $$
|
||||||
|
$$
|
||||||
|
CREATE DEFINER=`root`@`localhost` PROCEDURE floranet.sliders_get()
|
||||||
|
READS SQL DATA
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Returns list of url for sliders
|
||||||
|
*/
|
||||||
|
SELECT
|
||||||
|
CONCAT('https://cdn.verdnatura.es/image/catalog/1600x900/', i.image) url,
|
||||||
|
i.longName
|
||||||
|
FROM vn.item i
|
||||||
|
JOIN vn.itemType it ON it.id = i.typeFk
|
||||||
|
WHERE it.code IN ('FNR','FNP');
|
||||||
|
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -14,7 +14,10 @@ BEGIN
|
||||||
SELECT `value` INTO price
|
SELECT `value` INTO price
|
||||||
FROM vn.specialPrice
|
FROM vn.specialPrice
|
||||||
WHERE itemFk = vItemFk
|
WHERE itemFk = vItemFk
|
||||||
AND clientFk = vClientFk ;
|
AND (clientFk = vClientFk OR clientFk IS NULL)
|
||||||
|
AND started <= util.VN_CURDATE()
|
||||||
|
AND (ended >= util.VN_CURDATE() OR ended IS NULL)
|
||||||
|
ORDER BY id DESC LIMIT 1;
|
||||||
RETURN price;
|
RETURN price;
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -0,0 +1,102 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`absoluteInventoryHistory`(
|
||||||
|
vItemFk INT,
|
||||||
|
vWarehouseFk INT,
|
||||||
|
vDate DATETIME
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Calcula y proporciona un historial de inventario absoluto
|
||||||
|
* para un artículo específico en un almacén dado
|
||||||
|
* hasta una fecha determinada.
|
||||||
|
*
|
||||||
|
* @param vItemFk Id de artículo
|
||||||
|
* @param vWarehouseFk Id de almacén
|
||||||
|
* @param vDate Fecha
|
||||||
|
*/
|
||||||
|
DECLARE vCalculatedInventory INT;
|
||||||
|
DECLARE vToday DATETIME DEFAULT util.VN_CURDATE();
|
||||||
|
DECLARE vStartDate DATE DEFAULT '2001-01-01';
|
||||||
|
|
||||||
|
CREATE OR REPLACE TEMPORARY TABLE tHistoricalPast
|
||||||
|
ENGINE = MEMORY
|
||||||
|
SELECT *
|
||||||
|
FROM (
|
||||||
|
SELECT tr.landed `date`,
|
||||||
|
b.quantity input,
|
||||||
|
NULL `output`,
|
||||||
|
tr.isReceived ok,
|
||||||
|
s.name alias,
|
||||||
|
e.invoiceNumber reference,
|
||||||
|
e.id id,
|
||||||
|
tr.isDelivered f5
|
||||||
|
FROM buy b
|
||||||
|
JOIN `entry` e ON e.id = b.entryFk
|
||||||
|
JOIN travel tr ON tr.id = e.travelFk
|
||||||
|
JOIN supplier s ON s.id = e.supplierFk
|
||||||
|
WHERE tr.landed >= vStartDate
|
||||||
|
AND s.id <> (SELECT supplierFk FROM inventoryConfig)
|
||||||
|
AND vWarehouseFk IN (tr.warehouseInFk, 0)
|
||||||
|
AND b.itemFk = vItemFk
|
||||||
|
AND NOT e.isExcludedFromAvailable
|
||||||
|
AND NOT e.isRaid
|
||||||
|
UNION ALL
|
||||||
|
SELECT tr.shipped,
|
||||||
|
NULL,
|
||||||
|
b.quantity,
|
||||||
|
tr.isDelivered,
|
||||||
|
s.name,
|
||||||
|
e.invoiceNumber,
|
||||||
|
e.id,
|
||||||
|
tr.isDelivered
|
||||||
|
FROM buy b
|
||||||
|
JOIN `entry` e ON e.id = b.entryFk
|
||||||
|
JOIN travel tr ON tr.id = e.travelFk
|
||||||
|
JOIN supplier s ON s.id = e.supplierFk
|
||||||
|
WHERE tr.shipped >= vStartDate
|
||||||
|
AND vWarehouseFk = tr.warehouseOutFk
|
||||||
|
AND s.id <> (SELECT supplierFk FROM inventoryConfig)
|
||||||
|
AND b.itemFk = vItemFk
|
||||||
|
AND NOT e.isExcludedFromAvailable
|
||||||
|
AND NOT e.isRaid
|
||||||
|
UNION ALL
|
||||||
|
SELECT t.shipped,
|
||||||
|
NULL,
|
||||||
|
m.quantity,
|
||||||
|
(m.isPicked OR t.isLabeled OR t.refFk IS NOT NULL),
|
||||||
|
t.nickname,
|
||||||
|
t.refFk,
|
||||||
|
t.id,
|
||||||
|
t.isPrinted
|
||||||
|
FROM sale m
|
||||||
|
JOIN ticket t ON t.id = m.ticketFk
|
||||||
|
JOIN client c ON c.id = t.clientFk
|
||||||
|
WHERE t.shipped >= vStartDate
|
||||||
|
AND m.itemFk = vItemFk
|
||||||
|
AND vWarehouseFk IN (t.warehouseFk, 0)
|
||||||
|
) t1
|
||||||
|
ORDER BY `date`, input DESC, ok DESC;
|
||||||
|
|
||||||
|
SELECT SUM(input) - SUM(`output`) INTO vCalculatedInventory
|
||||||
|
FROM tHistoricalPast
|
||||||
|
WHERE `date` < vDate;
|
||||||
|
|
||||||
|
SELECT p1.*, NULL v_virtual
|
||||||
|
FROM (
|
||||||
|
SELECT vDate `date`,
|
||||||
|
vCalculatedInventory input,
|
||||||
|
NULL `output`,
|
||||||
|
1 ok,
|
||||||
|
'Inventario calculado' alias,
|
||||||
|
'' reference,
|
||||||
|
0 id,
|
||||||
|
1 f5
|
||||||
|
UNION ALL
|
||||||
|
SELECT *
|
||||||
|
FROM tHistoricalPast
|
||||||
|
WHERE `date` >= vDate
|
||||||
|
) p1;
|
||||||
|
|
||||||
|
DROP TEMPORARY TABLE tHistoricalPast;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -0,0 +1,283 @@
|
||||||
|
DELIMITER $$
|
||||||
|
$$
|
||||||
|
CREATE OR REPLACE PROCEDURE vn.sale_boxPickingPrint(
|
||||||
|
IN vPrinterFk INT,
|
||||||
|
IN vSaleFk INT,
|
||||||
|
IN vPacking INT,
|
||||||
|
IN vSectorFk INT,
|
||||||
|
IN vUserFk INT,
|
||||||
|
IN vPackagingFk INT,
|
||||||
|
IN vPackingSiteFk INT)
|
||||||
|
BEGIN
|
||||||
|
/** Splits a line of sale to a different ticket and prints the transport sticker
|
||||||
|
*/
|
||||||
|
DECLARE vAgencyModeFk INT;
|
||||||
|
DECLARE vConcept VARCHAR(30);
|
||||||
|
DECLARE vExpeditionFk INT;
|
||||||
|
DECLARE vItemFk INT;
|
||||||
|
DECLARE vItemShelvingFk INT;
|
||||||
|
DECLARE vItemShelvingSaleFk INT;
|
||||||
|
DECLARE vItemShelvingSaleFk_old INT;
|
||||||
|
DECLARE vLastExpeditionTimeStamp DATETIME;
|
||||||
|
DECLARE vMaxPhoneLength INT DEFAULT 11;
|
||||||
|
DECLARE vMaxStreetLength INT DEFAULT 36;
|
||||||
|
DECLARE vNewSaleFk INT;
|
||||||
|
DECLARE vNewTicketFk INT;
|
||||||
|
DECLARE vParkingCode VARCHAR(10);
|
||||||
|
DECLARE vQuantity INT;
|
||||||
|
DECLARE vRemainder INT DEFAULT 0;
|
||||||
|
DECLARE vRemainderSaleFk INT;
|
||||||
|
DECLARE vShelving VARCHAR(10);
|
||||||
|
DECLARE vTicketFk INT;
|
||||||
|
|
||||||
|
SELECT s.quantity,
|
||||||
|
s.quantity MOD vPacking,
|
||||||
|
s.ticketFk,
|
||||||
|
s.itemFk,
|
||||||
|
s.concept
|
||||||
|
INTO vQuantity,
|
||||||
|
vRemainder,
|
||||||
|
vTicketFk,
|
||||||
|
vItemFk,
|
||||||
|
vConcept
|
||||||
|
FROM sale s
|
||||||
|
WHERE s.id = vSaleFk;
|
||||||
|
|
||||||
|
IF vRemainder THEN
|
||||||
|
UPDATE sale SET quantity = quantity - vRemainder WHERE id = vSaleFk;
|
||||||
|
|
||||||
|
INSERT INTO sale(ticketFk, itemFk, quantity, price, discount, concept)
|
||||||
|
SELECT ticketFk, itemFk, vRemainder, price, discount, concept
|
||||||
|
FROM sale
|
||||||
|
WHERE id = vSaleFk;
|
||||||
|
|
||||||
|
SET vRemainderSaleFk = LAST_INSERT_ID();
|
||||||
|
|
||||||
|
INSERT INTO saleComponent(saleFk, componentFk, value)
|
||||||
|
SELECT vRemainderSaleFk, componentFk, value
|
||||||
|
FROM saleComponent
|
||||||
|
WHERE saleFk = vSaleFk;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
w1: WHILE vQuantity >= vPacking DO
|
||||||
|
|
||||||
|
SET vItemShelvingFk = NULL;
|
||||||
|
|
||||||
|
SELECT sub.id
|
||||||
|
INTO vItemShelvingFk
|
||||||
|
FROM productionConfig pc
|
||||||
|
JOIN (
|
||||||
|
SELECT ish.id,
|
||||||
|
ish.visible - IFNULL(SUM(iss.quantity),0) available,
|
||||||
|
p.pickingOrder,
|
||||||
|
ish.created
|
||||||
|
FROM itemShelving ish
|
||||||
|
JOIN shelving sh ON sh.code = ish.shelvingFk
|
||||||
|
JOIN parking p ON p.id = sh.parkingFk
|
||||||
|
LEFT JOIN itemShelvingSale iss
|
||||||
|
ON iss.itemShelvingFk = ish.id
|
||||||
|
AND iss.created >= CURDATE()
|
||||||
|
AND iss.isPicked = FALSE
|
||||||
|
WHERE ish.itemFk = vItemFk
|
||||||
|
AND p.sectorFk = vSectorFk
|
||||||
|
GROUP BY ish.id
|
||||||
|
HAVING available >= vPacking) sub
|
||||||
|
ORDER BY IF(pc.orderMode = 'Location',sub.pickingOrder, sub.created)
|
||||||
|
LIMIT 1;
|
||||||
|
|
||||||
|
IF vItemShelvingFk THEN
|
||||||
|
INSERT INTO itemShelvingSale
|
||||||
|
SET itemShelvingFk = vItemShelvingFk,
|
||||||
|
saleFk = vSaleFk,
|
||||||
|
quantity = vPacking,
|
||||||
|
userFk = vUserFk,
|
||||||
|
isPicked = TRUE;
|
||||||
|
|
||||||
|
SET vItemShelvingSaleFk = LAST_INSERT_ID();
|
||||||
|
|
||||||
|
UPDATE sale SET isPicked = FALSE WHERE id = vSaleFk;
|
||||||
|
ELSE
|
||||||
|
LEAVE w1;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
SET vNewTicketFk = NULL;
|
||||||
|
|
||||||
|
SELECT MAX(t.id) INTO vNewTicketFk
|
||||||
|
FROM ticket t
|
||||||
|
JOIN ticketLastState tls ON tls.ticketFk = t.id
|
||||||
|
JOIN (SELECT addressFk, clientFk, date(shipped) shipped, warehouseFk
|
||||||
|
FROM ticket
|
||||||
|
WHERE id = vTicketFk) tt
|
||||||
|
ON tt.addressFk = t.addressFk
|
||||||
|
AND tt.clientFk = t.clientFk
|
||||||
|
AND t.shipped BETWEEN tt.shipped AND util.dayend(tt.shipped)
|
||||||
|
AND t.warehouseFk = tt.warehouseFk
|
||||||
|
WHERE tls.name = 'Encajado' ;
|
||||||
|
|
||||||
|
IF ISNULL(vNewTicketFk) THEN
|
||||||
|
INSERT INTO ticket( clientFk,
|
||||||
|
shipped,
|
||||||
|
addressFk,
|
||||||
|
agencyModeFk,
|
||||||
|
nickname,
|
||||||
|
warehouseFk,
|
||||||
|
companyFk,
|
||||||
|
landed,
|
||||||
|
zoneFk,
|
||||||
|
zonePrice,
|
||||||
|
zoneBonus,
|
||||||
|
routeFk,
|
||||||
|
priority,
|
||||||
|
hasPriority,
|
||||||
|
clonedFrom)
|
||||||
|
SELECT clientFk,
|
||||||
|
shipped,
|
||||||
|
addressFk,
|
||||||
|
agencyModeFk,
|
||||||
|
nickname,
|
||||||
|
warehouseFk,
|
||||||
|
companyFk,
|
||||||
|
landed,
|
||||||
|
zoneFk,
|
||||||
|
zonePrice,
|
||||||
|
zoneBonus,
|
||||||
|
routeFk,
|
||||||
|
priority,
|
||||||
|
hasPriority,
|
||||||
|
id
|
||||||
|
FROM ticket
|
||||||
|
WHERE id = vTicketFk;
|
||||||
|
|
||||||
|
SET vNewTicketFk = LAST_INSERT_ID();
|
||||||
|
|
||||||
|
INSERT INTO ticketTracking(ticketFk, stateFk, userFk)
|
||||||
|
SELECT vNewTicketFk, id, vUserFk
|
||||||
|
FROM state
|
||||||
|
WHERE code = 'PACKED';
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
UPDATE sale SET quantity = quantity - vPacking WHERE id = vSaleFk;
|
||||||
|
|
||||||
|
UPDATE itemShelving SET visible = visible - vPacking WHERE id = vItemShelvingFk;
|
||||||
|
|
||||||
|
SET vNewSaleFk = NULL;
|
||||||
|
|
||||||
|
SELECT MAX(id) INTO vNewSaleFk
|
||||||
|
FROM sale
|
||||||
|
WHERE ticketFk = vNewTicketFk
|
||||||
|
AND itemFk = vItemFk;
|
||||||
|
|
||||||
|
IF vNewSaleFk THEN
|
||||||
|
UPDATE sale
|
||||||
|
SET quantity = quantity + vPacking
|
||||||
|
WHERE id = vNewSaleFk;
|
||||||
|
|
||||||
|
SET vItemShelvingSaleFk_old = NULL;
|
||||||
|
|
||||||
|
SELECT MAX(id) INTO vItemShelvingSaleFk_old
|
||||||
|
FROM itemShelvingSale
|
||||||
|
WHERE itemShelvingFk = vItemShelvingFk
|
||||||
|
AND saleFk = vNewSaleFk;
|
||||||
|
|
||||||
|
IF vItemShelvingSaleFk_old THEN
|
||||||
|
UPDATE itemShelvingSale
|
||||||
|
SET quantity = quantity + vPacking
|
||||||
|
WHERE id = vItemShelvingSaleFk_old;
|
||||||
|
|
||||||
|
DELETE FROM itemShelvingSale
|
||||||
|
WHERE id = vItemShelvingSaleFk;
|
||||||
|
|
||||||
|
SET vItemShelvingSaleFk = vItemShelvingSaleFk_old;
|
||||||
|
ELSE
|
||||||
|
UPDATE itemShelvingSale
|
||||||
|
SET saleFk = vNewSaleFk
|
||||||
|
WHERE id = vItemShelvingSaleFk;
|
||||||
|
END IF;
|
||||||
|
ELSE
|
||||||
|
INSERT INTO sale(ticketFk, itemFk, concept, quantity, discount, price)
|
||||||
|
SELECT vNewTicketFk, itemFk, concept, vPacking, discount, price
|
||||||
|
FROM sale
|
||||||
|
WHERE id = vSaleFk;
|
||||||
|
|
||||||
|
SET vNewSaleFk = LAST_INSERT_ID();
|
||||||
|
|
||||||
|
INSERT INTO saleComponent(saleFk, componentFk, value, isGreuge)
|
||||||
|
SELECT vNewSaleFk, componentFk, value, isGreuge
|
||||||
|
FROM saleComponent
|
||||||
|
WHERE saleFk = vSaleFk;
|
||||||
|
|
||||||
|
UPDATE itemShelvingSale
|
||||||
|
SET saleFk = vNewSaleFk
|
||||||
|
WHERE id = vItemShelvingSaleFk;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
INSERT IGNORE INTO saleTracking(saleFk, isChecked, workerFk, stateFk)
|
||||||
|
SELECT vNewSaleFk, TRUE, vUserFk, id
|
||||||
|
FROM state
|
||||||
|
WHERE code = 'PREPARED';
|
||||||
|
|
||||||
|
SELECT agencyModeFk INTO vAgencyModeFk
|
||||||
|
FROM ticket
|
||||||
|
WHERE id = vNewTicketFk;
|
||||||
|
|
||||||
|
INSERT INTO expedition(
|
||||||
|
agencyModeFk,
|
||||||
|
ticketFk,
|
||||||
|
freightItemFk,
|
||||||
|
workerFk,
|
||||||
|
packagingFk,
|
||||||
|
itemPackingTypeFk,
|
||||||
|
hostFk,
|
||||||
|
packingSiteFk,
|
||||||
|
monitorId,
|
||||||
|
started,
|
||||||
|
ended
|
||||||
|
)
|
||||||
|
SELECT vAgencyModeFk,
|
||||||
|
vNewTicketFk,
|
||||||
|
i.id,
|
||||||
|
vUserFk,
|
||||||
|
vPackagingFk,
|
||||||
|
ps.code,
|
||||||
|
h.code,
|
||||||
|
vPackingSiteFk,
|
||||||
|
ps.monitorId,
|
||||||
|
IFNULL(vLastExpeditionTimeStamp, NOW()),
|
||||||
|
NOW()
|
||||||
|
FROM packingSite ps
|
||||||
|
JOIN host h ON h.id = ps.hostFk
|
||||||
|
JOIN item i ON i.name = 'Shipping cost'
|
||||||
|
WHERE ps.id = vPackingSiteFk
|
||||||
|
LIMIT 1;
|
||||||
|
|
||||||
|
SET vExpeditionFk = LAST_INSERT_ID();
|
||||||
|
|
||||||
|
SET vLastExpeditionTimeStamp = NOW();
|
||||||
|
|
||||||
|
CALL dipole.expedition_Add(vExpeditionFk,vPrinterFk, TRUE);
|
||||||
|
|
||||||
|
SELECT shelvingFk, p.code
|
||||||
|
INTO vShelving, vParkingCode
|
||||||
|
FROM itemShelving ish
|
||||||
|
JOIN shelving sh ON sh.code = ish.shelvingFk
|
||||||
|
JOIN parking p ON p.id = sh.parkingFk
|
||||||
|
WHERE ish.id = vItemShelvingFk;
|
||||||
|
|
||||||
|
UPDATE dipole.expedition_PrintOut
|
||||||
|
SET isPrinted = FALSE,
|
||||||
|
itemFk = vItemFk,
|
||||||
|
quantity = vPacking,
|
||||||
|
longName = vConcept,
|
||||||
|
shelvingFk = vShelving,
|
||||||
|
parkingCode = vParkingCode,
|
||||||
|
phone = RIGHT(phone,vMaxPhoneLength),
|
||||||
|
street = RIGHT(street, vMAxStreetLength)
|
||||||
|
WHERE expeditionFk = vExpeditionFk;
|
||||||
|
|
||||||
|
DELETE FROM sale
|
||||||
|
WHERE quantity = 0
|
||||||
|
AND id = vSaleFk;
|
||||||
|
END WHILE;
|
||||||
|
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -25,6 +25,19 @@ BEGIN
|
||||||
FROM address
|
FROM address
|
||||||
WHERE id = vAddressFk;
|
WHERE id = vAddressFk;
|
||||||
|
|
||||||
|
CREATE OR REPLACE TEMPORARY TABLE tSpecialPrice
|
||||||
|
(INDEX (itemFk))
|
||||||
|
ENGINE = MEMORY
|
||||||
|
SELECT * FROM (
|
||||||
|
SELECT *
|
||||||
|
FROM specialPrice
|
||||||
|
WHERE (clientFk = vClientFk OR clientFk IS NULL)
|
||||||
|
AND started <= vShipped
|
||||||
|
AND (ended >= vShipped OR ended IS NULL)
|
||||||
|
ORDER BY (clientFk = vClientFk) DESC, id DESC
|
||||||
|
LIMIT 10000000000000000000) t
|
||||||
|
GROUP BY itemFk;
|
||||||
|
|
||||||
CREATE OR REPLACE TEMPORARY TABLE tmp.ticketComponentCalculate
|
CREATE OR REPLACE TEMPORARY TABLE tmp.ticketComponentCalculate
|
||||||
(PRIMARY KEY (itemFk, warehouseFk))
|
(PRIMARY KEY (itemFk, warehouseFk))
|
||||||
ENGINE = MEMORY
|
ENGINE = MEMORY
|
||||||
|
@ -44,8 +57,7 @@ BEGIN
|
||||||
JOIN item i ON i.id = tl.itemFk
|
JOIN item i ON i.id = tl.itemFk
|
||||||
JOIN itemType it ON it.id = i.typeFk
|
JOIN itemType it ON it.id = i.typeFk
|
||||||
JOIN itemCategory ic ON ic.id = it.categoryFk
|
JOIN itemCategory ic ON ic.id = it.categoryFk
|
||||||
LEFT JOIN specialPrice sp ON sp.itemFk = i.id
|
LEFT JOIN tSpecialPrice sp ON sp.itemFk = i.id
|
||||||
AND sp.clientFk = vClientFk
|
|
||||||
LEFT JOIN (
|
LEFT JOIN (
|
||||||
SELECT * FROM (
|
SELECT * FROM (
|
||||||
SELECT pf.itemFk,
|
SELECT pf.itemFk,
|
||||||
|
@ -146,7 +158,7 @@ BEGIN
|
||||||
FROM tmp.ticketComponentBase tcb
|
FROM tmp.ticketComponentBase tcb
|
||||||
JOIN vn.component c2 ON c2.code = 'lastUnitsDiscount'
|
JOIN vn.component c2 ON c2.code = 'lastUnitsDiscount'
|
||||||
JOIN tmp.ticketComponentCalculate tcc ON tcc.itemFk = tcb.itemFk AND tcc.warehouseFk = tcb.warehouseFk
|
JOIN tmp.ticketComponentCalculate tcc ON tcc.itemFk = tcb.itemFk AND tcc.warehouseFk = tcb.warehouseFk
|
||||||
LEFT JOIN specialPrice sp ON sp.clientFk = vClientFk AND sp.itemFk = tcc.itemFk
|
LEFT JOIN tSpecialPrice sp ON sp.itemFk = tcc.itemFk
|
||||||
JOIN vn.item i ON i.id = tcb.itemFk
|
JOIN vn.item i ON i.id = tcb.itemFk
|
||||||
WHERE sp.value IS NULL
|
WHERE sp.value IS NULL
|
||||||
AND i.supplyResponseFk IS NULL;
|
AND i.supplyResponseFk IS NULL;
|
||||||
|
@ -169,7 +181,7 @@ BEGIN
|
||||||
FROM tmp.ticketComponentCalculate tcc
|
FROM tmp.ticketComponentCalculate tcc
|
||||||
JOIN vn.component c2 ON c2.code = 'salePerPackage'
|
JOIN vn.component c2 ON c2.code = 'salePerPackage'
|
||||||
JOIN buy b ON b.id = tcc.buyFk
|
JOIN buy b ON b.id = tcc.buyFk
|
||||||
LEFT JOIN specialPrice sp ON sp.clientFk = vClientFk AND sp.itemFk = tcc.itemFk
|
LEFT JOIN tSpecialPrice sp ON sp.itemFk = tcc.itemFk
|
||||||
WHERE sp.value IS NULL;
|
WHERE sp.value IS NULL;
|
||||||
|
|
||||||
CREATE OR REPLACE TEMPORARY TABLE tmp.`zone` (INDEX (id))
|
CREATE OR REPLACE TEMPORARY TABLE tmp.`zone` (INDEX (id))
|
||||||
|
@ -208,7 +220,7 @@ BEGIN
|
||||||
sp.value - SUM(tcc.cost) sumCost
|
sp.value - SUM(tcc.cost) sumCost
|
||||||
FROM tmp.ticketComponentCopy tcc
|
FROM tmp.ticketComponentCopy tcc
|
||||||
JOIN component c ON c.id = tcc.componentFk
|
JOIN component c ON c.id = tcc.componentFk
|
||||||
JOIN specialPrice sp ON sp.clientFk = vClientFK AND sp.itemFk = tcc.itemFk
|
JOIN tSpecialPrice sp ON sp.itemFk = tcc.itemFk
|
||||||
JOIN vn.component c2 ON c2.code = 'specialPrices'
|
JOIN vn.component c2 ON c2.code = 'specialPrices'
|
||||||
WHERE c.classRate IS NULL
|
WHERE c.classRate IS NULL
|
||||||
AND tcc.warehouseFk = vWarehouseFk
|
AND tcc.warehouseFk = vWarehouseFk
|
||||||
|
@ -289,6 +301,7 @@ BEGIN
|
||||||
tmp.ticketComponentSum,
|
tmp.ticketComponentSum,
|
||||||
tmp.ticketComponentBase,
|
tmp.ticketComponentBase,
|
||||||
tmp.ticketComponentRate,
|
tmp.ticketComponentRate,
|
||||||
tmp.ticketComponentCopy;
|
tmp.ticketComponentCopy,
|
||||||
|
tSpecialPrice;
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -30,6 +30,7 @@ BEGIN
|
||||||
DELETE IGNORE FROM expedition WHERE created < v26Months;
|
DELETE IGNORE FROM expedition WHERE created < v26Months;
|
||||||
DELETE FROM sms WHERE created < v18Months;
|
DELETE FROM sms WHERE created < v18Months;
|
||||||
DELETE FROM saleTracking WHERE created < v1Years;
|
DELETE FROM saleTracking WHERE created < v1Years;
|
||||||
|
DELETE FROM productionError WHERE dated < v1Years;
|
||||||
DELETE FROM ticketTracking WHERE created < v18Months;
|
DELETE FROM ticketTracking WHERE created < v18Months;
|
||||||
DELETE tobs FROM ticketObservation tobs
|
DELETE tobs FROM ticketObservation tobs
|
||||||
JOIN ticket t ON tobs.ticketFk = t.id
|
JOIN ticket t ON tobs.ticketFk = t.id
|
||||||
|
|
|
@ -169,7 +169,7 @@ BEGIN
|
||||||
AND vp.supplierFk = rd.supplierFk
|
AND vp.supplierFk = rd.supplierFk
|
||||||
AND vp.companyFk = rd.companyFk
|
AND vp.companyFk = rd.companyFk
|
||||||
AND vp.currencyFk = rd.currencyFk
|
AND vp.currencyFk = rd.currencyFk
|
||||||
WHERE vp.isPayment = FALSE;
|
WHERE NOT vp.isPayment;
|
||||||
|
|
||||||
SELECT vp.expirationId,
|
SELECT vp.expirationId,
|
||||||
vp.dated,
|
vp.dated,
|
||||||
|
@ -183,11 +183,15 @@ BEGIN
|
||||||
vp.isPayment,
|
vp.isPayment,
|
||||||
vp.isReconciled,
|
vp.isReconciled,
|
||||||
vp.endingBalance,
|
vp.endingBalance,
|
||||||
cr.amount clientRiskAmount
|
cr.amount clientRiskAmount,
|
||||||
|
co.CEE
|
||||||
FROM tPendingDuedates vp
|
FROM tPendingDuedates vp
|
||||||
LEFT JOIN supplier s ON s.id = vp.supplierFk
|
LEFT JOIN supplier s ON s.id = vp.supplierFk
|
||||||
LEFT JOIN client c ON c.fi = s.nif
|
LEFT JOIN client c ON c.fi = s.nif
|
||||||
LEFT JOIN clientRisk cr ON cr.clientFk = c.id
|
LEFT JOIN clientRisk cr ON cr.clientFk = c.id
|
||||||
|
LEFT JOIN supplierAccount sa ON sa.supplierFk = s.id
|
||||||
|
LEFT JOIN bankEntity be ON be.id = sa.bankEntityFk
|
||||||
|
LEFT JOIN country co ON co.id = be.countryFk
|
||||||
AND cr.companyFk = vp.companyFk;
|
AND cr.companyFk = vp.companyFk;
|
||||||
|
|
||||||
DROP TEMPORARY TABLE tOpeningBalances;
|
DROP TEMPORARY TABLE tOpeningBalances;
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`creditInsurance_getRisk`()
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Devuelve el riesgo de los clientes que estan asegurados
|
||||||
|
*/
|
||||||
|
CREATE OR REPLACE TEMPORARY TABLE tmp.client_list
|
||||||
|
(PRIMARY KEY (Id_Cliente))
|
||||||
|
ENGINE = MEMORY
|
||||||
|
SELECT * FROM (
|
||||||
|
SELECT cc.client Id_Cliente, ci.grade
|
||||||
|
FROM creditClassification cc
|
||||||
|
JOIN creditInsurance ci ON cc.id = ci.creditClassification
|
||||||
|
WHERE dateEnd IS NULL
|
||||||
|
ORDER BY ci.creationDate DESC
|
||||||
|
LIMIT 10000000000000000000) t1
|
||||||
|
GROUP BY Id_Cliente;
|
||||||
|
|
||||||
|
CALL vn2008.risk_vs_client_list(util.VN_CURDATE());
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
c.id,
|
||||||
|
c.name,
|
||||||
|
c.credit clientCredit,
|
||||||
|
c.creditInsurance solunion,
|
||||||
|
CAST(r.risk AS DECIMAL(10,0)) risk,
|
||||||
|
CAST(c.creditInsurance - r.risk AS DECIMAL(10,0)) riskAlive,
|
||||||
|
cac.invoiced billedAnnually,
|
||||||
|
c.dueDay,
|
||||||
|
ci.grade,
|
||||||
|
c2.country
|
||||||
|
FROM tmp.client_list ci
|
||||||
|
LEFT JOIN tmp.risk r ON r.Id_Cliente = ci.Id_Cliente
|
||||||
|
JOIN client c ON c.id = ci.Id_Cliente
|
||||||
|
JOIN bs.clientAnnualConsumption cac ON c.id = cac.clientFk
|
||||||
|
JOIN country c2 ON c2.id = c.countryFk
|
||||||
|
GROUP BY c.id;
|
||||||
|
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp.risk;
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp.client_list;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -0,0 +1,22 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`entry_checkBooked`(
|
||||||
|
vSelf INT
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Comprueba si una entrada está contabilizada,
|
||||||
|
* y si lo está retorna un throw.
|
||||||
|
*
|
||||||
|
* @param vSelf Id de entrada
|
||||||
|
*/
|
||||||
|
DECLARE vIsBooked BOOL;
|
||||||
|
|
||||||
|
SELECT isBooked INTO vIsBooked
|
||||||
|
FROM `entry`
|
||||||
|
WHERE id = vSelf;
|
||||||
|
|
||||||
|
IF vIsBooked THEN
|
||||||
|
CALL util.throw('Entry is already booked');
|
||||||
|
END IF;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -37,7 +37,7 @@ BEGIN
|
||||||
LEFT JOIN origin o ON o.id = i.originFk
|
LEFT JOIN origin o ON o.id = i.originFk
|
||||||
) ON it.id = i.typeFk
|
) ON it.id = i.typeFk
|
||||||
LEFT JOIN edi.ekt ek ON b.ektFk = ek.id
|
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;
|
DROP TEMPORARY TABLE IF EXISTS tmp.lastEntryOk;
|
||||||
CREATE TEMPORARY TABLE 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
|
JOIN tmp.lastEntryOkGroup eo ON eo.itemFk = lt.itemFk AND eo.warehouseFk = lt.warehouseFk
|
||||||
SET b.price2 = eo.price2 WHERE b.price2 = 0 ;
|
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
|
UPDATE buy b
|
||||||
JOIN tmp.lastEntry lt ON lt.buyFk = b.id
|
JOIN tmp.lastEntry lt ON lt.buyFk = b.id
|
||||||
JOIN tmp.lastEntryOkGroup eo ON eo.itemFk = lt.itemFk AND eo.warehouseFk = lt.warehouseFk
|
JOIN tmp.lastEntryOkGroup eo ON eo.itemFk = lt.itemFk AND eo.warehouseFk = lt.warehouseFk
|
||||||
|
|
|
@ -10,20 +10,15 @@ BEGIN
|
||||||
* @param vInvoiceInFk Id de factura recibida
|
* @param vInvoiceInFk Id de factura recibida
|
||||||
*/
|
*/
|
||||||
DECLARE vRate DOUBLE DEFAULT 1;
|
DECLARE vRate DOUBLE DEFAULT 1;
|
||||||
DECLARE vDated DATE;
|
|
||||||
DECLARE vExpenseFk VARCHAR(10);
|
DECLARE vExpenseFk VARCHAR(10);
|
||||||
|
|
||||||
SELECT MAX(rr.dated) INTO vDated
|
SELECT `value` INTO vRate
|
||||||
FROM referenceRate rr
|
FROM referenceRate rr
|
||||||
JOIN invoiceIn ii ON ii.id = vInvoiceInFk
|
JOIN invoiceIn ii ON ii.id = vInvoiceInFk
|
||||||
WHERE rr.dated <= ii.issued
|
WHERE rr.dated <= ii.issued
|
||||||
AND rr.currencyFk = ii.currencyFk;
|
AND rr.currencyFk = ii.currencyFk
|
||||||
|
ORDER BY dated DESC
|
||||||
IF vDated THEN
|
LIMIT 1;
|
||||||
SELECT `value` INTO vRate
|
|
||||||
FROM referenceRate
|
|
||||||
WHERE dated = vDated;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
DELETE FROM invoiceInTax WHERE invoiceInFk = vInvoiceInFk;
|
DELETE FROM invoiceInTax WHERE invoiceInFk = vInvoiceInFk;
|
||||||
|
|
||||||
|
|
|
@ -34,16 +34,22 @@ BEGIN
|
||||||
-- Rellena la tabla tmp.errorsByChecker con fallos de revisores
|
-- Rellena la tabla tmp.errorsByChecker con fallos de revisores
|
||||||
CREATE OR REPLACE TEMPORARY TABLE tmp.errorsByChecker
|
CREATE OR REPLACE TEMPORARY TABLE tmp.errorsByChecker
|
||||||
ENGINE = MEMORY
|
ENGINE = MEMORY
|
||||||
SELECT st.workerFk,
|
WITH rankedWorkers AS (
|
||||||
COUNT(t.id) errors
|
SELECT sm.id,
|
||||||
FROM saleMistake sm
|
st.workerFk,
|
||||||
JOIN saleTracking st ON sm.saleFk = st.saleFk
|
ROW_NUMBER() OVER(PARTITION BY sm.id ORDER BY s2.`order`) rnk
|
||||||
JOIN `state` s2 ON s2.id = st.stateFk
|
FROM vn.saleMistake sm
|
||||||
JOIN sale s ON s.id = sm.saleFk
|
JOIN vn.saleTracking st ON sm.saleFk = st.saleFk
|
||||||
JOIN ticket t on t.id = s.ticketFk
|
JOIN vn.`state` s2 ON s2.id = st.stateFk
|
||||||
WHERE (t.shipped BETWEEN vDatedFrom AND vDatedTo)
|
JOIN vn.sale s ON s.id = sm.saleFk
|
||||||
AND s2.code IN ('OK','PREVIOUS_PREPARATION','PREPARED','CHECKED')
|
JOIN vn.ticket t ON t.id = s.ticketFk
|
||||||
GROUP BY st.workerFk;
|
WHERE t.shipped BETWEEN vDatedFrom AND vDatedTo
|
||||||
|
AND s2.code IN ('OK', 'PREVIOUS_PREPARATION', 'PREPARED', 'CHECKED')
|
||||||
|
)
|
||||||
|
SELECT workerFk, COUNT(*) errors
|
||||||
|
FROM rankedWorkers
|
||||||
|
WHERE rnk = 1
|
||||||
|
GROUP BY workerFk;
|
||||||
|
|
||||||
-- Rellena la tabla tmp.expeditionErrors con fallos de expediciones
|
-- Rellena la tabla tmp.expeditionErrors con fallos de expediciones
|
||||||
CREATE OR REPLACE TEMPORARY TABLE tmp.expeditionErrors
|
CREATE OR REPLACE TEMPORARY TABLE tmp.expeditionErrors
|
||||||
|
|
|
@ -46,6 +46,7 @@ BEGIN
|
||||||
JOIN parking p ON p.id = sh.parkingFk
|
JOIN parking p ON p.id = sh.parkingFk
|
||||||
JOIN tmp.productionBuffer pb ON pb.ticketFk = s.ticketFk
|
JOIN tmp.productionBuffer pb ON pb.ticketFk = s.ticketFk
|
||||||
JOIN agencyMode am ON am.id = pb.agencyModeFk
|
JOIN agencyMode am ON am.id = pb.agencyModeFk
|
||||||
|
JOIN agency a ON a .id = am.agencyFk
|
||||||
LEFT JOIN routesMonitor rm ON rm.routeFk = pb.routeFk
|
LEFT JOIN routesMonitor rm ON rm.routeFk = pb.routeFk
|
||||||
LEFT JOIN saleGroupDetail sgd ON sgd.saleFk = s.id
|
LEFT JOIN saleGroupDetail sgd ON sgd.saleFk = s.id
|
||||||
LEFT JOIN ticketState ts ON ts.ticketFk = s.ticketFk
|
LEFT JOIN ticketState ts ON ts.ticketFk = s.ticketFk
|
||||||
|
@ -60,6 +61,7 @@ BEGIN
|
||||||
AND ((rm.bufferFk AND rm.isPickingAllowed)
|
AND ((rm.bufferFk AND rm.isPickingAllowed)
|
||||||
OR am.code = 'REC_ALG')
|
OR am.code = 'REC_ALG')
|
||||||
AND pb.shipped = vDated
|
AND pb.shipped = vDated
|
||||||
|
AND a.isOwn
|
||||||
GROUP BY s.id
|
GROUP BY s.id
|
||||||
ORDER BY etd;
|
ORDER BY etd;
|
||||||
|
|
||||||
|
|
|
@ -106,7 +106,7 @@ BEGIN
|
||||||
price)
|
price)
|
||||||
SELECT vTicketFk,
|
SELECT vTicketFk,
|
||||||
vNewItemFk,
|
vNewItemFk,
|
||||||
CEIL(vQuantity / vRoundQuantity) * vRoundQuantity, CONCAT('+ ',i.longName),
|
CEIL(vQuantity / vRoundQuantity) * vRoundQuantity, CONCAT('+ ', i.name),
|
||||||
vFinalPrice
|
vFinalPrice
|
||||||
FROM vn.item i
|
FROM vn.item i
|
||||||
WHERE id = vNewItemFk;
|
WHERE id = vNewItemFk;
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`solunionRiskRequest`()
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.client_list;
|
|
||||||
CREATE TEMPORARY TABLE tmp.client_list
|
|
||||||
(PRIMARY KEY (Id_Cliente))
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT * FROM (SELECT cc.client Id_Cliente, ci.grade FROM vn.creditClassification cc
|
|
||||||
JOIN vn.creditInsurance ci ON cc.id = ci.creditClassification
|
|
||||||
WHERE dateEnd IS NULL
|
|
||||||
ORDER BY ci.creationDate DESC
|
|
||||||
LIMIT 10000000000000000000) t1 GROUP BY Id_Cliente;
|
|
||||||
|
|
||||||
CALL vn2008.risk_vs_client_list(util.VN_CURDATE());
|
|
||||||
|
|
||||||
SELECT
|
|
||||||
c.Id_Cliente, c.Cliente, c.Credito credito_vn, c.creditInsurance solunion, cast(r.risk as DECIMAL(10,0)) riesgo_vivo,
|
|
||||||
cast(c.creditInsurance - r.risk as decimal(10,0)) margen_vivo,
|
|
||||||
f.Consumo consumo_anual, c.Vencimiento, ci.grade
|
|
||||||
FROM
|
|
||||||
vn2008.Clientes c
|
|
||||||
JOIN tmp.risk r ON r.Id_Cliente = c.Id_Cliente
|
|
||||||
JOIN tmp.client_list ci ON c.Id_Cliente = ci.Id_Cliente
|
|
||||||
JOIN bi.facturacion_media_anual f ON c.Id_Cliente = f.Id_Cliente
|
|
||||||
GROUP BY Id_cliente;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.risk;
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.client_list;
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -2,54 +2,9 @@ DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticketClon`(vTicketFk INT, vNewShipped DATE)
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticketClon`(vTicketFk INT, vNewShipped DATE)
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
||||||
DECLARE done INT DEFAULT FALSE;
|
|
||||||
DECLARE vNewTicketFk INT;
|
DECLARE vNewTicketFk INT;
|
||||||
DECLARE vOldSaleFk INT;
|
|
||||||
DECLARE vNewSaleFk INT;
|
|
||||||
|
|
||||||
DECLARE cur1 CURSOR FOR
|
CALL ticket_cloneAll(vTicketFk, vNewShipped, TRUE, vNewTicketFk);
|
||||||
SELECT id
|
|
||||||
FROM vn.sale
|
|
||||||
WHERE ticketFk = vTicketFk;
|
|
||||||
|
|
||||||
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
|
|
||||||
|
|
||||||
SET vNewShipped = IFNULL(vNewShipped, util.VN_CURDATE());
|
|
||||||
|
|
||||||
CALL vn.ticket_Clone(vTicketFk, vNewTicketFk);
|
|
||||||
|
|
||||||
UPDATE vn.ticket
|
|
||||||
SET landed = TIMESTAMPADD(DAY, DATEDIFF(vNewShipped, shipped), landed),
|
|
||||||
shipped = vNewShipped
|
|
||||||
WHERE id = vNewTicketFk;
|
|
||||||
|
|
||||||
OPEN cur1;
|
|
||||||
|
|
||||||
read_loop: LOOP
|
|
||||||
|
|
||||||
FETCH cur1 INTO vOldSaleFk;
|
|
||||||
|
|
||||||
IF done THEN
|
|
||||||
LEAVE read_loop;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
INSERT INTO vn.sale(ticketFk, itemFk, quantity, concept, price, discount, priceFixed, isPriceFixed)
|
|
||||||
SELECT vNewTicketFk, itemFk, quantity, concept, price, discount, priceFixed, isPriceFixed
|
|
||||||
FROM vn.sale
|
|
||||||
WHERE id = vOldSaleFk;
|
|
||||||
|
|
||||||
SELECT max(id) INTO vNewSaleFk
|
|
||||||
FROM vn.sale
|
|
||||||
WHERE ticketFk = vNewTicketFk;
|
|
||||||
|
|
||||||
INSERT INTO vn.saleComponent(saleFk, componentFk, value, isGreuge)
|
|
||||||
SELECT vNewSaleFk, componentFk, value, isGreuge
|
|
||||||
FROM vn.saleComponent
|
|
||||||
WHERE saleFk = vOldSaleFk;
|
|
||||||
|
|
||||||
END LOOP;
|
|
||||||
|
|
||||||
CLOSE cur1;
|
|
||||||
|
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_cloneAll`(vTicketFk INT, vNewShipped DATE, vWithWarehouse BOOLEAN, OUT vNewTicketFk INT)
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
DECLARE vDone BOOLEAN DEFAULT FALSE;
|
||||||
|
DECLARE vOldSaleFk INT;
|
||||||
|
DECLARE vNewSaleFk INT;
|
||||||
|
|
||||||
|
DECLARE cur1 CURSOR FOR
|
||||||
|
SELECT id
|
||||||
|
FROM sale
|
||||||
|
WHERE ticketFk = vTicketFk;
|
||||||
|
|
||||||
|
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
|
||||||
|
|
||||||
|
SET vNewShipped = IFNULL(vNewShipped, util.VN_CURDATE());
|
||||||
|
|
||||||
|
CALL ticket_Clone(vTicketFk, vNewTicketFk);
|
||||||
|
|
||||||
|
UPDATE ticket
|
||||||
|
SET landed = TIMESTAMPADD(DAY, DATEDIFF(vNewShipped, shipped), landed),
|
||||||
|
shipped = vNewShipped,
|
||||||
|
warehouseFk = IF(vWithWarehouse, warehouseFk, NULL)
|
||||||
|
WHERE id = vNewTicketFk;
|
||||||
|
|
||||||
|
OPEN cur1;
|
||||||
|
|
||||||
|
read_loop: LOOP
|
||||||
|
|
||||||
|
FETCH cur1 INTO vOldSaleFk;
|
||||||
|
|
||||||
|
IF vDone THEN
|
||||||
|
LEAVE read_loop;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
INSERT INTO sale(ticketFk, itemFk, quantity, concept, price, discount, priceFixed, isPriceFixed)
|
||||||
|
SELECT vNewTicketFk, itemFk, quantity, concept, price, discount, priceFixed, isPriceFixed
|
||||||
|
FROM sale
|
||||||
|
WHERE id = vOldSaleFk;
|
||||||
|
|
||||||
|
SELECT max(id) INTO vNewSaleFk
|
||||||
|
FROM sale
|
||||||
|
WHERE ticketFk = vNewTicketFk;
|
||||||
|
|
||||||
|
INSERT INTO saleComponent(saleFk, componentFk, value, isGreuge)
|
||||||
|
SELECT vNewSaleFk, componentFk, value, isGreuge
|
||||||
|
FROM saleComponent
|
||||||
|
WHERE saleFk = vOldSaleFk;
|
||||||
|
|
||||||
|
END LOOP;
|
||||||
|
|
||||||
|
CLOSE cur1;
|
||||||
|
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -1,4 +1,5 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`zone_getCollisions`()
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`zone_getCollisions`()
|
||||||
BEGIN
|
BEGIN
|
||||||
/**
|
/**
|
||||||
|
@ -10,6 +11,7 @@ BEGIN
|
||||||
DECLARE vZoneFk INT;
|
DECLARE vZoneFk INT;
|
||||||
DECLARE vIsDone INT DEFAULT FALSE;
|
DECLARE vIsDone INT DEFAULT FALSE;
|
||||||
DECLARE vTableCollisions TEXT;
|
DECLARE vTableCollisions TEXT;
|
||||||
|
DECLARE json_data JSON;
|
||||||
DECLARE cur1 CURSOR FOR SELECT zoneFk from tmp.zoneOption;
|
DECLARE cur1 CURSOR FOR SELECT zoneFk from tmp.zoneOption;
|
||||||
|
|
||||||
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vIsDone = TRUE;
|
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vIsDone = TRUE;
|
||||||
|
@ -77,45 +79,26 @@ BEGIN
|
||||||
GROUP BY z.agencyModeFk, zn.geoFk, zw.warehouseFk
|
GROUP BY z.agencyModeFk, zn.geoFk, zw.warehouseFk
|
||||||
HAVING count(*) > 1;
|
HAVING count(*) > 1;
|
||||||
|
|
||||||
SELECT '<table cellspacing="10">
|
-- Recojo los datos de la zona que ha dado conflicto
|
||||||
<tr>
|
SELECT JSON_ARRAYAGG(
|
||||||
<th>C.Postal</th>
|
JSON_OBJECT(
|
||||||
<th>Número de zona</th>
|
'zoneFk', zoneFk,
|
||||||
<th>Precio</th>
|
'zn', JSON_OBJECT('name', zn.name),
|
||||||
<th>Zona</th>
|
'z', JSON_OBJECT('name', z.name,'price', z.price),
|
||||||
<th>Almacén</th>
|
'w', JSON_OBJECT('name', w.name)
|
||||||
<th>Salix</th>
|
)
|
||||||
</tr>' INTO vTableCollisions;
|
) FROM tmp.zoneNodes zn
|
||||||
|
|
||||||
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 ''),
|
|
||||||
'</table>') body
|
|
||||||
FROM(SELECT
|
|
||||||
CONCAT('<tr>
|
|
||||||
<td>', zn.name, '</td>
|
|
||||||
<td>', zoneFk,'</td>
|
|
||||||
<td>', z.price,'</td>
|
|
||||||
<td>', z.name,'</td>
|
|
||||||
<td>', w.name, '</td>
|
|
||||||
<td>', CONCAT('<a href="https://salix.verdnatura.es/#!/zone/',
|
|
||||||
zoneFk,
|
|
||||||
'/location?q=%7B%22search%22:%22',
|
|
||||||
zn.name,
|
|
||||||
'%22%7D">'
|
|
||||||
'https://salix.verdnatura.es/#!/zone/',
|
|
||||||
zoneFk,
|
|
||||||
'/location?q=%7B%22search%22:%22',
|
|
||||||
zn.name,
|
|
||||||
'%22%7D</a>'),'</td>
|
|
||||||
</tr>') td
|
|
||||||
FROM tmp.zoneNodes zn
|
|
||||||
JOIN zone z ON z.id = zn.zoneFk
|
JOIN zone z ON z.id = zn.zoneFk
|
||||||
JOIN geoCollision gc ON gc.agencyModeFk = z.agencyModeFk AND zn.geoFk = gc.geoFk
|
JOIN geoCollision gc ON gc.agencyModeFk = z.agencyModeFk AND zn.geoFk = gc.geoFk
|
||||||
JOIN warehouse w ON w.id = gc.warehouseFk) sub;
|
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
|
DROP TEMPORARY TABLE
|
||||||
geoCollision,
|
geoCollision,
|
||||||
|
|
|
@ -3,6 +3,7 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`buy_beforeDelete`
|
||||||
BEFORE DELETE ON `buy`
|
BEFORE DELETE ON `buy`
|
||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
|
CALL entry_checkBooked(OLD.entryFk);
|
||||||
IF OLD.printedStickers <> 0 THEN
|
IF OLD.printedStickers <> 0 THEN
|
||||||
CALL util.throw("it is not possible to delete buys with printed labels ");
|
CALL util.throw("it is not possible to delete buys with printed labels ");
|
||||||
END IF;
|
END IF;
|
||||||
|
|
|
@ -9,17 +9,26 @@ trig: BEGIN
|
||||||
DECLARE vGroupingMode TINYINT;
|
DECLARE vGroupingMode TINYINT;
|
||||||
DECLARE vGenericFk INT;
|
DECLARE vGenericFk INT;
|
||||||
DECLARE vGenericInDate BOOL;
|
DECLARE vGenericInDate BOOL;
|
||||||
|
DECLARE vBuyerFk INT;
|
||||||
|
|
||||||
IF @isModeInventory THEN
|
IF @isModeInventory THEN
|
||||||
LEAVE trig;
|
LEAVE trig;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
|
CALL entry_checkBooked(NEW.entryFk);
|
||||||
IF NEW.printedStickers <> 0 THEN
|
IF NEW.printedStickers <> 0 THEN
|
||||||
CALL util.throw('it is not possible to create buy lines with printedstickers other than 0');
|
CALL util.throw('it is not possible to create buy lines with printedstickers other than 0');
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
SET NEW.editorFk = account.myUser_getId();
|
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`);
|
CALL buy_checkGrouping(NEW.`grouping`);
|
||||||
|
|
||||||
SELECT t.warehouseInFk, t.landed
|
SELECT t.warehouseInFk, t.landed
|
||||||
|
|
|
@ -7,11 +7,13 @@ trig:BEGIN
|
||||||
DECLARE vGenericInDate BOOL;
|
DECLARE vGenericInDate BOOL;
|
||||||
DECLARE vIsInventory BOOL;
|
DECLARE vIsInventory BOOL;
|
||||||
DECLARE vDefaultEntry INT;
|
DECLARE vDefaultEntry INT;
|
||||||
|
DECLARE vBuyerFk INT;
|
||||||
|
|
||||||
IF @isTriggerDisabled THEN
|
IF @isTriggerDisabled THEN
|
||||||
LEAVE trig;
|
LEAVE trig;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
|
CALL entry_checkBooked(OLD.entryFk);
|
||||||
SET NEW.editorFk = account.myUser_getId();
|
SET NEW.editorFk = account.myUser_getId();
|
||||||
|
|
||||||
SELECT defaultEntry INTO vDefaultEntry
|
SELECT defaultEntry INTO vDefaultEntry
|
||||||
|
@ -65,6 +67,15 @@ trig:BEGIN
|
||||||
SET NEW.isIgnored = TRUE;
|
SET NEW.isIgnored = TRUE;
|
||||||
END IF;
|
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
|
IF NOT (NEW.itemFk <=> OLD.itemFk) OR
|
||||||
NOT (OLD.entryFk <=> NEW.entryFk) THEN
|
NOT (OLD.entryFk <=> NEW.entryFk) THEN
|
||||||
CREATE OR REPLACE TEMPORARY TABLE tmp.buysToCheck
|
CREATE OR REPLACE TEMPORARY TABLE tmp.buysToCheck
|
||||||
|
|
|
@ -3,6 +3,7 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`entry_beforeDelete`
|
||||||
BEFORE DELETE ON `entry`
|
BEFORE DELETE ON `entry`
|
||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
|
CALL entry_checkBooked(OLD.id);
|
||||||
DELETE FROM buy WHERE entryFk = OLD.id;
|
DELETE FROM buy WHERE entryFk = OLD.id;
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -7,6 +7,10 @@ BEGIN
|
||||||
DECLARE vPrintedCount INT;
|
DECLARE vPrintedCount INT;
|
||||||
DECLARE vHasDistinctWarehouses BOOL;
|
DECLARE vHasDistinctWarehouses BOOL;
|
||||||
|
|
||||||
|
IF NEW.isBooked = OLD.isBooked THEN
|
||||||
|
CALL entry_checkBooked(OLD.id);
|
||||||
|
END IF;
|
||||||
|
|
||||||
SET NEW.editorFk = account.myUser_getId();
|
SET NEW.editorFk = account.myUser_getId();
|
||||||
|
|
||||||
IF NOT (NEW.travelFk <=> OLD.travelFk) THEN
|
IF NOT (NEW.travelFk <=> OLD.travelFk) THEN
|
||||||
|
|
|
@ -8,5 +8,6 @@ BEGIN
|
||||||
`changedModel` = 'zoneIncluded',
|
`changedModel` = 'zoneIncluded',
|
||||||
`changedModelId` = OLD.zoneFk,
|
`changedModelId` = OLD.zoneFk,
|
||||||
`userFk` = account.myUser_getId();
|
`userFk` = account.myUser_getId();
|
||||||
|
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -4,5 +4,6 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`zoneIncluded_beforeIn
|
||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
SET NEW.editorFk = account.myUser_getId();
|
SET NEW.editorFk = account.myUser_getId();
|
||||||
|
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -4,5 +4,6 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`zoneIncluded_beforeUp
|
||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
SET NEW.editorFk = account.myUser_getId();
|
SET NEW.editorFk = account.myUser_getId();
|
||||||
|
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -12,5 +12,5 @@ FROM (
|
||||||
`pc`.`id` = `b`.`workerBusinessProfessionalCategoryFk`
|
`pc`.`id` = `b`.`workerBusinessProfessionalCategoryFk`
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
WHERE `pc`.`name` = 'Aux ventas'
|
WHERE `pc`.`description` = 'Aux ventas'
|
||||||
GROUP BY `b`.`workerFk`
|
GROUP BY `b`.`workerFk`
|
||||||
|
|
|
@ -1,61 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`add_awb_component`(IN vAwbFk SMALLINT)
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
DECLARE vShipped DATE;
|
|
||||||
DECLARE vHasStems BOOLEAN;
|
|
||||||
|
|
||||||
SELECT t.shipped, IF(a.stems, TRUE, FALSE)
|
|
||||||
INTO vShipped, vHasStems
|
|
||||||
FROM vn.travel t
|
|
||||||
JOIN vn.awb a ON a.id = t.awbFk
|
|
||||||
WHERE awbFk = vAwbFk
|
|
||||||
LIMIT 1;
|
|
||||||
|
|
||||||
INSERT IGNORE INTO awb_component (awb_id,Id_Proveedor,awb_component_type_id,awb_role_id,awb_unit_id,value,Id_Moneda)
|
|
||||||
SELECT id, Id_Proveedor, awb_component_type_id, awb_role_id,awb_unit_id, LEAST(GREATEST(value1, IFNULL(min_value, value1)), IFNULL(max_value, value1)), Id_Moneda
|
|
||||||
FROM (
|
|
||||||
SELECT a.id,
|
|
||||||
IFNULL(act.carguera_id,
|
|
||||||
CASE awb_role_id
|
|
||||||
WHEN 1 THEN a.carguera_id
|
|
||||||
WHEN 2 THEN a.transitario_id
|
|
||||||
WHEN 3 THEN f.airline_id
|
|
||||||
END
|
|
||||||
) Id_Proveedor,
|
|
||||||
act.awb_component_type_id,
|
|
||||||
act.awb_role_id,
|
|
||||||
act.awb_unit_id,
|
|
||||||
value *
|
|
||||||
CASE awb_unit_id
|
|
||||||
WHEN '1000Tj-20' THEN ((CAST(stems AS SIGNED) - 20000)/1000) + (min_value / value)
|
|
||||||
WHEN '1000Tj-10' THEN ((CAST(stems AS SIGNED) - 10000)/1000) + (min_value / value)
|
|
||||||
WHEN '100GW' THEN peso/100
|
|
||||||
WHEN 'AWB' THEN 1 -- No action
|
|
||||||
WHEN 'FB' THEN hb/2
|
|
||||||
WHEN 'GW' THEN peso
|
|
||||||
WHEN 'TW' THEN GREATEST(peso,volume_weight)
|
|
||||||
WHEN 'PN' THEN LEAST(90, value + a.propertyNumber * 10)
|
|
||||||
END value1,
|
|
||||||
value,
|
|
||||||
act.Id_Moneda,
|
|
||||||
act.min_value,
|
|
||||||
act.max_value
|
|
||||||
FROM awb a
|
|
||||||
JOIN flight f ON f.flight_id = a.flight_id
|
|
||||||
LEFT JOIN awb_component_template act ON
|
|
||||||
((IFNULL(act.carguera_id, a.carguera_id) = a.carguera_id AND awb_role_id = 1)
|
|
||||||
OR (IFNULL(act.carguera_id, a.transitario_id) = a.transitario_id AND awb_role_id = 2)
|
|
||||||
OR (IFNULL(act.airline_id, f.airline_id) = f.airline_id AND awb_role_id = 3)
|
|
||||||
OR (awb_role_id = 4))
|
|
||||||
AND IFNULL(act.airport_out, f.airport_out) = f.airport_out
|
|
||||||
AND IFNULL(act.airport_in, f.airport_in) = f.airport_in
|
|
||||||
AND IFNULL(act.airline_id, f.airline_id) = f.airline_id
|
|
||||||
AND INSTR(IFNULL(act.days, WEEKDAY(vShipped) + 1),WEEKDAY(vShipped) + 1)
|
|
||||||
JOIN awb_component_type acty ON acty.awb_component_type_id = act.awb_component_type_id
|
|
||||||
WHERE a.id = vAwbFk AND Fecha <= vShipped
|
|
||||||
AND (vHasStems = TRUE OR acty.hasStems)
|
|
||||||
ORDER BY Fecha DESC, act.days DESC LIMIT 10000000000000000000
|
|
||||||
) t;
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,50 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`agencyModeImbalance`(vStarted DATE, vEnded DATE)
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Devuelve el valor de los precios teorico, practico de las agencias
|
|
||||||
* y si ademas es de mrw lo compara con su fichero previamente procesado
|
|
||||||
*
|
|
||||||
* @param vEktFk Identificador de edi.ekt
|
|
||||||
*/
|
|
||||||
DECLARE vEndedDayEnd DATETIME;
|
|
||||||
|
|
||||||
SET vEndedDayEnd = util.dayEnd(vEnded);
|
|
||||||
|
|
||||||
SELECT t.id ticketFk,t.addressFk,
|
|
||||||
CAST(v.amount AS DECIMAL (10,2)) AS VN,
|
|
||||||
CAST(v.amount - e.shipping_charge AS DECIMAL (10,2)) AS Difer,
|
|
||||||
CAST(mrwPrice AS DECIMAL (10,2)) mrwPrice,
|
|
||||||
CAST(e.shipping_charge - mrwPrice AS DECIMAL (10,2)) mrwDifference,
|
|
||||||
CAST(e.shipping_charge AS DECIMAL (10,2)) AS teorico,
|
|
||||||
CAST(e.extraCharge AS DECIMAL (10,2)) AS extraCharge,
|
|
||||||
t.packages, t.clientFk,
|
|
||||||
t.zoneFk, a.provinceFk, mrwCount
|
|
||||||
FROM vn.ticket t
|
|
||||||
LEFT JOIN
|
|
||||||
(SELECT ticketFk, SUM(amount) amount, fc.shipped
|
|
||||||
FROM vn.sale_freightComponent fc
|
|
||||||
JOIN vn.ticket t ON t.id = fc.ticketFk
|
|
||||||
JOIN tmp.agencyMode am ON am.agencyModeFk = t.agencyModeFk
|
|
||||||
WHERE fc.shipped BETWEEN vStarted AND vEndedDayEnd
|
|
||||||
GROUP BY ticketFk) v ON t.id = v.ticketFk
|
|
||||||
LEFT JOIN (SELECT t.id,
|
|
||||||
SUM(t.zonePrice) shipping_charge,
|
|
||||||
SUM(IFNULL(aex.price,0)) extraCharge
|
|
||||||
FROM vn.ticket t
|
|
||||||
LEFT JOIN vn.expedition e ON e.ticketFk = t.id
|
|
||||||
LEFT JOIN vn.packaging p ON p.id = e.packagingFk
|
|
||||||
JOIN tmp.agencyMode amc ON amc.agencyModeFk = t.agencyModeFk
|
|
||||||
JOIN vn.agencyMode am ON am.id = amc.agencyModeFk
|
|
||||||
LEFT JOIN vn.agencyExtraCharge aex ON p.width+p.depth+p.height BETWEEN aex.sizeMin AND aex.sizeMax AND aex.agencyFk = am.agencyFk
|
|
||||||
WHERE t.shipped BETWEEN vStarted AND vEndedDayEnd
|
|
||||||
GROUP BY t.id
|
|
||||||
) e ON t.id = e.id
|
|
||||||
LEFT JOIN (SELECT ticketFk, SUM(price) mrwPrice, COUNT(*) mrwCount
|
|
||||||
FROM vn.mrw
|
|
||||||
GROUP BY ticketFk) mrw ON mrw.ticketFk = t.id
|
|
||||||
JOIN vn.address a ON a.id = t.addressFk
|
|
||||||
JOIN tmp.agencyMode am ON am.agencyModeFk = t.agencyModeFk
|
|
||||||
WHERE t.shipped BETWEEN vStarted AND vEndedDayEnd;
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,91 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`historico_absoluto`(IN idART INT, IN wh INT, IN datfecha DATETIME)
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
DECLARE inv_calculado INT;
|
|
||||||
DECLARE inv INT;
|
|
||||||
DECLARE today DATETIME;
|
|
||||||
DECLARE fecha_inv DATETIME;
|
|
||||||
|
|
||||||
SET today = util.VN_CURDATE();
|
|
||||||
|
|
||||||
CREATE OR REPLACE TEMPORARY TABLE historico_pasado
|
|
||||||
SELECT *
|
|
||||||
FROM (
|
|
||||||
SELECT TR.landing Fecha,
|
|
||||||
C.Cantidad Entrada,
|
|
||||||
NULL Salida,
|
|
||||||
(TR.received != FALSE) OK,
|
|
||||||
P.Proveedor Alias,
|
|
||||||
E.Referencia Referencia,
|
|
||||||
E.Id_Entrada id,
|
|
||||||
TR.delivered F5
|
|
||||||
FROM Compres C -- mirar perque no entra en received
|
|
||||||
INNER JOIN Entradas E USING (Id_Entrada)
|
|
||||||
INNER JOIN travel TR ON TR.id = E.travel_id
|
|
||||||
INNER JOIN Proveedores P USING (Id_Proveedor)
|
|
||||||
WHERE TR.landing >= '2001-01-01'
|
|
||||||
AND Id_proveedor <> 4
|
|
||||||
AND wh IN (TR.warehouse_id , 0)
|
|
||||||
AND C.Id_Article = idART
|
|
||||||
AND E.Inventario = 0
|
|
||||||
AND E.Redada = 0
|
|
||||||
UNION ALL
|
|
||||||
SELECT TR.shipment Fecha,
|
|
||||||
NULL Entrada,
|
|
||||||
C.Cantidad Salida,
|
|
||||||
TR.delivered OK,
|
|
||||||
P.Proveedor Alias,
|
|
||||||
E.Referencia Referencia,
|
|
||||||
E.Id_Entrada id,
|
|
||||||
TR.delivered F5
|
|
||||||
FROM Compres C
|
|
||||||
INNER JOIN Entradas E USING (Id_Entrada)
|
|
||||||
INNER JOIN travel TR ON TR.id = E.travel_id
|
|
||||||
INNER JOIN Proveedores P USING (Id_Proveedor)
|
|
||||||
WHERE TR.shipment >= '2001-01-01'
|
|
||||||
AND wh = TR.warehouse_id_out
|
|
||||||
AND Id_Proveedor <> 4
|
|
||||||
AND C.Id_Article = idART
|
|
||||||
AND E.Inventario = 0
|
|
||||||
AND E.Redada = 0
|
|
||||||
UNION ALL
|
|
||||||
SELECT T.Fecha Fecha,
|
|
||||||
NULL Entrada,
|
|
||||||
M.Cantidad Salida,
|
|
||||||
(M.OK <> 0 OR T.Etiquetasemitidas <> 0 OR T.Factura IS NOT NULL) OK,
|
|
||||||
T.Alias Alias,
|
|
||||||
T.Factura Referencia,
|
|
||||||
T.Id_Ticket,
|
|
||||||
T.PedidoImpreso
|
|
||||||
FROM Movimientos M
|
|
||||||
INNER JOIN Tickets T USING (Id_Ticket)
|
|
||||||
JOIN Clientes C ON C.Id_Cliente = T.Id_Cliente
|
|
||||||
WHERE T.Fecha >= '2001-01-01'
|
|
||||||
AND M.Id_Article = idART
|
|
||||||
AND wh IN (T.warehouse_id , 0)
|
|
||||||
) t1
|
|
||||||
ORDER BY Fecha, Entrada DESC, OK DESC;
|
|
||||||
|
|
||||||
SELECT sum(Entrada) - sum(Salida) INTO inv_calculado
|
|
||||||
FROM historico_pasado
|
|
||||||
WHERE Fecha < datfecha;
|
|
||||||
|
|
||||||
SELECT p1.*, NULL v_virtual
|
|
||||||
FROM(
|
|
||||||
SELECT datfecha Fecha,
|
|
||||||
inv_calculado Entrada,
|
|
||||||
NULL Salida,
|
|
||||||
1 OK,
|
|
||||||
'Inventario calculado' Alias,
|
|
||||||
'' Referencia, 0 id,
|
|
||||||
1 F5
|
|
||||||
UNION ALL
|
|
||||||
SELECT *
|
|
||||||
FROM historico_pasado
|
|
||||||
WHERE Fecha >= datfecha
|
|
||||||
) p1;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE historico_pasado;
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,206 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`historico_multiple`(IN vItemFk INT)
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
DECLARE vDateInventory DATETIME;
|
|
||||||
|
|
||||||
SELECT Fechainventario INTO vDateInventory FROM tblContadores;
|
|
||||||
|
|
||||||
SET @a = 0;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS hm1;
|
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE hm1
|
|
||||||
SELECT DATE(Fecha) as Fecha,
|
|
||||||
Entrada,
|
|
||||||
Salida,
|
|
||||||
OK,
|
|
||||||
Referencia,
|
|
||||||
Historia.id,
|
|
||||||
|
|
||||||
wh,
|
|
||||||
|
|
||||||
`name` as wh_name
|
|
||||||
|
|
||||||
FROM
|
|
||||||
|
|
||||||
( SELECT TR.landing as Fecha,
|
|
||||||
C.Cantidad as Entrada,
|
|
||||||
NULL as Salida,
|
|
||||||
|
|
||||||
IF(warehouse_id = 44, 1, warehouse_id) as wh,
|
|
||||||
(TR.received != FALSE) as OK,
|
|
||||||
E.Referencia as Referencia,
|
|
||||||
E.Id_Entrada as id
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
FROM Compres C
|
|
||||||
INNER JOIN Entradas E USING (Id_Entrada)
|
|
||||||
INNER JOIN travel TR ON TR.id = E.travel_id
|
|
||||||
WHERE TR.landing >= vDateInventory
|
|
||||||
AND C.Id_Article = vItemFk
|
|
||||||
AND E.Redada = 0
|
|
||||||
|
|
||||||
AND C.Cantidad <> 0
|
|
||||||
|
|
||||||
UNION ALL
|
|
||||||
|
|
||||||
SELECT TR.shipment as Fecha,
|
|
||||||
NULL as Entrada,
|
|
||||||
C.Cantidad as Salida,
|
|
||||||
warehouse_id_out as wh,
|
|
||||||
TR.delivered as OK,
|
|
||||||
E.Referencia as Referencia,
|
|
||||||
E.Id_Entrada as id
|
|
||||||
|
|
||||||
FROM Compres C
|
|
||||||
INNER JOIN Entradas E USING (Id_Entrada)
|
|
||||||
INNER JOIN travel TR ON TR.id = E.travel_id
|
|
||||||
WHERE TR.shipment >= vDateInventory
|
|
||||||
AND C.Id_Article = vItemFk
|
|
||||||
|
|
||||||
AND E.Redada = 0
|
|
||||||
|
|
||||||
AND C.Cantidad <> 0
|
|
||||||
|
|
||||||
UNION ALL
|
|
||||||
|
|
||||||
SELECT T.Fecha as Fecha,
|
|
||||||
NULL as Entrada,
|
|
||||||
M.Cantidad as Salida,
|
|
||||||
warehouse_id as wh,
|
|
||||||
(M.OK <> 0 OR T.Etiquetasemitidas <> 0 OR T.Factura IS NOT NULL) as OK,
|
|
||||||
T.Factura as Referencia,
|
|
||||||
T.Id_Ticket as id
|
|
||||||
|
|
||||||
FROM Movimientos M
|
|
||||||
INNER JOIN Tickets T USING (Id_Ticket)
|
|
||||||
WHERE T.Fecha >= vDateInventory
|
|
||||||
AND M.Id_Article = vItemFk
|
|
||||||
|
|
||||||
) AS Historia
|
|
||||||
|
|
||||||
INNER JOIN warehouse ON warehouse.id = Historia.wh
|
|
||||||
ORDER BY Fecha, Entrada DESC, OK DESC;
|
|
||||||
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS hm2;
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS hm3;
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS hm4;
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS hm5;
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS hm6;
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS hm7;
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS hm8;
|
|
||||||
CREATE TEMPORARY TABLE hm2 SELECT * FROM hm1 WHERE wh = 19;
|
|
||||||
CREATE TEMPORARY TABLE hm3 SELECT * FROM hm1 WHERE wh = 7;
|
|
||||||
CREATE TEMPORARY TABLE hm4 SELECT * FROM hm1 WHERE wh = 60;
|
|
||||||
CREATE TEMPORARY TABLE hm5 SELECT * FROM hm1 WHERE wh = 5;
|
|
||||||
CREATE TEMPORARY TABLE hm6 SELECT * FROM hm1 WHERE wh = 17;
|
|
||||||
CREATE TEMPORARY TABLE hm7 SELECT * FROM hm1 WHERE wh = 37;
|
|
||||||
CREATE TEMPORARY TABLE hm8 SELECT * FROM hm1 WHERE wh = 55;
|
|
||||||
|
|
||||||
SELECT * FROM
|
|
||||||
|
|
||||||
(
|
|
||||||
|
|
||||||
SELECT Fecha, Entrada as BOGEntrada, Salida as BOGSalida, OK as BOGOK, Referencia as BOGReferencia, id as BOGid,
|
|
||||||
|
|
||||||
NULL AS VNHEntrada, NULL AS VNHSalida, NULL AS VNHOK, NULL AS VNHReferencia, NULL AS VNHid,
|
|
||||||
|
|
||||||
NULL AS ALGEntrada, NULL AS ALGSalida, NULL AS ALGOK, NULL AS ALGReferencia, NULL AS ALGid,
|
|
||||||
|
|
||||||
NULL AS MADEntrada, NULL AS MADSalida, NULL AS MADOK, NULL AS MADReferencia, NULL AS MADid,
|
|
||||||
|
|
||||||
NULL AS MCFEntrada, NULL AS MCFSalida, NULL AS MCFOK, NULL AS MCFReferencia, NULL AS MCFid,
|
|
||||||
|
|
||||||
NULL AS VILEntrada, NULL AS VILSalida, NULL AS VILOK, NULL AS VILReferencia, NULL AS VILid,
|
|
||||||
|
|
||||||
NULL AS BAREntrada, NULL AS BARSalida, NULL AS BAROK, NULL AS BARReferencia, NULL AS BARid
|
|
||||||
|
|
||||||
FROM hm2
|
|
||||||
|
|
||||||
|
|
||||||
UNION ALL
|
|
||||||
|
|
||||||
SELECT Fecha
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
,Entrada, Salida, OK, Referencia, id
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
FROM hm3
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
UNION ALL
|
|
||||||
|
|
||||||
SELECT Fecha
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
, Entrada, Salida, OK, Referencia, id
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
FROM hm4
|
|
||||||
|
|
||||||
UNION ALL
|
|
||||||
|
|
||||||
SELECT Fecha
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
, Entrada, Salida, OK, Referencia, id
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
FROM hm5
|
|
||||||
|
|
||||||
UNION ALL
|
|
||||||
|
|
||||||
SELECT Fecha
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
, Entrada, Salida, OK, Referencia, id
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
FROM hm6
|
|
||||||
|
|
||||||
UNION ALL
|
|
||||||
|
|
||||||
SELECT Fecha
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
, Entrada, Salida, OK, Referencia, id
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
|
|
||||||
|
|
||||||
FROM hm7
|
|
||||||
|
|
||||||
UNION ALL
|
|
||||||
|
|
||||||
SELECT Fecha
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
, NULL, NULL, NULL, NULL, NULL
|
|
||||||
, Entrada, Salida, OK, Referencia, id
|
|
||||||
|
|
||||||
FROM hm8
|
|
||||||
|
|
||||||
) sub
|
|
||||||
|
|
||||||
ORDER BY Fecha, BOGEntrada IS NULL, VNHEntrada IS NULL, ALGEntrada IS NULL, MADEntrada IS NULL, MCFEntrada IS NULL, VILEntrada IS NULL, BAREntrada IS NULL;
|
|
||||||
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -5,7 +5,6 @@ AS SELECT `c`.`id` AS `id`,
|
||||||
`c`.`code` AS `abbreviation`,
|
`c`.`code` AS `abbreviation`,
|
||||||
`c`.`supplierAccountFk` AS `Id_Proveedores_account`,
|
`c`.`supplierAccountFk` AS `Id_Proveedores_account`,
|
||||||
`c`.`workerManagerFk` AS `gerente_id`,
|
`c`.`workerManagerFk` AS `gerente_id`,
|
||||||
`c`.`sage200Company` AS `digito_factura`,
|
|
||||||
`c`.`phytosanitary` AS `phytosanitary`,
|
`c`.`phytosanitary` AS `phytosanitary`,
|
||||||
`c`.`companyCode` AS `CodigoEmpresa`,
|
`c`.`companyCode` AS `CodigoEmpresa`,
|
||||||
`c`.`companyGroupFk` AS `empresa_grupo`,
|
`c`.`companyGroupFk` AS `empresa_grupo`,
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
ALTER TABLE vn.buy ADD buyerFk int(10) unsigned DEFAULT NULL NULL;
|
|
@ -0,0 +1 @@
|
||||||
|
ALTER TABLE util.notification MODIFY COLUMN id int(11) auto_increment NOT NULL;
|
|
@ -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";
|
|
@ -0,0 +1,14 @@
|
||||||
|
|
||||||
|
CREATE SCHEMA IF NOT EXISTS `floranet`;
|
||||||
|
|
||||||
|
CREATE ROLE IF NOT EXISTS 'floranet' ;
|
||||||
|
|
||||||
|
GRANT Create temporary tables ON floranet.* TO 'floranet';
|
||||||
|
|
||||||
|
GRANT Execute ON floranet.* TO 'floranet';
|
||||||
|
|
||||||
|
GRANT Lock tables ON floranet.* TO 'floranet';
|
||||||
|
|
||||||
|
CREATE USER IF NOT EXISTS 'floranet'@'%';
|
||||||
|
|
||||||
|
GRANT floranet TO floranet@'%';
|
|
@ -0,0 +1,61 @@
|
||||||
|
CREATE OR REPLACE TABLE floranet.`builder` (
|
||||||
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
`itemFk` int(11) NOT NULL,
|
||||||
|
`elementFk` int(11) NOT NULL,
|
||||||
|
`quantity` int(10) unsigned NOT NULL DEFAULT 1,
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `builder_FK` (`itemFk`),
|
||||||
|
KEY `builder_FK_1` (`elementFk`),
|
||||||
|
CONSTRAINT `builder_FK` FOREIGN KEY (`itemFk`) REFERENCES `vn`.`item` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='Links handmade products with their elements';
|
||||||
|
|
||||||
|
CREATE OR REPLACE TABLE floranet.`element` (
|
||||||
|
`itemFk` int(11) NOT NULL,
|
||||||
|
`typeFk` smallint(5) unsigned DEFAULT NULL,
|
||||||
|
`size` int(11) DEFAULT NULL,
|
||||||
|
`inkFk` char(3) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL,
|
||||||
|
`originFk` tinyint(2) unsigned DEFAULT NULL,
|
||||||
|
`name` varchar(30) DEFAULT NULL,
|
||||||
|
`quantity` int(11) NOT NULL DEFAULT 1,
|
||||||
|
PRIMARY KEY (`itemFk`),
|
||||||
|
KEY `element_FK` (`itemFk`),
|
||||||
|
KEY `element_FK_1` (`typeFk`),
|
||||||
|
KEY `element_FK_2` (`inkFk`),
|
||||||
|
KEY `element_FK_3` (`originFk`),
|
||||||
|
CONSTRAINT `element_FK` FOREIGN KEY (`itemFk`) REFERENCES `vn`.`item` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
|
CONSTRAINT `element_FK_1` FOREIGN KEY (`typeFk`) REFERENCES `vn`.`itemType` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
|
CONSTRAINT `element_FK_2` FOREIGN KEY (`inkFk`) REFERENCES `vn`.`ink` (`id`) ON UPDATE CASCADE,
|
||||||
|
CONSTRAINT `element_FK_3` FOREIGN KEY (`originFk`) REFERENCES `vn`.`origin` (`id`) ON UPDATE CASCADE
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='Filtro para localizar posibles items que coincidan con la descripción';
|
||||||
|
|
||||||
|
ALTER TABLE floranet.builder ADD CONSTRAINT `builder_FK_1` FOREIGN KEY (`elementFk`) REFERENCES `element` (`itemFk`) ON UPDATE CASCADE;
|
||||||
|
|
||||||
|
CREATE OR REPLACE TABLE floranet.catalogue
|
||||||
|
(id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
name VARCHAR(50),
|
||||||
|
price DECIMAL(10,2) NOT NULL,
|
||||||
|
itemFk INT NOT NULL,
|
||||||
|
dated DATE,
|
||||||
|
postalCode VARCHAR(12),
|
||||||
|
`type` VARCHAR(50),
|
||||||
|
image VARCHAR(255),
|
||||||
|
description TEXT,
|
||||||
|
created TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
payed DATETIME,
|
||||||
|
FOREIGN KEY (itemFk) REFERENCES vn.item(id) ON DELETE RESTRICT ON UPDATE CASCADE);
|
||||||
|
|
||||||
|
|
||||||
|
CREATE OR REPLACE TABLE floranet.`order`
|
||||||
|
(id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
catalogueFk INT UNIQUE,
|
||||||
|
customerName VARCHAR(100),
|
||||||
|
email VARCHAR(100),
|
||||||
|
customerPhone VARCHAR(15),
|
||||||
|
message VARCHAR(255),
|
||||||
|
deliveryName VARCHAR(100),
|
||||||
|
address VARCHAR(200),
|
||||||
|
deliveryPhone VARCHAR(100),
|
||||||
|
isPaid BOOL NOT NULL DEFAULT FALSE,
|
||||||
|
payed DATETIME,
|
||||||
|
created TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
FOREIGN KEY (catalogueFk) REFERENCES catalogue(id) ON DELETE RESTRICT ON UPDATE CASCADE);
|
|
@ -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';
|
|
@ -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';
|
|
@ -0,0 +1,3 @@
|
||||||
|
-- Place your SQL code here
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`multipleInventoryHistory`(
|
||||||
|
vItemFk INT)
|
||||||
|
BEGIN
|
||||||
|
DECLARE vDateInventory DATETIME;
|
||||||
|
SELECT inventoried INTO vDateInventory FROM config;
|
||||||
|
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
||||||
|
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`absoluteInventoryHistory`(
|
||||||
|
vItemFk INT, vWarehouse INT, vDate DATETIME)
|
||||||
|
BEGIN
|
||||||
|
DECLARE vCalculatedInventory INT;
|
||||||
|
SET vCalculatedInventory = 0;
|
||||||
|
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
||||||
|
|
||||||
|
GRANT EXECUTE ON PROCEDURE vn.absoluteInventoryHistory TO buyer;
|
||||||
|
GRANT EXECUTE ON PROCEDURE vn.multipleInventoryHistory TO buyer;
|
|
@ -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);
|
|
@ -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);
|
|
@ -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);
|
|
@ -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);
|
|
@ -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);
|
|
@ -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);
|
|
@ -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);
|
|
@ -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);
|
|
@ -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);
|
|
@ -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);
|
|
@ -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);
|
|
@ -0,0 +1,12 @@
|
||||||
|
CREATE TABLE floranet.`addressPostCode` (
|
||||||
|
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
`addressFk` int(11) NOT NULL,
|
||||||
|
`postCode` varchar(30) NOT NULL,
|
||||||
|
`hoursInAdvance` int(10) unsigned NOT NULL DEFAULT 24,
|
||||||
|
`dayOfWeek` int(10) unsigned NOT NULL,
|
||||||
|
`deliveryCost` decimal(10,2) NOT NULL DEFAULT 0.00,
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
UNIQUE KEY `addressPostCode_unique` (`postCode`,`addressFk`,`dayOfWeek`),
|
||||||
|
KEY `addressPostCode_address_FK` (`addressFk`),
|
||||||
|
CONSTRAINT `addressPostCode_address_FK` FOREIGN KEY (`addressFk`) REFERENCES `vn`.`address` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='Client''s address registered for floranet network';
|
|
@ -0,0 +1,2 @@
|
||||||
|
INSERT INTO `salix`.`ACL` (model, property, accessType, permission, principalType, principalId)
|
||||||
|
VALUES('Ticket', 'clone', 'WRITE', 'ALLOW', 'ROLE', 'administrative');
|
|
@ -0,0 +1,3 @@
|
||||||
|
ALTER TABLE vn.professionalCategory DROP COLUMN dayBreak, DROP COLUMN `level`;
|
||||||
|
ALTER TABLE vn.professionalCategory
|
||||||
|
CHANGE name description varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL;
|
|
@ -0,0 +1,3 @@
|
||||||
|
-- Place your SQL code here
|
||||||
|
INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`)
|
||||||
|
VALUES('SupplierDms', '*', '*', 'ALLOW', 'ROLE', 'employee');
|
|
@ -0,0 +1,10 @@
|
||||||
|
ALTER TABLE vn.specialPrice MODIFY COLUMN clientFk int(11) NULL;
|
||||||
|
ALTER TABLE vn.specialPrice ADD started date NOT NULL DEFAULT '2024-01-01';
|
||||||
|
ALTER TABLE vn.specialPrice ADD ended date NULL;
|
||||||
|
ALTER TABLE vn.specialPrice MODIFY COLUMN itemFk int(11) NOT NULL;
|
||||||
|
ALTER TABLE vn.specialPrice MODIFY COLUMN value DECIMAL(10,2) NOT NULL;
|
||||||
|
|
||||||
|
|
||||||
|
ALTER TABLE vn.`specialPrice`
|
||||||
|
ADD CONSTRAINT `check_date_range`
|
||||||
|
CHECK (`ended` IS NULL OR `ended` >= `started`);
|
|
@ -24,7 +24,7 @@ describe('Ticket descriptor path', () => {
|
||||||
|
|
||||||
it('should go back to the ticket index then search and access a ticket summary', async() => {
|
it('should go back to the ticket index then search and access a ticket summary', async() => {
|
||||||
await page.accessToSection('ticket.index');
|
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() => {
|
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);
|
await page.waitToClick(selectors.ticketDescriptor.thursdayButton);
|
||||||
const message = await page.waitForSnackbar();
|
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() => {
|
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');
|
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');
|
await page.accessToSection('ticket.weekly.index');
|
||||||
const result = await page.waitToGetProperty(selectors.ticketsIndex.thirdWeeklyTicket, 'value');
|
const result = await page.waitToGetProperty(selectors.ticketsIndex.thirdWeeklyTicket, 'value');
|
||||||
|
|
||||||
|
@ -57,8 +57,8 @@ describe('Ticket descriptor path', () => {
|
||||||
await page.waitForState('ticket.index');
|
await page.waitForState('ticket.index');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should now search for the ticket 11', async() => {
|
it('should now search for the ticket 33', async() => {
|
||||||
await page.accessToSearchResult('11');
|
await page.accessToSearchResult('33');
|
||||||
await page.waitForState('ticket.card.summary');
|
await page.waitForState('ticket.card.summary');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@ describe('Ticket descriptor path', () => {
|
||||||
await page.waitToClick(selectors.ticketDescriptor.saturdayButton);
|
await page.waitToClick(selectors.ticketDescriptor.saturdayButton);
|
||||||
const message = await page.waitForSnackbar();
|
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() => {
|
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');
|
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.accessToSection('ticket.weekly.index');
|
||||||
await page.waitForTimeout(5000);
|
await page.waitForTimeout(5000);
|
||||||
|
|
||||||
|
@ -87,14 +87,14 @@ describe('Ticket descriptor path', () => {
|
||||||
expect(result).toEqual('Saturday');
|
expect(result).toEqual('Saturday');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should now search for the weekly ticket 11', async() => {
|
it('should now search for the weekly ticket 33', async() => {
|
||||||
await page.doSearch('11');
|
await page.doSearch('33');
|
||||||
const nResults = await page.countElement(selectors.ticketsIndex.searchWeeklyResult);
|
const nResults = await page.countElement(selectors.ticketsIndex.searchWeeklyResult);
|
||||||
|
|
||||||
expect(nResults).toEqual(2);
|
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.firstWeeklyTicketDeleteIcon);
|
||||||
await page.waitToClick(selectors.ticketsIndex.acceptDeleteTurn);
|
await page.waitToClick(selectors.ticketsIndex.acceptDeleteTurn);
|
||||||
const message = await page.waitForSnackbar();
|
const message = await page.waitForSnackbar();
|
||||||
|
|
|
@ -22,12 +22,4 @@ describe('Account Connections path', () => {
|
||||||
|
|
||||||
expect(firstResult).toContain(account);
|
expect(firstResult).toContain(account);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should kill this connection and then get redirected to the login page', async() => {
|
|
||||||
await page.waitToClick(selectors.accountConnections.deleteFirstConnection);
|
|
||||||
await page.waitToClick(selectors.globalItems.acceptButton);
|
|
||||||
const message = await page.waitForSnackbar();
|
|
||||||
|
|
||||||
expect(message.text).toContain('Your session has expired, please login again');
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
|
@ -83,22 +83,27 @@ export default class Auth {
|
||||||
}
|
}
|
||||||
|
|
||||||
onLoginOk(json, now, remember) {
|
onLoginOk(json, now, remember) {
|
||||||
this.vnToken.set(json.data.token, now, json.data.ttl, remember);
|
return this.$http.get('VnUsers/ShareToken', {
|
||||||
|
headers: {Authorization: json.data.token}
|
||||||
return this.loadAcls().then(() => {
|
}).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;
|
let continueHash = this.$state.params.continue;
|
||||||
if (continueHash)
|
if (continueHash)
|
||||||
this.$window.location = continueHash;
|
this.$window.location = continueHash;
|
||||||
else
|
else
|
||||||
this.$state.go('home');
|
this.$state.go('home');
|
||||||
});
|
});
|
||||||
|
}).catch(() => {});
|
||||||
}
|
}
|
||||||
|
|
||||||
logout() {
|
logout() {
|
||||||
|
this.$http.post('Accounts/logout', null, {headers: {'Authorization': this.vnToken.tokenMultimedia},
|
||||||
|
}).catch(() => {});
|
||||||
|
|
||||||
let promise = this.$http.post('VnUsers/logout', null, {
|
let promise = this.$http.post('VnUsers/logout', null, {
|
||||||
headers: {Authorization: this.vnToken.token}
|
headers: {Authorization: this.vnToken.token}
|
||||||
}).catch(() => {});
|
}).catch(() => {});
|
||||||
|
|
||||||
this.vnToken.unset();
|
this.vnToken.unset();
|
||||||
this.loggedIn = false;
|
this.loggedIn = false;
|
||||||
this.vnModules.reset();
|
this.vnModules.reset();
|
||||||
|
|
|
@ -14,7 +14,7 @@ class File {
|
||||||
*/
|
*/
|
||||||
getPath(dmsUrl) {
|
getPath(dmsUrl) {
|
||||||
const serializedParams = this.$httpParamSerializer({
|
const serializedParams = this.$httpParamSerializer({
|
||||||
access_token: this.vnToken.token
|
access_token: this.vnToken.tokenMultimedia
|
||||||
});
|
});
|
||||||
|
|
||||||
return `${dmsUrl}?${serializedParams}`;
|
return `${dmsUrl}?${serializedParams}`;
|
||||||
|
|
|
@ -19,7 +19,7 @@ function interceptor($q, vnApp, $translate) {
|
||||||
|
|
||||||
if (config.url.charAt(0) !== '/' && apiPath)
|
if (config.url.charAt(0) !== '/' && apiPath)
|
||||||
config.url = `${apiPath}${config.url}`;
|
config.url = `${apiPath}${config.url}`;
|
||||||
if (token)
|
if (token && !config.headers.Authorization)
|
||||||
config.headers.Authorization = token;
|
config.headers.Authorization = token;
|
||||||
if ($translate.use())
|
if ($translate.use())
|
||||||
config.headers['Accept-Language'] = $translate.use();
|
config.headers['Accept-Language'] = $translate.use();
|
||||||
|
|
|
@ -15,7 +15,7 @@ class Report {
|
||||||
*/
|
*/
|
||||||
show(path, params) {
|
show(path, params) {
|
||||||
params = Object.assign({
|
params = Object.assign({
|
||||||
access_token: this.vnToken.token
|
access_token: this.vnToken.tokenMultimedia
|
||||||
}, params);
|
}, params);
|
||||||
const serializedParams = this.$httpParamSerializer(params);
|
const serializedParams = this.$httpParamSerializer(params);
|
||||||
const query = serializedParams ? `?${serializedParams}` : '';
|
const query = serializedParams ? `?${serializedParams}` : '';
|
||||||
|
|
|
@ -24,21 +24,22 @@ export default class Token {
|
||||||
} catch (e) {}
|
} catch (e) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
set(token, created, ttl, remember) {
|
set(token, tokenMultimedia, created, ttl, remember) {
|
||||||
this.unset();
|
this.unset();
|
||||||
|
|
||||||
Object.assign(this, {
|
Object.assign(this, {
|
||||||
token,
|
token,
|
||||||
|
tokenMultimedia,
|
||||||
created,
|
created,
|
||||||
ttl,
|
ttl,
|
||||||
remember
|
remember
|
||||||
});
|
});
|
||||||
this.vnInterceptor.setToken(token);
|
this.vnInterceptor.setToken(token, tokenMultimedia);
|
||||||
try {
|
try {
|
||||||
if (remember)
|
if (remember)
|
||||||
this.setStorage(localStorage, token, created, ttl);
|
this.setStorage(localStorage, token, tokenMultimedia, created, ttl);
|
||||||
else
|
else
|
||||||
this.setStorage(sessionStorage, token, created, ttl);
|
this.setStorage(sessionStorage, token, tokenMultimedia, created, ttl);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error(err);
|
console.error(err);
|
||||||
}
|
}
|
||||||
|
@ -46,6 +47,7 @@ export default class Token {
|
||||||
|
|
||||||
unset() {
|
unset() {
|
||||||
this.token = null;
|
this.token = null;
|
||||||
|
this.tokenMultimedia = null;
|
||||||
this.created = null;
|
this.created = null;
|
||||||
this.ttl = null;
|
this.ttl = null;
|
||||||
this.remember = null;
|
this.remember = null;
|
||||||
|
@ -57,13 +59,15 @@ export default class Token {
|
||||||
|
|
||||||
getStorage(storage) {
|
getStorage(storage) {
|
||||||
this.token = storage.getItem('vnToken');
|
this.token = storage.getItem('vnToken');
|
||||||
|
this.tokenMultimedia = storage.getItem('vnTokenMultimedia');
|
||||||
if (!this.token) return;
|
if (!this.token) return;
|
||||||
const created = storage.getItem('vnTokenCreated');
|
const created = storage.getItem('vnTokenCreated');
|
||||||
this.created = created && new Date(created);
|
this.created = created && new Date(created);
|
||||||
this.ttl = storage.getItem('vnTokenTtl');
|
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('vnToken', token);
|
||||||
storage.setItem('vnTokenCreated', created.toJSON());
|
storage.setItem('vnTokenCreated', created.toJSON());
|
||||||
storage.setItem('vnTokenTtl', ttl);
|
storage.setItem('vnTokenTtl', ttl);
|
||||||
|
@ -71,6 +75,7 @@ export default class Token {
|
||||||
|
|
||||||
removeStorage(storage) {
|
removeStorage(storage) {
|
||||||
storage.removeItem('vnToken');
|
storage.removeItem('vnToken');
|
||||||
|
storage.removeItem('vnTokenMultimedia');
|
||||||
storage.removeItem('vnTokenCreated');
|
storage.removeItem('vnTokenCreated');
|
||||||
storage.removeItem('vnTokenTtl');
|
storage.removeItem('vnTokenTtl');
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,8 +23,7 @@ export class Layout extends Component {
|
||||||
if (!this.$.$root.user) return;
|
if (!this.$.$root.user) return;
|
||||||
|
|
||||||
const userId = this.$.$root.user.id;
|
const userId = this.$.$root.user.id;
|
||||||
const token = this.vnToken.token;
|
return `/api/Images/user/160x160/${userId}/download?access_token=${this.vnToken.tokenMultimedia}`;
|
||||||
return `/api/Images/user/160x160/${userId}/download?access_token=${token}`;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
refresh() {
|
refresh() {
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
ng-click="$ctrl.showDescriptor($event, userLog)">
|
ng-click="$ctrl.showDescriptor($event, userLog)">
|
||||||
<img
|
<img
|
||||||
ng-if="::userLog.user.image"
|
ng-if="::userLog.user.image"
|
||||||
ng-src="/api/Images/user/160x160/{{::userLog.userFk}}/download?access_token={{::$ctrl.vnToken.token}}">
|
ng-src="/api/Images/user/160x160/{{::userLog.userFk}}/download?access_token={{::$ctrl.vnToken.tokenMultimedia}}">
|
||||||
</img>
|
</img>
|
||||||
</vn-avatar>
|
</vn-avatar>
|
||||||
</div>
|
</div>
|
||||||
|
@ -181,7 +181,7 @@
|
||||||
val="{{::nickname}}">
|
val="{{::nickname}}">
|
||||||
<img
|
<img
|
||||||
ng-if="::image"
|
ng-if="::image"
|
||||||
ng-src="/api/Images/user/160x160/{{::id}}/download?access_token={{::$ctrl.vnToken.token}}">
|
ng-src="/api/Images/user/160x160/{{::id}}/download?access_token={{::$ctrl.vnToken.tokenMultimedia}}">
|
||||||
</img>
|
</img>
|
||||||
</vn-avatar>
|
</vn-avatar>
|
||||||
<div>
|
<div>
|
||||||
|
|
|
@ -13,7 +13,7 @@ export function run($window, $rootScope, vnAuth, vnApp, vnToken, $state) {
|
||||||
if (!collection || !size || !id) return;
|
if (!collection || !size || !id) return;
|
||||||
|
|
||||||
const basePath = `/api/Images/${collection}/${size}/${id}`;
|
const basePath = `/api/Images/${collection}/${size}/${id}`;
|
||||||
return `${basePath}/download?access_token=${vnToken.token}`;
|
return `${basePath}/download?access_token=${vnToken.tokenMultimedia}`;
|
||||||
};
|
};
|
||||||
|
|
||||||
$window.validations = {};
|
$window.validations = {};
|
||||||
|
|
|
@ -220,5 +220,7 @@
|
||||||
"Shelving not valid": "Shelving not valid",
|
"Shelving not valid": "Shelving not valid",
|
||||||
"printerNotExists": "The printer does not exist",
|
"printerNotExists": "The printer does not exist",
|
||||||
"There are not picking tickets": "There are not picking tickets",
|
"There are not picking tickets": "There are not picking tickets",
|
||||||
"ticketCommercial": "The ticket {{ ticket }} for the salesperson {{ salesMan }} is in preparation. (automatically generated message)"
|
"ticketCommercial": "The ticket {{ ticket }} for the salesperson {{ salesMan }} is in preparation. (automatically generated message)",
|
||||||
|
"This password can only be changed by the user themselves": "This password can only be changed by the user themselves",
|
||||||
|
"They're not your subordinate": "They're not your subordinate"
|
||||||
}
|
}
|
||||||
|
|
|
@ -347,5 +347,7 @@
|
||||||
"Cmr file does not exist": "El archivo del cmr no existe",
|
"Cmr file does not exist": "El archivo del cmr no existe",
|
||||||
"You are not allowed to modify the alias": "No estás autorizado a modificar el alias",
|
"You are not allowed to modify the alias": "No estás autorizado a modificar el alias",
|
||||||
"The address of the customer must have information about Incoterms and Customs Agent": "El consignatario del cliente debe tener informado Incoterms y Agente de aduanas",
|
"The address of the customer must have information about Incoterms and Customs Agent": "El consignatario del cliente debe tener informado Incoterms y Agente de aduanas",
|
||||||
"The line could not be marked": "La linea no puede ser marcada"
|
"The line could not be marked": "La linea no puede ser marcada",
|
||||||
|
"This password can only be changed by the user themselves": "Esta contraseña solo puede ser modificada por el propio usuario",
|
||||||
|
"They're not your subordinate": "No es tu subordinado/a."
|
||||||
}
|
}
|
|
@ -126,5 +126,20 @@
|
||||||
"allowedContentTypes": [
|
"allowedContentTypes": [
|
||||||
"application/x-7z-compressed"
|
"application/x-7z-compressed"
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
"supplierStorage": {
|
||||||
|
"name": "supplierStorage",
|
||||||
|
"connector": "loopback-component-storage",
|
||||||
|
"provider": "filesystem",
|
||||||
|
"root": "./storage/dms",
|
||||||
|
"maxFileSize": "31457280",
|
||||||
|
"allowedContentTypes": [
|
||||||
|
"image/png",
|
||||||
|
"image/jpeg",
|
||||||
|
"image/jpg",
|
||||||
|
"image/webp",
|
||||||
|
"video/mp4",
|
||||||
|
"application/pdf"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,8 @@ module.exports = Self => {
|
||||||
http: {
|
http: {
|
||||||
path: `/logout`,
|
path: `/logout`,
|
||||||
verb: 'POST'
|
verb: 'POST'
|
||||||
}
|
},
|
||||||
|
accessScopes: ['DEFAULT', 'read:multimedia']
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.logout = async ctx => Self.app.models.VnUser.logout(ctx.req.accessToken.id);
|
Self.logout = async ctx => Self.app.models.VnUser.logout(ctx.req.accessToken.id);
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
|
|
||||||
|
const ForbiddenError = require('vn-loopback/util/forbiddenError');
|
||||||
|
const {models} = require('vn-loopback/server/server');
|
||||||
|
|
||||||
module.exports = Self => {
|
module.exports = Self => {
|
||||||
require('../methods/account/sync')(Self);
|
require('../methods/account/sync')(Self);
|
||||||
require('../methods/account/sync-by-id')(Self);
|
require('../methods/account/sync-by-id')(Self);
|
||||||
|
@ -7,4 +10,11 @@ module.exports = Self => {
|
||||||
require('../methods/account/logout')(Self);
|
require('../methods/account/logout')(Self);
|
||||||
require('../methods/account/change-password')(Self);
|
require('../methods/account/change-password')(Self);
|
||||||
require('../methods/account/set-password')(Self);
|
require('../methods/account/set-password')(Self);
|
||||||
|
|
||||||
|
Self.setUnverifiedPassword = async(id, pass, options) => {
|
||||||
|
const {emailVerified} = await models.VnUser.findById(id, {fields: ['emailVerified']}, options);
|
||||||
|
if (emailVerified) throw new ForbiddenError('This password can only be changed by the user themselves');
|
||||||
|
|
||||||
|
await models.VnUser.setPassword(id, pass, options);
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -34,7 +34,8 @@ module.exports = Self => {
|
||||||
http: {
|
http: {
|
||||||
path: '/:id/claim-pickup-pdf',
|
path: '/:id/claim-pickup-pdf',
|
||||||
verb: 'GET'
|
verb: 'GET'
|
||||||
}
|
},
|
||||||
|
accessScopes: ['read:multimedia']
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.claimPickupPdf = (ctx, id) => Self.printReport(ctx, id, 'claim-pickup-order');
|
Self.claimPickupPdf = (ctx, id) => Self.printReport(ctx, id, 'claim-pickup-order');
|
||||||
|
|
|
@ -32,7 +32,8 @@ module.exports = Self => {
|
||||||
http: {
|
http: {
|
||||||
path: `/:id/downloadFile`,
|
path: `/:id/downloadFile`,
|
||||||
verb: 'GET'
|
verb: 'GET'
|
||||||
}
|
},
|
||||||
|
accessScopes: ['read:multimedia']
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.downloadFile = async function(ctx, id) {
|
Self.downloadFile = async function(ctx, id) {
|
||||||
|
|
|
@ -45,7 +45,8 @@ module.exports = Self => {
|
||||||
http: {
|
http: {
|
||||||
path: '/:id/campaign-metrics-pdf',
|
path: '/:id/campaign-metrics-pdf',
|
||||||
verb: 'GET'
|
verb: 'GET'
|
||||||
}
|
},
|
||||||
|
accessScopes: ['read:multimedia']
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.campaignMetricsPdf = (ctx, id) => Self.printReport(ctx, id, 'campaign-metrics');
|
Self.campaignMetricsPdf = (ctx, id) => Self.printReport(ctx, id, 'campaign-metrics');
|
||||||
|
|
|
@ -114,7 +114,7 @@
|
||||||
<vn-td center shrink>
|
<vn-td center shrink>
|
||||||
<a ng-show="balance.hasPdf"
|
<a ng-show="balance.hasPdf"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
href="api/InvoiceOuts/{{::balance.id}}/download?access_token={{::$ctrl.vnToken.token}}">
|
href="api/InvoiceOuts/{{::balance.id}}/download?access_token={{::$ctrl.vnToken.tokenMultimedia}}">
|
||||||
<vn-icon-button
|
<vn-icon-button
|
||||||
icon="cloud_download"
|
icon="cloud_download"
|
||||||
title="{{'Download PDF' | translate}}">
|
title="{{'Download PDF' | translate}}">
|
||||||
|
|
|
@ -33,7 +33,8 @@ module.exports = Self => {
|
||||||
http: {
|
http: {
|
||||||
path: '/:id/entry-order-pdf',
|
path: '/:id/entry-order-pdf',
|
||||||
verb: 'GET'
|
verb: 'GET'
|
||||||
}
|
},
|
||||||
|
accessScopes: ['read:multimedia']
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.entryOrderPdf = (ctx, id) => Self.printReport(ctx, id, 'entry-order');
|
Self.entryOrderPdf = (ctx, id) => Self.printReport(ctx, id, 'entry-order');
|
||||||
|
|
|
@ -31,7 +31,8 @@ module.exports = Self => {
|
||||||
http: {
|
http: {
|
||||||
path: '/:id/download',
|
path: '/:id/download',
|
||||||
verb: 'GET'
|
verb: 'GET'
|
||||||
}
|
},
|
||||||
|
accessScopes: ['read:multimedia']
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.download = async function(ctx, id, options) {
|
Self.download = async function(ctx, id, options) {
|
||||||
|
|
|
@ -31,7 +31,8 @@ module.exports = Self => {
|
||||||
http: {
|
http: {
|
||||||
path: '/downloadZip',
|
path: '/downloadZip',
|
||||||
verb: 'GET'
|
verb: 'GET'
|
||||||
}
|
},
|
||||||
|
accessScopes: ['read:multimedia']
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.downloadZip = async function(ctx, ids, options) {
|
Self.downloadZip = async function(ctx, ids, options) {
|
||||||
|
|
|
@ -34,7 +34,8 @@ module.exports = Self => {
|
||||||
http: {
|
http: {
|
||||||
path: '/:reference/exportation-pdf',
|
path: '/:reference/exportation-pdf',
|
||||||
verb: 'GET'
|
verb: 'GET'
|
||||||
}
|
},
|
||||||
|
accessScopes: ['read:multimedia']
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.exportationPdf = (ctx, reference) => Self.printReport(ctx, reference, 'exportation');
|
Self.exportationPdf = (ctx, reference) => Self.printReport(ctx, reference, 'exportation');
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue