7253-devToTest_2418 #2350
|
@ -0,0 +1,33 @@
|
|||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
function getCurrentBranchName(p = process.cwd()) {
|
||||
if (!fs.existsSync(p)) return false;
|
||||
|
||||
const gitHeadPath = path.join(p, '.git', 'HEAD');
|
||||
|
||||
if (!fs.existsSync(gitHeadPath))
|
||||
return getCurrentBranchName(path.resolve(p, '..'));
|
||||
|
||||
const headContent = fs.readFileSync(gitHeadPath, 'utf-8');
|
||||
return headContent.trim().split('/')[2];
|
||||
}
|
||||
|
||||
const branchName = getCurrentBranchName();
|
||||
|
||||
if (branchName) {
|
||||
const msgPath = `.git/COMMIT_EDITMSG`;
|
||||
const msg = fs.readFileSync(msgPath, 'utf-8');
|
||||
const reference = branchName.match(/^\d+/);
|
||||
|
||||
const referenceTag = `refs #${reference}`;
|
||||
if (!msg.includes(referenceTag) && reference) {
|
||||
const splitedMsg = msg.split(':');
|
||||
|
||||
if (splitedMsg.length > 1) {
|
||||
const finalMsg = splitedMsg[0] + ': ' + referenceTag + splitedMsg.slice(1).join(':');
|
||||
fs.writeFileSync(msgPath, finalMsg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
#!/usr/bin/env sh
|
||||
. "$(dirname -- "$0")/_/husky.sh"
|
||||
|
||||
echo "Running husky commit-msg hook"
|
||||
npx --no-install commitlint --edit
|
||||
echo "Adding reference tag to commit message"
|
||||
node .husky/addReferenceTag.js
|
||||
|
|
@ -5,6 +5,8 @@ All notable changes to this project will be documented in this file.
|
|||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [24.18.01] - 2024-05-02
|
||||
|
||||
## [24.16.01] - 2024-04-18
|
||||
|
||||
## [2414.01] - 2024-04-04
|
||||
|
|
|
@ -30,7 +30,7 @@ module.exports = Self => {
|
|||
path: `/:id/downloadFile`,
|
||||
verb: 'GET'
|
||||
},
|
||||
// accessScopes: ['read:multimedia']
|
||||
accessScopes: ['DEFAULT', 'read:multimedia']
|
||||
});
|
||||
|
||||
Self.downloadFile = async function(ctx, id) {
|
||||
|
|
|
@ -43,7 +43,7 @@ module.exports = Self => {
|
|||
path: `/:id/download`,
|
||||
verb: 'GET'
|
||||
},
|
||||
// accessScopes: ['read:multimedia']
|
||||
accessScopes: ['DEFAULT', 'read:multimedia']
|
||||
});
|
||||
|
||||
Self.download = async function(id, fileCabinet, filter) {
|
||||
|
|
|
@ -48,7 +48,7 @@ module.exports = Self => {
|
|||
path: `/:collection/:size/:id/download`,
|
||||
verb: 'GET'
|
||||
},
|
||||
// accessScopes: ['read:multimedia']
|
||||
accessScopes: ['DEFAULT', 'read:multimedia']
|
||||
});
|
||||
|
||||
Self.download = async function(ctx, collection, size, id) {
|
||||
|
|
|
@ -45,7 +45,6 @@ module.exports = Self => {
|
|||
});
|
||||
availableNotificationsMap.delete(active.notificationFk);
|
||||
}
|
||||
|
||||
return {
|
||||
active: [...activeNotificationsMap.entries()],
|
||||
available: [...availableNotificationsMap.entries()]
|
||||
|
|
|
@ -4,8 +4,8 @@ describe('NotificationSubscription getList()', () => {
|
|||
it('should return a list of available and active notifications of a user', async() => {
|
||||
const userId = 9;
|
||||
const {active, available} = await models.NotificationSubscription.getList(userId);
|
||||
const notifications = await models.Notification.find({});
|
||||
const totalAvailable = notifications.length - active.length;
|
||||
const notifications = await models.NotificationSubscription.getAvailable(userId);
|
||||
const totalAvailable = notifications.size - active.length;
|
||||
|
||||
expect(active.length).toEqual(3);
|
||||
expect(available.length).toEqual(totalAvailable);
|
||||
|
|
|
@ -33,16 +33,23 @@ module.exports = Self => {
|
|||
// Schedule to remove current token
|
||||
setTimeout(async() => {
|
||||
try {
|
||||
await Self.logout(token.id);
|
||||
const exists = await models.AccessToken.findById(token.id);
|
||||
exists && await Self.logout(token.id);
|
||||
} catch (err) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.error(err);
|
||||
}
|
||||
}, courtesyTime * 1000);
|
||||
|
||||
// Get scopes
|
||||
|
||||
let createTokenOptions = {};
|
||||
const {scopes} = token;
|
||||
if (scopes)
|
||||
createTokenOptions = {scopes: [scopes[0]]};
|
||||
// Create new accessToken
|
||||
const user = await Self.findById(token.userId);
|
||||
const accessToken = await user.createAccessToken();
|
||||
const accessToken = await user.accessTokens.create(createTokenOptions);
|
||||
|
||||
return {id: accessToken.id, ttl: accessToken.ttl};
|
||||
};
|
||||
|
|
|
@ -28,11 +28,25 @@ describe('Renew Token', () => {
|
|||
});
|
||||
|
||||
it('should renew token', async() => {
|
||||
const {courtesyTime} = await models.AccessTokenConfig.findOne({
|
||||
fields: ['courtesyTime']
|
||||
});
|
||||
const mockDate = new Date(startingTime + 26600000);
|
||||
jasmine.clock().mockDate(mockDate);
|
||||
const {id} = await models.VnUser.renewToken(ctx);
|
||||
|
||||
expect(id).not.toEqual(ctx.req.accessToken.id);
|
||||
|
||||
await models.VnUser.logout(ctx.req.accessToken.id);
|
||||
jasmine.clock().tick((courtesyTime + 10) * 1000);
|
||||
let tokenNotExists;
|
||||
try {
|
||||
tokenNotExists = await models.AccessToken.findById(ctx.req.accessToken.id);
|
||||
} catch (e) {
|
||||
error = e;
|
||||
}
|
||||
|
||||
expect(tokenNotExists).toBeNull();
|
||||
});
|
||||
|
||||
it('NOT should renew', async() => {
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
const {models} = require('vn-loopback/server/server');
|
||||
const TOKEN_MULTIMEDIA = 'read:multimedia';
|
||||
describe('Share Token', () => {
|
||||
let ctx = null;
|
||||
const startingTime = Date.now();
|
||||
let multimediaToken = null;
|
||||
beforeAll(async() => {
|
||||
const unAuthCtx = {
|
||||
req: {
|
||||
|
@ -17,11 +20,45 @@ describe('Share Token', () => {
|
|||
ctx = {req: {accessToken: accessToken}};
|
||||
});
|
||||
|
||||
it('should renew token', async() => {
|
||||
const multimediaToken = await models.VnUser.shareToken(ctx);
|
||||
beforeEach(async() => {
|
||||
multimediaToken = await models.VnUser.shareToken(ctx);
|
||||
jasmine.clock().install();
|
||||
jasmine.clock().mockDate(new Date(startingTime));
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
jasmine.clock().uninstall();
|
||||
});
|
||||
|
||||
it('should generate token', async() => {
|
||||
expect(Object.keys(multimediaToken).length).toEqual(1);
|
||||
expect(multimediaToken.multimediaToken.userId).toEqual(ctx.req.accessToken.userId);
|
||||
expect(multimediaToken.multimediaToken.scopes[0]).toEqual('read:multimedia');
|
||||
expect(multimediaToken.multimediaToken.scopes[0]).toEqual(TOKEN_MULTIMEDIA);
|
||||
});
|
||||
|
||||
it('NOT should renew', async() => {
|
||||
let error;
|
||||
let response;
|
||||
try {
|
||||
response = await models.VnUser.renewToken(ctx);
|
||||
} catch (e) {
|
||||
error = e;
|
||||
}
|
||||
|
||||
expect(error).toBeUndefined();
|
||||
expect(response.id).toEqual(ctx.req.accessToken.id);
|
||||
});
|
||||
|
||||
it('should renew token', async() => {
|
||||
const mockDate = new Date(startingTime + 26600000);
|
||||
jasmine.clock().mockDate(mockDate);
|
||||
|
||||
const newShareToken = await models.VnUser.renewToken({req: {accessToken: multimediaToken.multimediaToken}});
|
||||
const {id} = newShareToken;
|
||||
|
||||
expect(id).not.toEqual(ctx.req.accessToken.id);
|
||||
const newMultimediaToken = await models.AccessToken.findById(id);
|
||||
|
||||
expect(newMultimediaToken.scopes[0]).toEqual(TOKEN_MULTIMEDIA);
|
||||
});
|
||||
});
|
||||
|
|
|
@ -174,5 +174,8 @@
|
|||
},
|
||||
"WorkerActivityType": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"ProductionConfig": {
|
||||
"dataSource": "vn"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"name": "ProductionConfig",
|
||||
"base": "VnModel",
|
||||
"options": {
|
||||
"mysql": {
|
||||
"table": "productionConfig"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "number",
|
||||
"required": true,
|
||||
"id": true
|
||||
},
|
||||
"backupPrinterNotificationDelay": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -41,8 +41,7 @@ describe('loopback model NotificationSubscription', () => {
|
|||
|
||||
try {
|
||||
const options = {transaction: tx, accessToken: {userId: 9}};
|
||||
const notificationSubscriptionId = 2;
|
||||
await models.NotificationSubscription.destroyAll({id: notificationSubscriptionId}, options);
|
||||
await models.NotificationSubscription.destroyAll({id: 2}, options);
|
||||
|
||||
await tx.rollback();
|
||||
} catch (e) {
|
||||
|
@ -76,8 +75,7 @@ describe('loopback model NotificationSubscription', () => {
|
|||
|
||||
try {
|
||||
const options = {transaction: tx, accessToken: {userId: 9}};
|
||||
const notificationSubscriptionId = 6;
|
||||
await models.NotificationSubscription.destroyAll({id: notificationSubscriptionId}, options);
|
||||
await models.NotificationSubscription.destroyAll({id: 6}, options);
|
||||
|
||||
await tx.rollback();
|
||||
} catch (e) {
|
||||
|
@ -111,8 +109,7 @@ describe('loopback model NotificationSubscription', () => {
|
|||
|
||||
try {
|
||||
const options = {transaction: tx, accessToken: {userId: 19}};
|
||||
const notificationSubscriptionId = 4;
|
||||
await models.NotificationSubscription.destroyAll({id: notificationSubscriptionId}, options);
|
||||
await models.NotificationSubscription.destroyAll({id: 4}, options);
|
||||
|
||||
await tx.rollback();
|
||||
} catch (e) {
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
module.exports = {extends: ['@commitlint/config-conventional']};
|
|
@ -0,0 +1,13 @@
|
|||
# EditorConfig helps developers define and maintain consistent
|
||||
# coding styles between different editors and IDEs
|
||||
# http://editorconfig.org
|
||||
|
||||
root = true
|
||||
|
||||
[*]
|
||||
indent_style = tab
|
||||
indent_size = 4
|
||||
end_of_line = lf
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
|
@ -9,6 +9,10 @@ SET foreign_key_checks = 0;
|
|||
|
||||
INSERT INTO util.config (id, environment, mockTime, mockUtcTime, mockEnabled)
|
||||
VALUES (1, 'local', '2001-01-01 12:00:00', '2001-01-01 11:00:00', TRUE);
|
||||
|
||||
INSERT INTO util.binlogQueue (code,logName, `position`)
|
||||
VALUES ('mylogger', 'bin.000001', 4);
|
||||
|
||||
/* #5483
|
||||
INSERT INTO vn.entryConfig (defaultEntry, mailToNotify, inventorySupplierFk, maxLockTime, defaultSupplierFk)
|
||||
VALUES(1, NULL, 1, 300, 1);
|
||||
|
@ -113,9 +117,6 @@ INSERT INTO vn.ticket (clientFk, warehouseFk, shipped, nickname, refFk, addressF
|
|||
(100, 4, '2022-07-12 00:00:00', 'root', NULL, 195, NULL, NULL, 0, 0, 0, 0, NULL, 0, '2022-07-12 16:18:58', 1, NULL, 4, NULL, 1, 567, 1, '2022-07-12', 0, 0, 6, NULL, NULL, NULL, NULL, NULL),
|
||||
(100, 5, '2022-07-12 00:00:00', 'root', NULL, 195, NULL, NULL, 0, 0, 0, 0, NULL, 0, '2022-07-12 16:18:58', 1, NULL, 5, NULL, 1, 567, 1, '2022-07-12', 0, 0, 1, NULL, NULL, NULL, NULL, NULL);
|
||||
*/
|
||||
INSERT INTO vn.sector (description,warehouseFk) VALUES
|
||||
('Sector One',1);
|
||||
|
||||
INSERT INTO vn.saleGroup (userFk,parkingFk,sectorFk) VALUES
|
||||
(100,1,1);
|
||||
|
||||
|
@ -156,16 +157,6 @@ INSERT INTO `vn`.`occupationCode` (`code`, `name`)
|
|||
('b', 'Representantes de comercio'),
|
||||
('c', 'Personal de oficios en trabajos de construcción en general, y en instalac.,edificios y obras');
|
||||
|
||||
INSERT INTO `vn2008`.`payroll_employee` (`CodTrabajador`,`codempresa`)
|
||||
VALUES
|
||||
(36,20),
|
||||
(43,20),
|
||||
(76,20),
|
||||
(1106,20),
|
||||
(1107,20),
|
||||
(1108,20),
|
||||
(1109,20),
|
||||
(1110,20);
|
||||
|
||||
INSERT INTO `vn`.`trainingCourseType` (`id`, `name`)
|
||||
VALUES
|
||||
|
|
|
@ -198,7 +198,7 @@ INSERT INTO `vn`.`printer` (`id`, `name`, `path`, `isLabeler`, `sectorFk`, `ipAd
|
|||
(2, 'printer2', 'path2', 1, 1 , NULL),
|
||||
(4, 'printer4', 'path4', 0, NULL, '10.1.10.4');
|
||||
|
||||
UPDATE `vn`.`sector` SET mainPrinterFk = 1 WHERE id = 1;
|
||||
UPDATE `vn`.`sector` SET `backupPrinterFk` = 1 WHERE id = 1;
|
||||
|
||||
|
||||
INSERT INTO `vn`.`worker`(`id`, `code`, `firstName`, `lastName`,`bossFk`, `phone`)
|
||||
|
@ -527,7 +527,8 @@ INSERT INTO `vn`.`observationType`(`id`,`description`, `code`)
|
|||
(4, 'SalesPerson', 'salesPerson'),
|
||||
(5, 'Administrative', 'administrative'),
|
||||
(6, 'Weight', 'weight'),
|
||||
(7, 'InvoiceOut', 'invoiceOut');
|
||||
(7, 'InvoiceOut', 'invoiceOut'),
|
||||
(8, 'DropOff', 'dropOff');
|
||||
|
||||
INSERT INTO `vn`.`addressObservation`(`id`,`addressFk`,`observationTypeFk`,`description`)
|
||||
VALUES
|
||||
|
@ -1492,21 +1493,21 @@ INSERT INTO `bs`.`waste`(`buyer`, `year`, `week`, `family`, `itemFk`, `itemTypeF
|
|||
|
||||
INSERT INTO `vn`.`buy`(`id`,`entryFk`,`itemFk`,`buyingValue`,`quantity`,`packagingFk`,`stickers`,`freightValue`,`packageValue`,`comissionValue`,`packing`,`grouping`,`groupingMode`,`location`,`price1`,`price2`,`price3`, `printedStickers`,`isChecked`,`isIgnored`,`weight`, `created`)
|
||||
VALUES
|
||||
(1, 1, 1, 50, 5000, 4, 1, 1.500, 1.500, 0.000, 1, 1, 1, NULL, 0.00, 99.6, 99.4, 0, 1, 0, 1, util.VN_CURDATE() - INTERVAL 2 MONTH),
|
||||
(2, 2, 1, 50, 100, 4, 1, 1.500, 1.500, 0.000, 1, 1, 1, NULL, 0.00, 99.6, 99.4, 0, 1, 0, 1, util.VN_CURDATE() - INTERVAL 1 MONTH),
|
||||
(3, 3, 1, 50, 100, 4, 1, 1.500, 1.500, 0.000, 1, 1, 0, NULL, 0.00, 99.6, 99.4, 0, 1, 0, 1, util.VN_CURDATE()),
|
||||
(4, 2, 2, 5, 450, 3, 1, 1.000, 1.000, 0.000, 10, 10, 0, NULL, 0.00, 7.30, 7.00, 0, 1, 0, 2.5, util.VN_CURDATE()),
|
||||
(5, 3, 3, 55, 500, 5, 1, 1.000, 1.000, 0.000, 1, 1, 0, NULL, 0.00, 78.3, 75.6, 0, 1, 0, 2.5, util.VN_CURDATE()),
|
||||
(6, 4, 8, 50, 1000, 4, 1, 1.000, 1.000, 0.000, 1, 1, 1, NULL, 0.00, 99.6, 99.4, 0, 1, 0, 2.5, util.VN_CURDATE()),
|
||||
(7, 4, 9, 20, 1000, 3, 1, 0.500, 0.500, 0.000, 10, 10, 1, NULL, 0.00, 30.50, 29.00, 0, 1, 0, 2.5, util.VN_CURDATE()),
|
||||
(8, 4, 4, 1.25, 1000, 3, 1, 0.500, 0.500, 0.000, 10, 10, 1, NULL, 0.00, 1.75, 1.67, 0, 1, 0, 2.5, util.VN_CURDATE()),
|
||||
(9, 4, 4, 1.25, 1000, 3, 1, 0.500, 0.500, 0.000, 10, 10, 1, NULL, 0.00, 1.75, 1.67, 0, 1, 0, 4, util.VN_CURDATE()),
|
||||
(10, 5, 1, 50, 10, 4, 1, 2.500, 2.500, 0.000, 1, 1, 1, NULL, 0.00, 99.6, 99.4, 0, 1, 0, 4, util.VN_CURDATE()),
|
||||
(11, 5, 4, 1.25, 10, 3, 1, 2.500, 2.500, 0.000, 10, 10, 1, NULL, 0.00, 1.75, 1.67, 0, 1, 0, 4, util.VN_CURDATE()),
|
||||
(12, 6, 4, 1.25, 0, 3, 1, 2.500, 2.500, 0.000, 10, 10, 1, NULL, 0.00, 1.75, 1.67, 0, 1, 0, 4, util.VN_CURDATE()),
|
||||
(13, 7, 1, 50, 0, 3, 1, 2.000, 2.000, 0.000, 1, 1, 1, NULL, 0.00, 99.6, 99.4, 0, 1, 0, 4, util.VN_CURDATE()),
|
||||
(14, 7, 2, 5, 0, 3, 1, 2.000, 2.000, 0.000, 10, 10, 1, NULL, 0.00, 7.30, 7.00, 0, 1, 0, 4, util.VN_CURDATE()),
|
||||
(15, 7, 4, 1.25, 0, 3, 1, 2.000, 2.000, 0.000, 10, 10, 1, NULL, 0.00, 1.75, 1.67, 0, 1, 0, 4, util.VN_CURDATE());
|
||||
(1, 1, 1, 50, 5000, 4, 1, 1.500, 1.500, 0.000, 1, 1, 'packing', NULL, 0.00, 99.6, 99.4, 0, 1, 0, 1, util.VN_CURDATE() - INTERVAL 2 MONTH),
|
||||
(2, 2, 1, 50, 100, 4, 1, 1.500, 1.500, 0.000, 1, 1, 'packing', NULL, 0.00, 99.6, 99.4, 0, 1, 0, 1, util.VN_CURDATE() - INTERVAL 1 MONTH),
|
||||
(3, 3, 1, 50, 100, 4, 1, 1.500, 1.500, 0.000, 1, 1, NULL, NULL, 0.00, 99.6, 99.4, 0, 1, 0, 1, util.VN_CURDATE()),
|
||||
(4, 2, 2, 5, 450, 3, 1, 1.000, 1.000, 0.000, 10, 10, NULL, NULL, 0.00, 7.30, 7.00, 0, 1, 0, 2.5, util.VN_CURDATE()),
|
||||
(5, 3, 3, 55, 500, 5, 1, 1.000, 1.000, 0.000, 1, 1, NULL, NULL, 0.00, 78.3, 75.6, 0, 1, 0, 2.5, util.VN_CURDATE()),
|
||||
(6, 4, 8, 50, 1000, 4, 1, 1.000, 1.000, 0.000, 1, 1, 'grouping', NULL, 0.00, 99.6, 99.4, 0, 1, 0, 2.5, util.VN_CURDATE()),
|
||||
(7, 4, 9, 20, 1000, 3, 1, 0.500, 0.500, 0.000, 10, 10, 'packing', NULL, 0.00, 30.50, 29.00, 0, 1, 0, 2.5, util.VN_CURDATE()),
|
||||
(8, 4, 4, 1.25, 1000, 3, 1, 0.500, 0.500, 0.000, 10, 10, 'grouping', NULL, 0.00, 1.75, 1.67, 0, 1, 0, 2.5, util.VN_CURDATE()),
|
||||
(9, 4, 4, 1.25, 1000, 3, 1, 0.500, 0.500, 0.000, 10, 10, 'grouping', NULL, 0.00, 1.75, 1.67, 0, 1, 0, 4, util.VN_CURDATE()),
|
||||
(10, 5, 1, 50, 10, 4, 1, 2.500, 2.500, 0.000, 1, 1, 'packing', NULL, 0.00, 99.6, 99.4, 0, 1, 0, 4, util.VN_CURDATE()),
|
||||
(11, 5, 4, 1.25, 10, 3, 1, 2.500, 2.500, 0.000, 10, 10, 'grouping', NULL, 0.00, 1.75, 1.67, 0, 1, 0, 4, util.VN_CURDATE()),
|
||||
(12, 6, 4, 1.25, 0, 3, 1, 2.500, 2.500, 0.000, 10, 10, 'grouping', NULL, 0.00, 1.75, 1.67, 0, 1, 0, 4, util.VN_CURDATE()),
|
||||
(13, 7, 1, 50, 0, 3, 1, 2.000, 2.000, 0.000, 1, 1, 'packing', NULL, 0.00, 99.6, 99.4, 0, 1, 0, 4, util.VN_CURDATE()),
|
||||
(14, 7, 2, 5, 0, 3, 1, 2.000, 2.000, 0.000, 10, 10, 'grouping', NULL, 0.00, 7.30, 7.00, 0, 1, 0, 4, util.VN_CURDATE()),
|
||||
(15, 7, 4, 1.25, 0, 3, 1, 2.000, 2.000, 0.000, 10, 10, 'grouping', NULL, 0.00, 1.75, 1.67, 0, 1, 0, 4, util.VN_CURDATE());
|
||||
|
||||
INSERT INTO `hedera`.`order`(`id`, `date_send`, `customer_id`, `delivery_method_id`, `agency_id`, `address_id`, `company_id`, `note`, `source_app`, `confirmed`,`total`, `date_make`, `first_row_stamp`, `confirm_date`)
|
||||
VALUES
|
||||
|
@ -1827,9 +1828,9 @@ INSERT INTO `vn`.`claimState`(`id`, `code`, `description`, `roleFk`, `priority`,
|
|||
|
||||
INSERT INTO `vn`.`claim`(`id`, `ticketCreated`, `claimStateFk`, `clientFk`, `workerFk`, `responsibility`, `isChargedToMana`, `created`, `packages`, `ticketFk`)
|
||||
VALUES
|
||||
(1, util.VN_CURDATE(), 1, 1101, 18, 3, 0, util.VN_CURDATE(), 0, 11),
|
||||
(1, util.VN_CURDATE(), 1, 1101, 19, 3, 0, util.VN_CURDATE(), 0, 11),
|
||||
(2, util.VN_CURDATE(), 4, 1101, 18, 3, 0, util.VN_CURDATE(), 1, 16),
|
||||
(3, util.VN_CURDATE(), 3, 1101, 18, 1, 1, util.VN_CURDATE(), 5, 7),
|
||||
(3, util.VN_CURDATE(), 3, 1101, 19, 1, 1, util.VN_CURDATE(), 5, 7),
|
||||
(4, util.VN_CURDATE(), 3, 1104, 18, 5, 0, util.VN_CURDATE(), 10, 8);
|
||||
|
||||
INSERT INTO `vn`.`claimObservation` (`claimFk`, `workerFk`, `text`, `created`)
|
||||
|
@ -2551,15 +2552,15 @@ INSERT INTO `vn`.`duaEntry` (`duaFk`, `entryFk`, `value`, `customsValue`, `euroV
|
|||
REPLACE INTO `vn`.`invoiceIn`(`id`, `serialNumber`,`serial`, `supplierFk`, `issued`, `created`, `supplierRef`, `isBooked`, `companyFk`, `docFk`)
|
||||
VALUES
|
||||
(1, 1001, 'R', 1, util.VN_CURDATE(), util.VN_CURDATE(), 1234, 0, 442, 1),
|
||||
(2, 1002, 'R', 1, util.VN_CURDATE(), util.VN_CURDATE(), 1235, 1, 442, 1),
|
||||
(2, 1002, 'R', 1, util.VN_CURDATE(), util.VN_CURDATE(), 1235, 0, 442, 1),
|
||||
(3, 1003, 'R', 1, util.VN_CURDATE(), util.VN_CURDATE(), 1236, 0, 442, 1),
|
||||
(4, 1004, 'R', 1, util.VN_CURDATE(), util.VN_CURDATE(), 1237, 0, 442, 1),
|
||||
(5, 1005, 'R', 1, util.VN_CURDATE(), util.VN_CURDATE(), 1238, 1, 442, 1),
|
||||
(5, 1005, 'R', 1, util.VN_CURDATE(), util.VN_CURDATE(), 1238, 0, 442, 1),
|
||||
(6, 1006, 'R', 2, util.VN_CURDATE(), util.VN_CURDATE(), 1239, 0, 442, 1),
|
||||
(7, 1007, 'R', 2, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1240, 1, 442, 1),
|
||||
(8, 1008, 'R', 2, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1241, 1, 442, 1),
|
||||
(9, 1009, 'R', 2, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1242, 1, 442, 1),
|
||||
(10, 1010, 'R', 2, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1243, 1, 442, 1);
|
||||
(7, 1007, 'R', 2, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1240, 0, 442, 1),
|
||||
(8, 1008, 'R', 2, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1241, 0, 442, 1),
|
||||
(9, 1009, 'R', 2, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1242, 0, 442, 1),
|
||||
(10, 1010, 'R', 2, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1243, 0, 442, 1);
|
||||
|
||||
INSERT INTO `vn`.`invoiceInConfig` (`id`, `retentionRate`, `retentionName`, `sageWithholdingFk`, `daysAgo`)
|
||||
VALUES
|
||||
|
@ -2614,13 +2615,33 @@ INSERT INTO `vn`.`invoiceInIntrastat` (`invoiceInFk`, `net`, `intrastatFk`, `amo
|
|||
(2, 13.20, 5080000, 15.00, 580, 5),
|
||||
(2, 16.10, 6021010, 25.00, 80, 5);
|
||||
|
||||
INSERT INTO `vn`.`ticketRecalc`(`ticketFk`)
|
||||
SELECT t.id
|
||||
FROM vn.ticket t
|
||||
LEFT JOIN vn.ticketRecalc tr ON tr.ticketFk = t.id
|
||||
WHERE tr.ticketFk IS NULL;
|
||||
UPDATE `vn`.`invoiceIn`
|
||||
SET isBooked = TRUE
|
||||
WHERE id IN (5, 7, 8, 9, 10);
|
||||
|
||||
CALL `vn`.`ticket_doRecalc`();
|
||||
DELIMITER $$
|
||||
CREATE PROCEDURE `tmp`.`ticket_recalc`()
|
||||
BEGIN
|
||||
DECLARE vDone BOOL;
|
||||
DECLARE vTicketFk INT;
|
||||
|
||||
DECLARE cTickets CURSOR FOR SELECT id FROM vn.ticket;
|
||||
DECLARE CONTINUE HANDLER FOR NOT FOUND
|
||||
SET vDone = TRUE;
|
||||
|
||||
OPEN cTickets;
|
||||
myLoop: LOOP
|
||||
SET vDone = FALSE;
|
||||
FETCH cTickets INTO vTicketFk;
|
||||
IF vDone THEN LEAVE myLoop; END IF;
|
||||
CALL vn.ticket_recalc(vTicketFk, NULL);
|
||||
END LOOP;
|
||||
CLOSE cTickets;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
||||
CALL tmp.ticket_recalc;
|
||||
DROP PROCEDURE tmp.ticket_recalc;
|
||||
|
||||
UPDATE `vn`.`ticket`
|
||||
SET refFk = 'T1111111'
|
||||
|
@ -2822,7 +2843,8 @@ INSERT INTO `util`.`notification` (`id`, `name`, `description`)
|
|||
(4, 'supplier-pay-method-update', 'A supplier pay method has been updated'),
|
||||
(5, 'modified-entry', 'An entry has been modified'),
|
||||
(6, 'book-entry-deleted', 'accounting entries deleted'),
|
||||
(7, 'zone-included','An email to notify zoneCollisions');
|
||||
(7, 'zone-included','An email to notify zoneCollisions'),
|
||||
(8, 'backup-printer-selected','A backup printer has been selected');
|
||||
|
||||
TRUNCATE `util`.`notificationAcl`;
|
||||
INSERT INTO `util`.`notificationAcl` (`notificationFk`, `roleFk`)
|
||||
|
@ -2834,7 +2856,8 @@ INSERT INTO `util`.`notificationAcl` (`notificationFk`, `roleFk`)
|
|||
(4, 1),
|
||||
(5, 9),
|
||||
(6, 9),
|
||||
(7, 9);
|
||||
(7, 9),
|
||||
(8, 66);
|
||||
|
||||
TRUNCATE `util`.`notificationQueue`;
|
||||
INSERT INTO `util`.`notificationQueue` (`id`, `notificationFk`, `params`, `authorFk`, `status`, `created`)
|
||||
|
@ -2854,15 +2877,16 @@ INSERT INTO `util`.`notificationSubscription` (`notificationFk`, `userFk`)
|
|||
(1, 9),
|
||||
(1, 3),
|
||||
(6, 9),
|
||||
(7, 9);
|
||||
(7, 9),
|
||||
(8, 66);
|
||||
|
||||
INSERT INTO `vn`.`routeConfig` (`id`, `defaultWorkCenterFk`)
|
||||
VALUES
|
||||
(1, 9);
|
||||
|
||||
INSERT INTO `vn`.`productionConfig` (`isPreviousPreparationRequired`, `ticketPrintedMax`, `ticketTrolleyMax`, `rookieDays`, `notBuyingMonths`, `id`, `isZoneClosedByExpeditionActivated`, `maxNotReadyCollections`, `minTicketsToCloseZone`, `movingTicketDelRoute`, `defaultZone`, `defautlAgencyMode`, `hasUniqueCollectionTime`, `maxCollectionWithoutUser`, `pendingCollectionsOrder`, `pendingCollectionsAge`)
|
||||
INSERT INTO `vn`.`productionConfig` (`isPreviousPreparationRequired`, `ticketPrintedMax`, `ticketTrolleyMax`, `rookieDays`, `notBuyingMonths`, `id`, `isZoneClosedByExpeditionActivated`, `maxNotReadyCollections`, `minTicketsToCloseZone`, `movingTicketDelRoute`, `defaultZone`, `defautlAgencyMode`, `hasUniqueCollectionTime`, `maxCollectionWithoutUser`, `pendingCollectionsOrder`, `pendingCollectionsAge`, `backupPrinterNotificationDelay`)
|
||||
VALUES
|
||||
(0, 8, 80, 0, 0, 1, 0, 15, 25, -1, 697, 1328, 0, 1, 8, 6);
|
||||
(0, 8, 80, 0, 0, 1, 0, 15, 25, -1, 697, 1328, 0, 1, 8, 6, 3600);
|
||||
|
||||
INSERT INTO `vn`.`collection` (`id`, `created`, `workerFk`, `stateFk`, `itemPackingTypeFk`, `saleTotalCount`, `salePickedCount`, `trainFk`, `sectorFk`, `wagons`)
|
||||
VALUES
|
||||
|
@ -3232,7 +3256,7 @@ INSERT INTO vn.buy
|
|||
stickers = 1,
|
||||
packing = 20,
|
||||
`grouping` = 1,
|
||||
groupingMode = 1,
|
||||
groupingMode = 'packing',
|
||||
price1 = 1,
|
||||
price2 = 1,
|
||||
price3 = 1,
|
||||
|
@ -3270,7 +3294,7 @@ INSERT INTO vn.buy
|
|||
stickers = 1,
|
||||
packing = 40,
|
||||
`grouping` = 5,
|
||||
groupingMode = 1,
|
||||
groupingMode = 'packing',
|
||||
price1 = 1,
|
||||
price2 = 1,
|
||||
price3 = 1,
|
||||
|
@ -3308,7 +3332,7 @@ INSERT INTO vn.buy
|
|||
stickers = 2,
|
||||
packing = 10,
|
||||
`grouping` = 5,
|
||||
groupingMode = 1,
|
||||
groupingMode = 'packing',
|
||||
price1 = 1,
|
||||
price2 = 1,
|
||||
price3 = 1,
|
||||
|
@ -3354,7 +3378,7 @@ INSERT INTO vn.buy
|
|||
stickers = 1,
|
||||
packing = 20,
|
||||
`grouping` = 4,
|
||||
groupingMode = 1,
|
||||
groupingMode = 'packing',
|
||||
price1 = 1,
|
||||
price2 = 1,
|
||||
price3 = 1,
|
||||
|
@ -3392,7 +3416,7 @@ INSERT INTO vn.buy
|
|||
stickers = 1,
|
||||
packing = 20,
|
||||
`grouping` = 1,
|
||||
groupingMode = 1,
|
||||
groupingMode = 'packing',
|
||||
price1 = 1,
|
||||
price2 = 1,
|
||||
price3 = 1,
|
||||
|
@ -3431,7 +3455,7 @@ INSERT INTO vn.buy
|
|||
stickers = 1,
|
||||
packing = 200,
|
||||
`grouping` = 30,
|
||||
groupingMode = 1,
|
||||
groupingMode = 'packing',
|
||||
price1 = 1,
|
||||
price2 = 1,
|
||||
price3 = 1,
|
||||
|
@ -3470,7 +3494,7 @@ INSERT INTO vn.buy
|
|||
stickers = 1,
|
||||
packing = 500,
|
||||
`grouping` = 10,
|
||||
groupingMode = 1,
|
||||
groupingMode = 'packing',
|
||||
price1 = 1,
|
||||
price2 = 1,
|
||||
price3 = 1,
|
||||
|
@ -3509,7 +3533,7 @@ INSERT INTO vn.buy
|
|||
stickers = 2,
|
||||
packing = 300,
|
||||
`grouping` = 50,
|
||||
groupingMode = 1,
|
||||
groupingMode = 'packing',
|
||||
price1 = 1,
|
||||
price2 = 1,
|
||||
price3 = 1,
|
||||
|
@ -3548,7 +3572,7 @@ INSERT INTO vn.buy
|
|||
stickers = 2,
|
||||
packing = 50,
|
||||
`grouping` = 5,
|
||||
groupingMode = 1,
|
||||
groupingMode = 'packing',
|
||||
price1 = 1,
|
||||
price2 = 1,
|
||||
price3 = 1,
|
||||
|
@ -3588,7 +3612,7 @@ INSERT vn.buy
|
|||
stickers = 1,
|
||||
packing = 5,
|
||||
`grouping` = 2,
|
||||
groupingMode = 1,
|
||||
groupingMode = 'packing',
|
||||
price1 = 7,
|
||||
price2 = 7,
|
||||
price3 = 7,
|
||||
|
@ -3627,7 +3651,7 @@ INSERT vn.buy
|
|||
stickers = 1,
|
||||
packing = 100,
|
||||
`grouping` = 5,
|
||||
groupingMode = 1,
|
||||
groupingMode = 'packing',
|
||||
price1 = 7,
|
||||
price2 = 7,
|
||||
price3 = 7,
|
||||
|
@ -3745,7 +3769,7 @@ INSERT INTO vn.ticketLog (originFk,userFk,`action`,creationDate,changedModel,new
|
|||
INSERT INTO `vn`.`supplierDms`(`supplierFk`, `dmsFk`, `editorFk`)
|
||||
VALUES (1, 10, 9);
|
||||
|
||||
INSERT INTO `vn`.`accountReconciliation` (supplierAccountFk,operationDated,valueDated,amount,concept,debitCredit,calculatedCode,created)
|
||||
INSERT INTO `vn`.`accountReconciliation` (supplierAccountFk,operationDated,valueDated,amount,concept,debitCredit,calculatedCode,created)
|
||||
VALUES
|
||||
(241,'2023-12-13 00:00:00.000','2023-12-07 00:00:00.000',19.36,'BEL 1','debit','2','2023-12-14 08:39:53.000'),
|
||||
(241,'2023-12-13 00:00:00.000','2023-12-07 00:00:00.000',30226.43,'BEL 2','debit','1','2023-12-14 08:39:53.000'),
|
||||
|
@ -3756,5 +3780,10 @@ INSERT INTO `vn`.`accountReconciliation` (supplierAccountFk,operationDated,value
|
|||
(241,'2023-12-13 00:00:00.000','2023-12-13 00:00:00.000',3210.5,'RCBO.VOLVO','debit','121','2023-12-14 08:39:53.000'),
|
||||
(241,'2023-12-13 00:00:00.000','2023-12-13 00:00:00.000',6513.7,'RCBO.ENERPLUS','debit','120','2023-12-14 08:39:53.000');
|
||||
|
||||
INSERT INTO `vn`.`accountReconciliationConfig`(currencyFk, warehouseFk)
|
||||
INSERT INTO `vn`.`accountReconciliationConfig`(currencyFk, warehouseFk)
|
||||
VALUES (1, 1);
|
||||
|
||||
|
||||
INSERT INTO vn.workerTeam(id, team, workerFk)
|
||||
VALUES
|
||||
(8, 1, 19);
|
||||
|
|
|
@ -92,12 +92,12 @@ BEGIN
|
|||
UPDATE bi.Greuge_Evolution ge
|
||||
JOIN (
|
||||
SELECT cs.Id_Cliente, sum(Valor * Cantidad) as Importe
|
||||
FROM vn2008.Tickets t
|
||||
JOIN vn2008.Consignatarios cs on cs.Id_Consigna = t.Id_Consigna
|
||||
JOIN vn2008.Movimientos m on m.Id_Ticket = t.Id_Ticket
|
||||
FROM vn.ticket t
|
||||
JOIN vn2008.Consignatarios cs on cs.Id_Consigna = t.addressFk
|
||||
JOIN vn2008.Movimientos m on m.Id_Ticket = t.id
|
||||
JOIN vn2008.Movimientos_componentes mc on mc.Id_Movimiento = m.Id_Movimiento
|
||||
WHERE t.Fecha >= datFEC
|
||||
AND t.Fecha < datFEC_TOMORROW
|
||||
WHERE t.shipped >= datFEC
|
||||
AND t.shipped < datFEC_TOMORROW
|
||||
AND mc.Id_Componente = 17 -- Recobro
|
||||
GROUP BY cs.Id_Cliente
|
||||
) sub using(Id_Cliente)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bi`.`analisis_ventas_update`()
|
||||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bi`.`analisis_ventas_update`()
|
||||
BEGIN
|
||||
DECLARE vLastMonth DATE;
|
||||
|
||||
|
@ -10,18 +10,18 @@ BEGIN
|
|||
OR (Año = YEAR(vLastMonth) AND Mes >= MONTH(vLastMonth));
|
||||
|
||||
INSERT INTO analisis_ventas (
|
||||
Familia,
|
||||
Reino,
|
||||
Comercial,
|
||||
Comprador,
|
||||
Provincia,
|
||||
almacen,
|
||||
Año,
|
||||
Mes,
|
||||
Semana,
|
||||
Vista,
|
||||
Importe
|
||||
)
|
||||
Familia,
|
||||
Reino,
|
||||
Comercial,
|
||||
Comprador,
|
||||
Provincia,
|
||||
almacen,
|
||||
Año,
|
||||
Mes,
|
||||
Semana,
|
||||
Vista,
|
||||
Importe
|
||||
)
|
||||
SELECT
|
||||
tp.Tipo AS Familia,
|
||||
r.reino AS Reino,
|
||||
|
@ -35,19 +35,19 @@ BEGIN
|
|||
dm.description AS Vista,
|
||||
bt.importe AS Importe
|
||||
FROM bs.ventas bt
|
||||
LEFT JOIN vn2008.Tipos tp ON tp.tipo_id = bt.tipo_id
|
||||
LEFT JOIN vn2008.reinos r ON r.id = tp.reino_id
|
||||
LEFT JOIN vn2008.Clientes c on c.Id_Cliente = bt.Id_Cliente
|
||||
LEFT JOIN vn2008.Trabajadores tr ON tr.Id_Trabajador = c.Id_Trabajador
|
||||
LEFT JOIN vn2008.Trabajadores tr2 ON tr2.Id_Trabajador = tp.Id_Trabajador
|
||||
JOIN vn2008.time tm ON tm.date = bt.fecha
|
||||
JOIN vn2008.Movimientos m ON m.Id_Movimiento = bt.Id_Movimiento
|
||||
LEFT JOIN vn2008.Tickets t ON t.Id_Ticket = m.Id_Ticket
|
||||
JOIN vn2008.Agencias a ON a.Id_Agencia = t.Id_Agencia
|
||||
LEFT JOIN vn.deliveryMethod dm ON dm.id = a.Vista
|
||||
LEFT JOIN vn2008.Consignatarios cs ON cs.Id_Consigna = t.Id_Consigna
|
||||
LEFT JOIN vn2008.province p ON p.province_id = cs.province_id
|
||||
LEFT JOIN vn.warehouse w ON w.id = t.warehouse_id
|
||||
WHERE bt.fecha >= vLastMonth AND r.mercancia;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
LEFT JOIN vn2008.Tipos tp ON tp.tipo_id = bt.tipo_id
|
||||
LEFT JOIN vn2008.reinos r ON r.id = tp.reino_id
|
||||
LEFT JOIN vn2008.Clientes c on c.Id_Cliente = bt.Id_Cliente
|
||||
LEFT JOIN vn2008.Trabajadores tr ON tr.Id_Trabajador = c.Id_Trabajador
|
||||
LEFT JOIN vn2008.Trabajadores tr2 ON tr2.Id_Trabajador = tp.Id_Trabajador
|
||||
JOIN vn2008.time tm ON tm.date = bt.fecha
|
||||
JOIN vn2008.Movimientos m ON m.Id_Movimiento = bt.Id_Movimiento
|
||||
LEFT JOIN vn.ticket t ON t.id = m.Id_Ticket
|
||||
JOIN vn2008.Agencias a ON a.Id_Agencia = t.agencyModeFk
|
||||
LEFT JOIN vn.deliveryMethod dm ON dm.id = a.Vista
|
||||
LEFT JOIN vn2008.Consignatarios cs ON cs.Id_Consigna = t.addressFk
|
||||
LEFT JOIN vn2008.province p ON p.province_id = cs.province_id
|
||||
LEFT JOIN vn.warehouse w ON w.id = t.warehouseFk
|
||||
WHERE bt.fecha >= vLastMonth AND r.mercancia;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
|
|
@ -59,18 +59,18 @@ BEGIN
|
|||
DROP TEMPORARY TABLE IF EXISTS tmp.ticket_list;
|
||||
CREATE TEMPORARY TABLE tmp.ticket_list
|
||||
(PRIMARY KEY (Id_Ticket))
|
||||
SELECT DISTINCT t.Id_Ticket
|
||||
SELECT DISTINCT t.id Id_Ticket
|
||||
FROM vn2008.Movimientos_componentes mc
|
||||
JOIN vn2008.Movimientos m ON mc.Id_Movimiento = m.Id_Movimiento
|
||||
JOIN vn2008.Tickets t ON t.Id_Ticket = m.Id_Ticket
|
||||
JOIN vn2008.Tickets_state ts ON ts.Id_Ticket = t.Id_Ticket
|
||||
JOIN vn.ticketTracking tt ON tt.id = ts.inter_id
|
||||
JOIN vn2008.state s ON s.id = tt.stateFk
|
||||
JOIN vn.ticket t ON t.id = m.Id_Ticket
|
||||
JOIN vn.ticketLastState ts ON ts.ticketFk = t.id
|
||||
JOIN vn.ticketTracking tt ON tt.id = ts.ticketTrackingFk
|
||||
JOIN vn.state s ON s.id = tt.stateFk
|
||||
WHERE mc.Id_Componente = 17
|
||||
AND mc.greuge = 0
|
||||
AND t.Fecha >= '2016-10-01'
|
||||
AND t.Fecha < util.VN_CURDATE()
|
||||
AND s.alert_level >= 3;
|
||||
AND t.shipped >= '2016-10-01'
|
||||
AND t.shipped < util.VN_CURDATE()
|
||||
AND s.alertLevel >= 3;
|
||||
|
||||
DELETE g.*
|
||||
FROM vn.greuge g
|
||||
|
@ -79,18 +79,18 @@ BEGIN
|
|||
|
||||
INSERT INTO vn.greuge(clientFk, description, amount,shipped,
|
||||
greugeTypeFk, ticketFk)
|
||||
SELECT Id_Cliente
|
||||
SELECT t.clientFk
|
||||
,concat('recobro ', m.Id_Ticket), - round(SUM(mc.Valor*Cantidad),2)
|
||||
AS dif
|
||||
,date(t.Fecha)
|
||||
,date(t.shipped)
|
||||
, 2
|
||||
,tt.Id_Ticket
|
||||
FROM vn2008.Movimientos m
|
||||
JOIN vn2008.Tickets t ON t.Id_Ticket = m.Id_Ticket
|
||||
JOIN tmp.ticket_list tt ON tt.Id_Ticket = t.Id_Ticket
|
||||
JOIN vn.ticket t ON t.id = m.Id_Ticket
|
||||
JOIN tmp.ticket_list tt ON tt.Id_Ticket = t.id
|
||||
JOIN vn2008.Movimientos_componentes mc
|
||||
ON mc.Id_Movimiento = m.Id_Movimiento AND mc.Id_Componente = 17
|
||||
GROUP BY t.Id_Ticket
|
||||
GROUP BY t.id
|
||||
HAVING ABS(dif) > 1;
|
||||
|
||||
UPDATE vn2008.Movimientos_componentes mc
|
||||
|
|
|
@ -15,17 +15,17 @@ BEGIN
|
|||
IF lastCOMP < vMaxPeriod - 3 AND vMaxWeek > 3 THEN
|
||||
|
||||
REPLACE vn2008.Comparativa(Periodo, Id_Article, warehouse_id, Cantidad,price)
|
||||
SELECT tm.period as Periodo, m.Id_Article, t.warehouse_id, sum(m.Cantidad), sum(v.importe)
|
||||
SELECT tm.period as Periodo, m.Id_Article, t.warehouseFk, sum(m.Cantidad), sum(v.importe)
|
||||
FROM bs.ventas v
|
||||
JOIN vn2008.time tm ON tm.date = v.fecha
|
||||
JOIN vn2008.Movimientos m ON m.Id_Movimiento = v.Id_Movimiento
|
||||
JOIN vn2008.Tipos tp ON tp.tipo_id = v.tipo_id
|
||||
JOIN vn2008.reinos r ON r.id = tp.reino_id
|
||||
JOIN vn2008.Tickets t ON t.Id_Ticket = m.Id_Ticket
|
||||
JOIN vn.ticket t ON t.id = m.Id_Ticket
|
||||
WHERE tm.period BETWEEN lastCOMP AND vMaxPeriod - 3
|
||||
AND t.Id_Cliente NOT IN(400,200)
|
||||
AND t.warehouse_id NOT IN (0,13)
|
||||
GROUP BY m.Id_Article, Periodo, t.warehouse_id;
|
||||
AND t.clientFk NOT IN(400,200)
|
||||
AND t.warehouseFk NOT IN (0,13)
|
||||
GROUP BY m.Id_Article, Periodo, t.warehouseFk;
|
||||
|
||||
END IF;
|
||||
END$$
|
||||
|
|
|
@ -25,16 +25,16 @@ BEGIN
|
|||
WHERE Periodo BETWEEN periodStart AND periodEnd;
|
||||
|
||||
INSERT INTO vn2008.Comparativa(Periodo, Id_Article, warehouse_id, Cantidad,price)
|
||||
SELECT tm.period as Periodo, m.Id_Article, t.warehouse_id, sum(m.Cantidad), sum(v.importe)
|
||||
SELECT tm.period as Periodo, m.Id_Article, t.warehouseFk, sum(m.Cantidad), sum(v.importe)
|
||||
FROM bs.ventas v
|
||||
JOIN vn2008.time tm ON tm.date = v.fecha
|
||||
JOIN vn2008.Movimientos m ON m.Id_Movimiento = v.Id_Movimiento
|
||||
JOIN vn2008.Tipos tp ON tp.tipo_id = v.tipo_id
|
||||
JOIN vn2008.reinos r ON r.id = tp.reino_id
|
||||
JOIN vn2008.Tickets t ON t.Id_Ticket = m.Id_Ticket
|
||||
JOIN vn.ticket t ON t.id = m.Id_Ticket
|
||||
WHERE tm.period BETWEEN periodStart AND periodEnd
|
||||
AND t.Id_Cliente NOT IN(400,200)
|
||||
AND t.warehouse_id NOT IN (0,13)
|
||||
GROUP BY m.Id_Article, Periodo, t.warehouse_id;
|
||||
AND t.clientFk NOT IN(400,200)
|
||||
AND t.warehouseFk NOT IN (0,13)
|
||||
GROUP BY m.Id_Article, Periodo, t.warehouseFk;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
|
|
@ -11,13 +11,13 @@ AS SELECT `time`.`year` AS `year`,
|
|||
FROM (
|
||||
(
|
||||
(
|
||||
`vn2008`.`Tickets` `t`
|
||||
JOIN `bi`.`f_tvc` ON(`t`.`Id_Ticket` = `bi`.`f_tvc`.`Id_Ticket`)
|
||||
`vn`.`ticket` `t`
|
||||
JOIN `bi`.`f_tvc` ON(`t`.`id` = `bi`.`f_tvc`.`Id_Ticket`)
|
||||
)
|
||||
JOIN `vn2008`.`Movimientos` `m` ON(`t`.`Id_Ticket` = `m`.`Id_Ticket`)
|
||||
JOIN `vn2008`.`Movimientos` `m` ON(`t`.`id` = `m`.`Id_Ticket`)
|
||||
)
|
||||
JOIN `vn2008`.`time` ON(`time`.`date` = cast(`t`.`Fecha` AS date))
|
||||
JOIN `vn2008`.`time` ON(`time`.`date` = cast(`t`.`shipped` AS date))
|
||||
)
|
||||
WHERE `t`.`Fecha` >= '2014-01-01'
|
||||
WHERE `t`.`shipped` >= '2014-01-01'
|
||||
GROUP BY `time`.`year`,
|
||||
`time`.`month`
|
||||
|
|
|
@ -70,23 +70,23 @@ BEGIN
|
|||
AND (v.fecha BETWEEN TIMESTAMPADD(DAY, - DAY(vDate) + 1, vDate) AND TIMESTAMPADD(DAY, - 1, vDate))
|
||||
GROUP BY Id_Cliente) mes_actual ON mes_actual.Id_Cliente = c.Id_Cliente
|
||||
LEFT JOIN
|
||||
(SELECT t.Id_Cliente, SUM(m.preu * m.Cantidad * (1 - m.Descuento / 100)) futur
|
||||
FROM vn2008.Tickets t
|
||||
JOIN vn2008.Clientes c ON c.Id_Cliente = t.Id_Cliente
|
||||
JOIN vn2008.Movimientos m ON m.Id_Ticket = t.Id_Ticket
|
||||
(SELECT t.clientFk Id_Cliente, SUM(m.preu * m.Cantidad * (1 - m.Descuento / 100)) futur
|
||||
FROM vn.ticket t
|
||||
JOIN vn2008.Clientes c ON c.Id_Cliente = t.clientFk
|
||||
JOIN vn2008.Movimientos m ON m.Id_Ticket = t.id
|
||||
LEFT JOIN vn2008.Trabajadores tr ON c.Id_Trabajador = tr.Id_Trabajador
|
||||
WHERE
|
||||
(c.Id_Trabajador = vWorker OR tr.boss = vWorker)
|
||||
AND t.Fecha BETWEEN vDate AND util.dayEnd(LAST_DAY(vDate))
|
||||
AND t.shipped BETWEEN vDate AND util.dayEnd(LAST_DAY(vDate))
|
||||
GROUP BY Id_Cliente) f ON c.Id_Cliente = f.Id_Cliente
|
||||
LEFT JOIN
|
||||
(SELECT MAX(t.Fecha) LastTicket, c.Id_Cliente
|
||||
FROM vn2008.Tickets t
|
||||
JOIN vn2008.Clientes c ON c.Id_cliente = t.Id_Cliente
|
||||
(SELECT MAX(t.shipped) LastTicket, c.Id_Cliente
|
||||
FROM vn.ticket t
|
||||
JOIN vn2008.Clientes c ON c.Id_cliente = t.clientFk
|
||||
LEFT JOIN vn2008.Trabajadores tr ON c.Id_Trabajador = tr.Id_Trabajador
|
||||
WHERE
|
||||
(c.Id_Trabajador = vWorker OR tr.boss = vWorker)
|
||||
GROUP BY t.Id_Cliente) LastTicket ON LastTicket.Id_Cliente = c.Id_Cliente
|
||||
GROUP BY t.clientFk) LastTicket ON LastTicket.Id_Cliente = c.Id_Cliente
|
||||
LEFT JOIN
|
||||
(
|
||||
SELECT SUM(importe) peso, c.Id_Cliente
|
||||
|
|
|
@ -68,13 +68,13 @@ BEGIN
|
|||
FROM
|
||||
(
|
||||
SELECT cs.Id_Cliente, Cantidad * Valor as mana
|
||||
FROM vn2008.Tickets t
|
||||
FROM vn.ticket t
|
||||
JOIN vn2008.Consignatarios cs using(Id_Consigna)
|
||||
JOIN vn2008.Movimientos m on m.Id_Ticket = t.Id_Ticket
|
||||
JOIN vn2008.Movimientos m on m.Id_Ticket = t.id
|
||||
JOIN vn2008.Movimientos_componentes mc on mc.Id_Movimiento = m.Id_Movimiento
|
||||
WHERE Id_Componente IN (vManaAutoId, vManaId, vClaimManaId)
|
||||
AND t.Fecha > vFromDated
|
||||
AND date(t.Fecha) <= vToDated
|
||||
AND t.shipped > vFromDated
|
||||
AND date(t.shipped) <= vToDated
|
||||
UNION ALL
|
||||
SELECT r.Id_Cliente, - Entregado
|
||||
FROM vn2008.Recibos r
|
||||
|
|
|
@ -19,11 +19,11 @@ BEGIN
|
|||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp.ticket_list;
|
||||
CREATE TEMPORARY TABLE tmp.ticket_list
|
||||
(PRIMARY KEY (Id_Ticket))
|
||||
(PRIMARY KEY (id))
|
||||
ENGINE = MEMORY
|
||||
SELECT Id_Ticket
|
||||
FROM vn2008.Tickets t
|
||||
JOIN vn.invoiceOut io ON io.`ref` = t.Factura
|
||||
SELECT t.id
|
||||
FROM vn.ticket t
|
||||
JOIN vn.invoiceOut io ON io.`ref` = t.refFk
|
||||
WHERE year(io.issued) = vYear
|
||||
AND month(io.issued) = vMonth;
|
||||
|
||||
|
@ -46,7 +46,7 @@ BEGIN
|
|||
) as grupo
|
||||
, tp.reino_id
|
||||
, a.tipo_id
|
||||
, t.empresa_id
|
||||
, t.companyFk
|
||||
, a.expenseFk
|
||||
+ IF(e.empresa_grupo = e2.empresa_grupo
|
||||
,1
|
||||
|
@ -54,19 +54,19 @@ BEGIN
|
|||
) * 100000
|
||||
+ tp.reino_id * 1000 as Gasto
|
||||
FROM vn2008.Movimientos m
|
||||
JOIN vn2008.Tickets t on t.Id_Ticket = m.Id_Ticket
|
||||
JOIN vn2008.Consignatarios cs on cs.Id_Consigna = t.Id_Consigna
|
||||
JOIN vn.ticket t ON t.id = m.Id_Ticket
|
||||
JOIN vn2008.Consignatarios cs on cs.Id_Consigna = t.addressFk
|
||||
JOIN vn2008.Clientes c on c.Id_Cliente = cs.Id_Cliente
|
||||
JOIN tmp.ticket_list tt on tt.Id_Ticket = t.Id_Ticket
|
||||
JOIN tmp.ticket_list tt on tt.id = t.id
|
||||
JOIN vn2008.Articles a on m.Id_Article = a.Id_Article
|
||||
JOIN vn2008.empresa e on e.id = t.empresa_id
|
||||
JOIN vn2008.empresa e on e.id = t.companyFk
|
||||
LEFT JOIN vn2008.empresa e2 on e2.Id_Cliente = c.Id_Cliente
|
||||
JOIN vn2008.Tipos tp on tp.tipo_id = a.tipo_id
|
||||
WHERE Cantidad <> 0
|
||||
AND Preu <> 0
|
||||
AND m.Descuento <> 100
|
||||
AND a.tipo_id != TIPO_PATRIMONIAL
|
||||
GROUP BY grupo, reino_id, tipo_id, empresa_id, Gasto;
|
||||
GROUP BY grupo, reino_id, tipo_id, companyFk, Gasto;
|
||||
|
||||
INSERT INTO bs.ventas_contables(year
|
||||
, month
|
||||
|
@ -92,7 +92,7 @@ BEGIN
|
|||
JOIN vn.ticket t ON ts.ticketFk = t.id
|
||||
JOIN vn.address a on a.id = t.addressFk
|
||||
JOIN vn.client cl on cl.id = a.clientFk
|
||||
JOIN tmp.ticket_list tt on tt.Id_Ticket = t.id
|
||||
JOIN tmp.ticket_list tt on tt.id = t.id
|
||||
JOIN vn.company c on c.id = t.companyFk
|
||||
LEFT JOIN vn.company c2 on c2.clientFk = cl.id
|
||||
GROUP BY grupo, t.companyFk ;
|
||||
|
|
|
@ -10,38 +10,38 @@ BEGIN
|
|||
DROP TEMPORARY TABLE IF EXISTS tmp.ticket_list;
|
||||
|
||||
CREATE TEMPORARY TABLE tmp.ticket_list
|
||||
(PRIMARY KEY (Id_Ticket))
|
||||
SELECT Id_Ticket
|
||||
FROM vn2008.Tickets t
|
||||
JOIN vn.invoiceOut io ON io.id = t.Factura
|
||||
(PRIMARY KEY (id))
|
||||
SELECT t.id
|
||||
FROM vn.ticket t
|
||||
JOIN vn.invoiceOut io ON io.id = t.refFk
|
||||
WHERE year(io.issued) = vYear
|
||||
AND month(io.issued) = vMonth;
|
||||
|
||||
AND month(io.issued) = vMonth;
|
||||
|
||||
SELECT vYear Año,
|
||||
vMonth Mes,
|
||||
t.Id_Cliente,
|
||||
t.clientFk Id_Cliente,
|
||||
round(sum(Cantidad * Preu * (100 - m.Descuento)/100)) Venta,
|
||||
IF(e.empresa_grupo = e2.empresa_grupo,
|
||||
1,
|
||||
IF(e2.empresa_grupo,2,0))
|
||||
AS grupo,
|
||||
t.empresa_id empresa
|
||||
t.companyFk empresa
|
||||
FROM vn2008.Movimientos m
|
||||
JOIN vn2008.Tickets t ON t.Id_Ticket = m.Id_Ticket
|
||||
JOIN vn2008.Consignatarios cs ON cs.Id_Consigna = t.Id_Consigna
|
||||
JOIN vn.ticket t ON t.id = m.Id_Ticket
|
||||
JOIN vn2008.Consignatarios cs ON cs.Id_Consigna = t.addressFk
|
||||
JOIN vn2008.Clientes c ON c.Id_Cliente = cs.Id_Cliente
|
||||
JOIN tmp.ticket_list tt ON tt.Id_Ticket = t.Id_Ticket
|
||||
JOIN tmp.ticket_list tt ON tt.id = t.id
|
||||
JOIN vn2008.Articles a ON m.Id_Article = a.Id_Article
|
||||
JOIN vn2008.empresa e ON e.id = t.empresa_id
|
||||
JOIN vn2008.empresa e ON e.id = t.companyFk
|
||||
LEFT JOIN vn2008.empresa e2 ON e2.Id_Cliente = c.Id_Cliente
|
||||
JOIN vn2008.Tipos tp ON tp.tipo_id = a.tipo_id
|
||||
WHERE Cantidad <> 0
|
||||
AND Preu <> 0
|
||||
AND m.Descuento <> 100
|
||||
AND a.tipo_id != 188
|
||||
GROUP BY t.Id_Cliente, grupo,t.empresa_id;
|
||||
|
||||
GROUP BY t.clientFk, grupo,t.companyFk;
|
||||
|
||||
DROP TEMPORARY TABLE tmp.ticket_list;
|
||||
|
||||
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
|
|
@ -14,7 +14,6 @@ proc:BEGIN
|
|||
DECLARE vPackage INT;
|
||||
DECLARE vPutOrderFk INT;
|
||||
DECLARE vIsLot BOOLEAN;
|
||||
DECLARE vForceToPacking INT DEFAULT 2;
|
||||
DECLARE vEntryFk INT;
|
||||
DECLARE vHasToChangePackagingFk BOOLEAN;
|
||||
DECLARE vIsFloramondoDirect BOOLEAN;
|
||||
|
@ -150,7 +149,7 @@ proc:BEGIN
|
|||
@pac := GREATEST(1, IFNULL(i.stemMultiplier, 1) * e.pac / @t) packing,
|
||||
IFNULL(b.`grouping`, e.pac),
|
||||
@pac * e.qty,
|
||||
vForceToPacking,
|
||||
'packing',
|
||||
IF(vHasToChangePackagingFk OR b.packagingFk IS NULL, vPackage, b.packagingFk),
|
||||
(IFNULL(i.weightByPiece, 0) * @pac) / 1000
|
||||
FROM ekt e
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `edi`.`floramondo_offerRefresh`()
|
||||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `edi`.`floramondo_offerRefresh`()
|
||||
proc: BEGIN
|
||||
DECLARE vLanded DATETIME;
|
||||
DECLARE vDone INT DEFAULT FALSE;
|
||||
|
@ -417,7 +417,7 @@ proc: BEGIN
|
|||
o.NumberOfUnits etiquetas,
|
||||
o.NumberOfItemsPerCask packing,
|
||||
GREATEST(1, IFNULL(o.MinimumQuantity,0)) * o.NumberOfItemsPerCask `grouping`,
|
||||
2, -- Obliga al Packing
|
||||
'packing',
|
||||
o.embalageCode,
|
||||
o.diId
|
||||
FROM edi.offer o
|
||||
|
@ -518,5 +518,5 @@ proc: BEGIN
|
|||
fieldValue = TIMEDIFF(util.VN_NOW(), vStartingTime);
|
||||
|
||||
DO RELEASE_LOCK('edi.floramondo_offerRefresh');
|
||||
END$$
|
||||
DELIMITER ;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
DELIMITER $$
|
||||
$$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE floranet.catalogue_findById(vSelf INT)
|
||||
READS SQL DATA
|
||||
BEGIN
|
||||
/**
|
||||
* Returns one recordset from catalogue
|
||||
*
|
||||
* @param vCatalogueFk Identifier de floranet.catalogue
|
||||
*/
|
||||
SELECT * FROM catalogue WHERE id = vSelf;
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -6,7 +6,7 @@ CREATE DEFINER=`root`@`localhost` PROCEDURE floranet.catalogue_get(vLanded DATE,
|
|||
READS SQL DATA
|
||||
proc:BEGIN
|
||||
/**
|
||||
* Returns list, price and all the stuff regarding the floranet items
|
||||
* Returns list, price and all the stuff regarding the floranet items.
|
||||
*
|
||||
* @param vLanded Delivery date
|
||||
* @param vPostalCode Delivery address postal code
|
||||
|
|
|
@ -11,7 +11,7 @@ PROCEDURE floranet.contact_request(
|
|||
READS SQL DATA
|
||||
BEGIN
|
||||
/**
|
||||
* Set actions for contact request.
|
||||
* Set actions for contact request
|
||||
*
|
||||
* @param vPostalCode Delivery address postal code
|
||||
*/
|
||||
|
|
|
@ -6,7 +6,7 @@ CREATE DEFINER=`root`@`localhost` PROCEDURE `floranet`.`deliveryDate_get`(vPosta
|
|||
READS SQL DATA
|
||||
BEGIN
|
||||
/**
|
||||
* Returns available dates for this postalCode, in the next seven days
|
||||
* Returns available dates for this postalCode, in the next seven days.
|
||||
*
|
||||
* @param vPostalCode Delivery address postal code
|
||||
*/
|
||||
|
|
|
@ -7,7 +7,7 @@ CREATE DEFINER=`root`@`localhost`PROCEDURE floranet.order_confirm(vCatalogueFk I
|
|||
READS SQL DATA
|
||||
|
||||
BEGIN
|
||||
/** Update order.isPaid field
|
||||
/** Update order.isPaid field.
|
||||
*
|
||||
* @param vCatalogueFk floranet.catalogue.id
|
||||
*
|
||||
|
|
|
@ -1,41 +1,21 @@
|
|||
DROP PROCEDURE IF EXISTS floranet.order_put;
|
||||
|
||||
DELIMITER $$
|
||||
$$
|
||||
CREATE DEFINER=`root`@`localhost` PROCEDURE floranet.order_put(vOrder JSON)
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE floranet.order_put(vJsonData JSON)
|
||||
READS SQL DATA
|
||||
BEGIN
|
||||
/**
|
||||
* Get and process an order
|
||||
* 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>
|
||||
*
|
||||
* @param vJsonData The order data in json format
|
||||
*/
|
||||
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'))
|
||||
);
|
||||
INSERT INTO `order`
|
||||
SET catalogueFk = JSON_UNQUOTE(JSON_EXTRACT(vJsonData, '$.customer.customerData.products[0].id')),
|
||||
customerName = JSON_UNQUOTE(JSON_EXTRACT(vJsonData, '$.customer.customerData.customerName')),
|
||||
email = JSON_UNQUOTE(JSON_EXTRACT(vJsonData, '$.customer.customerData.email')),
|
||||
customerPhone = JSON_UNQUOTE(JSON_EXTRACT(vJsonData, '$.customer.customerData.customerPhone')),
|
||||
message= JSON_UNQUOTE(JSON_EXTRACT(vJsonData, '$.customer.customerData.message')),
|
||||
deliveryName = JSON_UNQUOTE(JSON_EXTRACT(vJsonData, '$.customer.customerData.deliveryName')),
|
||||
address = JSON_UNQUOTE(JSON_EXTRACT(vJsonData, '$.customer.customerData.address')),
|
||||
deliveryPhone = JSON_UNQUOTE(JSON_EXTRACT(vJsonData, '$.customer.customerData.deliveryPhone'));
|
||||
|
||||
SELECT LAST_INSERT_ID() orderFk;
|
||||
END$$
|
||||
|
|
|
@ -6,7 +6,7 @@ CREATE DEFINER=`root`@`localhost` PROCEDURE floranet.sliders_get()
|
|||
READS SQL DATA
|
||||
BEGIN
|
||||
/**
|
||||
* Returns list of url for sliders
|
||||
* Returns list of url for sliders.
|
||||
*/
|
||||
SELECT
|
||||
CONCAT('https://cdn.verdnatura.es/image/catalog/1600x900/', i.image) url,
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` EVENT `hedera`.`order_doRecalc`
|
||||
ON SCHEDULE EVERY 10 SECOND
|
||||
STARTS '2019-08-29 14:18:04.000'
|
||||
ON COMPLETION PRESERVE
|
||||
DISABLE
|
||||
DO CALL order_doRecalc$$
|
||||
DELIMITER ;
|
|
@ -1,53 +0,0 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`order_doRecalc`()
|
||||
proc: BEGIN
|
||||
/**
|
||||
* Recalculates modified orders.
|
||||
*/
|
||||
DECLARE vDone BOOL;
|
||||
DECLARE vOrderFk INT;
|
||||
|
||||
DECLARE cCur CURSOR FOR
|
||||
SELECT DISTINCT orderFk FROM tOrder;
|
||||
|
||||
DECLARE CONTINUE HANDLER FOR NOT FOUND
|
||||
SET vDone = TRUE;
|
||||
|
||||
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
|
||||
BEGIN
|
||||
DO RELEASE_LOCK('hedera.order_doRecalc');
|
||||
ROLLBACK;
|
||||
RESIGNAL;
|
||||
END;
|
||||
|
||||
IF !GET_LOCK('hedera.order_doRecalc', 0) THEN
|
||||
LEAVE proc;
|
||||
END IF;
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tOrder;
|
||||
CREATE TEMPORARY TABLE tOrder
|
||||
ENGINE = MEMORY
|
||||
SELECT id, orderFk FROM orderRecalc;
|
||||
|
||||
OPEN cCur;
|
||||
|
||||
myLoop: LOOP
|
||||
SET vDone = FALSE;
|
||||
FETCH cCur INTO vOrderFk;
|
||||
|
||||
IF vDone THEN
|
||||
LEAVE myLoop;
|
||||
END IF;
|
||||
|
||||
CALL order_recalc(vOrderFk);
|
||||
END LOOP;
|
||||
|
||||
CLOSE cCur;
|
||||
|
||||
DELETE o FROM orderRecalc o JOIN tOrder t ON t.id = o.id;
|
||||
|
||||
DROP TEMPORARY TABLE tOrder;
|
||||
|
||||
DO RELEASE_LOCK('hedera.order_doRecalc');
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -1,16 +0,0 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`order_requestRecalc`(vSelf INT)
|
||||
proc: BEGIN
|
||||
/**
|
||||
* Adds a request to recalculate the order total.
|
||||
*
|
||||
* @param vSelf The order identifier
|
||||
*/
|
||||
IF vSelf IS NULL THEN
|
||||
LEAVE proc;
|
||||
END IF;
|
||||
|
||||
-- #4409 Disable order recalc
|
||||
-- INSERT INTO orderRecalc SET orderFk = vSelf;
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -1,9 +0,0 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `hedera`.`orderRow_afterDelete`
|
||||
AFTER DELETE ON `orderRow`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
CALL stock.log_add('orderRow', NULL, OLD.id);
|
||||
CALL order_requestRecalc(OLD.orderFk);
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -1,9 +0,0 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `hedera`.`orderRow_afterInsert`
|
||||
AFTER INSERT ON `orderRow`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
CALL stock.log_add('orderRow', NEW.id, NULL);
|
||||
CALL order_requestRecalc(NEW.orderFk);
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -1,10 +0,0 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `hedera`.`orderRow_afterUpdate`
|
||||
AFTER UPDATE ON `orderRow`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
CALL stock.log_add('orderRow', NEW.id, OLD.id);
|
||||
CALL order_requestRecalc(OLD.orderFk);
|
||||
CALL order_requestRecalc(NEW.orderFk);
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -2,23 +2,15 @@ DELIMITER $$
|
|||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `hedera`.`order_afterUpdate`
|
||||
AFTER UPDATE ON `order`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
CALL stock.log_add('order', NEW.id, OLD.id);
|
||||
|
||||
IF !(OLD.address_id <=> NEW.address_id)
|
||||
OR !(OLD.company_id <=> NEW.company_id)
|
||||
OR !(OLD.customer_id <=> NEW.customer_id) THEN
|
||||
CALL order_requestRecalc(NEW.id);
|
||||
END IF;
|
||||
|
||||
IF !(OLD.address_id <=> NEW.address_id) AND NEW.address_id = 2850 THEN
|
||||
-- Fallo que se actualiza no se sabe como tickets en este cliente
|
||||
CALL vn.mail_insert(
|
||||
'jgallego@verdnatura.es',
|
||||
'noreply@verdnatura.es',
|
||||
'Actualizada order al address 2850',
|
||||
CONCAT(account.myUser_getName(), ' ha creado la order ',NEW.id)
|
||||
);
|
||||
END IF;
|
||||
BEGIN
|
||||
IF !(OLD.address_id <=> NEW.address_id) AND NEW.address_id = 2850 THEN
|
||||
-- Fallo que se actualiza no se sabe como tickets en este cliente
|
||||
CALL vn.mail_insert(
|
||||
'jgallego@verdnatura.es',
|
||||
'noreply@verdnatura.es',
|
||||
'Actualizada order al address 2850',
|
||||
CONCAT(account.myUser_getName(), ' ha creado la order ',NEW.id)
|
||||
);
|
||||
END IF;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`inbound_addPick`(
|
||||
vSelf INT,
|
||||
vOutboundFk INT,
|
||||
vQuantity INT
|
||||
vOutboundFk INT,
|
||||
vQuantity INT
|
||||
)
|
||||
BEGIN
|
||||
INSERT INTO inboundPick
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`inbound_removePick`(
|
||||
vSelf INT,
|
||||
vOutboundFk INT,
|
||||
vQuantity INT,
|
||||
vTotalQuantity INT
|
||||
vOutboundFk INT,
|
||||
vQuantity INT,
|
||||
vTotalQuantity INT
|
||||
)
|
||||
BEGIN
|
||||
IF vQuantity < vTotalQuantity THEN
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`inbound_requestQuantity`(
|
||||
vSelf INT,
|
||||
vRequested INT,
|
||||
vDated DATETIME,
|
||||
OUT vSupplied INT)
|
||||
vRequested INT,
|
||||
vDated DATETIME,
|
||||
OUT vSupplied INT)
|
||||
BEGIN
|
||||
/**
|
||||
* Disassociates inbound picks after the given date until the
|
||||
|
@ -29,7 +29,7 @@ BEGIN
|
|||
|
||||
DECLARE CONTINUE HANDLER FOR NOT FOUND
|
||||
SET vDone = TRUE;
|
||||
|
||||
|
||||
SET vSupplied = 0;
|
||||
|
||||
OPEN vPicks;
|
||||
|
@ -45,7 +45,7 @@ BEGIN
|
|||
SET vPickGranted = LEAST(vRequested - vSupplied, vPickQuantity);
|
||||
SET vSupplied = vSupplied + vPickGranted;
|
||||
CALL inbound_removePick(vSelf, vOutboundFk, vPickGranted, vPickQuantity);
|
||||
|
||||
|
||||
UPDATE outbound
|
||||
SET isSync = FALSE,
|
||||
lack = lack + vPickGranted
|
||||
|
|
|
@ -23,7 +23,7 @@ BEGIN
|
|||
SELECT id, lack, lack < quantity
|
||||
FROM outbound
|
||||
WHERE warehouseFk = vWarehouse
|
||||
AND itemFk = vItem
|
||||
AND itemFk = vItem
|
||||
AND dated >= vDated
|
||||
AND (vExpired IS NULL OR dated < vExpired)
|
||||
ORDER BY dated, created;
|
||||
|
@ -51,8 +51,8 @@ BEGIN
|
|||
END IF;
|
||||
|
||||
SET vSupplied = LEAST(vAvailable, vLack);
|
||||
|
||||
IF vSupplied > 0 THEN
|
||||
|
||||
IF vSupplied > 0 THEN
|
||||
SET vAvailable = vAvailable - vSupplied;
|
||||
UPDATE outbound
|
||||
SET lack = lack - vSupplied
|
||||
|
@ -64,8 +64,8 @@ BEGIN
|
|||
SET vSupplied = vSupplied + vSuppliedFromRequest;
|
||||
SET vAvailable = vAvailable - vSuppliedFromRequest;
|
||||
END IF;
|
||||
|
||||
IF vSupplied > 0 THEN
|
||||
|
||||
IF vSupplied > 0 THEN
|
||||
CALL inbound_addPick(vSelf, vOutboundFk, vSupplied);
|
||||
END IF;
|
||||
|
||||
|
|
|
@ -1,21 +0,0 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`log_add`(IN `vTableName` VARCHAR(255), IN `vNewId` VARCHAR(255), IN `vOldId` VARCHAR(255))
|
||||
proc: BEGIN
|
||||
-- XXX: Disabled while testing
|
||||
LEAVE proc;
|
||||
|
||||
IF vOldId IS NOT NULL AND !(vOldId <=> vNewId) THEN
|
||||
INSERT IGNORE INTO `log` SET
|
||||
tableName = vTableName,
|
||||
tableId = vOldId,
|
||||
operation = 'delete';
|
||||
END IF;
|
||||
|
||||
IF vNewId IS NOT NULL THEN
|
||||
INSERT IGNORE INTO `log` SET
|
||||
tableName = vTableName,
|
||||
tableId = vNewId,
|
||||
operation = 'insert';
|
||||
END IF;
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -10,7 +10,7 @@ BEGIN
|
|||
DO RELEASE_LOCK('stock.log_sync');
|
||||
RESIGNAL;
|
||||
END;
|
||||
|
||||
|
||||
IF !GET_LOCK('stock.log_sync', 30) THEN
|
||||
CALL util.throw('Lock timeout exceeded');
|
||||
END IF;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`log_refreshBuy`(
|
||||
`vTableName` VARCHAR(255),
|
||||
`vTableId` INT)
|
||||
`vTableName` VARCHAR(255),
|
||||
`vTableId` INT)
|
||||
BEGIN
|
||||
DROP TEMPORARY TABLE IF EXISTS tValues;
|
||||
CREATE TEMPORARY TABLE tValues
|
||||
|
@ -11,7 +11,7 @@ BEGIN
|
|||
e.id entryFk,
|
||||
t.id travelFk,
|
||||
b.itemFk,
|
||||
e.isRaid,
|
||||
e.isRaid,
|
||||
ADDTIME(t.shipped,
|
||||
IFNULL(t.shipmentHour, '00:00:00')) shipped,
|
||||
t.warehouseOutFk,
|
||||
|
@ -24,7 +24,7 @@ BEGIN
|
|||
ABS(b.quantity) quantity,
|
||||
b.created,
|
||||
b.quantity > 0 isIn,
|
||||
t.shipped < vn.getInventoryDate() lessThanInventory
|
||||
t.shipped < vn.getInventoryDate() lessThanInventory
|
||||
FROM vn.buy b
|
||||
JOIN vn.entry e ON e.id = b.entryFk
|
||||
JOIN vn.travel t ON t.id = e.travelFk
|
||||
|
@ -52,7 +52,7 @@ BEGIN
|
|||
quantity,
|
||||
IF(isIn, isReceived, isDelivered) AND !isRaid
|
||||
FROM tValues
|
||||
WHERE isIn OR !lessThanInventory;
|
||||
WHERE isIn OR !lessThanInventory;
|
||||
|
||||
REPLACE INTO outbound (
|
||||
tableName, tableId, warehouseFk, dated,
|
||||
|
@ -67,7 +67,7 @@ BEGIN
|
|||
quantity,
|
||||
IF(isIn, isDelivered, isReceived) AND !isRaid
|
||||
FROM tValues
|
||||
WHERE !isIn OR !lessThanInventory;
|
||||
WHERE !isIn OR !lessThanInventory;
|
||||
|
||||
DROP TEMPORARY TABLE tValues;
|
||||
END$$
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`log_refreshOrder`(
|
||||
`vTableName` VARCHAR(255),
|
||||
`vTableId` INT)
|
||||
`vTableName` VARCHAR(255),
|
||||
`vTableId` INT)
|
||||
BEGIN
|
||||
DECLARE vExpireTime INT DEFAULT 20;
|
||||
DECLARE vExpired DATETIME DEFAULT TIMESTAMPADD(MINUTE, -vExpireTime, util.VN_NOW());
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tValues;
|
||||
CREATE TEMPORARY TABLE tValues
|
||||
CREATE TEMPORARY TABLE tValues
|
||||
ENGINE = MEMORY
|
||||
SELECT
|
||||
r.id rowFk,
|
||||
|
@ -23,24 +23,24 @@ BEGIN
|
|||
OR (vTableName = 'order' AND o.id = vTableId)
|
||||
OR (vTableName = 'orderRow' AND r.id = vTableId)
|
||||
)
|
||||
AND !o.confirmed
|
||||
AND r.shipment >= vn.getInventoryDate()
|
||||
AND !o.confirmed
|
||||
AND r.shipment >= vn.getInventoryDate()
|
||||
AND r.created >= vExpired
|
||||
AND r.amount != 0;
|
||||
|
||||
REPLACE INTO outbound (
|
||||
tableName, tableId, warehouseFk, dated,
|
||||
itemFk, created, expired, quantity
|
||||
itemFk, created, expired, quantity
|
||||
)
|
||||
SELECT 'orderRow',
|
||||
SELECT 'orderRow',
|
||||
rowFk,
|
||||
warehouseFk,
|
||||
shipped,
|
||||
itemFk,
|
||||
created,
|
||||
TIMESTAMPADD(MINUTE, vExpireTime, created),
|
||||
TIMESTAMPADD(MINUTE, vExpireTime, created),
|
||||
quantity
|
||||
FROM tValues;
|
||||
FROM tValues;
|
||||
|
||||
DROP TEMPORARY TABLE tValues;
|
||||
END$$
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`log_refreshSale`(
|
||||
`vTableName` VARCHAR(255),
|
||||
`vTableId` INT)
|
||||
`vTableName` VARCHAR(255),
|
||||
`vTableId` INT)
|
||||
BEGIN
|
||||
DROP TEMPORARY TABLE IF EXISTS tValues;
|
||||
CREATE TEMPORARY TABLE tValues
|
||||
CREATE TEMPORARY TABLE tValues
|
||||
ENGINE = MEMORY
|
||||
SELECT
|
||||
m.id saleFk,
|
||||
|
@ -14,7 +14,7 @@ BEGIN
|
|||
t.shipped,
|
||||
ABS(m.quantity) quantity,
|
||||
m.created,
|
||||
TIMESTAMPADD(DAY, tp.life, t.shipped) expired,
|
||||
TIMESTAMPADD(DAY, tp.life, t.shipped) expired,
|
||||
m.quantity < 0 isIn,
|
||||
m.isPicked OR s.alertLevel > 1 isPicked
|
||||
FROM vn.sale m
|
||||
|
@ -32,33 +32,33 @@ BEGIN
|
|||
|
||||
REPLACE INTO inbound (
|
||||
tableName, tableId, warehouseFk, dated,
|
||||
itemFk, expired, quantity, isPicked
|
||||
itemFk, expired, quantity, isPicked
|
||||
)
|
||||
SELECT 'sale',
|
||||
SELECT 'sale',
|
||||
saleFk,
|
||||
warehouseFk,
|
||||
shipped,
|
||||
itemFk,
|
||||
expired,
|
||||
expired,
|
||||
quantity,
|
||||
isPicked
|
||||
FROM tValues
|
||||
WHERE isIn;
|
||||
isPicked
|
||||
FROM tValues
|
||||
WHERE isIn;
|
||||
|
||||
REPLACE INTO outbound (
|
||||
tableName, tableId, warehouseFk, dated,
|
||||
itemFk, created, quantity, isPicked
|
||||
itemFk, created, quantity, isPicked
|
||||
)
|
||||
SELECT 'sale',
|
||||
SELECT 'sale',
|
||||
saleFk,
|
||||
warehouseFk,
|
||||
shipped,
|
||||
itemFk,
|
||||
created,
|
||||
quantity,
|
||||
isPicked
|
||||
FROM tValues
|
||||
WHERE !isIn;
|
||||
isPicked
|
||||
FROM tValues
|
||||
WHERE !isIn;
|
||||
|
||||
DROP TEMPORARY TABLE tValues;
|
||||
END$$
|
||||
|
|
|
@ -7,7 +7,7 @@ BEGIN
|
|||
* @param vSelf The outbound reference
|
||||
*/
|
||||
DECLARE vDated DATETIME;
|
||||
DECLARE vItem INT;
|
||||
DECLARE vItem INT;
|
||||
DECLARE vWarehouse INT;
|
||||
DECLARE vLack INT;
|
||||
DECLARE vSupplied INT;
|
||||
|
@ -21,7 +21,7 @@ BEGIN
|
|||
SELECT id, available, available < quantity
|
||||
FROM inbound
|
||||
WHERE warehouseFk = vWarehouse
|
||||
AND itemFk = vItem
|
||||
AND itemFk = vItem
|
||||
AND dated <= vDated
|
||||
AND (expired IS NULL OR expired > vDated)
|
||||
ORDER BY dated;
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`visible_log`(
|
||||
vIsPicked BOOL,
|
||||
vWarehouseFk INT,
|
||||
vItemFk INT,
|
||||
vQuantity INT
|
||||
vWarehouseFk INT,
|
||||
vItemFk INT,
|
||||
vQuantity INT
|
||||
)
|
||||
proc: BEGIN
|
||||
IF !vIsPicked THEN
|
||||
LEAVE proc;
|
||||
END IF;
|
||||
|
||||
INSERT INTO visible
|
||||
INSERT INTO visible
|
||||
SET itemFk = vItemFk,
|
||||
warehouseFk = vWarehouseFk,
|
||||
quantity = vQuantity
|
||||
|
|
|
@ -12,11 +12,11 @@ BEGIN
|
|||
DELETE FROM inboundPick
|
||||
WHERE inboundFk = OLD.id;
|
||||
|
||||
CALL visible_log(
|
||||
CALL visible_log(
|
||||
OLD.isPicked,
|
||||
OLD.warehouseFk,
|
||||
OLD.itemFk,
|
||||
-OLD.quantity
|
||||
OLD.warehouseFk,
|
||||
OLD.itemFk,
|
||||
-OLD.quantity
|
||||
);
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
|
|
@ -4,12 +4,12 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `stock`.`inbound_beforeInse
|
|||
FOR EACH ROW
|
||||
BEGIN
|
||||
SET NEW.isPicked = NEW.isPicked OR NEW.dated < util.VN_CURDATE();
|
||||
|
||||
CALL visible_log(
|
||||
|
||||
CALL visible_log(
|
||||
NEW.isPicked,
|
||||
NEW.warehouseFk,
|
||||
NEW.itemFk,
|
||||
NEW.quantity
|
||||
NEW.warehouseFk,
|
||||
NEW.itemFk,
|
||||
NEW.quantity
|
||||
);
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
|
|
@ -12,11 +12,11 @@ BEGIN
|
|||
DELETE FROM inboundPick
|
||||
WHERE outboundFk = OLD.id;
|
||||
|
||||
CALL visible_log(
|
||||
CALL visible_log(
|
||||
OLD.isPicked,
|
||||
OLD.warehouseFk,
|
||||
OLD.itemFk,
|
||||
OLD.quantity
|
||||
OLD.warehouseFk,
|
||||
OLD.itemFk,
|
||||
OLD.quantity
|
||||
);
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
|
|
@ -5,12 +5,12 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `stock`.`outbound_beforeIns
|
|||
BEGIN
|
||||
SET NEW.lack = NEW.quantity;
|
||||
SET NEW.isPicked = NEW.isPicked OR NEW.dated < util.VN_CURDATE();
|
||||
|
||||
CALL visible_log(
|
||||
|
||||
CALL visible_log(
|
||||
NEW.isPicked,
|
||||
NEW.warehouseFk,
|
||||
NEW.itemFk,
|
||||
-NEW.quantity
|
||||
NEW.warehouseFk,
|
||||
NEW.itemFk,
|
||||
-NEW.quantity
|
||||
);
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`binlogQueue_getDelay`(vCode VARCHAR(255))
|
||||
RETURNS BIGINT
|
||||
READS SQL DATA
|
||||
NOT DETERMINISTIC
|
||||
BEGIN
|
||||
/**
|
||||
* Returns the difference between the current position of the binary log and
|
||||
* the passed queue.
|
||||
*
|
||||
* @param vCode The queue code
|
||||
* @return The difference in MB
|
||||
*/
|
||||
DECLARE vCurLogName VARCHAR(255);
|
||||
DECLARE vCurPosition BIGINT;
|
||||
DECLARE vQueueLogName VARCHAR(255);
|
||||
DECLARE vQueuePosition BIGINT;
|
||||
DECLARE vDelay BIGINT;
|
||||
|
||||
SELECT VARIABLE_VALUE INTO vCurLogName
|
||||
FROM information_schema.GLOBAL_STATUS
|
||||
WHERE VARIABLE_NAME = 'BINLOG_SNAPSHOT_FILE';
|
||||
|
||||
SELECT VARIABLE_VALUE INTO vCurPosition
|
||||
FROM information_schema.GLOBAL_STATUS
|
||||
WHERE VARIABLE_NAME = 'BINLOG_SNAPSHOT_POSITION';
|
||||
|
||||
SELECT logName, `position`
|
||||
INTO vQueueLogName, vQueuePosition
|
||||
FROM binlogQueue
|
||||
WHERE code = vCode;
|
||||
|
||||
IF vQueuePosition IS NULL THEN
|
||||
RETURN NULL;
|
||||
END IF;
|
||||
|
||||
SET vDelay =
|
||||
vCurPosition - CAST(vQueuePosition AS SIGNED) +
|
||||
@@max_binlog_size * (
|
||||
CAST(REGEXP_SUBSTR(vCurLogName, '[0-9]+') AS SIGNED) -
|
||||
CAST(REGEXP_SUBSTR(vQueueLogName, '[0-9]+') AS SIGNED)
|
||||
);
|
||||
|
||||
RETURN ROUND(vDelay / POW(1024, 2));
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -1,5 +1,5 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` EVENT `vn2008`.`raidUpdate`
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` EVENT `vn`.`raidUpdate`
|
||||
ON SCHEDULE EVERY 1 DAY
|
||||
STARTS '2017-12-29 00:05:00.000'
|
||||
ON COMPLETION PRESERVE
|
|
@ -1,8 +0,0 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` EVENT `vn`.`ticket_doRecalc`
|
||||
ON SCHEDULE EVERY 10 SECOND
|
||||
STARTS '2022-01-28 09:29:18.000'
|
||||
ON COMPLETION PRESERVE
|
||||
ENABLE
|
||||
DO CALL ticket_doRecalc$$
|
||||
DELIMITER ;
|
|
@ -1,8 +0,0 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` EVENT `vn`.`travel_doRecalc`
|
||||
ON SCHEDULE EVERY 15 SECOND
|
||||
STARTS '2019-05-17 10:52:29.000'
|
||||
ON COMPLETION PRESERVE
|
||||
ENABLE
|
||||
DO CALL travel_doRecalc$$
|
||||
DELIMITER ;
|
|
@ -11,9 +11,9 @@ BEGIN
|
|||
SELECT
|
||||
a.Vista
|
||||
INTO vDeliveryType
|
||||
FROM vn2008.Tickets t
|
||||
JOIN vn2008.Agencias a ON a.Id_Agencia = t.Id_Agencia
|
||||
WHERE Id_Ticket = vTicket;
|
||||
FROM ticket t
|
||||
JOIN vn2008.Agencias a ON a.Id_Agencia = t.agencyModeFk
|
||||
WHERE t.id = vTicket;
|
||||
|
||||
CASE vDeliveryType
|
||||
WHEN 1 THEN -- AGENCIAS
|
||||
|
@ -23,11 +23,11 @@ BEGIN
|
|||
SET vCode = 'ON_DELIVERY';
|
||||
|
||||
ELSE -- MERCADO, OTROS
|
||||
SELECT t.warehouse_id <> w.warehouse_id INTO isWaitingForPickUp
|
||||
FROM vn2008.Tickets t
|
||||
SELECT t.warehouseFk <> w.warehouse_id INTO isWaitingForPickUp
|
||||
FROM ticket t
|
||||
LEFT JOIN vn2008.warehouse_pickup w
|
||||
ON w.agency_id = t.Id_Agencia AND w.warehouse_id = t.warehouse_id
|
||||
WHERE t.Id_Ticket = vTicket;
|
||||
ON w.agency_id = t.agencyModeFk AND w.warehouse_id = t.warehouseFk
|
||||
WHERE t.id = vTicket;
|
||||
|
||||
IF isWaitingForPickUp THEN
|
||||
SET vCode = 'WAITING_FOR_PICKUP';
|
||||
|
|
|
@ -28,10 +28,10 @@ SELECT t.routeFk, t.warehouseFk, IFNULL(ts.productionOrder,0)
|
|||
|
||||
SELECT (ag.`name` = 'VN_VALENCIA')
|
||||
INTO vIsValenciaPath
|
||||
FROM vn2008.Rutas r
|
||||
JOIN vn2008.Agencias a on a.Id_Agencia = r.Id_Agencia
|
||||
FROM `route` r
|
||||
JOIN vn2008.Agencias a on a.Id_Agencia = r.agencyModeFk
|
||||
JOIN vn2008.agency ag on ag.agency_id = a.agency_id
|
||||
WHERE r.Id_Ruta = vMyPath;
|
||||
WHERE r.id = vMyPath;
|
||||
|
||||
IF vIsValenciaPath THEN -- Rutas Valencia
|
||||
|
||||
|
|
|
@ -48,7 +48,7 @@ BEGIN
|
|||
IF(i.hasMinPrice, GREATEST(i.minPrice,IFNULL(pf.rate3, b.price3)),IFNULL(pf.rate3, b.price3)) rate3,
|
||||
IFNULL(pf.packing, GREATEST(b.grouping, b.packing)) packing,
|
||||
IFNULL(pf.`grouping`, b.`grouping`) `grouping`,
|
||||
ABS(IFNULL(pf.box, b.groupingMode)) groupingMode,
|
||||
b.groupingMode groupingMode,
|
||||
tl.buyFk,
|
||||
i.typeFk,
|
||||
IF(i.hasKgPrice, b.weight / b.packing, NULL) weightGrouping
|
||||
|
@ -252,14 +252,15 @@ BEGIN
|
|||
SELECT tcc.warehouseFk,
|
||||
tcc.itemFk,
|
||||
1 rate,
|
||||
IF(tcc.groupingMode = 1, tcc.`grouping`, 1) `grouping`,
|
||||
IF(tcc.groupingMode = 'grouping', tcc.`grouping`, 1) `grouping`,
|
||||
CAST(SUM(tcs.sumCost) AS DECIMAL(10,2)) price,
|
||||
CAST(SUM(tcs.sumCost) AS DECIMAL(10,2)) / weightGrouping priceKg
|
||||
FROM tmp.ticketComponentCalculate tcc
|
||||
JOIN tmp.ticketComponentSum tcs ON tcs.itemFk = tcc.itemFk
|
||||
AND tcs.warehouseFk = tcc.warehouseFk
|
||||
WHERE IFNULL(tcs.classRate, 1) = 1
|
||||
AND tcc.groupingMode < 2 AND (tcc.packing > tcc.`grouping` or tcc.groupingMode = 0)
|
||||
AND NOT tcc.groupingMode = 'packing'
|
||||
AND (tcc.packing > tcc.`grouping` OR tcc.groupingMode IS NULL)
|
||||
GROUP BY tcs.warehouseFk, tcs.itemFk;
|
||||
|
||||
INSERT INTO tmp.ticketComponentRate (warehouseFk, itemFk, rate, `grouping`, price, priceKg)
|
||||
|
|
|
@ -17,15 +17,15 @@ BEGIN
|
|||
|
||||
SET vEnded = util.dayEnd(IFNULL(vDate, util.VN_CURDATE()));
|
||||
|
||||
CREATE OR REPLACE TEMPORARY TABLE tClientRisk
|
||||
CREATE OR REPLACE TEMPORARY TABLE tClientRisk
|
||||
ENGINE = MEMORY
|
||||
SELECT cr.clientFk, SUM(cr.amount) amount
|
||||
SELECT cr.clientFk, SUM(cr.amount) amount
|
||||
FROM clientRisk cr
|
||||
JOIN tmp.clientGetDebt c ON c.clientFk = cr.clientFk
|
||||
GROUP BY cr.clientFk;
|
||||
|
||||
INSERT INTO tClientRisk
|
||||
SELECT c.clientFk, SUM(r.amountPaid)
|
||||
SELECT c.clientFk, SUM(r.amountPaid)
|
||||
FROM receipt r
|
||||
JOIN tmp.clientGetDebt c ON c.clientFk = r.clientFk
|
||||
WHERE r.payed > vEnded
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`client_getRisk`(
|
||||
vDate DATE
|
||||
)
|
||||
BEGIN
|
||||
/**
|
||||
* Retorna el riesgo de los clientes activos.
|
||||
*
|
||||
* @param vDate Fecha a calcular
|
||||
*/
|
||||
CREATE OR REPLACE TEMPORARY TABLE tmp.clientGetDebt
|
||||
(PRIMARY KEY (clientFk))
|
||||
ENGINE = MEMORY
|
||||
SELECT id clientFk
|
||||
FROM client
|
||||
WHERE isActive;
|
||||
|
||||
CALL client_getDebt(vDate);
|
||||
|
||||
SELECT c.socialName,
|
||||
r.clientFk,
|
||||
c.credit,
|
||||
CAST(r.risk AS DECIMAL (10,2)) risk,
|
||||
CAST(c.credit - r.risk AS DECIMAL (10,2)) difference,
|
||||
co.country
|
||||
FROM client c
|
||||
JOIN tmp.risk r ON r.clientFk = c.id
|
||||
JOIN country co ON co.id = c.countryFk
|
||||
GROUP BY c.id;
|
||||
|
||||
DROP TEMPORARY TABLE
|
||||
tmp.risk,
|
||||
tmp.clientGetDebt;
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -40,8 +40,8 @@ BEGIN
|
|||
ENGINE = MEMORY
|
||||
SELECT b.itemFk,
|
||||
CASE b.groupingMode
|
||||
WHEN 0 THEN 1
|
||||
WHEN 2 THEN b.packing
|
||||
WHEN NULL THEN 1
|
||||
WHEN 'packing' THEN b.packing
|
||||
ELSE b.`grouping`
|
||||
END `grouping`
|
||||
FROM buy b
|
||||
|
|
|
@ -2,41 +2,41 @@ 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;
|
||||
* Devuelve el riesgo de los clientes que estan asegurados
|
||||
*/
|
||||
CREATE OR REPLACE TEMPORARY TABLE tmp.clientGetDebt
|
||||
(PRIMARY KEY (clientFk))
|
||||
ENGINE = MEMORY
|
||||
SELECT * FROM (
|
||||
SELECT cc.client clientFk, 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 clientFk;
|
||||
|
||||
CALL vn2008.risk_vs_client_list(util.VN_CURDATE());
|
||||
CALL client_getDebt(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;
|
||||
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,
|
||||
cgd.grade,
|
||||
c2.country
|
||||
FROM tmp.clientGetDebt cgd
|
||||
LEFT JOIN tmp.risk r ON r.clientFk = cgd.clientFk
|
||||
JOIN client c ON c.id = cgd.clientFk
|
||||
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;
|
||||
DROP TEMPORARY TABLE
|
||||
tmp.risk,
|
||||
tmp.clientGetDebt;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
DELIMITER ;
|
|
@ -0,0 +1,54 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`creditRecovery`()
|
||||
BEGIN
|
||||
/**
|
||||
* Actualiza el crédito de los clientes
|
||||
*/
|
||||
|
||||
DECLARE EXIT HANDLER FOR SQLSTATE '45000'
|
||||
BEGIN
|
||||
ROLLBACK;
|
||||
RESIGNAL;
|
||||
END;
|
||||
|
||||
START TRANSACTION;
|
||||
|
||||
UPDATE `client` c
|
||||
JOIN payMethod pm ON pm.id = c.payMethodFk
|
||||
SET c.credit = 0
|
||||
WHERE pm.`code` = 'card';
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tCreditClients;
|
||||
CREATE TEMPORARY TABLE tCreditClients
|
||||
SELECT clientFk, IF(credit > recovery, credit - recovery, 0) newCredit
|
||||
FROM (
|
||||
SELECT r.clientFk,
|
||||
r.amount recovery,
|
||||
(sub2.created + INTERVAL r.period DAY) deadLine,
|
||||
sub2.amount credit
|
||||
FROM recovery r
|
||||
JOIN (
|
||||
SELECT clientFk, amount, created
|
||||
FROM (
|
||||
SELECT clientFk, amount, created
|
||||
FROM clientCredit
|
||||
ORDER BY created DESC
|
||||
LIMIT 10000000000000000000
|
||||
) sub
|
||||
GROUP BY clientFk
|
||||
) sub2 ON sub2.clientFk = r.clientFk
|
||||
WHERE r.finished IS NULL OR r.finished >= util.VN_CURDATE()
|
||||
GROUP BY r.clientFk
|
||||
HAVING deadLine <= util.VN_CURDATE()
|
||||
) sub3
|
||||
WHERE credit > 0;
|
||||
|
||||
UPDATE client c
|
||||
JOIN tCreditClients cc ON cc.clientFk = c.id
|
||||
SET c.credit = newCredit;
|
||||
|
||||
DROP TEMPORARY TABLE tCreditClients;
|
||||
COMMIT;
|
||||
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -116,7 +116,7 @@ BEGIN
|
|||
freightValue decimal(10,3) DEFAULT '0.000',
|
||||
packing int(11) DEFAULT '1',
|
||||
`grouping` smallint(5) unsigned NOT NULL DEFAULT '1',
|
||||
groupingMode tinyint(4) NOT NULL DEFAULT 0 ,
|
||||
groupingMode enum('grouping', 'packing') DEFAULT NULL,
|
||||
comissionValue decimal(10,3) DEFAULT '0.000',
|
||||
packageValue decimal(10,3) DEFAULT '0.000',
|
||||
packageFk varchar(10) COLLATE utf8_unicode_ci DEFAULT '--',
|
||||
|
|
|
@ -8,12 +8,15 @@ BEGIN
|
|||
|
||||
DROP TEMPORARY TABLE IF EXISTS `tmp`.`ticketToInvoice`;
|
||||
|
||||
CREATE TEMPORARY TABLE `tmp.``ticketToInvoice`
|
||||
CREATE TEMPORARY TABLE `tmp`.`ticketToInvoice`
|
||||
(PRIMARY KEY (`id`))
|
||||
ENGINE = MEMORY
|
||||
SELECT Id_Ticket id FROM vn2008.Tickets WHERE (Fecha BETWEEN vMinDateTicket
|
||||
AND vMaxTicketDate) AND Id_Consigna = vAddress
|
||||
AND Factura IS NULL AND empresa_id = vCompany;
|
||||
ENGINE = MEMORY
|
||||
SELECT id
|
||||
FROM ticket
|
||||
WHERE (shipped BETWEEN vMinDateTicket AND vMaxTicketDate)
|
||||
AND addressFk = vAddress
|
||||
AND refFk IS NULL
|
||||
AND companyFk = vCompany;
|
||||
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
|
|
@ -10,6 +10,8 @@ BEGIN
|
|||
DECLARE vLines INT;
|
||||
DECLARE vHasDistinctTransactions INT;
|
||||
|
||||
CALL invoiceIn_checkBooked(vInvoiceInFk);
|
||||
|
||||
SELECT taxRowLimit INTO vTaxRowLimit FROM invoiceInConfig;
|
||||
|
||||
SELECT COUNT(*) INTO vLines
|
||||
|
|
|
@ -4,16 +4,9 @@ BEGIN
|
|||
DECLARE vRate DOUBLE DEFAULT 1;
|
||||
DECLARE vDated DATE;
|
||||
DECLARE vExpenseFk VARCHAR(10);
|
||||
DECLARE vIsBooked BOOLEAN DEFAULT FALSE;
|
||||
|
||||
SELECT isBooked INTO vIsBooked
|
||||
FROM invoiceIn ii
|
||||
WHERE id = vInvoiceInFk;
|
||||
CALL invoiceIn_checkBooked(vInvoiceInFk);
|
||||
|
||||
IF vIsBooked THEN
|
||||
CALL util.throw('A booked invoice cannot be modified');
|
||||
END IF;
|
||||
|
||||
SELECT MAX(rr.dated) INTO vDated
|
||||
FROM referenceRate rr
|
||||
JOIN invoiceIn ii ON ii.id = vInvoiceInFk
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`invoiceIn_checkBooked`(
|
||||
vSelf INT
|
||||
)
|
||||
BEGIN
|
||||
/**
|
||||
* Comprueba si una factura recibida está contabilizada,
|
||||
* y si lo está retorna un throw.
|
||||
*
|
||||
* @param vSelf Id invoiceIn
|
||||
*/
|
||||
DECLARE vIsBooked BOOL;
|
||||
|
||||
SELECT isBooked INTO vIsBooked
|
||||
FROM invoiceIn
|
||||
WHERE id = vSelf;
|
||||
|
||||
IF vIsBooked THEN
|
||||
CALL util.throw('InvoiceIn is already booked');
|
||||
END IF;
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -61,8 +61,8 @@ BEGIN
|
|||
a.available,
|
||||
IFNULL(ip.counter, 0) `counter`,
|
||||
CASE
|
||||
WHEN b.groupingMode = 1 THEN b.grouping
|
||||
WHEN b.groupingMode = 2 THEN b.packing
|
||||
WHEN b.groupingMode = 'grouping' THEN b.grouping
|
||||
WHEN b.groupingMode = 'packing' THEN b.packing
|
||||
ELSE 1
|
||||
END AS minQuantity,
|
||||
iss.visible located,
|
||||
|
|
|
@ -13,6 +13,7 @@ BEGIN
|
|||
* @param vQuantity a dar de alta/baja
|
||||
* @param vAddressFk id address
|
||||
*/
|
||||
|
||||
DECLARE vTicketFk INT;
|
||||
DECLARE vClientFk INT;
|
||||
DECLARE vDefaultCompanyFk INT;
|
||||
|
@ -23,17 +24,17 @@ BEGIN
|
|||
|
||||
SELECT DEFAULT(companyFk) INTO vDefaultCompanyFk
|
||||
FROM vn.ticket LIMIT 1;
|
||||
|
||||
IF vAddressFk IS NULL THEN
|
||||
|
||||
IF vAddressFk IS NULL THEN
|
||||
SELECT pc.shortageAddressFk INTO vAddressShortage
|
||||
FROM productionConfig pc ;
|
||||
ELSE
|
||||
ELSE
|
||||
SET vAddressShortage = vAddressFk;
|
||||
END IF;
|
||||
|
||||
SELECT a.clientFk INTO vClientFk
|
||||
FROM address a
|
||||
WHERE a.id = vAddressFk;
|
||||
WHERE a.id = vAddressShortage;
|
||||
|
||||
SELECT t.id INTO vTicketFk
|
||||
FROM ticket t
|
||||
|
@ -65,7 +66,7 @@ BEGIN
|
|||
INSERT INTO sale(ticketFk, itemFk, concept, quantity)
|
||||
SELECT vTicketFk,
|
||||
vItemFk,
|
||||
CONCAT(longName,' ', worker_getCode(), ' ', LEFT(CAST(util.VN_NOW() AS TIME),5)),
|
||||
name,
|
||||
vQuantity
|
||||
FROM item
|
||||
WHERE id = vItemFk;
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`raidUpdate`()
|
||||
BEGIN
|
||||
/**
|
||||
* Actualiza el travel de las entradas de redadas
|
||||
*/
|
||||
UPDATE entry e
|
||||
JOIN entryVirtual ev ON ev.entryFk = e.id
|
||||
JOIN travel t ON t.id = e.travelFk
|
||||
JOIN (
|
||||
SELECT *
|
||||
FROM (
|
||||
SELECT t.id, t.landed, tt.warehouseInFk, tt.warehouseOutFk
|
||||
FROM travel t
|
||||
JOIN (
|
||||
SELECT t.warehouseInFk, t.warehouseOutFk
|
||||
FROM entryVirtual ev
|
||||
JOIN entry e ON e.id = ev.entryFk
|
||||
JOIN travel t ON t.id = e.travelFk
|
||||
GROUP BY t.warehouseInFk, t.warehouseOutFk
|
||||
) tt ON t.warehouseInFk = tt.warehouseInFk AND t.warehouseOutFk = tt.warehouseOutFk
|
||||
WHERE shipped > util.VN_CURDATE() AND NOT isDelivered
|
||||
ORDER BY t.landed
|
||||
LIMIT 10000000000000000000
|
||||
) t
|
||||
GROUP BY t.warehouseInFk, t.warehouseOutFk
|
||||
) tt ON t.warehouseInFk = tt.warehouseInFk AND t.warehouseOutFk = tt.warehouseOutFk
|
||||
SET e.travelFk = t.id;
|
||||
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -0,0 +1,38 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`rateView`()
|
||||
BEGIN
|
||||
/**
|
||||
* Muestra información sobre tasas de cambio de Dolares
|
||||
*/
|
||||
SELECT
|
||||
t.year año,
|
||||
t.month mes,
|
||||
pay.dollars dolares,
|
||||
pay.changePractical cambioPractico,
|
||||
CAST(SUM(iit.foreignValue ) / SUM(iit.taxableBase) AS DECIMAL(5,4))cambioTeorico,
|
||||
pay.changeOfficial cambioOficial
|
||||
FROM invoiceIn ii
|
||||
JOIN time t ON t.dated = ii.issued
|
||||
JOIN invoiceInTax iit ON ii.id = iit.invoiceInFk
|
||||
JOIN
|
||||
( SELECT
|
||||
t.year,
|
||||
t.month,
|
||||
CAST(SUM(p.divisa) AS DECIMAL(10,2)) dollars,
|
||||
CAST(SUM(p.divisa) / SUM(p.amount) AS DECIMAL(5,4)) changePractical,
|
||||
CAST(rr.value * 0.998 AS DECIMAL(5,4)) changeOfficial
|
||||
FROM payment p
|
||||
JOIN time t ON t.dated = p.received
|
||||
JOIN referenceRate rr ON rr.dated = p.received
|
||||
JOIN currency c ON c.id = rr.currencyFk
|
||||
WHERE p.divisa
|
||||
AND c.code = 'USD'
|
||||
GROUP BY t.year, t.month
|
||||
) pay ON t.year = pay.year AND t.month = pay.month
|
||||
JOIN currency c ON c.id = ii.currencyFk
|
||||
WHERE c.code = 'USD'
|
||||
AND iit.foreignValue
|
||||
AND iit.taxableBase
|
||||
GROUP BY t.year, t.month;
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -1,29 +0,0 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`riskAllClients`(maxRiskDate DATE)
|
||||
BEGIN
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp.client_list;
|
||||
CREATE TEMPORARY TABLE tmp.client_list
|
||||
(PRIMARY KEY (Id_Cliente))
|
||||
ENGINE = MEMORY
|
||||
SELECT id Id_Cliente, null grade FROM vn.client;
|
||||
|
||||
CALL vn2008.risk_vs_client_list(maxRiskDate);
|
||||
|
||||
SELECT
|
||||
c.RazonSocial,
|
||||
c.Id_Cliente,
|
||||
c.Credito,
|
||||
CAST(r.risk as DECIMAL (10,2)) risk,
|
||||
CAST(c.Credito - r.risk as DECIMAL (10,2)) Diferencia,
|
||||
c.Id_Pais
|
||||
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
|
||||
GROUP BY c.Id_cliente;
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp.risk;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp.client_list;
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -13,7 +13,7 @@ BEGIN
|
|||
DECLARE vWarehouseFk SMALLINT;
|
||||
DECLARE vDate DATE;
|
||||
DECLARE vGrouping INT;
|
||||
DECLARE vGroupingModeFk INT;
|
||||
DECLARE vGroupingMode VARCHAR(255);
|
||||
DECLARE vPacking INT;
|
||||
DECLARE vRoundQuantity INT DEFAULT 1;
|
||||
DECLARE vLanded DATE;
|
||||
|
@ -23,8 +23,6 @@ BEGIN
|
|||
DECLARE vOldPrice DECIMAL(10,2);
|
||||
DECLARE vOption VARCHAR(255);
|
||||
DECLARE vNewSaleFk INT;
|
||||
DECLARE vForceToGrouping INT DEFAULT 1;
|
||||
DECLARE vForceToPacking INT DEFAULT 2;
|
||||
DECLARE vFinalPrice DECIMAL(10,2);
|
||||
|
||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
||||
|
@ -58,15 +56,15 @@ BEGIN
|
|||
CALL buyUltimate(vWarehouseFk, vDate);
|
||||
|
||||
SELECT `grouping`, groupingMode, packing
|
||||
INTO vGrouping,vGroupingModeFk,vPacking
|
||||
INTO vGrouping,vGroupingMode,vPacking
|
||||
FROM buy b
|
||||
JOIN tmp.buyUltimate tmp ON b.id = tmp.buyFk
|
||||
WHERE tmp.itemFk = vNewItemFk AND tmp.WarehouseFk = vWarehouseFk;
|
||||
|
||||
IF vGroupingModeFk = vForceToPacking AND vPacking > 0 THEN
|
||||
IF vGroupingMode = 'packing' AND vPacking > 0 THEN
|
||||
SET vRoundQuantity = vPacking;
|
||||
END IF;
|
||||
IF vGroupingModeFk = vForceToGrouping AND vGrouping > 0 THEN
|
||||
IF vGroupingMode = 'grouping' AND vGrouping > 0 THEN
|
||||
SET vRoundQuantity = vGrouping;
|
||||
END IF;
|
||||
|
||||
|
|
|
@ -1,53 +0,0 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_doRecalc`()
|
||||
proc: BEGIN
|
||||
/**
|
||||
* Recalculates modified ticket.
|
||||
*/
|
||||
DECLARE vDone BOOL;
|
||||
DECLARE vTicketFk INT;
|
||||
|
||||
DECLARE cCur CURSOR FOR
|
||||
SELECT DISTINCT ticketFk FROM tTicket;
|
||||
|
||||
DECLARE CONTINUE HANDLER FOR NOT FOUND
|
||||
SET vDone = TRUE;
|
||||
|
||||
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
|
||||
BEGIN
|
||||
DO RELEASE_LOCK('vn.ticket_doRecalc');
|
||||
ROLLBACK;
|
||||
RESIGNAL;
|
||||
END;
|
||||
|
||||
IF !GET_LOCK('vn.ticket_doRecalc', 0) THEN
|
||||
LEAVE proc;
|
||||
END IF;
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tTicket;
|
||||
CREATE TEMPORARY TABLE tTicket
|
||||
ENGINE = MEMORY
|
||||
SELECT id, ticketFk FROM ticketRecalc;
|
||||
|
||||
OPEN cCur;
|
||||
|
||||
myLoop: LOOP
|
||||
SET vDone = FALSE;
|
||||
FETCH cCur INTO vTicketFk;
|
||||
|
||||
IF vDone THEN
|
||||
LEAVE myLoop;
|
||||
END IF;
|
||||
|
||||
CALL ticket_recalc(vTicketFk, NULL);
|
||||
END LOOP;
|
||||
|
||||
CLOSE cCur;
|
||||
|
||||
DELETE tr FROM ticketRecalc tr JOIN tTicket t ON tr.id = t.id;
|
||||
|
||||
DROP TEMPORARY TABLE tTicket;
|
||||
|
||||
DO RELEASE_LOCK('vn.ticket_doRecalc');
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -0,0 +1,40 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_recalcByScope`(
|
||||
vScope VARCHAR(255),
|
||||
vId INT
|
||||
)
|
||||
BEGIN
|
||||
/**
|
||||
* Recalculates tickets in an scope.
|
||||
*
|
||||
* @param vScope The scope name
|
||||
* @param vId The scope id
|
||||
*/
|
||||
DECLARE vDone BOOL;
|
||||
DECLARE vTicketFk INT;
|
||||
|
||||
DECLARE cTickets CURSOR FOR
|
||||
SELECT id FROM ticket
|
||||
WHERE refFk IS NULL
|
||||
AND ((vScope = 'client' AND clientFk = vId)
|
||||
OR (vScope = 'address' AND addressFk = vId));
|
||||
|
||||
DECLARE CONTINUE HANDLER FOR NOT FOUND
|
||||
SET vDone = TRUE;
|
||||
|
||||
OPEN cTickets;
|
||||
|
||||
myLoop: LOOP
|
||||
SET vDone = FALSE;
|
||||
FETCH cTickets INTO vTicketFk;
|
||||
|
||||
IF vDone THEN
|
||||
LEAVE myLoop;
|
||||
END IF;
|
||||
|
||||
CALL ticket_recalc(vTicketFk, NULL);
|
||||
END LOOP;
|
||||
|
||||
CLOSE cTickets;
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -1,15 +0,0 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_requestRecalc`(vSelf INT)
|
||||
proc: BEGIN
|
||||
/**
|
||||
* Adds a request to recalculate the ticket total.
|
||||
*
|
||||
* @param vSelf The ticket identifier
|
||||
*/
|
||||
IF vSelf IS NULL THEN
|
||||
LEAVE proc;
|
||||
END IF;
|
||||
|
||||
INSERT INTO ticketRecalc SET ticketFk = vSelf;
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -1,34 +0,0 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`travel_doRecalc`()
|
||||
proc: BEGIN
|
||||
/**
|
||||
* Recounts the number of entries of changed travels.
|
||||
*/
|
||||
DECLARE vTravelFk INT;
|
||||
|
||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
||||
BEGIN
|
||||
DO RELEASE_LOCK('vn.ticket_doRecalc');
|
||||
END;
|
||||
|
||||
IF !GET_LOCK('vn.travel_doRecalc', 0) THEN
|
||||
LEAVE proc;
|
||||
END IF;
|
||||
|
||||
CREATE OR REPLACE TEMPORARY TABLE tTravel
|
||||
ENGINE = MEMORY
|
||||
SELECT travelFk FROM travelRecalc;
|
||||
|
||||
UPDATE travel t
|
||||
JOIN tTravel tt ON tt.travelFk = t.id
|
||||
SET t.totalEntries = (
|
||||
SELECT COUNT(e.id)
|
||||
FROM entry e
|
||||
WHERE e.travelFk = t.id
|
||||
);
|
||||
|
||||
DELETE tr FROM travelRecalc tr JOIN tTravel t ON tr.travelFk = t.travelFk;
|
||||
DROP TEMPORARY TABLE tTravel;
|
||||
DO RELEASE_LOCK('vn.travel_doRecalc');
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -0,0 +1,17 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`travel_recalc`(vSelf INT)
|
||||
proc: BEGIN
|
||||
/**
|
||||
* Updates the number of entries assigned to the travel.
|
||||
*
|
||||
* @param vSelf The travel id
|
||||
*/
|
||||
UPDATE travel
|
||||
SET totalEntries = (
|
||||
SELECT COUNT(id)
|
||||
FROM entry
|
||||
WHERE travelFk = vSelf
|
||||
)
|
||||
WHERE id = vSelf;
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -1,15 +0,0 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`travel_requestRecalc`(vSelf INT)
|
||||
proc: BEGIN
|
||||
/**
|
||||
* Adds a request to recount the number of entries for the travel.
|
||||
*
|
||||
* @param vSelf The travel reference
|
||||
*/
|
||||
IF vSelf IS NULL THEN
|
||||
LEAVE proc;
|
||||
END IF;
|
||||
|
||||
INSERT IGNORE INTO travelRecalc SET travelFk = vSelf;
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -5,36 +5,32 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`address_afterUpdate`
|
|||
BEGIN
|
||||
-- Recargos de equivalencia distintos implican facturacion por consignatario
|
||||
IF NEW.isEqualizated != OLD.isEqualizated THEN
|
||||
IF
|
||||
IF
|
||||
(SELECT COUNT(*) FROM
|
||||
(
|
||||
SELECT DISTINCT (isEqualizated = FALSE) as Equ
|
||||
FROM address
|
||||
FROM address
|
||||
WHERE clientFk = NEW.clientFk
|
||||
) t1
|
||||
) > 1
|
||||
THEN
|
||||
UPDATE client
|
||||
THEN
|
||||
UPDATE client
|
||||
SET hasToInvoiceByAddress = TRUE
|
||||
WHERE id = NEW.clientFk;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
IF NEW.isDefaultAddress AND NEW.isActive = FALSE THEN
|
||||
CALL util.throw ('Cannot desactivate the default address');
|
||||
END IF;
|
||||
|
||||
IF NOT (NEW.isEqualizated <=> OLD.isEqualizated) THEN
|
||||
INSERT IGNORE INTO ticketRecalc (ticketFk)
|
||||
SELECT id FROM ticket t
|
||||
WHERE t.addressFk = NEW.id
|
||||
AND t.refFk IS NULL;
|
||||
END IF;
|
||||
|
||||
IF (NEW.clientFk <> OLD.clientFk OR NEW.isActive <> OLD.isActive OR NOT (NEW.provinceFk <=> OLD.provinceFk))
|
||||
AND (SELECT client_hasDifferentCountries(NEW.clientFk)) THEN
|
||||
UPDATE client
|
||||
IF (NEW.clientFk <> OLD.clientFk
|
||||
OR NEW.isActive <> OLD.isActive
|
||||
OR NOT (NEW.provinceFk <=> OLD.provinceFk))
|
||||
AND (SELECT client_hasDifferentCountries(NEW.clientFk)) THEN
|
||||
UPDATE client
|
||||
SET hasToInvoiceByAddress = TRUE
|
||||
WHERE id = NEW.clientFk;
|
||||
END IF;
|
||||
END IF;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
|
|
@ -3,19 +3,14 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`buy_afterDelete`
|
|||
AFTER DELETE ON `buy`
|
||||
FOR EACH ROW
|
||||
trig: BEGIN
|
||||
DECLARE vValues VARCHAR(255);
|
||||
|
||||
IF @isModeInventory OR @isTriggerDisabled THEN
|
||||
LEAVE trig;
|
||||
END IF;
|
||||
|
||||
CALL stock.log_add('buy', NULL, OLD.id);
|
||||
|
||||
INSERT INTO entryLog
|
||||
SET `action` = 'delete',
|
||||
`changedModel` = 'Buy',
|
||||
`changedModelId` = OLD.id,
|
||||
`userFk` = account.myUser_getId();
|
||||
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
|
|
@ -7,8 +7,6 @@ trig: BEGIN
|
|||
LEAVE trig;
|
||||
END IF;
|
||||
|
||||
CALL stock.log_add('buy', NEW.id, NULL);
|
||||
|
||||
CALL buy_afterUpsert(NEW.id);
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
|
|
@ -12,14 +12,6 @@ trig: BEGIN
|
|||
LEAVE trig;
|
||||
END IF;
|
||||
|
||||
IF !(NEW.id <=> OLD.id)
|
||||
OR !(NEW.entryFk <=> OLD.entryFk)
|
||||
OR !(NEW.itemFk <=> OLD.itemFk)
|
||||
OR !(NEW.quantity <=> OLD.quantity)
|
||||
OR !(NEW.created <=> OLD.created) THEN
|
||||
CALL stock.log_add('buy', NEW.id, OLD.id);
|
||||
END IF;
|
||||
|
||||
CALL buy_afterUpsert(NEW.id);
|
||||
|
||||
SELECT w.isBuyerToBeEmailed, t.landed
|
||||
|
|
|
@ -6,7 +6,7 @@ trig: BEGIN
|
|||
DECLARE vWarehouse INT;
|
||||
DECLARE vLanding DATE;
|
||||
DECLARE vGrouping INT;
|
||||
DECLARE vGroupingMode TINYINT;
|
||||
DECLARE vGroupingMode VARCHAR(255);
|
||||
DECLARE vGenericFk INT;
|
||||
DECLARE vGenericInDate BOOL;
|
||||
DECLARE vBuyerFk INT;
|
||||
|
|
|
@ -4,20 +4,13 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`client_afterUpdate`
|
|||
FOR EACH ROW
|
||||
BEGIN
|
||||
IF !(NEW.defaultAddressFk <=> OLD.defaultAddressFk) THEN
|
||||
UPDATE `address` SET isDefaultAddress = 0
|
||||
UPDATE `address` SET isDefaultAddress = FALSE
|
||||
WHERE clientFk = NEW.id;
|
||||
|
||||
UPDATE `address` SET isDefaultAddress = 1
|
||||
WHERE id = NEW.defaultAddressFk;
|
||||
|
||||
UPDATE `address` SET isDefaultAddress = TRUE
|
||||
WHERE id = NEW.defaultAddressFk;
|
||||
END IF;
|
||||
|
||||
IF NOT (NEW.provinceFk <=> OLD.provinceFk) OR NOT (NEW.isVies <=> OLD.isVies) THEN
|
||||
INSERT IGNORE INTO ticketRecalc (ticketFk)
|
||||
SELECT id FROM ticket t
|
||||
WHERE t.clientFk = NEW.id
|
||||
AND t.refFk IS NULL;
|
||||
END IF;
|
||||
|
||||
IF NOT NEW.isActive THEN
|
||||
UPDATE account.`user`
|
||||
SET active = FALSE
|
||||
|
|
|
@ -8,7 +8,5 @@ BEGIN
|
|||
`changedModel` = 'Entry',
|
||||
`changedModelId` = OLD.id,
|
||||
`userFk` = account.myUser_getId();
|
||||
|
||||
CALL travel_requestRecalc(OLD.travelFk);
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`entry_afterInsert`
|
||||
AFTER INSERT ON `entry`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
CALL travel_requestRecalc(NEW.travelFk);
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -3,24 +3,12 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`entry_afterUpdate`
|
|||
AFTER UPDATE ON `entry`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
IF NOT(NEW.id <=> OLD.id)
|
||||
OR NOT(NEW.travelFk <=> OLD.travelFk)
|
||||
OR NOT(NEW.isRaid <=> OLD.isRaid) THEN
|
||||
CALL stock.log_add('entry', NEW.id, OLD.id);
|
||||
END IF;
|
||||
|
||||
IF NOT (NEW.travelFk <=> OLD.travelFk) THEN
|
||||
CALL travel_requestRecalc(OLD.travelFk);
|
||||
CALL travel_requestRecalc(NEW.travelFk);
|
||||
END IF;
|
||||
|
||||
|
||||
IF NOT (NEW.travelFk <=> OLD.travelFk) THEN
|
||||
CREATE OR REPLACE TEMPORARY TABLE tmp.buysToCheck
|
||||
SELECT b.id
|
||||
FROM buy b
|
||||
WHERE b.entryFk = NEW.id;
|
||||
|
||||
|
||||
CALL buy_checkItem();
|
||||
END IF;
|
||||
END$$
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`invoiceInCorrection_beforeDelete`
|
||||
BEFORE DELETE ON `invoiceInCorrection`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
CALL invoiceIn_checkBooked(OLD.correctingFk);
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -0,0 +1,8 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`invoiceInCorrection_beforeInsert`
|
||||
BEFORE INSERT ON `invoiceInCorrection`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
CALL invoiceIn_checkBooked(NEW.correctingFk);
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -0,0 +1,8 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`invoiceInCorrection_beforeUpdate`
|
||||
BEFORE UPDATE ON `invoiceInCorrection`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
CALL invoiceIn_checkBooked(OLD.correctingFk);
|
||||
END$$
|
||||
DELIMITER ;
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue