2412_testToMaster #2185
|
@ -0,0 +1,31 @@
|
||||||
|
const UserError = require('vn-loopback/util/user-error');
|
||||||
|
module.exports = Self => {
|
||||||
|
Self.remoteMethodCtx('assign', {
|
||||||
|
description: 'Assign a collection',
|
||||||
|
accessType: 'WRITE',
|
||||||
|
http: {
|
||||||
|
path: `/assign`,
|
||||||
|
verb: 'POST'
|
||||||
|
},
|
||||||
|
returns: {
|
||||||
|
type: ['object'],
|
||||||
|
root: true
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
Self.assign = async(ctx, options) => {
|
||||||
|
const userId = ctx.req.accessToken.userId;
|
||||||
|
const myOptions = {userId};
|
||||||
|
|
||||||
|
if (typeof options == 'object')
|
||||||
|
Object.assign(myOptions, options);
|
||||||
|
|
||||||
|
const [,, {collectionFk}] = await Self.rawSql('CALL vn.collection_assign(?, @vCollectionFk); SELECT @vCollectionFk collectionFk',
|
||||||
|
[userId], myOptions);
|
||||||
|
|
||||||
|
if (!collectionFk) throw new UserError('There are not picking tickets');
|
||||||
|
await Self.rawSql('CALL vn.collection_printSticker(?, NULL)', [collectionFk], myOptions);
|
||||||
|
|
||||||
|
return collectionFk;
|
||||||
|
};
|
||||||
|
};
|
|
@ -0,0 +1,157 @@
|
||||||
|
module.exports = Self => {
|
||||||
|
Self.remoteMethodCtx('getSales', {
|
||||||
|
description: 'Get sales from ticket or collection',
|
||||||
|
accessType: 'READ',
|
||||||
|
accepts: [
|
||||||
|
{
|
||||||
|
arg: 'collectionOrTicketFk',
|
||||||
|
type: 'number',
|
||||||
|
required: true
|
||||||
|
}, {
|
||||||
|
arg: 'print',
|
||||||
|
type: 'boolean',
|
||||||
|
required: true
|
||||||
|
}, {
|
||||||
|
arg: 'source',
|
||||||
|
type: 'string',
|
||||||
|
required: true
|
||||||
|
},
|
||||||
|
|
||||||
|
],
|
||||||
|
returns: {
|
||||||
|
type: 'Object',
|
||||||
|
root: true
|
||||||
|
},
|
||||||
|
http: {
|
||||||
|
path: `/getSales`,
|
||||||
|
verb: 'GET'
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
Self.getSales = async(ctx, collectionOrTicketFk, print, source, options) => {
|
||||||
|
const userId = ctx.req.accessToken.userId;
|
||||||
|
const myOptions = {userId};
|
||||||
|
const $t = ctx.req.__;
|
||||||
|
|
||||||
|
if (typeof options == 'object')
|
||||||
|
Object.assign(myOptions, options);
|
||||||
|
|
||||||
|
const [{id}] = await Self.rawSql('SELECT vn.ticket_get(?) as id',
|
||||||
|
[collectionOrTicketFk],
|
||||||
|
myOptions);
|
||||||
|
|
||||||
|
const [tickets] = await Self.rawSql('CALL vn.collection_getTickets(?)', [id], myOptions);
|
||||||
|
|
||||||
|
if (source) {
|
||||||
|
await Self.rawSql(
|
||||||
|
'CALL vn.ticketStateToday_setState(?,?)', [id, source], myOptions
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const [sales] = await Self.rawSql('CALL vn.sale_getFromTicketOrCollection(?)',
|
||||||
|
[id], myOptions);
|
||||||
|
|
||||||
|
const isPicker = source != 'CHECKER';
|
||||||
|
const [placements] = await Self.rawSql('CALL vn.collectionPlacement_get(?, ?)',
|
||||||
|
[id, isPicker], myOptions
|
||||||
|
);
|
||||||
|
|
||||||
|
if (print) await Self.rawSql('CALL vn.collection_printSticker(?,NULL)', [id], myOptions);
|
||||||
|
|
||||||
|
for (let ticket of tickets) {
|
||||||
|
let observations = ticket.observaciones.split(' ');
|
||||||
|
|
||||||
|
for (let observation of observations) {
|
||||||
|
const salesPerson = ticket.salesPersonFk;
|
||||||
|
if (observation.startsWith('#') || observation.startsWith('@')) {
|
||||||
|
await models.Chat.send(ctx,
|
||||||
|
observation,
|
||||||
|
$t('ticketCommercial', {ticket: ticket.ticketFk, salesPerson})
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return getCollection(id, tickets, sales, placements, myOptions);
|
||||||
|
};
|
||||||
|
|
||||||
|
async function getCollection(id, tickets, sales, placements, options) {
|
||||||
|
const collection = {
|
||||||
|
collectionFk: id,
|
||||||
|
tickets: [],
|
||||||
|
};
|
||||||
|
for (let ticket of tickets) {
|
||||||
|
const {ticketFk} = ticket;
|
||||||
|
ticket.sales = [];
|
||||||
|
|
||||||
|
const barcodes = await getBarcodes(ticketFk, options);
|
||||||
|
await Self.rawSql(
|
||||||
|
'CALL util.log_add(?, ?, ?, ?, ?, ?, ?, ?)',
|
||||||
|
['vn', 'ticket', 'Ticket', ticketFk, ticketFk, 'select', null, null],
|
||||||
|
options
|
||||||
|
);
|
||||||
|
|
||||||
|
for (let sale of sales) {
|
||||||
|
if (sale.ticketFk == ticketFk) {
|
||||||
|
sale.placements = [];
|
||||||
|
for (const salePlacement of placements) {
|
||||||
|
if (salePlacement.saleFk == sale.saleFk && salePlacement.order) {
|
||||||
|
const placement = {
|
||||||
|
saleFk: salePlacement.saleFk,
|
||||||
|
itemFk: salePlacement.itemFk,
|
||||||
|
placement: salePlacement.placement,
|
||||||
|
shelving: salePlacement.shelving,
|
||||||
|
created: salePlacement.created,
|
||||||
|
visible: salePlacement.visible,
|
||||||
|
order: salePlacement.order,
|
||||||
|
grouping: salePlacement.grouping,
|
||||||
|
priority: salePlacement.priority,
|
||||||
|
saleOrder: salePlacement.saleOrder,
|
||||||
|
isPreviousPrepared: salePlacement.isPreviousPrepared,
|
||||||
|
itemShelvingSaleFk: salePlacement.itemShelvingSaleFk,
|
||||||
|
ticketFk: salePlacement.ticketFk,
|
||||||
|
id: salePlacement.id
|
||||||
|
};
|
||||||
|
sale.placements.push(placement);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sale.barcodes = [];
|
||||||
|
for (const barcode of barcodes) {
|
||||||
|
if (barcode.movementId == sale.saleFk) {
|
||||||
|
if (barcode.code) {
|
||||||
|
sale.barcodes.push(barcode.code);
|
||||||
|
sale.barcodes.push(`0 ${barcode.code}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (barcode.id) {
|
||||||
|
sale.barcodes.push(barcode.id);
|
||||||
|
sale.barcodes.push(`0 ${barcode.id}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ticket.sales.push(sale);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
collection.tickets.push(ticket);
|
||||||
|
}
|
||||||
|
|
||||||
|
return collection;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function getBarcodes(ticketId, options) {
|
||||||
|
const query =
|
||||||
|
`SELECT s.id movementId,
|
||||||
|
b.code,
|
||||||
|
c.id
|
||||||
|
FROM vn.sale s
|
||||||
|
LEFT JOIN vn.itemBarcode b ON b.itemFk = s.itemFk
|
||||||
|
LEFT JOIN vn.buy c ON c.itemFk = s.itemFk
|
||||||
|
LEFT JOIN vn.entry e ON e.id = c.entryFk
|
||||||
|
LEFT JOIN vn.travel tr ON tr.id = e.travelFk
|
||||||
|
WHERE s.ticketFk = ?
|
||||||
|
AND tr.landed >= DATE_SUB(CURDATE(), INTERVAL 1 YEAR)`;
|
||||||
|
return Self.rawSql(query, [ticketId], options);
|
||||||
|
}
|
||||||
|
};
|
|
@ -0,0 +1,38 @@
|
||||||
|
const models = require('vn-loopback/server/server').models;
|
||||||
|
const LoopBackContext = require('loopback-context');
|
||||||
|
|
||||||
|
describe('ticket assign()', () => {
|
||||||
|
let ctx;
|
||||||
|
let options;
|
||||||
|
let tx;
|
||||||
|
beforeEach(async() => {
|
||||||
|
ctx = {
|
||||||
|
req: {
|
||||||
|
accessToken: {userId: 1106},
|
||||||
|
headers: {origin: 'http://localhost'},
|
||||||
|
__: value => value
|
||||||
|
},
|
||||||
|
args: {}
|
||||||
|
};
|
||||||
|
|
||||||
|
spyOn(LoopBackContext, 'getCurrentContext').and.returnValue({
|
||||||
|
active: ctx.req
|
||||||
|
});
|
||||||
|
|
||||||
|
options = {transaction: tx};
|
||||||
|
tx = await models.Sale.beginTransaction({});
|
||||||
|
options.transaction = tx;
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(async() => {
|
||||||
|
await tx.rollback();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should throw an error when there is not picking tickets', async() => {
|
||||||
|
try {
|
||||||
|
await models.Collection.assign(ctx, options);
|
||||||
|
} catch (e) {
|
||||||
|
expect(e.message).toEqual('There are not picking tickets');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
|
@ -0,0 +1,62 @@
|
||||||
|
const {models} = require('vn-loopback/server/server');
|
||||||
|
|
||||||
|
describe('collection getSales()', () => {
|
||||||
|
const collectionOrTicketFk = 999999;
|
||||||
|
const print = true;
|
||||||
|
const source = 'CHECKER';
|
||||||
|
|
||||||
|
beforeAll(() => {
|
||||||
|
ctx = {
|
||||||
|
req: {
|
||||||
|
accessToken: {userId: 9},
|
||||||
|
headers: {origin: 'http://localhost'},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should return a collection with tickets, placements and barcodes settled correctly', async() => {
|
||||||
|
const tx = await models.Collection.beginTransaction({});
|
||||||
|
const options = {transaction: tx};
|
||||||
|
try {
|
||||||
|
const collection = await models.Collection.getSales(ctx,
|
||||||
|
collectionOrTicketFk, print, source, options);
|
||||||
|
|
||||||
|
const [firstTicket] = collection.tickets;
|
||||||
|
const [firstSale] = firstTicket.sales;
|
||||||
|
const [firstPlacement] = firstSale.placements;
|
||||||
|
|
||||||
|
expect(collection.tickets.length).toBeTruthy();
|
||||||
|
expect(collection.collectionFk).toEqual(firstTicket.ticketFk);
|
||||||
|
|
||||||
|
expect(firstSale.ticketFk).toEqual(firstTicket.ticketFk);
|
||||||
|
expect(firstSale.placements.length).toBeTruthy();
|
||||||
|
expect(firstSale.barcodes.length).toBeTruthy();
|
||||||
|
|
||||||
|
expect(firstSale.saleFk).toEqual(firstPlacement.saleFk);
|
||||||
|
await tx.rollback();
|
||||||
|
} catch (e) {
|
||||||
|
await tx.rollback();
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should print a sticker', async() => {
|
||||||
|
const tx = await models.Collection.beginTransaction({});
|
||||||
|
const options = {transaction: tx};
|
||||||
|
const query = 'SELECT * FROM printQueue pq JOIN printQueueArgs pqa ON pqa.printQueueFk = pq.id';
|
||||||
|
try {
|
||||||
|
const printQueueBefore = await models.Collection.rawSql(
|
||||||
|
query, [], options);
|
||||||
|
await models.Collection.getSales(ctx,
|
||||||
|
collectionOrTicketFk, true, source, options);
|
||||||
|
const printQueueAfter = await models.Collection.rawSql(
|
||||||
|
query, [], options);
|
||||||
|
|
||||||
|
expect(printQueueAfter.length).toEqual(printQueueBefore.length + 1);
|
||||||
|
await tx.rollback();
|
||||||
|
} catch (e) {
|
||||||
|
await tx.rollback();
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
|
@ -0,0 +1,132 @@
|
||||||
|
const {models} = require('vn-loopback/server/server');
|
||||||
|
|
||||||
|
describe('machineWorker updateInTime()', () => {
|
||||||
|
const itBoss = 104;
|
||||||
|
const davidCharles = 1106;
|
||||||
|
|
||||||
|
beforeAll(async() => {
|
||||||
|
ctx = {
|
||||||
|
req: {
|
||||||
|
accessToken: {},
|
||||||
|
headers: {origin: 'http://localhost'},
|
||||||
|
__: value => value
|
||||||
|
}
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should throw an error if the plate does not exist', async() => {
|
||||||
|
const tx = await models.MachineWorker.beginTransaction({});
|
||||||
|
const options = {transaction: tx};
|
||||||
|
const plate = 'RE-123';
|
||||||
|
ctx.req.accessToken.userId = 1106;
|
||||||
|
try {
|
||||||
|
await models.MachineWorker.updateInTime(ctx, plate, options);
|
||||||
|
await tx.rollback();
|
||||||
|
} catch (e) {
|
||||||
|
const error = e;
|
||||||
|
|
||||||
|
expect(error.message).toContain('the plate does not exist');
|
||||||
|
await tx.rollback();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should grab a machine where is not in use', async() => {
|
||||||
|
const tx = await models.MachineWorker.beginTransaction({});
|
||||||
|
const options = {transaction: tx};
|
||||||
|
const plate = 'RE-003';
|
||||||
|
ctx.req.accessToken.userId = 1107;
|
||||||
|
try {
|
||||||
|
const totalBefore = await models.MachineWorker.find(null, options);
|
||||||
|
await models.MachineWorker.updateInTime(ctx, plate, options);
|
||||||
|
const totalAfter = await models.MachineWorker.find(null, options);
|
||||||
|
|
||||||
|
expect(totalAfter.length).toEqual(totalBefore.length + 1);
|
||||||
|
await tx.rollback();
|
||||||
|
} catch (e) {
|
||||||
|
await tx.rollback();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('less than 12h', () => {
|
||||||
|
const plate = 'RE-001';
|
||||||
|
it('should trow an error if it is not himself', async() => {
|
||||||
|
const tx = await models.MachineWorker.beginTransaction({});
|
||||||
|
const options = {transaction: tx};
|
||||||
|
ctx.req.accessToken.userId = davidCharles;
|
||||||
|
|
||||||
|
try {
|
||||||
|
await models.MachineWorker.updateInTime(ctx, plate, options);
|
||||||
|
await tx.rollback();
|
||||||
|
} catch (e) {
|
||||||
|
const error = e;
|
||||||
|
|
||||||
|
expect(error.message).toContain('This machine is already in use');
|
||||||
|
await tx.rollback();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should throw an error if it is himself with a different machine', async() => {
|
||||||
|
const tx = await models.MachineWorker.beginTransaction({});
|
||||||
|
const options = {transaction: tx};
|
||||||
|
ctx.req.accessToken.userId = itBoss;
|
||||||
|
const plate = 'RE-003';
|
||||||
|
try {
|
||||||
|
await models.MachineWorker.updateInTime(ctx, plate, options);
|
||||||
|
await tx.rollback();
|
||||||
|
} catch (e) {
|
||||||
|
const error = e;
|
||||||
|
|
||||||
|
expect(error.message).toEqual('You are already using a machine');
|
||||||
|
await tx.rollback();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should set the out time if it is himself', async() => {
|
||||||
|
const tx = await models.MachineWorker.beginTransaction({});
|
||||||
|
const options = {transaction: tx};
|
||||||
|
ctx.req.accessToken.userId = itBoss;
|
||||||
|
|
||||||
|
try {
|
||||||
|
const isNotParked = await models.MachineWorker.findOne({
|
||||||
|
where: {workerFk: itBoss}
|
||||||
|
}, options);
|
||||||
|
await models.MachineWorker.updateInTime(ctx, plate, options);
|
||||||
|
const isParked = await models.MachineWorker.findOne({
|
||||||
|
where: {workerFk: itBoss}
|
||||||
|
}, options);
|
||||||
|
|
||||||
|
expect(isNotParked.outTime).toBeNull();
|
||||||
|
expect(isParked.outTime).toBeDefined();
|
||||||
|
await tx.rollback();
|
||||||
|
} catch (e) {
|
||||||
|
await tx.rollback();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('equal or more than 12h', () => {
|
||||||
|
const plate = 'RE-002';
|
||||||
|
it('should set the out time and grab the machine', async() => {
|
||||||
|
const tx = await models.MachineWorker.beginTransaction({});
|
||||||
|
const options = {transaction: tx};
|
||||||
|
ctx.req.accessToken.userId = davidCharles;
|
||||||
|
const filter = {
|
||||||
|
where: {workerFk: davidCharles, machineFk: 2}
|
||||||
|
};
|
||||||
|
try {
|
||||||
|
const isNotParked = await models.MachineWorker.findOne(filter, options);
|
||||||
|
const totalBefore = await models.MachineWorker.find(null, options);
|
||||||
|
await models.MachineWorker.updateInTime(ctx, plate, options);
|
||||||
|
const isParked = await models.MachineWorker.findOne(filter, options);
|
||||||
|
const totalAfter = await models.MachineWorker.find(null, options);
|
||||||
|
|
||||||
|
expect(isNotParked.outTime).toBeNull();
|
||||||
|
expect(isParked.outTime).toBeDefined();
|
||||||
|
expect(totalAfter.length).toEqual(totalBefore.length + 1);
|
||||||
|
await tx.rollback();
|
||||||
|
} catch (e) {
|
||||||
|
await tx.rollback();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
|
@ -0,0 +1,77 @@
|
||||||
|
const UserError = require('vn-loopback/util/user-error');
|
||||||
|
module.exports = Self => {
|
||||||
|
Self.remoteMethodCtx('updateInTime', {
|
||||||
|
description: 'Updates the corresponding registry if the worker has been registered in the last few hours',
|
||||||
|
accessType: 'WRITE',
|
||||||
|
accepts: [
|
||||||
|
{
|
||||||
|
arg: 'plate',
|
||||||
|
type: 'string',
|
||||||
|
}
|
||||||
|
],
|
||||||
|
http: {
|
||||||
|
path: `/updateInTime`,
|
||||||
|
verb: 'POST'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Self.updateInTime = async(ctx, plate, options) => {
|
||||||
|
const models = Self.app.models;
|
||||||
|
const userId = ctx.req.accessToken.userId;
|
||||||
|
const $t = ctx.req.__;
|
||||||
|
|
||||||
|
let tx;
|
||||||
|
const myOptions = {};
|
||||||
|
|
||||||
|
if (typeof options == 'object')
|
||||||
|
Object.assign(myOptions, options);
|
||||||
|
|
||||||
|
if (!myOptions.transaction) {
|
||||||
|
tx = await Self.beginTransaction({});
|
||||||
|
myOptions.transaction = tx;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
const machine = await models.Machine.findOne({
|
||||||
|
fields: ['id', 'plate'],
|
||||||
|
where: {plate}
|
||||||
|
}, myOptions);
|
||||||
|
|
||||||
|
if (!machine)
|
||||||
|
throw new Error($t('the plate does not exist', {plate}));
|
||||||
|
|
||||||
|
const machineWorker = await Self.findOne({
|
||||||
|
where: {
|
||||||
|
or: [{machineFk: machine.id}, {workerFk: userId}],
|
||||||
|
outTime: null,
|
||||||
|
}
|
||||||
|
}, myOptions);
|
||||||
|
|
||||||
|
const {maxHours} = await models.MachineWorkerConfig.findOne({fields: ['maxHours']}, myOptions);
|
||||||
|
const hoursDifference = (Date.vnNow() - machineWorker.inTime.getTime()) / (60 * 60 * 1000);
|
||||||
|
|
||||||
|
if (machineWorker) {
|
||||||
|
const isHimself = userId == machineWorker.workerFk;
|
||||||
|
const isSameMachine = machine.id == machineWorker.machineFk;
|
||||||
|
|
||||||
|
if (hoursDifference < maxHours && !isHimself)
|
||||||
|
throw new UserError($t('This machine is already in use.'));
|
||||||
|
|
||||||
|
if (hoursDifference < maxHours && isHimself && !isSameMachine)
|
||||||
|
throw new UserError($t('You are already using a machine'));
|
||||||
|
|
||||||
|
await machineWorker.updateAttributes({
|
||||||
|
outTime: Date.vnNew()
|
||||||
|
}, myOptions);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!machineWorker || hoursDifference >= maxHours)
|
||||||
|
await models.MachineWorker.create({machineFk: machine.id, workerFk: userId}, myOptions);
|
||||||
|
|
||||||
|
if (tx) await tx.commit();
|
||||||
|
} catch (e) {
|
||||||
|
if (tx) await tx.rollback();
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
};
|
|
@ -0,0 +1,45 @@
|
||||||
|
module.exports = Self => {
|
||||||
|
Self.remoteMethodCtx('getVersion', {
|
||||||
|
description: 'gets app version data',
|
||||||
|
accessType: 'READ',
|
||||||
|
accepts: [{
|
||||||
|
arg: 'app',
|
||||||
|
type: 'string',
|
||||||
|
required: true
|
||||||
|
}],
|
||||||
|
returns: {
|
||||||
|
type: ['object'],
|
||||||
|
root: true
|
||||||
|
},
|
||||||
|
http: {
|
||||||
|
path: `/getVersion`,
|
||||||
|
verb: 'GET'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Self.getVersion = async(ctx, app) => {
|
||||||
|
const {models} = Self.app;
|
||||||
|
const userId = ctx.req.accessToken.userId;
|
||||||
|
|
||||||
|
const workerFk = await models.WorkerAppTester.findOne({
|
||||||
|
where: {
|
||||||
|
workerFk: userId
|
||||||
|
}
|
||||||
|
});
|
||||||
|
let fields = ['id', 'appName'];
|
||||||
|
|
||||||
|
if (workerFk)
|
||||||
|
fields = fields.concat(['isVersionBetaCritical', 'versionBeta', 'urlBeta']);
|
||||||
|
else
|
||||||
|
fields = fields.concat(['isVersionCritical', 'version', 'urlProduction']);
|
||||||
|
|
||||||
|
const filter = {
|
||||||
|
where: {
|
||||||
|
appName: app
|
||||||
|
},
|
||||||
|
fields,
|
||||||
|
};
|
||||||
|
|
||||||
|
return Self.findOne(filter);
|
||||||
|
};
|
||||||
|
};
|
|
@ -0,0 +1,29 @@
|
||||||
|
const {models} = require('vn-loopback/server/server');
|
||||||
|
|
||||||
|
describe('mobileAppVersionControl getVersion()', () => {
|
||||||
|
const appName = 'delivery';
|
||||||
|
beforeAll(async() => {
|
||||||
|
ctx = {
|
||||||
|
req: {
|
||||||
|
accessToken: {},
|
||||||
|
headers: {origin: 'http://localhost'},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should get the version app', async() => {
|
||||||
|
ctx.req.accessToken.userId = 9;
|
||||||
|
const {version, versionBeta} = await models.MobileAppVersionControl.getVersion(ctx, appName);
|
||||||
|
|
||||||
|
expect(version).toEqual('9.2');
|
||||||
|
expect(versionBeta).toBeUndefined();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should get the beta version app', async() => {
|
||||||
|
ctx.req.accessToken.userId = 66;
|
||||||
|
const {version, versionBeta} = await models.MobileAppVersionControl.getVersion(ctx, appName);
|
||||||
|
|
||||||
|
expect(versionBeta).toBeDefined();
|
||||||
|
expect(version).toBeUndefined();
|
||||||
|
});
|
||||||
|
});
|
|
@ -13,7 +13,7 @@
|
||||||
"AuthCode": {
|
"AuthCode": {
|
||||||
"dataSource": "vn"
|
"dataSource": "vn"
|
||||||
},
|
},
|
||||||
"Bank": {
|
"Accounting": {
|
||||||
"dataSource": "vn"
|
"dataSource": "vn"
|
||||||
},
|
},
|
||||||
"Buyer": {
|
"Buyer": {
|
||||||
|
@ -79,15 +79,24 @@
|
||||||
"Language": {
|
"Language": {
|
||||||
"dataSource": "vn"
|
"dataSource": "vn"
|
||||||
},
|
},
|
||||||
|
"Machine": {
|
||||||
|
"dataSource": "vn"
|
||||||
|
},
|
||||||
"MachineWorker": {
|
"MachineWorker": {
|
||||||
"dataSource": "vn"
|
"dataSource": "vn"
|
||||||
},
|
},
|
||||||
|
"MachineWorkerConfig": {
|
||||||
|
"dataSource": "vn"
|
||||||
|
},
|
||||||
"MobileAppVersionControl": {
|
"MobileAppVersionControl": {
|
||||||
"dataSource": "vn"
|
"dataSource": "vn"
|
||||||
},
|
},
|
||||||
"Module": {
|
"Module": {
|
||||||
"dataSource": "vn"
|
"dataSource": "vn"
|
||||||
},
|
},
|
||||||
|
"MrwConfig": {
|
||||||
|
"dataSource": "vn"
|
||||||
|
},
|
||||||
"Notification": {
|
"Notification": {
|
||||||
"dataSource": "vn"
|
"dataSource": "vn"
|
||||||
},
|
},
|
||||||
|
@ -160,10 +169,10 @@
|
||||||
"VnRole": {
|
"VnRole": {
|
||||||
"dataSource": "vn"
|
"dataSource": "vn"
|
||||||
},
|
},
|
||||||
"MrwConfig": {
|
"WorkerActivity": {
|
||||||
|
"dataSource": "vn"
|
||||||
|
},
|
||||||
|
"WorkerActivityType": {
|
||||||
"dataSource": "vn"
|
"dataSource": "vn"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
{
|
{
|
||||||
"name": "Bank",
|
"name": "Accounting",
|
||||||
"base": "VnModel",
|
"base": "VnModel",
|
||||||
"options": {
|
"options": {
|
||||||
"mysql": {
|
"mysql": {
|
||||||
"table": "bank"
|
"table": "accounting"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"properties": {
|
"properties": {
|
||||||
|
@ -22,10 +22,7 @@
|
||||||
},
|
},
|
||||||
"accountingTypeFk": {
|
"accountingTypeFk": {
|
||||||
"type": "number",
|
"type": "number",
|
||||||
"required": true,
|
"required": true
|
||||||
"mysql": {
|
|
||||||
"columnName": "cash"
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"entityFk": {
|
"entityFk": {
|
||||||
"type": "number",
|
"type": "number",
|
|
@ -3,4 +3,6 @@ module.exports = Self => {
|
||||||
require('../methods/collection/setSaleQuantity')(Self);
|
require('../methods/collection/setSaleQuantity')(Self);
|
||||||
require('../methods/collection/previousLabel')(Self);
|
require('../methods/collection/previousLabel')(Self);
|
||||||
require('../methods/collection/getTickets')(Self);
|
require('../methods/collection/getTickets')(Self);
|
||||||
|
require('../methods/collection/assign')(Self);
|
||||||
|
require('../methods/collection/getSales')(Self);
|
||||||
};
|
};
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
"name": "MachineWorkerConfig",
|
||||||
|
"base": "VnModel",
|
||||||
|
"options": {
|
||||||
|
"mysql": {
|
||||||
|
"table": "vn.machineWorkerConfig"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"properties": {
|
||||||
|
"id": {
|
||||||
|
"type": "number",
|
||||||
|
"id": true
|
||||||
|
},
|
||||||
|
"maxHours": {
|
||||||
|
"type": "number"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
module.exports = Self => {
|
||||||
|
require('../methods/machine-worker/updateInTime')(Self);
|
||||||
|
};
|
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
"name": "Machine",
|
||||||
|
"base": "VnModel",
|
||||||
|
"options": {
|
||||||
|
"mysql": {
|
||||||
|
"table": "vn.machine"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"properties": {
|
||||||
|
"id": {
|
||||||
|
"type": "number",
|
||||||
|
"id": true
|
||||||
|
},
|
||||||
|
"plate": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
module.exports = Self => {
|
||||||
|
require('../methods/mobile-app-version-control/getVersion')(Self);
|
||||||
|
};
|
|
@ -0,0 +1,39 @@
|
||||||
|
{
|
||||||
|
"name": "MobileAppVersionControl",
|
||||||
|
"base": "VnModel",
|
||||||
|
"options": {
|
||||||
|
"mysql": {
|
||||||
|
"table": "vn.mobileAppVersionControl"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"properties": {
|
||||||
|
"id": {
|
||||||
|
"type": "number",
|
||||||
|
"id": true
|
||||||
|
},
|
||||||
|
"appName": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
|
||||||
|
"version": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
|
||||||
|
"isVersionCritical": {
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
|
||||||
|
"urlProduction": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"urlBeta": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"versionBeta": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"isVersionBetaCritical": {
|
||||||
|
"type": "boolean"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -47,7 +47,7 @@
|
||||||
},
|
},
|
||||||
"bank": {
|
"bank": {
|
||||||
"type": "belongsTo",
|
"type": "belongsTo",
|
||||||
"model": "Bank",
|
"model": "Accounting",
|
||||||
"foreignKey": "bankFk"
|
"foreignKey": "bankFk"
|
||||||
},
|
},
|
||||||
"payMethod": {
|
"payMethod": {
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
{
|
||||||
|
"name": "WorkerActivity",
|
||||||
|
"base": "VnModel",
|
||||||
|
"options": {
|
||||||
|
"mysql": {
|
||||||
|
"table": "workerActivity"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"properties": {
|
||||||
|
"id": {
|
||||||
|
"id": true,
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"created": {
|
||||||
|
"type": "date"
|
||||||
|
},
|
||||||
|
"model": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"event": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"relations": {
|
||||||
|
"workerFk": {
|
||||||
|
"type": "belongsTo",
|
||||||
|
"model": "Worker",
|
||||||
|
"foreignKey": "workerFk"
|
||||||
|
},
|
||||||
|
"workerActivityTypeFk": {
|
||||||
|
"type": "belongsTo",
|
||||||
|
"model": "WorkerActivityType",
|
||||||
|
"foreignKey": "workerActivityTypeFk"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
"name": "WorkerActivityType",
|
||||||
|
"base": "VnModel",
|
||||||
|
"options": {
|
||||||
|
"mysql": {
|
||||||
|
"table": "workerActivityType"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"properties": {
|
||||||
|
"code": {
|
||||||
|
"id": true,
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"type": "string",
|
||||||
|
"required": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1393,8 +1393,6 @@ INSERT INTO `ACL` VALUES (385,'Route','driverRoutePdf','READ','ALLOW','ROLE','em
|
||||||
INSERT INTO `ACL` VALUES (386,'Route','driverRouteEmail','WRITE','ALLOW','ROLE','employee');
|
INSERT INTO `ACL` VALUES (386,'Route','driverRouteEmail','WRITE','ALLOW','ROLE','employee');
|
||||||
INSERT INTO `ACL` VALUES (387,'Ticket','deliveryNotePdf','READ','ALLOW','ROLE','customer');
|
INSERT INTO `ACL` VALUES (387,'Ticket','deliveryNotePdf','READ','ALLOW','ROLE','customer');
|
||||||
INSERT INTO `ACL` VALUES (388,'Supplier','newSupplier','WRITE','ALLOW','ROLE','administrative');
|
INSERT INTO `ACL` VALUES (388,'Supplier','newSupplier','WRITE','ALLOW','ROLE','administrative');
|
||||||
INSERT INTO `ACL` VALUES (389,'ClaimRma','*','READ','ALLOW','ROLE','claimManager');
|
|
||||||
INSERT INTO `ACL` VALUES (390,'ClaimRma','*','WRITE','ALLOW','ROLE','claimManager');
|
|
||||||
INSERT INTO `ACL` VALUES (391,'Notification','*','WRITE','ALLOW','ROLE','system');
|
INSERT INTO `ACL` VALUES (391,'Notification','*','WRITE','ALLOW','ROLE','system');
|
||||||
INSERT INTO `ACL` VALUES (392,'Boxing','*','*','ALLOW','ROLE','employee');
|
INSERT INTO `ACL` VALUES (392,'Boxing','*','*','ALLOW','ROLE','employee');
|
||||||
INSERT INTO `ACL` VALUES (393,'Url','*','READ','ALLOW','ROLE','employee');
|
INSERT INTO `ACL` VALUES (393,'Url','*','READ','ALLOW','ROLE','employee');
|
||||||
|
|
|
@ -1239,6 +1239,7 @@ INSERT INTO `vn`.`train`(`id`, `name`)
|
||||||
INSERT INTO `vn`.`operator` (`workerFk`, `numberOfWagons`, `trainFk`, `itemPackingTypeFk`, `warehouseFk`, `sectorFk`, `labelerFk`)
|
INSERT INTO `vn`.`operator` (`workerFk`, `numberOfWagons`, `trainFk`, `itemPackingTypeFk`, `warehouseFk`, `sectorFk`, `labelerFk`)
|
||||||
VALUES
|
VALUES
|
||||||
('1106', '1', '1', 'H', '1', '1', '1'),
|
('1106', '1', '1', 'H', '1', '1', '1'),
|
||||||
|
('9', '2', '1', 'H', '1', '1', '1'),
|
||||||
('1107', '1', '1', 'V', '1', '1', '1');
|
('1107', '1', '1', 'V', '1', '1', '1');
|
||||||
|
|
||||||
INSERT INTO `vn`.`collection`(`id`, `workerFk`, `stateFk`, `created`, `trainFk`)
|
INSERT INTO `vn`.`collection`(`id`, `workerFk`, `stateFk`, `created`, `trainFk`)
|
||||||
|
@ -1490,8 +1491,8 @@ INSERT INTO `bs`.`waste`(`buyer`, `year`, `week`, `family`, `itemFk`, `itemTypeF
|
||||||
|
|
||||||
INSERT INTO `vn`.`buy`(`id`,`entryFk`,`itemFk`,`buyingValue`,`quantity`,`packagingFk`,`stickers`,`freightValue`,`packageValue`,`comissionValue`,`packing`,`grouping`,`groupingMode`,`location`,`price1`,`price2`,`price3`, `printedStickers`,`isChecked`,`isIgnored`,`weight`, `created`)
|
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
|
VALUES
|
||||||
(1, 1, 1, 50, 5000, 4, 1, 1.500, 1.500, 0.000, 1, 1, 1, NULL, 0.00, 99.6, 99.4, 0, 1, 0, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH)),
|
(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, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 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()),
|
(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()),
|
(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()),
|
(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()),
|
||||||
|
@ -1819,19 +1820,16 @@ INSERT INTO `vn`.`clientSample`(`id`, `clientFk`, `typeFk`, `created`, `workerFk
|
||||||
INSERT INTO `vn`.`claimState`(`id`, `code`, `description`, `roleFk`, `priority`, `hasToNotify`)
|
INSERT INTO `vn`.`claimState`(`id`, `code`, `description`, `roleFk`, `priority`, `hasToNotify`)
|
||||||
VALUES
|
VALUES
|
||||||
( 1, 'pending', 'Pendiente', 1, 1, 0),
|
( 1, 'pending', 'Pendiente', 1, 1, 0),
|
||||||
( 2, 'managed', 'Gestionado', 72, 5, 0),
|
|
||||||
( 3, 'resolved', 'Resuelto', 72, 7, 0),
|
( 3, 'resolved', 'Resuelto', 72, 7, 0),
|
||||||
( 4, 'canceled', 'Anulado', 72, 6, 1),
|
( 4, 'canceled', 'Anulado', 72, 6, 1),
|
||||||
( 5, 'incomplete', 'Incompleta', 1, 3, 1),
|
( 5, 'incomplete', 'Incompleta', 1, 3, 1);
|
||||||
( 6, 'mana', 'Mana', 72, 4, 0),
|
|
||||||
( 7, 'lack', 'Faltas', 72, 2, 0);
|
|
||||||
|
|
||||||
INSERT INTO `vn`.`claim`(`id`, `ticketCreated`, `claimStateFk`, `clientFk`, `workerFk`, `responsibility`, `isChargedToMana`, `created`, `packages`, `rma`, `ticketFk`)
|
INSERT INTO `vn`.`claim`(`id`, `ticketCreated`, `claimStateFk`, `clientFk`, `workerFk`, `responsibility`, `isChargedToMana`, `created`, `packages`, `ticketFk`)
|
||||||
VALUES
|
VALUES
|
||||||
(1, util.VN_CURDATE(), 1, 1101, 18, 3, 0, util.VN_CURDATE(), 0, '02676A049183', 11),
|
(1, util.VN_CURDATE(), 1, 1101, 18, 3, 0, util.VN_CURDATE(), 0, 11),
|
||||||
(2, util.VN_CURDATE(), 2, 1101, 18, 3, 0, util.VN_CURDATE(), 1, NULL, 16),
|
(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, NULL, 7),
|
(3, util.VN_CURDATE(), 3, 1101, 18, 1, 1, util.VN_CURDATE(), 5, 7),
|
||||||
(4, util.VN_CURDATE(), 3, 1104, 18, 5, 0, util.VN_CURDATE(), 10, NULL, 8);
|
(4, util.VN_CURDATE(), 3, 1104, 18, 5, 0, util.VN_CURDATE(), 10, 8);
|
||||||
|
|
||||||
INSERT INTO `vn`.`claimObservation` (`claimFk`, `workerFk`, `text`, `created`)
|
INSERT INTO `vn`.`claimObservation` (`claimFk`, `workerFk`, `text`, `created`)
|
||||||
VALUES
|
VALUES
|
||||||
|
@ -1880,14 +1878,6 @@ INSERT INTO `vn`.`claimRatio`(`clientFk`, `yearSale`, `claimAmount`, `claimingRa
|
||||||
(1103, 2000, 0.00, 0.00, 0.02, 1.00),
|
(1103, 2000, 0.00, 0.00, 0.02, 1.00),
|
||||||
(1104, 2500, 150.00, 0.02, 0.10, 1.00);
|
(1104, 2500, 150.00, 0.02, 0.10, 1.00);
|
||||||
|
|
||||||
INSERT INTO vn.claimRma (`id`, `code`, `created`, `workerFk`)
|
|
||||||
VALUES
|
|
||||||
(1, '02676A049183', DEFAULT, 1106),
|
|
||||||
(2, '02676A049183', DEFAULT, 1106),
|
|
||||||
(3, '02676A049183', DEFAULT, 1107),
|
|
||||||
(4, '02676A049183', DEFAULT, 1107),
|
|
||||||
(5, '01837B023653', DEFAULT, 1106);
|
|
||||||
|
|
||||||
INSERT INTO `vn`.`claimLog` (`originFk`, userFk, `action`, changedModel, oldInstance, newInstance, changedModelId, `description`)
|
INSERT INTO `vn`.`claimLog` (`originFk`, userFk, `action`, changedModel, oldInstance, newInstance, changedModelId, `description`)
|
||||||
VALUES
|
VALUES
|
||||||
(1, 18, 'update', 'Claim', '{"hasToPickUp":false}', '{"hasToPickUp":true}', 1, NULL),
|
(1, 18, 'update', 'Claim', '{"hasToPickUp":false}', '{"hasToPickUp":true}', 1, NULL),
|
||||||
|
@ -2737,10 +2727,10 @@ INSERT INTO `vn`.`chat` (`senderFk`, `recipient`, `dated`, `checkUserStatus`, `m
|
||||||
(1101, '@PetterParker', util.VN_CURDATE(), 0, 'Second test message', 0, 'pending');
|
(1101, '@PetterParker', util.VN_CURDATE(), 0, 'Second test message', 0, 'pending');
|
||||||
|
|
||||||
|
|
||||||
INSERT INTO `vn`.`mobileAppVersionControl` (`appName`, `version`, `isVersionCritical`)
|
INSERT INTO `vn`.`mobileAppVersionControl` (`appName`, `version`, `isVersionCritical`,`versionBeta`)
|
||||||
VALUES
|
VALUES
|
||||||
('delivery', '9.2', 0),
|
('delivery', '9.2', 0,'9.7'),
|
||||||
('warehouse', '8.1', 0);
|
('warehouse', '8.1', 0,'8.3');
|
||||||
|
|
||||||
INSERT INTO `vn`.`machine` (`plate`, `maker`, `model`, `warehouseFk`, `departmentFk`, `type`, `use`, `productionYear`, `workerFk`, `companyFk`)
|
INSERT INTO `vn`.`machine` (`plate`, `maker`, `model`, `warehouseFk`, `departmentFk`, `type`, `use`, `productionYear`, `workerFk`, `companyFk`)
|
||||||
VALUES
|
VALUES
|
||||||
|
@ -3077,3 +3067,669 @@ INSERT INTO `vn`.`cmr` (id,truckPlate,observations,senderInstruccions,paymentIns
|
||||||
|
|
||||||
UPDATE vn.department
|
UPDATE vn.department
|
||||||
SET workerFk = null;
|
SET workerFk = null;
|
||||||
|
|
||||||
|
-- NEW WAREHOUSE
|
||||||
|
|
||||||
|
INSERT INTO vn.packaging
|
||||||
|
VALUES('--', 2745600.00, 100.00, 120.00, 220.00, 0.00, 1, '2001-01-01 00:00:00.000', NULL, NULL, NULL, 0.00, 16, 0.00, 0, NULL, 0.00, NULL, NULL, 0, NULL, 0, 0);
|
||||||
|
|
||||||
|
|
||||||
|
INSERT IGNORE INTO vn.intrastat
|
||||||
|
SET id = 44219999,
|
||||||
|
description = 'Manufacturas de madera',
|
||||||
|
taxClassFk = 1,
|
||||||
|
taxCodeFk = 1;
|
||||||
|
|
||||||
|
INSERT IGNORE INTO vn.warehouse
|
||||||
|
SET id = 999,
|
||||||
|
name = 'TestingWarehouse',
|
||||||
|
hasAvailable = TRUE,
|
||||||
|
isForTicket = TRUE,
|
||||||
|
isInventory = TRUE,
|
||||||
|
hasUbications = TRUE,
|
||||||
|
hasProduction = TRUE;
|
||||||
|
|
||||||
|
INSERT IGNORE INTO vn.sector
|
||||||
|
SET id = 9991,
|
||||||
|
description = 'NormalSector',
|
||||||
|
warehouseFk = 999,
|
||||||
|
code = 'NS',
|
||||||
|
isPackagingArea = FALSE,
|
||||||
|
sonFk = NULL,
|
||||||
|
isMain = TRUE,
|
||||||
|
itemPackingTypeFk = NULL;
|
||||||
|
|
||||||
|
INSERT IGNORE INTO vn.sector
|
||||||
|
SET id = 9992,
|
||||||
|
description = 'PreviousSector',
|
||||||
|
warehouseFk = 999,
|
||||||
|
code = 'PS',
|
||||||
|
isPackagingArea = FALSE,
|
||||||
|
sonFk = NULL,
|
||||||
|
isMain = TRUE,
|
||||||
|
itemPackingTypeFk = NULL;
|
||||||
|
|
||||||
|
INSERT IGNORE INTO vn.sector
|
||||||
|
SET id = 9993,
|
||||||
|
description = 'MezaninneSector',
|
||||||
|
warehouseFk = 999,
|
||||||
|
code = 'MS',
|
||||||
|
isPackagingArea = FALSE,
|
||||||
|
sonFk = 9991,
|
||||||
|
isMain = TRUE,
|
||||||
|
itemPackingTypeFk = NULL;
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO vn.parking (id,sectorFk, code, pickingOrder)
|
||||||
|
VALUES (4,9991, 'A-01-1', 1),
|
||||||
|
(5,9991, 'A-02-2', 2),
|
||||||
|
(6,9991, 'A-03-3', 3),
|
||||||
|
(7,9991, 'A-04-4', 4),
|
||||||
|
(8,9991, 'A-05-5', 5),
|
||||||
|
(9,9992, 'P-01-1', 6),
|
||||||
|
(10,9992, 'P-02-2', 7),
|
||||||
|
(11,9992, 'P-03-3', 8),
|
||||||
|
(12,9993, 'M-01-1', 9),
|
||||||
|
(13,9993, 'M-02-2', 10),
|
||||||
|
(14,9993, 'M-03-3', 11);
|
||||||
|
|
||||||
|
INSERT INTO vn.shelving (code, parkingFk, priority)
|
||||||
|
VALUES ('NAA', 4, 1),
|
||||||
|
('NBB', 5, 1),
|
||||||
|
('NCC', 6, 1),
|
||||||
|
('NDD', 7, 1),
|
||||||
|
('NEE', 8, 1),
|
||||||
|
('PAA', 9, 1),
|
||||||
|
('PBB', 10, 1),
|
||||||
|
('PCC', 11, 1),
|
||||||
|
('MAA', 12, 1),
|
||||||
|
('MBB', 13, 1),
|
||||||
|
('MCC', 14, 1);
|
||||||
|
|
||||||
|
INSERT IGNORE INTO vn.itemType
|
||||||
|
SET id = 999,
|
||||||
|
code = 'WOO',
|
||||||
|
name = 'Wood Objects',
|
||||||
|
categoryFk = 3,
|
||||||
|
workerFk = 103,
|
||||||
|
isInventory = TRUE,
|
||||||
|
life = 10,
|
||||||
|
density = 250,
|
||||||
|
itemPackingTypeFk = NULL,
|
||||||
|
temperatureFk = 'warm';
|
||||||
|
|
||||||
|
INSERT IGNORE INTO vn.travel
|
||||||
|
SET id = 99,
|
||||||
|
shipped = CURDATE(),
|
||||||
|
landed = CURDATE(),
|
||||||
|
warehouseInFk = 999,
|
||||||
|
warehouseOutFk = 1,
|
||||||
|
isReceived = TRUE;
|
||||||
|
|
||||||
|
INSERT INTO vn.entry
|
||||||
|
SET id = 999,
|
||||||
|
supplierFk = 791,
|
||||||
|
isConfirmed = TRUE,
|
||||||
|
dated = CURDATE(),
|
||||||
|
travelFk = 99,
|
||||||
|
companyFk = 442;
|
||||||
|
|
||||||
|
INSERT INTO vn.ticket
|
||||||
|
SET id = 999999,
|
||||||
|
clientFk = 2,
|
||||||
|
warehouseFk = 999,
|
||||||
|
shipped = CURDATE(),
|
||||||
|
nickname = 'Cliente',
|
||||||
|
addressFk = 1,
|
||||||
|
companyFk = 442,
|
||||||
|
agencyModeFk = 10,
|
||||||
|
landed = CURDATE();
|
||||||
|
|
||||||
|
INSERT INTO vn.collection
|
||||||
|
SET id = 10101010,
|
||||||
|
workerFk = 9;
|
||||||
|
|
||||||
|
INSERT IGNORE INTO vn.ticketCollection
|
||||||
|
SET id = 10101010,
|
||||||
|
ticketFk = 999999,
|
||||||
|
collectionFk = 10101010;
|
||||||
|
|
||||||
|
INSERT INTO vn.item
|
||||||
|
SET id = 999991,
|
||||||
|
name = 'Palito para pinchos',
|
||||||
|
`size` = 25,
|
||||||
|
stems = NULL,
|
||||||
|
category = 'EXT',
|
||||||
|
typeFk = 999,
|
||||||
|
longName = 'Palito para pinchos',
|
||||||
|
itemPackingTypeFk = NULL,
|
||||||
|
originFk = 1,
|
||||||
|
weightByPiece = 6,
|
||||||
|
intrastatFk = 44219999;
|
||||||
|
|
||||||
|
INSERT INTO vn.buy
|
||||||
|
SET id = 9999991,
|
||||||
|
entryFk = 999,
|
||||||
|
itemFk = 999991,
|
||||||
|
quantity = 8,
|
||||||
|
buyingValue = 0.61,
|
||||||
|
stickers = 1,
|
||||||
|
packing = 20,
|
||||||
|
`grouping` = 1,
|
||||||
|
groupingMode = 1,
|
||||||
|
packageFk = 94,
|
||||||
|
price1 = 1,
|
||||||
|
price2 = 1,
|
||||||
|
price3 = 1,
|
||||||
|
minPrice = 1,
|
||||||
|
weight = 50;
|
||||||
|
|
||||||
|
INSERT INTO vn.sale
|
||||||
|
SET id = 99991,
|
||||||
|
itemFk = 999991,
|
||||||
|
ticketFk = 999999,
|
||||||
|
concept = 'Palito para pinchos',
|
||||||
|
quantity = 3,
|
||||||
|
price = 1,
|
||||||
|
discount = 0;
|
||||||
|
|
||||||
|
INSERT INTO vn.item
|
||||||
|
SET id = 999992,
|
||||||
|
name = 'Madera verde',
|
||||||
|
`size` = 10,
|
||||||
|
stems = NULL,
|
||||||
|
category = 'EXT',
|
||||||
|
typeFk = 999,
|
||||||
|
longName = 'Madera verde',
|
||||||
|
itemPackingTypeFk = NULL,
|
||||||
|
originFk = 1,
|
||||||
|
weightByPiece = 50,
|
||||||
|
intrastatFk = 44219999;
|
||||||
|
|
||||||
|
INSERT INTO vn.buy
|
||||||
|
SET id = 9999992,
|
||||||
|
entryFk = 999,
|
||||||
|
itemFk = 999992,
|
||||||
|
quantity = 40,
|
||||||
|
buyingValue = 0.62,
|
||||||
|
stickers = 1,
|
||||||
|
packing = 40,
|
||||||
|
`grouping` = 5,
|
||||||
|
groupingMode = 1,
|
||||||
|
packageFk = 94,
|
||||||
|
price1 = 1,
|
||||||
|
price2 = 1,
|
||||||
|
price3 = 1,
|
||||||
|
minPrice = 1,
|
||||||
|
weight = 25;
|
||||||
|
|
||||||
|
INSERT INTO vn.sale
|
||||||
|
SET id = 99992,
|
||||||
|
itemFk = 999992,
|
||||||
|
ticketFk = 999999,
|
||||||
|
concept = 'Madera Verde',
|
||||||
|
quantity = 10,
|
||||||
|
price = 1,
|
||||||
|
discount = 0;
|
||||||
|
|
||||||
|
INSERT INTO vn.item
|
||||||
|
SET id = 999993,
|
||||||
|
name = 'Madera Roja/Morada',
|
||||||
|
`size` = 12,
|
||||||
|
stems = 2,
|
||||||
|
category = 'EXT',
|
||||||
|
typeFk = 999,
|
||||||
|
longName = 'Madera Roja/Morada',
|
||||||
|
itemPackingTypeFk = NULL,
|
||||||
|
originFk = 1,
|
||||||
|
weightByPiece = 35,
|
||||||
|
intrastatFk = 44219999;
|
||||||
|
|
||||||
|
INSERT INTO vn.buy
|
||||||
|
SET id = 9999993,
|
||||||
|
entryFk = 999,
|
||||||
|
itemFk = 999993,
|
||||||
|
quantity = 20,
|
||||||
|
buyingValue = 0.63,
|
||||||
|
stickers = 2,
|
||||||
|
packing = 10,
|
||||||
|
`grouping` = 5,
|
||||||
|
groupingMode = 1,
|
||||||
|
packageFk = 94,
|
||||||
|
price1 = 1,
|
||||||
|
price2 = 1,
|
||||||
|
price3 = 1,
|
||||||
|
minPrice = 1,
|
||||||
|
weight = 25;
|
||||||
|
|
||||||
|
INSERT INTO vn.itemShelving
|
||||||
|
SET id = 9931,
|
||||||
|
itemFk = 999993,
|
||||||
|
shelvingFk = 'NCC',
|
||||||
|
visible = 10,
|
||||||
|
`grouping` = 5,
|
||||||
|
packing = 10;
|
||||||
|
|
||||||
|
INSERT INTO vn.sale
|
||||||
|
SET id = 99993,
|
||||||
|
itemFk = 999993,
|
||||||
|
ticketFk = 999999,
|
||||||
|
concept = 'Madera Roja/Morada',
|
||||||
|
quantity = 15,
|
||||||
|
price = 1,
|
||||||
|
discount = 0;
|
||||||
|
|
||||||
|
INSERT INTO vn.item
|
||||||
|
SET id = 999994,
|
||||||
|
name = 'Madera Naranja',
|
||||||
|
`size` = 18,
|
||||||
|
stems = 1,
|
||||||
|
category = 'EXT',
|
||||||
|
typeFk = 999,
|
||||||
|
longName = 'Madera Naranja',
|
||||||
|
itemPackingTypeFk = NULL,
|
||||||
|
originFk = 1,
|
||||||
|
weightByPiece = 160,
|
||||||
|
intrastatFk = 44219999;
|
||||||
|
|
||||||
|
INSERT INTO vn.buy
|
||||||
|
SET id = 9999994,
|
||||||
|
entryFk = 999,
|
||||||
|
itemFk = 999994,
|
||||||
|
quantity = 20,
|
||||||
|
buyingValue = 0.64,
|
||||||
|
stickers = 1,
|
||||||
|
packing = 20,
|
||||||
|
`grouping` = 4,
|
||||||
|
groupingMode = 1,
|
||||||
|
packageFk = 94,
|
||||||
|
price1 = 1,
|
||||||
|
price2 = 1,
|
||||||
|
price3 = 1,
|
||||||
|
minPrice = 1,
|
||||||
|
weight = 25;
|
||||||
|
|
||||||
|
INSERT INTO vn.sale
|
||||||
|
SET id = 99994,
|
||||||
|
itemFk = 999994,
|
||||||
|
ticketFk = 999999,
|
||||||
|
concept = 'Madera Naranja',
|
||||||
|
quantity = 4,
|
||||||
|
price = 1,
|
||||||
|
discount = 0;
|
||||||
|
|
||||||
|
INSERT INTO vn.item
|
||||||
|
SET id = 999995,
|
||||||
|
name = 'Madera Amarilla',
|
||||||
|
`size` = 11,
|
||||||
|
stems = 5,
|
||||||
|
category = 'EXT',
|
||||||
|
typeFk = 999,
|
||||||
|
longName = 'Madera Amarilla',
|
||||||
|
itemPackingTypeFk = NULL,
|
||||||
|
originFk = 1,
|
||||||
|
weightByPiece = 78,
|
||||||
|
intrastatFk = 44219999;
|
||||||
|
|
||||||
|
INSERT INTO vn.buy
|
||||||
|
SET id = 9999995,
|
||||||
|
entryFk = 999,
|
||||||
|
itemFk = 999995,
|
||||||
|
quantity = 4,
|
||||||
|
buyingValue = 0.65,
|
||||||
|
stickers = 1,
|
||||||
|
packing = 20,
|
||||||
|
`grouping` = 1,
|
||||||
|
groupingMode = 1,
|
||||||
|
packageFk = 94,
|
||||||
|
price1 = 1,
|
||||||
|
price2 = 1,
|
||||||
|
price3 = 1,
|
||||||
|
minPrice = 1,
|
||||||
|
weight = 35;
|
||||||
|
|
||||||
|
INSERT INTO vn.sale
|
||||||
|
SET id = 99995,
|
||||||
|
itemFk = 999995,
|
||||||
|
ticketFk = 999999,
|
||||||
|
concept = 'Madera Amarilla',
|
||||||
|
quantity = 5,
|
||||||
|
price = 1,
|
||||||
|
discount = 0;
|
||||||
|
|
||||||
|
-- Palito naranja
|
||||||
|
INSERT INTO vn.item
|
||||||
|
SET id = 999998,
|
||||||
|
name = 'Palito naranja',
|
||||||
|
`size` = 11,
|
||||||
|
stems = 1,
|
||||||
|
category = 'EXT',
|
||||||
|
typeFk = 999,
|
||||||
|
longName = 'Palito naranja',
|
||||||
|
itemPackingTypeFk = NULL,
|
||||||
|
originFk = 1,
|
||||||
|
weightByPiece = 78,
|
||||||
|
intrastatFk = 44219999;
|
||||||
|
|
||||||
|
INSERT INTO vn.buy
|
||||||
|
SET id = 9999998,
|
||||||
|
entryFk = 999,
|
||||||
|
itemFk = 999998,
|
||||||
|
quantity = 80,
|
||||||
|
buyingValue = 0.65,
|
||||||
|
stickers = 1,
|
||||||
|
packing = 200,
|
||||||
|
`grouping` = 30,
|
||||||
|
groupingMode = 1,
|
||||||
|
packageFk = 94,
|
||||||
|
price1 = 1,
|
||||||
|
price2 = 1,
|
||||||
|
price3 = 1,
|
||||||
|
minPrice = 1,
|
||||||
|
weight = 35;
|
||||||
|
|
||||||
|
INSERT INTO vn.sale
|
||||||
|
SET id = 99998,
|
||||||
|
itemFk = 999998,
|
||||||
|
ticketFk = 999999,
|
||||||
|
concept = 'Palito naranja',
|
||||||
|
quantity = 60,
|
||||||
|
price = 1,
|
||||||
|
discount = 0;
|
||||||
|
|
||||||
|
-- Palito amarillo
|
||||||
|
INSERT INTO vn.item
|
||||||
|
SET id = 999999,
|
||||||
|
name = 'Palito amarillo',
|
||||||
|
`size` = 11,
|
||||||
|
stems = 1,
|
||||||
|
category = 'EXT',
|
||||||
|
typeFk = 999,
|
||||||
|
longName = 'Palito amarillo',
|
||||||
|
itemPackingTypeFk = NULL,
|
||||||
|
originFk = 1,
|
||||||
|
weightByPiece = 78,
|
||||||
|
intrastatFk = 44219999;
|
||||||
|
|
||||||
|
INSERT INTO vn.buy
|
||||||
|
SET id = 9999999,
|
||||||
|
entryFk = 999,
|
||||||
|
itemFk = 999999,
|
||||||
|
quantity = 70,
|
||||||
|
buyingValue = 0.65,
|
||||||
|
stickers = 1,
|
||||||
|
packing = 500,
|
||||||
|
`grouping` = 10,
|
||||||
|
groupingMode = 1,
|
||||||
|
packageFk = 94,
|
||||||
|
price1 = 1,
|
||||||
|
price2 = 1,
|
||||||
|
price3 = 1,
|
||||||
|
minPrice = 1,
|
||||||
|
weight = 35;
|
||||||
|
|
||||||
|
INSERT INTO vn.sale
|
||||||
|
SET id = 99999,
|
||||||
|
itemFk = 999999,
|
||||||
|
ticketFk = 999999,
|
||||||
|
concept = 'Palito amarillo',
|
||||||
|
quantity = 50,
|
||||||
|
price = 1,
|
||||||
|
discount = 0;
|
||||||
|
|
||||||
|
-- Palito azul
|
||||||
|
INSERT INTO vn.item
|
||||||
|
SET id = 1000000,
|
||||||
|
name = 'Palito azul',
|
||||||
|
`size` = 10,
|
||||||
|
stems = 1,
|
||||||
|
category = 'EXT',
|
||||||
|
typeFk = 999,
|
||||||
|
longName = 'Palito azul',
|
||||||
|
itemPackingTypeFk = NULL,
|
||||||
|
originFk = 1,
|
||||||
|
weightByPiece = 78,
|
||||||
|
intrastatFk = 44219999;
|
||||||
|
|
||||||
|
INSERT INTO vn.buy
|
||||||
|
SET id = 10000000,
|
||||||
|
entryFk = 999,
|
||||||
|
itemFk = 1000000,
|
||||||
|
quantity = 75,
|
||||||
|
buyingValue = 0.65,
|
||||||
|
stickers = 2,
|
||||||
|
packing = 300,
|
||||||
|
`grouping` = 50,
|
||||||
|
groupingMode = 1,
|
||||||
|
packageFk = 94,
|
||||||
|
price1 = 1,
|
||||||
|
price2 = 1,
|
||||||
|
price3 = 1,
|
||||||
|
minPrice = 1,
|
||||||
|
weight = 35;
|
||||||
|
|
||||||
|
INSERT INTO vn.sale
|
||||||
|
SET id = 100000,
|
||||||
|
itemFk = 1000000,
|
||||||
|
ticketFk = 999999,
|
||||||
|
concept = 'Palito azul',
|
||||||
|
quantity = 50,
|
||||||
|
price = 1,
|
||||||
|
discount = 0;
|
||||||
|
|
||||||
|
-- Palito rojo
|
||||||
|
INSERT INTO vn.item
|
||||||
|
SET id = 1000001,
|
||||||
|
name = 'Palito rojo',
|
||||||
|
`size` = 10,
|
||||||
|
stems = NULL,
|
||||||
|
category = 'EXT',
|
||||||
|
typeFk = 999,
|
||||||
|
longName = 'Palito rojo',
|
||||||
|
itemPackingTypeFk = NULL,
|
||||||
|
originFk = 1,
|
||||||
|
weightByPiece = 78,
|
||||||
|
intrastatFk = 44219999;
|
||||||
|
|
||||||
|
INSERT INTO vn.buy
|
||||||
|
SET id = 10000001,
|
||||||
|
entryFk = 999,
|
||||||
|
itemFk = 1000001,
|
||||||
|
quantity = 12,
|
||||||
|
buyingValue = 0.65,
|
||||||
|
stickers = 2,
|
||||||
|
packing = 50,
|
||||||
|
`grouping` = 5,
|
||||||
|
groupingMode = 1,
|
||||||
|
packageFk = 94,
|
||||||
|
price1 = 1,
|
||||||
|
price2 = 1,
|
||||||
|
price3 = 1,
|
||||||
|
minPrice = 1,
|
||||||
|
weight = 35;
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO vn.sale
|
||||||
|
SET id = 100001,
|
||||||
|
itemFk = 1000001,
|
||||||
|
ticketFk = 999999,
|
||||||
|
concept = 'Palito rojo',
|
||||||
|
quantity = 10,
|
||||||
|
price = 1,
|
||||||
|
discount = 0;
|
||||||
|
|
||||||
|
-- Previa
|
||||||
|
INSERT IGNORE INTO vn.item
|
||||||
|
SET id = 999996,
|
||||||
|
name = 'Bolas de madera',
|
||||||
|
`size` = 2,
|
||||||
|
stems = 4,
|
||||||
|
category = 'EXT',
|
||||||
|
typeFk = 999,
|
||||||
|
longName = 'Bolas de madera',
|
||||||
|
itemPackingTypeFk = NULL,
|
||||||
|
originFk = 1,
|
||||||
|
weightByPiece = 20,
|
||||||
|
intrastatFk = 44219999;
|
||||||
|
|
||||||
|
INSERT vn.buy
|
||||||
|
SET id = 9999996,
|
||||||
|
entryFk = 999,
|
||||||
|
itemFk = 999996,
|
||||||
|
quantity = 5,
|
||||||
|
buyingValue = 3,
|
||||||
|
stickers = 1,
|
||||||
|
packing = 5,
|
||||||
|
`grouping` = 2,
|
||||||
|
groupingMode = 1,
|
||||||
|
packageFk = 94,
|
||||||
|
price1 = 7,
|
||||||
|
price2 = 7,
|
||||||
|
price3 = 7,
|
||||||
|
minPrice = 7,
|
||||||
|
weight = 80;
|
||||||
|
|
||||||
|
INSERT vn.sale
|
||||||
|
SET id = 99996,
|
||||||
|
itemFk = 999996,
|
||||||
|
ticketFk = 999999,
|
||||||
|
concept = 'Bolas de madera',
|
||||||
|
quantity = 4,
|
||||||
|
price = 7,
|
||||||
|
discount = 0,
|
||||||
|
isPicked = TRUE;
|
||||||
|
|
||||||
|
INSERT IGNORE INTO vn.item
|
||||||
|
SET id = 999997,
|
||||||
|
name = 'Palitos de polo MIX',
|
||||||
|
`size` = 14,
|
||||||
|
stems = NULL,
|
||||||
|
category = 'EXT',
|
||||||
|
typeFk = 999,
|
||||||
|
longName = 'Palitos de polo MIX',
|
||||||
|
itemPackingTypeFk = NULL,
|
||||||
|
originFk = 1,
|
||||||
|
weightByPiece = 20,
|
||||||
|
intrastatFk = 44219999;
|
||||||
|
|
||||||
|
INSERT vn.buy
|
||||||
|
SET id = 9999997,
|
||||||
|
entryFk = 999,
|
||||||
|
itemFk = 999997,
|
||||||
|
quantity = 100,
|
||||||
|
buyingValue = 3.2,
|
||||||
|
stickers = 1,
|
||||||
|
packing = 100,
|
||||||
|
`grouping` = 5,
|
||||||
|
groupingMode = 1,
|
||||||
|
packageFk = 94,
|
||||||
|
price1 = 7,
|
||||||
|
price2 = 7,
|
||||||
|
price3 = 7,
|
||||||
|
minPrice = 7,
|
||||||
|
weight = 80;
|
||||||
|
|
||||||
|
INSERT vn.sale
|
||||||
|
SET id = 99997,
|
||||||
|
itemFk = 999997,
|
||||||
|
ticketFk = 999999,
|
||||||
|
concept = 'Palitos de polo MIX',
|
||||||
|
quantity = 5,
|
||||||
|
price = 7,
|
||||||
|
discount = 0;
|
||||||
|
|
||||||
|
USE vn;
|
||||||
|
DELETE ish.* FROM vn.itemShelving ish
|
||||||
|
JOIN vn.shelving sh ON sh.code = ish.shelvingFk
|
||||||
|
JOIN vn.parking p ON p.id = sh.parkingFk
|
||||||
|
JOIN vn.sector s ON s.id = p.sectorFk
|
||||||
|
JOIN vn.warehouse w ON w.id = s.warehouseFk
|
||||||
|
WHERE w.name = 'TestingWarehouse';
|
||||||
|
|
||||||
|
INSERT INTO vn.itemShelving
|
||||||
|
(itemFk, shelvingFk, visible, created, `grouping`, packing, packagingFk, userFk, isChecked)
|
||||||
|
VALUES
|
||||||
|
(999991, 'NAA', 8, '2023-09-20', 1, 20, NULL, 103, NULL),
|
||||||
|
(999998, 'NAA', 80, '2023-09-20', 10, 30, NULL, 103, NULL),
|
||||||
|
(1000001, 'NAA', 6, '2023-09-20', 3, 50, NULL, 103, NULL),
|
||||||
|
(1000000, 'NBB', 50, '2023-09-18', 25, 500, NULL, 103, NULL),
|
||||||
|
(999993, 'NBB', 25, '2023-09-18', NULL, 10, NULL, 103, NULL),
|
||||||
|
(999999, 'NBB', 30, '2023-09-18', 10, 500, NULL, 103, NULL),
|
||||||
|
(999993, 'NCC', 25, '2023-09-20', 5, 10, NULL, 103, NULL),
|
||||||
|
(999997, 'NCC', 10, '2023-09-20', NULL, 100, NULL, 103, NULL),
|
||||||
|
(999999, 'NCC', 40, '2023-09-20', 10, 500, NULL, 103, NULL),
|
||||||
|
(999995, 'NDD', 10, '2023-09-19', NULL, 20, NULL, 103, NULL),
|
||||||
|
(999994, 'NDD', 48, '2023-09-19', 4, 20, NULL, 103, NULL),
|
||||||
|
(1000001, 'NEE', 6, '2023-09-21', 3, 50, NULL, 103, NULL),
|
||||||
|
(999992, 'NEE', 50, '2023-09-21', NULL, 1, NULL, 103, NULL),
|
||||||
|
(1000000, 'NEE', 25, '2023-09-21', 25, 500, NULL, 103, NULL),
|
||||||
|
(999996, 'PAA', 5, '2023-09-27', 1, 5, NULL, 103, NULL),
|
||||||
|
(999997, 'PCC', 10, '2023-09-27', 5, 100, NULL, 103, NULL);
|
||||||
|
|
||||||
|
-- Previous for Bolas de madera
|
||||||
|
INSERT IGNORE INTO vn.sectorCollection
|
||||||
|
SET id = 99,
|
||||||
|
userFk = 1,
|
||||||
|
sectorFk = 9992;
|
||||||
|
|
||||||
|
INSERT IGNORE INTO vn.saleGroup
|
||||||
|
SET id = 4,
|
||||||
|
userFk = 1,
|
||||||
|
parkingFk = 9,
|
||||||
|
sectorFk = 9992;
|
||||||
|
|
||||||
|
INSERT IGNORE INTO vn.sectorCollectionSaleGroup
|
||||||
|
SET id = 9999,
|
||||||
|
sectorCollectionFk = 99,
|
||||||
|
saleGroupFk = 999;
|
||||||
|
|
||||||
|
INSERT vn.saleGroupDetail
|
||||||
|
SET id = 99991,
|
||||||
|
saleFk = 99996,
|
||||||
|
saleGroupFk = 999;
|
||||||
|
|
||||||
|
INSERT INTO vn.saleTracking
|
||||||
|
SET id = 7,
|
||||||
|
saleFk = 99996,
|
||||||
|
isChecked = TRUE,
|
||||||
|
workerFk = 103,
|
||||||
|
stateFk = 28;
|
||||||
|
|
||||||
|
INSERT IGNORE INTO vn.itemShelvingSale
|
||||||
|
SET id = 991,
|
||||||
|
itemShelvingFk = 9962,
|
||||||
|
saleFk = 99996,
|
||||||
|
quantity = 5,
|
||||||
|
userFk = 1;
|
||||||
|
|
||||||
|
UPDATE vn.ticket
|
||||||
|
SET zoneFk=1
|
||||||
|
WHERE id=999999;
|
||||||
|
|
||||||
|
UPDATE vn.collection
|
||||||
|
SET workerFk=9
|
||||||
|
WHERE id=10101010;
|
||||||
|
|
||||||
|
UPDATE vn.sale
|
||||||
|
SET isPicked =FALSE;
|
||||||
|
|
||||||
|
INSERT INTO vn.machineWorkerConfig(maxHours)
|
||||||
|
VALUES(12);
|
||||||
|
|
||||||
|
INSERT INTO vn.workerAppTester(workerFk) VALUES(66);
|
||||||
|
|
||||||
|
INSERT INTO `vn`.`machine` (`plate`, `maker`, `model`, `warehouseFk`, `departmentFk`, `type`, `use`, `productionYear`, `workerFk`, `companyFk`)
|
||||||
|
VALUES
|
||||||
|
('RE-003', 'IRON', 'JPH-24', 60, 23, 'ELECTRIC TOW', 'Drag cars', 2020, 103, 442);
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO vn.machineWorker(workerFk,machineFk,inTimed) VALUES (104,1,'2001-01-01 10:00:00.00.000');
|
||||||
|
|
||||||
|
UPDATE vn.buy SET itemOriginalFk = 1 WHERE id = 1;
|
||||||
|
|
||||||
|
UPDATE vn.saleTracking SET stateFk = 26 WHERE id = 5;
|
||||||
|
|
||||||
|
INSERT INTO vn.report (name) VALUES ('LabelCollection');
|
||||||
|
|
||||||
|
INSERT INTO vn.parkingLog(originFk, userFk, `action`, creationDate, description, changedModel,oldInstance, newInstance, changedModelId, changedModelValue)
|
||||||
|
VALUES(1, 18, 'update', util.VN_CURDATE(), NULL, 'SaleGroup', '{"parkingFk":null}', '{"parkingFk":1}', 1, NULL);
|
|
@ -22,7 +22,7 @@ BEGIN
|
||||||
FROM vn.component WHERE code = 'manaClaim';
|
FROM vn.component WHERE code = 'manaClaim';
|
||||||
|
|
||||||
SELECT id INTO vManaBankId
|
SELECT id INTO vManaBankId
|
||||||
FROM vn.bank WHERE code = 'mana';
|
FROM vn.accounting WHERE code = 'mana';
|
||||||
|
|
||||||
SELECT id INTO vManaGreugeTypeId
|
SELECT id INTO vManaGreugeTypeId
|
||||||
FROM vn.greugeType WHERE code = 'mana';
|
FROM vn.greugeType WHERE code = 'mana';
|
||||||
|
|
|
@ -1,10 +1,6 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `cache`.`clean`()
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `cache`.`clean`()
|
||||||
BEGIN
|
BEGIN
|
||||||
DECLARE vDateShort DATETIME;
|
DELETE FROM cache.departure_limit WHERE Fecha < util.VN_CURDATE() - INTERVAL 1 MONTH;
|
||||||
|
|
||||||
SET vDateShort = TIMESTAMPADD(MONTH, -1, util.VN_CURDATE());
|
|
||||||
|
|
||||||
DELETE FROM cache.departure_limit WHERE Fecha < vDateShort;
|
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -54,7 +54,7 @@ p: BEGIN
|
||||||
FROM vn.`client` WHERE id = vCustomer;
|
FROM vn.`client` WHERE id = vCustomer;
|
||||||
|
|
||||||
SELECT account INTO vAccount
|
SELECT account INTO vAccount
|
||||||
FROM vn.bank WHERE id = vBank;
|
FROM vn.accounting WHERE id = vBank;
|
||||||
|
|
||||||
DELETE FROM vn.XDiario
|
DELETE FROM vn.XDiario
|
||||||
WHERE SUBCTA = vSubaccount
|
WHERE SUBCTA = vSubaccount
|
||||||
|
|
|
@ -253,9 +253,9 @@ BEGIN
|
||||||
LIMIT 10000000000000000000
|
LIMIT 10000000000000000000
|
||||||
) sub GROUP BY ASIEN
|
) sub GROUP BY ASIEN
|
||||||
)sub2 ON sub2.ASIEN = x.ASIEN
|
)sub2 ON sub2.ASIEN = x.ASIEN
|
||||||
LEFT JOIN ( SELECT DISTINCT(account),cu.code
|
LEFT JOIN ( SELECT DISTINCT(a.account),cu.code
|
||||||
FROM vn.bank b
|
FROM vn.accounting a
|
||||||
JOIN vn.currency cu ON cu.id = b.currencyFk
|
JOIN vn.currency cu ON cu.id = a.currencyFk
|
||||||
WHERE cu.code <> 'EUR' -- no se informa cuando la divisa en EUR
|
WHERE cu.code <> 'EUR' -- no se informa cuando la divisa en EUR
|
||||||
)sub3 ON sub3.account = x.SUBCTA
|
)sub3 ON sub3.account = x.SUBCTA
|
||||||
WHERE x.enlazadoSage = FALSE
|
WHERE x.enlazadoSage = FALSE
|
||||||
|
|
|
@ -20,12 +20,12 @@ BEGIN
|
||||||
FROM vn.expense e
|
FROM vn.expense e
|
||||||
UNION
|
UNION
|
||||||
SELECT company_getCode(vCompanyFk),
|
SELECT company_getCode(vCompanyFk),
|
||||||
b.account,
|
a.account,
|
||||||
UCASE(b.bank),
|
UCASE(a.bank),
|
||||||
''
|
''
|
||||||
FROM vn.bank b
|
FROM vn.accounting a
|
||||||
WHERE b.isActive
|
WHERE a.isActive
|
||||||
AND b.`account`
|
AND a.`account`
|
||||||
UNION
|
UNION
|
||||||
SELECT CodigoEmpresa,
|
SELECT CodigoEmpresa,
|
||||||
CodigoCuenta,
|
CodigoCuenta,
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` EVENT `vn`.`sale_checkWithoutComponents`
|
|
||||||
ON SCHEDULE EVERY 10 MINUTE
|
|
||||||
STARTS '2020-05-04 11:56:23.000'
|
|
||||||
ON COMPLETION PRESERVE
|
|
||||||
ENABLE
|
|
||||||
DO call sale_checkNoComponents(DATE_ADD(util.VN_NOW(), INTERVAL -10 MINUTE),DATE_ADD(util.VN_NOW(), INTERVAL -1 MINUTE))$$
|
|
||||||
DELIMITER ;
|
|
|
@ -34,7 +34,7 @@ BEGIN
|
||||||
-- Inserta los asientos contables
|
-- Inserta los asientos contables
|
||||||
|
|
||||||
SELECT account INTO vAccount
|
SELECT account INTO vAccount
|
||||||
FROM bank WHERE id = vBank;
|
FROM accounting WHERE id = vBank;
|
||||||
|
|
||||||
SELECT accountingAccount INTO vSubaccount
|
SELECT accountingAccount INTO vSubaccount
|
||||||
FROM `client` WHERE id = vClient;
|
FROM `client` WHERE id = vClient;
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `vn`.`travel_hasUniqueAwb`(
|
||||||
|
vSelf INT
|
||||||
|
)
|
||||||
|
RETURNS BOOL
|
||||||
|
READS SQL DATA
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Comprueba que el travel pasado tiene un AWB lógico,
|
||||||
|
* no se pueden tener varios AWB asociados al mismo DUA
|
||||||
|
*
|
||||||
|
* @param vSelf Id del travel
|
||||||
|
*/
|
||||||
|
DECLARE vHasUniqueAwb BOOL DEFAULT TRUE;
|
||||||
|
|
||||||
|
SELECT NOT COUNT(t2.awbFk) INTO vHasUniqueAwb
|
||||||
|
FROM entry e
|
||||||
|
JOIN travel t ON t.id = e.travelFk
|
||||||
|
JOIN duaEntry de ON de.entryFk = e.id
|
||||||
|
JOIN duaEntry de2 ON de2.duaFk = de.duaFk
|
||||||
|
JOIN entry e2 ON e2.id = de2.entryFk
|
||||||
|
JOIN travel t2 ON t2.id = e2.travelFk
|
||||||
|
WHERE t.id = vSelf
|
||||||
|
AND t2.awbFk <> t.awbFk;
|
||||||
|
|
||||||
|
RETURN vHasUniqueAwb;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -0,0 +1,52 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`balanceNestTree_addChild`(
|
||||||
|
vSelf INT,
|
||||||
|
vName VARCHAR(45)
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Agrega un nuevo nodo hijo a un nodo existente dentro de la estructura
|
||||||
|
* de árbol de vn.balanceNestTree.
|
||||||
|
*
|
||||||
|
* @param vSelf Identificador del nodo
|
||||||
|
* @param vName Nombre del nuevo nodo hijo
|
||||||
|
*/
|
||||||
|
DECLARE vTable VARCHAR(45) DEFAULT util.quoteIdentifier('balanceNestTree');
|
||||||
|
DECLARE vLeft INT;
|
||||||
|
|
||||||
|
CREATE OR REPLACE TEMPORARY TABLE tAux
|
||||||
|
SELECT 0 lft;
|
||||||
|
|
||||||
|
EXECUTE IMMEDIATE CONCAT(
|
||||||
|
'UPDATE tAux
|
||||||
|
SET lft = (SELECT lft
|
||||||
|
FROM ', vTable,
|
||||||
|
' WHERE id = ?)')
|
||||||
|
USING vSelf;
|
||||||
|
|
||||||
|
SELECT lft INTO vLeft FROM tAux;
|
||||||
|
|
||||||
|
EXECUTE IMMEDIATE CONCAT(
|
||||||
|
'UPDATE ', vTable, '
|
||||||
|
SET rgt = rgt + 2
|
||||||
|
WHERE rgt > ?
|
||||||
|
ORDER BY rgt DESC')
|
||||||
|
USING vLeft;
|
||||||
|
|
||||||
|
EXECUTE IMMEDIATE CONCAT(
|
||||||
|
'UPDATE ', vTable, '
|
||||||
|
SET lft = lft + 2
|
||||||
|
WHERE lft > ?
|
||||||
|
ORDER BY lft DESC')
|
||||||
|
USING vLeft;
|
||||||
|
|
||||||
|
EXECUTE IMMEDIATE CONCAT(
|
||||||
|
'INSERT INTO ', vTable, ' (name, lft, rgt)
|
||||||
|
VALUES(?, ? + 1, ? + 2)')
|
||||||
|
USING vName,
|
||||||
|
vLeft,
|
||||||
|
vLeft;
|
||||||
|
|
||||||
|
DROP TEMPORARY TABLE tAux;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -0,0 +1,53 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`balanceNestTree_delete`(
|
||||||
|
vSelf INT
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Elimina un nodo dentro de la estructura de árbol de vn.balanceNestTree.
|
||||||
|
*
|
||||||
|
* @param vSelf Identificador del nodo
|
||||||
|
*/
|
||||||
|
DECLARE vTable VARCHAR(45) DEFAULT util.quoteIdentifier('balanceNestTree');
|
||||||
|
DECLARE vRight INT;
|
||||||
|
DECLARE vLeft INT;
|
||||||
|
DECLARE vWidth INT;
|
||||||
|
|
||||||
|
CREATE OR REPLACE TEMPORARY TABLE tAux
|
||||||
|
SELECT 0 rgt, 0 lft, 0 wdt;
|
||||||
|
|
||||||
|
EXECUTE IMMEDIATE CONCAT(
|
||||||
|
'UPDATE tAux a
|
||||||
|
JOIN ', vTable, ' t
|
||||||
|
SET a.rgt = t.rgt,
|
||||||
|
a.lft = t.lft,
|
||||||
|
a.wdt = t.rgt - t.lft + 1
|
||||||
|
WHERE t.id = ?')
|
||||||
|
USING vSelf;
|
||||||
|
|
||||||
|
SELECT rgt, lft, wdt
|
||||||
|
INTO vRight, vLeft, vWidth
|
||||||
|
FROM tAux;
|
||||||
|
|
||||||
|
EXECUTE IMMEDIATE CONCAT(
|
||||||
|
'DELETE FROM ', vTable,
|
||||||
|
' WHERE lft BETWEEN ? AND ?')
|
||||||
|
USING vLeft, vRight;
|
||||||
|
|
||||||
|
EXECUTE IMMEDIATE CONCAT(
|
||||||
|
'UPDATE ', vTable,
|
||||||
|
' SET rgt = rgt - ?
|
||||||
|
WHERE rgt > ?
|
||||||
|
ORDER BY rgt')
|
||||||
|
USING vWidth,vRight;
|
||||||
|
|
||||||
|
EXECUTE IMMEDIATE CONCAT(
|
||||||
|
'UPDATE ', vTable,
|
||||||
|
' SET lft = lft - ?
|
||||||
|
WHERE lft > ?
|
||||||
|
ORDER BY lft')
|
||||||
|
USING vWidth, vRight;
|
||||||
|
|
||||||
|
DROP TEMPORARY TABLE tAux;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -0,0 +1,117 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`balanceNestTree_move`(
|
||||||
|
vSelf INT,
|
||||||
|
vFather INT
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Mueve un nodo dentro de la estructura de árbol de vn.balanceNestTree.
|
||||||
|
*
|
||||||
|
* @param vSelf Identificador del nodo
|
||||||
|
* @param vFather Identificador del nuevo padre del nodo
|
||||||
|
*/
|
||||||
|
DECLARE vTable VARCHAR(45) DEFAULT util.quoteIdentifier('balanceNestTree');
|
||||||
|
DECLARE vRight INT;
|
||||||
|
DECLARE vLeft INT;
|
||||||
|
DECLARE vWidth INT;
|
||||||
|
DECLARE vFatherRight INT;
|
||||||
|
DECLARE vFatherLeft INT;
|
||||||
|
DECLARE vGap INT;
|
||||||
|
|
||||||
|
CREATE OR REPLACE TEMPORARY TABLE tAux
|
||||||
|
SELECT 0 rgt, 0 lft, 0 wdt, 0 frg, 0 flf;
|
||||||
|
|
||||||
|
-- Averiguamos el ancho de la rama
|
||||||
|
EXECUTE IMMEDIATE CONCAT(
|
||||||
|
'UPDATE tAux a
|
||||||
|
JOIN ', vTable, ' t
|
||||||
|
SET a.wdt = t.rgt - t.lft + 1
|
||||||
|
WHERE t.id = ?')
|
||||||
|
USING vSelf;
|
||||||
|
|
||||||
|
-- Averiguamos la posicion del nuevo padre
|
||||||
|
EXECUTE IMMEDIATE CONCAT(
|
||||||
|
'UPDATE tAux a
|
||||||
|
JOIN ', vTable, ' t
|
||||||
|
SET a.frg = t.rgt,
|
||||||
|
a.flf = t.lft
|
||||||
|
WHERE t.id = ?')
|
||||||
|
USING vFather;
|
||||||
|
|
||||||
|
SELECT wdt, frg, flf
|
||||||
|
INTO vWidth, vFatherRight, vFatherLeft
|
||||||
|
FROM tAux;
|
||||||
|
|
||||||
|
-- 1º Incrementamos los valores de todos los nodos a la derecha
|
||||||
|
-- del punto de inserción (vFatherRight) , para hacer sitio
|
||||||
|
EXECUTE IMMEDIATE CONCAT(
|
||||||
|
'UPDATE ', vTable,
|
||||||
|
'SET rgt = rgt + ?
|
||||||
|
WHERE rgt >= ?
|
||||||
|
ORDER BY rgt DESC')
|
||||||
|
USING vWidth,
|
||||||
|
vFatherRight;
|
||||||
|
|
||||||
|
EXECUTE IMMEDIATE CONCAT(
|
||||||
|
'UPDATE ', vTable,
|
||||||
|
'SET lft = lft + ?
|
||||||
|
WHERE lft >= ?
|
||||||
|
ORDER BY lft DESC')
|
||||||
|
USING vWidth,
|
||||||
|
vFatherRight;
|
||||||
|
|
||||||
|
-- Es preciso recalcular los valores del nodo en el
|
||||||
|
-- caso de que estuviera a la derecha del nuevo padre
|
||||||
|
EXECUTE IMMEDIATE CONCAT(
|
||||||
|
'UPDATE tAux a
|
||||||
|
JOIN ', vTable, ' t
|
||||||
|
SET a.rgt = t.rgt,
|
||||||
|
a.lft = t.lft
|
||||||
|
WHERE t.id = ?')
|
||||||
|
USING vSelf;
|
||||||
|
|
||||||
|
SELECT lft, rgt, frg - lft
|
||||||
|
INTO vLeft, vRight, vGap
|
||||||
|
FROM tAux;
|
||||||
|
|
||||||
|
-- 2º Incrementamos el valor de todos los nodos a
|
||||||
|
-- trasladar hasta alcanzar su nueva posicion
|
||||||
|
EXECUTE IMMEDIATE CONCAT(
|
||||||
|
'UPDATE ', vTable,
|
||||||
|
'SET lft = lft + ?
|
||||||
|
WHERE lft BETWEEN ? AND ?
|
||||||
|
ORDER BY lft DESC')
|
||||||
|
USING vGap,
|
||||||
|
vLeft,
|
||||||
|
vRight;
|
||||||
|
|
||||||
|
EXECUTE IMMEDIATE CONCAT(
|
||||||
|
'UPDATE ', vTable,
|
||||||
|
'SET rgt = rgt + ?
|
||||||
|
WHERE rgt BETWEEN ? AND ?
|
||||||
|
ORDER BY rgt DESC')
|
||||||
|
USING vGap,
|
||||||
|
vLeft,
|
||||||
|
vRight;
|
||||||
|
|
||||||
|
-- 3º Restaremos a todos los nodos resultantes, a la derecha
|
||||||
|
-- de la posicion arrancada el ancho de la rama escindida
|
||||||
|
EXECUTE IMMEDIATE CONCAT(
|
||||||
|
'UPDATE ', vTable,
|
||||||
|
'SET lft = lft - ?
|
||||||
|
WHERE lft > ?
|
||||||
|
ORDER BY lft')
|
||||||
|
USING vWidth,
|
||||||
|
vLeft;
|
||||||
|
|
||||||
|
EXECUTE IMMEDIATE CONCAT(
|
||||||
|
'UPDATE ', vTable,
|
||||||
|
'SET rgt = rgt - ?
|
||||||
|
WHERE rgt > ?
|
||||||
|
ORDER BY rgt')
|
||||||
|
USING vWidth,
|
||||||
|
vRight;
|
||||||
|
|
||||||
|
DROP TEMPORARY TABLE tAux;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -10,13 +10,11 @@ BEGIN
|
||||||
INSERT INTO mail (receiver,replyTo,subject,body)
|
INSERT INTO mail (receiver,replyTo,subject,body)
|
||||||
SELECT 'administracion@verdnatura.es' receiver,
|
SELECT 'administracion@verdnatura.es' receiver,
|
||||||
'noreply@verdnatura.es' replyTo,
|
'noreply@verdnatura.es' replyTo,
|
||||||
CONCAT('El seguro de la poliza ',b.id,' ',b.bank,' ha finalizado.') subject,
|
CONCAT('El seguro de la poliza ',a.id,' ',a.bank,' ha finalizado.') subject,
|
||||||
CONCAT('El seguro de la poliza ',b.id,' ',b.bank,' ha finalizado.') body
|
CONCAT('El seguro de la poliza ',a.id,' ',a.bank,' ha finalizado.') body
|
||||||
FROM vn.bankPolicy bp
|
FROM bankPolicy bp
|
||||||
LEFT JOIN vn.supplier s
|
LEFT JOIN supplier s ON s.id = bp.supplierFk
|
||||||
ON s.id = bp.supplierFk
|
LEFT JOIN accounting a ON a.id = bp.accountingFk
|
||||||
LEFT JOIN vn.bank b
|
|
||||||
ON b.id = bp.accountingFk
|
|
||||||
WHERE bp.insuranceExpired = util.VN_CURDATE();
|
WHERE bp.insuranceExpired = util.VN_CURDATE();
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -1,48 +1,42 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`clean`()
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`clean`()
|
||||||
BEGIN
|
BEGIN
|
||||||
DECLARE vDateShort DATETIME;
|
/**
|
||||||
DECLARE vOneYearAgo DATE;
|
* Purges outdated data to optimize performance.
|
||||||
DECLARE vFourYearsAgo DATE;
|
* Exercise caution when executing.
|
||||||
DECLARE vFiveYearsAgo DATE;
|
*/
|
||||||
DECLARE v18Month DATE;
|
DECLARE v2Months DATE DEFAULT util.VN_CURDATE() - INTERVAL 2 MONTH;
|
||||||
DECLARE v26Month DATE;
|
DECLARE v3Months DATE DEFAULT util.VN_CURDATE() - INTERVAL 3 MONTH;
|
||||||
DECLARE v3Month DATE;
|
DECLARE v18Months DATE DEFAULT util.VN_CURDATE() - INTERVAL 18 MONTH;
|
||||||
|
DECLARE v26Months DATE DEFAULT util.VN_CURDATE() - INTERVAL 26 MONTH;
|
||||||
|
DECLARE v1Years DATE DEFAULT util.VN_CURDATE() - INTERVAL 1 YEAR;
|
||||||
|
DECLARE v2Years DATE DEFAULT util.VN_CURDATE() - INTERVAL 2 YEAR;
|
||||||
|
DECLARE v4Years DATE DEFAULT util.VN_CURDATE() - INTERVAL 4 YEAR;
|
||||||
|
DECLARE v5Years DATE DEFAULT util.VN_CURDATE() - INTERVAL 5 YEAR;
|
||||||
DECLARE vTrashId VARCHAR(15);
|
DECLARE vTrashId VARCHAR(15);
|
||||||
DECLARE v2Years DATE;
|
DECLARE vCompanyBlk INT;
|
||||||
DECLARE v5Years DATE;
|
|
||||||
|
|
||||||
SET vDateShort = util.VN_CURDATE() - INTERVAL 2 MONTH;
|
|
||||||
SET vOneYearAgo = util.VN_CURDATE() - INTERVAL 1 YEAR;
|
|
||||||
SET vFourYearsAgo = util.VN_CURDATE() - INTERVAL 4 YEAR;
|
|
||||||
SET vFiveYearsAgo = util.VN_CURDATE() - INTERVAL 5 YEAR;
|
|
||||||
SET v18Month = util.VN_CURDATE() - INTERVAL 18 MONTH;
|
|
||||||
SET v26Month = util.VN_CURDATE() - INTERVAL 26 MONTH;
|
|
||||||
SET v3Month = util.VN_CURDATE() - INTERVAL 3 MONTH;
|
|
||||||
SET v2Years = util.VN_CURDATE() - INTERVAL 2 YEAR;
|
|
||||||
SET v5Years = util.VN_CURDATE() - INTERVAL 5 YEAR;
|
|
||||||
|
|
||||||
DELETE FROM workerActivity WHERE created < v2Years;
|
DELETE FROM workerActivity WHERE created < v2Years;
|
||||||
DELETE FROM ticketParking WHERE created < vDateShort;
|
DELETE FROM ticketParking WHERE created < v2Months;
|
||||||
DELETE FROM routesMonitor WHERE dated < vDateShort;
|
DELETE FROM routesMonitor WHERE dated < v2Months;
|
||||||
DELETE FROM workerTimeControlLog WHERE created < vDateShort;
|
DELETE FROM workerTimeControlLog WHERE created < v2Months;
|
||||||
DELETE FROM `message` WHERE sendDate < vDateShort;
|
DELETE FROM `message` WHERE sendDate < v2Months;
|
||||||
DELETE FROM messageInbox WHERE sendDate < vDateShort;
|
DELETE FROM messageInbox WHERE sendDate < v2Months;
|
||||||
DELETE FROM messageInbox WHERE sendDate < vDateShort;
|
DELETE FROM messageInbox WHERE sendDate < v2Months;
|
||||||
DELETE FROM workerTimeControl WHERE timed < vFourYearsAgo;
|
DELETE FROM workerTimeControl WHERE timed < v4Years;
|
||||||
DELETE FROM itemShelving WHERE created < util.VN_CURDATE() AND visible = 0;
|
DELETE FROM itemShelving WHERE created < util.VN_CURDATE() AND visible = 0;
|
||||||
DELETE FROM ticketDown WHERE created < TIMESTAMPADD(DAY,-1,util.VN_CURDATE());
|
DELETE FROM ticketDown WHERE created < util.yesterday();
|
||||||
DELETE FROM entryLog WHERE creationDate < vDateShort;
|
DELETE FROM entryLog WHERE creationDate < v2Months;
|
||||||
DELETE IGNORE FROM expedition WHERE created < v26Month;
|
DELETE IGNORE FROM expedition WHERE created < v26Months;
|
||||||
DELETE FROM sms WHERE created < v18Month;
|
DELETE FROM sms WHERE created < v18Months;
|
||||||
DELETE FROM saleTracking WHERE created < vOneYearAgo;
|
DELETE FROM saleTracking WHERE created < v1Years;
|
||||||
DELETE FROM ticketTracking WHERE created < v18Month;
|
DELETE FROM ticketTracking WHERE created < v18Months;
|
||||||
DELETE tobs FROM ticketObservation tobs
|
DELETE tobs FROM ticketObservation tobs
|
||||||
JOIN ticket t ON tobs.ticketFk = t.id
|
JOIN ticket t ON tobs.ticketFk = t.id
|
||||||
WHERE t.shipped < v5Years;
|
WHERE t.shipped < v5Years;
|
||||||
DELETE sc.* FROM saleCloned sc JOIN sale s ON s.id = sc.saleClonedFk JOIN ticket t ON t.id = s.ticketFk WHERE t.shipped < vOneYearAgo;
|
DELETE sc.* FROM saleCloned sc JOIN sale s ON s.id = sc.saleClonedFk JOIN ticket t ON t.id = s.ticketFk WHERE t.shipped < v1Years;
|
||||||
DELETE FROM sharingCart where ended < vDateShort;
|
DELETE FROM sharingCart where ended < v2Months;
|
||||||
DELETE FROM sharingClient where ended < vDateShort;
|
DELETE FROM sharingClient where ended < v2Months;
|
||||||
DELETE tw.* FROM ticketWeekly tw
|
DELETE tw.* FROM ticketWeekly tw
|
||||||
LEFT JOIN sale s ON s.ticketFk = tw.ticketFk
|
LEFT JOIN sale s ON s.ticketFk = tw.ticketFk
|
||||||
LEFT JOIN ticketRequest tr ON tr.ticketFk = tw.ticketFk
|
LEFT JOIN ticketRequest tr ON tr.ticketFk = tw.ticketFk
|
||||||
|
@ -50,137 +44,142 @@ BEGIN
|
||||||
WHERE s.id IS NULL
|
WHERE s.id IS NULL
|
||||||
AND tr.id IS NULL
|
AND tr.id IS NULL
|
||||||
AND ts.id IS NULL;
|
AND ts.id IS NULL;
|
||||||
DELETE FROM claim WHERE ticketCreated < vFourYearsAgo;
|
DELETE FROM claim WHERE ticketCreated < v4Years;
|
||||||
DELETE FROM message WHERE sendDate < vDateShort;
|
-- Robert ubicacion anterior de travelLog comentario para debug
|
||||||
-- Robert ubicacion anterior de trevelLog comentario para debug
|
DELETE FROM zoneEvent WHERE `type` = 'day' AND dated < v3Months;
|
||||||
DELETE FROM zoneEvent WHERE `type` = 'day' AND dated < v3Month;
|
|
||||||
DELETE bm
|
DELETE bm
|
||||||
FROM buyMark bm
|
FROM buyMark bm
|
||||||
JOIN buy b ON b.id = bm.id
|
JOIN buy b ON b.id = bm.id
|
||||||
JOIN entry e ON e.id = b.entryFk
|
JOIN entry e ON e.id = b.entryFk
|
||||||
JOIN travel t ON t.id = e.travelFk
|
JOIN travel t ON t.id = e.travelFk
|
||||||
WHERE t.landed <= vDateShort;
|
WHERE t.landed <= v2Months;
|
||||||
DELETE b FROM vn.buy b
|
DELETE b FROM buy b
|
||||||
JOIN vn.entryConfig e ON e.defaultEntry = b.entryFk
|
JOIN entryConfig e ON e.defaultEntry = b.entryFk
|
||||||
WHERE b.created < vDateShort;
|
WHERE b.created < v2Months;
|
||||||
DELETE FROM vn.itemShelvingLog WHERE created < vDateShort;
|
DELETE FROM itemShelvingLog WHERE created < v2Months;
|
||||||
DELETE FROM vn.stockBuyed WHERE creationDate < vDateShort;
|
DELETE FROM stockBuyed WHERE creationDate < v2Months;
|
||||||
DELETE FROM vn.itemCleanLog WHERE created < util.VN_NOW() - INTERVAL 1 YEAR;
|
DELETE FROM itemCleanLog WHERE created < util.VN_NOW() - INTERVAL 1 YEAR;
|
||||||
DELETE FROM printQueue WHERE statusCode = 'printed' AND created < vDateShort;
|
DELETE FROM printQueue WHERE statusCode = 'printed' AND created < v2Months;
|
||||||
DELETE FROM ticketLog WHERE creationDate <= vFiveYearsAgo;
|
DELETE FROM ticketLog WHERE creationDate <= v5Years;
|
||||||
-- Equipos duplicados
|
-- Equipos duplicados
|
||||||
DELETE w.*
|
DELETE w.*
|
||||||
FROM workerTeam w
|
FROM workerTeam w
|
||||||
JOIN (SELECT id, team, workerFk, COUNT(*) - 1 as duplicated
|
JOIN (
|
||||||
|
SELECT id, team, workerFk, COUNT(*) - 1 duplicated
|
||||||
FROM workerTeam
|
FROM workerTeam
|
||||||
GROUP BY team,workerFk
|
GROUP BY team,workerFk
|
||||||
HAVING duplicated
|
HAVING duplicated
|
||||||
) d ON d.team = w.team AND d.workerFk = w.workerFk AND d.id != w.id;
|
) d ON d.team = w.team
|
||||||
|
AND d.workerFk = w.workerFk
|
||||||
|
AND d.id <> w.id;
|
||||||
|
|
||||||
DELETE sc
|
DELETE sc
|
||||||
FROM saleComponent sc
|
FROM saleComponent sc
|
||||||
JOIN sale s ON s.id= sc.saleFk
|
JOIN sale s ON s.id= sc.saleFk
|
||||||
JOIN ticket t ON t.id= s.ticketFk
|
JOIN ticket t ON t.id= s.ticketFk
|
||||||
WHERE t.shipped < v18Month;
|
WHERE t.shipped < v18Months;
|
||||||
|
|
||||||
DELETE c
|
DELETE c
|
||||||
FROM vn.claim c
|
FROM claim c
|
||||||
JOIN vn.claimState cs ON cs.id = c.claimStateFk
|
JOIN claimState cs ON cs.id = c.claimStateFk
|
||||||
WHERE cs.description = "Anulado" AND
|
WHERE cs.description = 'Anulado'
|
||||||
c.created < vDateShort;
|
AND c.created < v2Months;
|
||||||
DELETE
|
|
||||||
FROM vn.expeditionTruck
|
|
||||||
WHERE eta < v3Month;
|
|
||||||
|
|
||||||
DELETE FROM XDiario WHERE FECHA < v3Month OR FECHA IS NULL;
|
DELETE FROM expeditionTruck WHERE eta < v3Months;
|
||||||
-- borrar travels sin entradas
|
DELETE FROM XDiario WHERE FECHA < v3Months OR FECHA IS NULL;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.thermographToDelete;
|
|
||||||
CREATE TEMPORARY TABLE tmp.thermographToDelete
|
-- Borrar travels sin entradas
|
||||||
|
CREATE OR REPLACE TEMPORARY TABLE tThermographToDelete
|
||||||
SELECT th.id,th.dmsFk
|
SELECT th.id,th.dmsFk
|
||||||
FROM vn.travel t
|
FROM travel t
|
||||||
LEFT JOIN vn.entry e ON e.travelFk = t.id
|
LEFT JOIN entry e ON e.travelFk = t.id
|
||||||
JOIN vn.travelThermograph th ON th.travelFk = t.id
|
JOIN travelThermograph th ON th.travelFk = t.id
|
||||||
WHERE t.shipped < TIMESTAMPADD(MONTH, -3, util.VN_CURDATE()) AND e.travelFk IS NULL;
|
WHERE t.shipped < v3Months
|
||||||
|
AND e.travelFk IS NULL;
|
||||||
|
|
||||||
SELECT dt.id INTO vTrashId
|
SELECT dt.id INTO vTrashId
|
||||||
FROM vn.dmsType dt
|
FROM dmsType dt
|
||||||
WHERE dt.code = 'trash';
|
WHERE dt.code = 'trash';
|
||||||
|
|
||||||
UPDATE tmp.thermographToDelete th
|
UPDATE tThermographToDelete th
|
||||||
JOIN vn.dms d ON d.id = th.dmsFk
|
JOIN dms d ON d.id = th.dmsFk
|
||||||
SET d.dmsTypeFk = vTrashId;
|
SET d.dmsTypeFk = vTrashId;
|
||||||
|
|
||||||
DELETE th
|
DELETE th
|
||||||
FROM tmp.thermographToDelete tmp
|
FROM tThermographToDelete tmp
|
||||||
JOIN vn.travelThermograph th ON th.id = tmp.id;
|
JOIN travelThermograph th ON th.id = tmp.id;
|
||||||
|
|
||||||
DELETE t
|
DELETE t
|
||||||
FROM vn.travel t
|
FROM travel t
|
||||||
LEFT JOIN vn.entry e ON e.travelFk = t.id
|
LEFT JOIN entry e ON e.travelFk = t.id
|
||||||
WHERE t.shipped < TIMESTAMPADD(MONTH, -3, util.VN_CURDATE()) AND e.travelFk IS NULL;
|
WHERE t.shipped < v3Months AND e.travelFk IS NULL;
|
||||||
|
|
||||||
UPDATE dms d
|
UPDATE dms d
|
||||||
JOIN dmsType dt ON dt.id = d.dmsTypeFk
|
JOIN dmsType dt ON dt.id = d.dmsTypeFk
|
||||||
SET d.dmsTypeFk = vTrashId
|
SET d.dmsTypeFk = vTrashId
|
||||||
WHERE created < TIMESTAMPADD(MONTH, -dt.monthToDelete, util.VN_CURDATE());
|
WHERE created < util.VN_CURDATE() - INTERVAL dt.monthToDelete MONTH;
|
||||||
|
|
||||||
-- borrar entradas sin compras
|
-- borrar entradas sin compras
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.entryToDelete;
|
CREATE OR REPLACE TEMPORARY TABLE tEntryToDelete
|
||||||
CREATE TEMPORARY TABLE tmp.entryToDelete
|
|
||||||
SELECT e.*
|
SELECT e.*
|
||||||
FROM vn.entry e
|
FROM entry e
|
||||||
LEFT JOIN vn.buy b ON b.entryFk = e.id
|
LEFT JOIN buy b ON b.entryFk = e.id
|
||||||
JOIN vn.entryConfig ec ON e.id != ec.defaultEntry
|
JOIN entryConfig ec ON e.id <> ec.defaultEntry
|
||||||
WHERE e.dated < TIMESTAMPADD(MONTH, -3, util.VN_CURDATE()) AND b.entryFK IS NULL;
|
WHERE e.dated < v3Months
|
||||||
|
AND b.entryFK IS NULL;
|
||||||
|
|
||||||
DELETE e
|
DELETE e
|
||||||
FROM vn.entry e
|
FROM entry e
|
||||||
JOIN tmp.entryToDelete tmp ON tmp.id = e.id;
|
JOIN tEntryToDelete tmp ON tmp.id = e.id;
|
||||||
|
|
||||||
-- borrar de route registros menores a 4 años
|
-- borrar de route registros menores a 4 años
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.routeToDelete;
|
CREATE OR REPLACE TEMPORARY TABLE tRouteToDelete
|
||||||
CREATE TEMPORARY TABLE tmp.routeToDelete
|
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM vn.route r
|
FROM route r
|
||||||
WHERE created < TIMESTAMPADD(YEAR,-4,util.VN_CURDATE());
|
WHERE created < v4Years;
|
||||||
|
|
||||||
UPDATE tmp.routeToDelete tmp
|
UPDATE tRouteToDelete tmp
|
||||||
JOIN vn.dms d ON d.id = tmp.gestdocFk
|
JOIN dms d ON d.id = tmp.gestdocFk
|
||||||
SET d.dmsTypeFk = vTrashId;
|
SET d.dmsTypeFk = vTrashId;
|
||||||
|
|
||||||
DELETE r
|
DELETE r
|
||||||
FROM tmp.routeToDelete tmp
|
FROM tRouteToDelete tmp
|
||||||
JOIN vn.route r ON r.id = tmp.id;
|
JOIN route r ON r.id = tmp.id;
|
||||||
|
|
||||||
-- borrar registros de dua y awb menores a 2 años
|
-- borrar registros de dua y awb menores a 2 años
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.duaToDelete;
|
CREATE OR REPLACE TEMPORARY TABLE tDuaToDelete
|
||||||
CREATE TEMPORARY TABLE tmp.duaToDelete
|
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM vn.dua
|
FROM dua
|
||||||
WHERE operated < TIMESTAMPADD(YEAR,-2,CURDATE());
|
WHERE operated < v2Years;
|
||||||
|
|
||||||
UPDATE tmp.duaToDelete tm
|
UPDATE tDuaToDelete tm
|
||||||
JOIN vn.dms d ON d.id = tm.gestdocFk
|
JOIN dms d ON d.id = tm.gestdocFk
|
||||||
SET d.dmsTypeFk = vTrashId;
|
SET d.dmsTypeFk = vTrashId;
|
||||||
|
|
||||||
DELETE d
|
DELETE d
|
||||||
FROM tmp.duaToDelete tmp
|
FROM tDuaToDelete tmp
|
||||||
JOIN vn.dua d ON d.id = tmp.id;
|
JOIN dua d ON d.id = tmp.id;
|
||||||
|
|
||||||
DELETE a
|
DELETE a
|
||||||
FROM vn.awb a
|
FROM awb a
|
||||||
LEFT JOIN vn.travel t ON t.awbFk = a.id
|
LEFT JOIN travel t ON t.awbFk = a.id
|
||||||
WHERE a.created < v2Years
|
WHERE a.created < v2Years
|
||||||
AND t.id IS NULL;
|
AND t.id IS NULL;
|
||||||
|
|
||||||
-- Borra los registros de collection y ticketcollection
|
-- Borra los registros de collection y ticketcollection
|
||||||
DELETE FROM vn.collection WHERE created < vDateShort;
|
DELETE FROM collection WHERE created < v2Months;
|
||||||
|
DELETE FROM travelLog WHERE creationDate < v3Months;
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.thermographToDelete;
|
CALL shelving_clean();
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.entryToDelete;
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.duaToDelete;
|
|
||||||
|
|
||||||
DELETE FROM travelLog WHERE creationDate < v3Month;
|
DELETE FROM chat WHERE dated < v5Years;
|
||||||
|
DELETE tt FROM ticketTracking tt
|
||||||
|
JOIN ticket t ON tt.ticketFk = t.id
|
||||||
|
WHERE t.shipped <= v2Months;
|
||||||
|
|
||||||
|
DELETE FROM mail WHERE creationDate < v2Months;
|
||||||
|
DELETE FROM split WHERE dated < v18Months;
|
||||||
|
DELETE FROM remittance WHERE dated < v18Months;
|
||||||
|
|
||||||
CREATE OR REPLACE TEMPORARY TABLE tTicketDelete
|
CREATE OR REPLACE TEMPORARY TABLE tTicketDelete
|
||||||
SELECT DISTINCT tl.originFk ticketFk
|
SELECT DISTINCT tl.originFk ticketFk
|
||||||
|
@ -189,26 +188,38 @@ BEGIN
|
||||||
SELECT MAX(tl.id)ids
|
SELECT MAX(tl.id)ids
|
||||||
FROM ticket t
|
FROM ticket t
|
||||||
JOIN ticketLog tl ON tl.originFk = t.id
|
JOIN ticketLog tl ON tl.originFk = t.id
|
||||||
LEFT JOIN ticketWeekly tw ON tw.ticketFk =t.id
|
LEFT JOIN ticketWeekly tw ON tw.ticketFk = t.id
|
||||||
WHERE t.shipped BETWEEN '2000-01-01' AND '2000-12-31'
|
WHERE t.shipped BETWEEN '2000-01-01' AND '2000-12-31'
|
||||||
AND t.isDeleted
|
AND t.isDeleted
|
||||||
AND tw.ticketFk IS NULL
|
AND tw.ticketFk IS NULL
|
||||||
GROUP BY t.id
|
GROUP BY t.id
|
||||||
) sub ON sub.ids = tl.id
|
) sub ON sub.ids = tl.id
|
||||||
WHERE tl.creationDate <= vDateShort;
|
WHERE tl.creationDate <= v2Months;
|
||||||
|
|
||||||
DELETE t
|
DELETE t
|
||||||
FROM ticket t
|
FROM ticket t
|
||||||
JOIN tTicketDelete tmp ON tmp.ticketFk = t.id;
|
JOIN tTicketDelete tmp ON tmp.ticketFk = t.id;
|
||||||
|
|
||||||
DROP TEMPORARY TABLE tTicketDelete;
|
DELETE sl
|
||||||
|
FROM saleLabel sl
|
||||||
|
JOIN sale s ON s.id = sl.saleFk
|
||||||
|
JOIN ticket t ON t.id = s.ticketFk
|
||||||
|
WHERE t.shipped < v2Months;
|
||||||
|
|
||||||
CALL shelving_clean;
|
-- Tickets Nulos PAK 11/10/2016
|
||||||
|
SELECT id INTO vCompanyBlk FROM company WHERE code = 'BLK';
|
||||||
|
UPDATE ticket
|
||||||
|
SET companyFk = vCompanyBlk
|
||||||
|
WHERE clientFk = (SELECT id FROM client WHERE name = 'AUTOCONSUMO')
|
||||||
|
AND companyFk <> vCompanyBlk;
|
||||||
|
|
||||||
DELETE FROM chat WHERE dated < v5Years;
|
DROP TEMPORARY TABLE tTicketDelete,
|
||||||
|
tThermographToDelete,
|
||||||
DELETE tt FROM ticketTracking tt JOIN vn.ticket t ON tt.ticketFk = t.id
|
tEntryToDelete,
|
||||||
WHERE t.shipped <= vDateShort;
|
tDuaToDelete,
|
||||||
|
tRouteToDelete;
|
||||||
|
|
||||||
|
-- Other schemas
|
||||||
|
DELETE FROM hedera.`order` WHERE date_send < v18Months;
|
||||||
|
DELETE FROM pbx.cdr WHERE call_date < v18Months;
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -39,7 +39,8 @@ BEGIN
|
||||||
FROM receipt r
|
FROM receipt r
|
||||||
JOIN `client` c ON c.id = r.clientFk
|
JOIN `client` c ON c.id = r.clientFk
|
||||||
JOIN tmp.client tc ON tc.id = c.id
|
JOIN tmp.client tc ON tc.id = c.id
|
||||||
JOIN bank b ON r.bankFk = b.id AND b.code = 'mana'
|
JOIN accounting a ON r.bankFk = a.id
|
||||||
|
AND a.code = 'mana'
|
||||||
WHERE r.payed > vFromDated
|
WHERE r.payed > vFromDated
|
||||||
AND r.payed <= util.VN_CURDATE()
|
AND r.payed <= util.VN_CURDATE()
|
||||||
UNION ALL
|
UNION ALL
|
||||||
|
|
|
@ -0,0 +1,103 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`confection_controlSource`(
|
||||||
|
vDated DATE,
|
||||||
|
vScopeDays INT,
|
||||||
|
vMaxAlertLevel INT,
|
||||||
|
vWarehouseFk INT
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Obtiene la información para el control de confección,
|
||||||
|
* ya sean tickets y/o entradas.
|
||||||
|
*
|
||||||
|
* @param vDated Fecha a calcular
|
||||||
|
* @param vScopeDays Número de días desde hoy en adelante que entran en el cálculo.
|
||||||
|
* @param vMaxAlertLevel Id nivel de alerta
|
||||||
|
* @param vWarehouseFk Id de almacén
|
||||||
|
*/
|
||||||
|
DECLARE vEndingDate DATETIME DEFAULT util.dayEnd(vDated) + INTERVAL vScopeDays DAY;
|
||||||
|
|
||||||
|
SELECT t.shipped,
|
||||||
|
t.id ticketFk,
|
||||||
|
s.id saleFk,
|
||||||
|
s.quantity,
|
||||||
|
s.concept,
|
||||||
|
ABS(s.reserved) isReserved,
|
||||||
|
i.category,
|
||||||
|
it.name itemType,
|
||||||
|
t.nickname,
|
||||||
|
wh.name warehouse,
|
||||||
|
t.warehouseFk warehouseFk,
|
||||||
|
a.provinceFk,
|
||||||
|
am.agencyFk,
|
||||||
|
ct.description,
|
||||||
|
stock.visible,
|
||||||
|
stock.available
|
||||||
|
FROM ticket t
|
||||||
|
JOIN agencyMode am ON am.id = t.agencyModeFk
|
||||||
|
JOIN warehouse wh ON wh.id = t.warehouseFk
|
||||||
|
JOIN sale s ON s.ticketFk = t.id
|
||||||
|
JOIN item i ON i.id = s.itemFk
|
||||||
|
JOIN itemType it ON it.id = i.typeFk
|
||||||
|
JOIN confectionType ct ON ct.id = it.making
|
||||||
|
JOIN `address` a on a.id = t.addressFk
|
||||||
|
LEFT JOIN ticketState tls on tls.ticketFk = t.id
|
||||||
|
LEFT JOIN
|
||||||
|
(
|
||||||
|
SELECT item_id,
|
||||||
|
SUM(visible) visible,
|
||||||
|
SUM(available) available
|
||||||
|
FROM (
|
||||||
|
SELECT a.item_id,
|
||||||
|
0 visible,
|
||||||
|
a.available
|
||||||
|
FROM cache.cache_calc cc
|
||||||
|
LEFT JOIN cache.available a ON a.calc_id = cc.id
|
||||||
|
WHERE cc.cache_id IN ('visible', 'available')
|
||||||
|
AND cc.params = CONCAT(vWarehouseFk, "/", util.VN_CURDATE())
|
||||||
|
UNION ALL
|
||||||
|
SELECT v.item_id,
|
||||||
|
v.visible,
|
||||||
|
0
|
||||||
|
FROM cache.cache_calc cc
|
||||||
|
LEFT JOIN cache.visible v ON v.calc_id = cc.id
|
||||||
|
WHERE cc.cacheName IN ('visible', 'available')
|
||||||
|
AND cc.params = vWarehouseFk
|
||||||
|
) sub
|
||||||
|
GROUP BY item_id
|
||||||
|
) stock ON stock.item_id = s.itemFk
|
||||||
|
WHERE it.making
|
||||||
|
AND tls.alertLevel < vMaxAlertLevel
|
||||||
|
AND wh.hasConfectionTeam
|
||||||
|
AND t.shipped BETWEEN vDated AND vEndingDate
|
||||||
|
AND s.quantity > 0
|
||||||
|
UNION ALL
|
||||||
|
SELECT tr.shipped,
|
||||||
|
e.id,
|
||||||
|
NULL,
|
||||||
|
b.quantity,
|
||||||
|
i.name,
|
||||||
|
NULL,
|
||||||
|
i.category,
|
||||||
|
NULL,
|
||||||
|
whi.name,
|
||||||
|
who.name,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
ct.description,
|
||||||
|
NULL,
|
||||||
|
NULL
|
||||||
|
FROM buy b
|
||||||
|
JOIN `entry` e ON e.id = b.entryFk
|
||||||
|
JOIN travel tr ON tr.id = e.travelFk
|
||||||
|
JOIN warehouse whi ON whi.id = tr.warehouseInFk
|
||||||
|
JOIN warehouse who ON who.id = tr.warehouseOutFk
|
||||||
|
JOIN item i ON i.id = b.itemFk
|
||||||
|
JOIN itemType it ON it.id = i.typeFk
|
||||||
|
JOIN confectionType ct ON ct.id = it.making
|
||||||
|
WHERE who.hasConfectionTeam
|
||||||
|
AND it.making
|
||||||
|
AND tr.shipped BETWEEN vDated AND vEndingDate;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -1,8 +1,11 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`invoiceInTaxMakeByDua`(vDuaFk INT)
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`invoiceInTaxMakeByDua`(
|
||||||
|
vDuaFk INT
|
||||||
|
)
|
||||||
BEGIN
|
BEGIN
|
||||||
/**
|
/**
|
||||||
* Borra los valores de duaTax y sus vctos. y los vuelve a crear en base a la tabla duaEntry
|
* Borra los valores de duaTax y sus vctos. y los vuelve a
|
||||||
|
* crear en base a la tabla duaEntry.
|
||||||
*
|
*
|
||||||
* @param vDuaFk Id del dua a recalcular
|
* @param vDuaFk Id del dua a recalcular
|
||||||
*/
|
*/
|
||||||
|
@ -26,7 +29,7 @@ BEGIN
|
||||||
LEAVE l;
|
LEAVE l;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
CALL vn2008.recibidaIvaInsert(vInvoiceInFk);
|
CALL invoiceInTax_recalc(vInvoiceInFk);
|
||||||
CALL invoiceInDueDay_recalc(vInvoiceInFk);
|
CALL invoiceInDueDay_recalc(vInvoiceInFk);
|
||||||
|
|
||||||
END LOOP;
|
END LOOP;
|
||||||
|
|
|
@ -0,0 +1,62 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`invoiceInTax_recalc`(
|
||||||
|
vInvoiceInFk INT
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Recalcula y actualiza los impuestos de la factura
|
||||||
|
* usando la última tasa de cambio y detalles de compra.
|
||||||
|
*
|
||||||
|
* @param vInvoiceInFk Id de factura recibida
|
||||||
|
*/
|
||||||
|
DECLARE vRate DOUBLE DEFAULT 1;
|
||||||
|
DECLARE vDated DATE;
|
||||||
|
DECLARE vExpenseFk INT;
|
||||||
|
|
||||||
|
SELECT MAX(rr.dated) INTO vDated
|
||||||
|
FROM referenceRate rr
|
||||||
|
JOIN invoiceIn ii ON ii.id = vInvoiceInFk
|
||||||
|
WHERE rr.dated <= ii.issued
|
||||||
|
AND rr.currencyFk = ii.currencyFk;
|
||||||
|
|
||||||
|
IF vDated THEN
|
||||||
|
SELECT `value` INTO vRate
|
||||||
|
FROM referenceRate
|
||||||
|
WHERE dated = vDated;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
DELETE FROM invoiceInTax WHERE invoiceInFk = vInvoiceInFk;
|
||||||
|
|
||||||
|
SELECT id INTO vExpenseFk
|
||||||
|
FROM expense
|
||||||
|
WHERE code = 'extraCommGoodsAcquisition';
|
||||||
|
|
||||||
|
IF vExpenseFk IS NULL THEN
|
||||||
|
CALL util.throw('Expense extraCommGoodsAcquisition not exists');
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
INSERT INTO invoiceInTax(
|
||||||
|
invoiceInFk,
|
||||||
|
taxableBase,
|
||||||
|
expenseFk,
|
||||||
|
foreignValue,
|
||||||
|
taxTypeSageFk,
|
||||||
|
transactionTypeSageFk
|
||||||
|
)
|
||||||
|
SELECT ii.id,
|
||||||
|
SUM(b.buyingValue * b.quantity) / vRate bi,
|
||||||
|
vExpenseFk,
|
||||||
|
IF(c.code = 'EUR', NULL, SUM(b.buyingValue * b.quantity)),
|
||||||
|
s.taxTypeSageFk,
|
||||||
|
s.transactionTypeSageFk
|
||||||
|
FROM invoiceIn ii
|
||||||
|
JOIN currency c ON c.id = ii.currencyFk
|
||||||
|
JOIN `entry` e ON e.invoiceInFk = ii.id
|
||||||
|
JOIN supplier s ON s.id = e.supplierFk
|
||||||
|
JOIN buy b ON b.entryFk = e.id
|
||||||
|
LEFT JOIN referenceRate rr ON rr.currencyFk = ii.currencyFk
|
||||||
|
AND rr.dated = ii.issued
|
||||||
|
WHERE ii.id = vInvoiceInFk
|
||||||
|
HAVING bi IS NOT NULL;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -1,101 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`itemProposal`(
|
|
||||||
vSelf INT,
|
|
||||||
vTicketFk INT,
|
|
||||||
vShowType BOOL
|
|
||||||
)
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Propone articulos disponibles ordenados, con la cantidad
|
|
||||||
* de veces usado y segun sus caracteristicas.
|
|
||||||
*
|
|
||||||
* @param vSelf Id de artículo
|
|
||||||
* @param vTicketFk Id de ticket
|
|
||||||
* @param vShowType Mostrar tipos
|
|
||||||
*/
|
|
||||||
DECLARE vWarehouseFk INT;
|
|
||||||
DECLARE vShipped DATE;
|
|
||||||
DECLARE vCalcFk INT;
|
|
||||||
DECLARE vTypeFk INT;
|
|
||||||
DECLARE vPriority INT DEFAULT 1;
|
|
||||||
|
|
||||||
SELECT warehouseFk, shipped
|
|
||||||
INTO vWarehouseFk, vShipped
|
|
||||||
FROM ticket
|
|
||||||
WHERE id = vTicketFk;
|
|
||||||
|
|
||||||
CALL cache.available_refresh(vCalcFk, FALSE, vWarehouseFk, vShipped);
|
|
||||||
|
|
||||||
SET @_optimizer_search_depth = @@optimizer_search_depth;
|
|
||||||
SET SESSION optimizer_search_depth = 0;
|
|
||||||
|
|
||||||
WITH itemTags AS (
|
|
||||||
SELECT i.id,
|
|
||||||
typeFk,
|
|
||||||
tag5,
|
|
||||||
value5,
|
|
||||||
tag6,
|
|
||||||
value6,
|
|
||||||
tag7,
|
|
||||||
value7,
|
|
||||||
tag8,
|
|
||||||
value8,
|
|
||||||
t.name,
|
|
||||||
it.value
|
|
||||||
FROM vn.item i
|
|
||||||
LEFT JOIN vn.itemTag it ON it.itemFk = i.id
|
|
||||||
AND it.priority = vPriority
|
|
||||||
LEFT JOIN vn.tag t ON t.id = it.tagFk
|
|
||||||
WHERE i.id = vSelf
|
|
||||||
)
|
|
||||||
SELECT i.id itemFk,
|
|
||||||
i.longName,
|
|
||||||
i.subName,
|
|
||||||
i.tag5,
|
|
||||||
i.value5,
|
|
||||||
(i.value5 <=> its.value5) match5,
|
|
||||||
i.tag6,
|
|
||||||
i.value6,
|
|
||||||
(i.value6 <=> its.value6) match6,
|
|
||||||
i.tag7,
|
|
||||||
i.value7,
|
|
||||||
(i.value7 <=> its.value7) match7,
|
|
||||||
i.tag8,
|
|
||||||
i.value8,
|
|
||||||
(i.value8 <=> its.value8) match8,
|
|
||||||
a.available,
|
|
||||||
IFNULL(ip.counter, 0) `counter`,
|
|
||||||
IF(b.groupingMode = 1, b.grouping, b.packing) minQuantity,
|
|
||||||
iss.visible located
|
|
||||||
FROM vn.item i
|
|
||||||
JOIN cache.available a ON a.item_id = i.id
|
|
||||||
AND a.calc_id = vCalcFk
|
|
||||||
LEFT JOIN vn.itemProposal ip ON ip.mateFk = i.id
|
|
||||||
AND ip.itemFk = vSelf
|
|
||||||
LEFT JOIN vn.itemTag it ON it.itemFk = i.id
|
|
||||||
AND it.priority = vPriority
|
|
||||||
LEFT JOIN vn.tag t ON t.id = it.tagFk
|
|
||||||
LEFT JOIN cache.last_buy lb ON lb.item_id = i.id
|
|
||||||
AND lb.warehouse_id = vWarehouseFk
|
|
||||||
LEFT JOIN vn.buy b ON b.id = lb.buy_id
|
|
||||||
LEFT JOIN vn.itemShelvingStock iss ON iss.itemFk = i.id
|
|
||||||
AND iss.warehouseFk = vWarehouseFk
|
|
||||||
JOIN itemTags its
|
|
||||||
WHERE a.available > 0
|
|
||||||
AND IF(vShowType, i.typeFk = its.typeFk, TRUE)
|
|
||||||
AND i.id <> vSelf
|
|
||||||
ORDER BY `counter` DESC,
|
|
||||||
(t.name = its.name) DESC,
|
|
||||||
(it.value = its.value) DESC,
|
|
||||||
(i.tag5 = its.tag5) DESC,
|
|
||||||
match5 DESC,
|
|
||||||
(i.tag6 = its.tag6) DESC,
|
|
||||||
match6 DESC,
|
|
||||||
(i.tag7 = its.tag7) DESC,
|
|
||||||
match7 DESC,
|
|
||||||
(i.tag8 = its.tag8) DESC,
|
|
||||||
match8 DESC;
|
|
||||||
|
|
||||||
SET SESSION optimizer_search_depth = @_optimizer_search_depth;
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,76 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`itemProposal_beta`(vItemFk INT, vTicketFk INT)
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
DECLARE vWarehouseFk INT;
|
|
||||||
DECLARE vShipped DATE;
|
|
||||||
DECLARE vCalcFk INT;
|
|
||||||
DECLARE vTypeFk INT;
|
|
||||||
DECLARE vResultsMax INT DEFAULT 10;
|
|
||||||
|
|
||||||
DECLARE vTag1 VARCHAR(25);
|
|
||||||
DECLARE vTag5 VARCHAR(25);
|
|
||||||
DECLARE vTag6 VARCHAR(25);
|
|
||||||
DECLARE vTag7 VARCHAR(25);
|
|
||||||
DECLARE vTag8 VARCHAR(25);
|
|
||||||
|
|
||||||
DECLARE vValue1 VARCHAR(50);
|
|
||||||
DECLARE vValue5 VARCHAR(50);
|
|
||||||
DECLARE vValue6 VARCHAR(50);
|
|
||||||
DECLARE vValue7 VARCHAR(50);
|
|
||||||
DECLARE vValue8 VARCHAR(50);
|
|
||||||
|
|
||||||
SELECT warehouseFk, shipped INTO vWarehouseFk, vShipped
|
|
||||||
FROM vn.ticket
|
|
||||||
WHERE id = vTicketFk;
|
|
||||||
|
|
||||||
SELECT typeFk, tag5, value5, tag6, value6, tag7, value7, tag8, value8, t1.name, it1.value
|
|
||||||
INTO vTypeFk, vTag5, vValue5, vTag6, vValue6, vTag7, vValue7, vTag8, vValue8, vTag1, vValue1
|
|
||||||
FROM vn.item i
|
|
||||||
LEFT JOIN vn.itemTag it1 ON it1.itemFk = i.id AND it1.priority = 1
|
|
||||||
LEFT JOIN vn.tag t1 ON t1.id = it1.tagFk
|
|
||||||
WHERE i.id = vItemFk;
|
|
||||||
|
|
||||||
CALL cache.available_refresh(vCalcFk, FALSE, vWarehouseFk, vShipped);
|
|
||||||
|
|
||||||
SELECT i.id itemFk,
|
|
||||||
i.longName,
|
|
||||||
i.subName,
|
|
||||||
i.tag5,
|
|
||||||
i.value5,
|
|
||||||
(i.value5 <=> vValue5 COLLATE utf8_general_ci) match5,
|
|
||||||
i.tag6,
|
|
||||||
i.value6,
|
|
||||||
(i.value6 <=> vValue6 COLLATE utf8_general_ci) match6,
|
|
||||||
i.tag7,
|
|
||||||
i.value7,
|
|
||||||
(i.value7 <=> vValue7 COLLATE utf8_general_ci) match7,
|
|
||||||
i.tag8,
|
|
||||||
i.value8,
|
|
||||||
(i.value8 <=> vValue8 COLLATE utf8_general_ci) match8,
|
|
||||||
a.available,
|
|
||||||
IFNULL(ip.counter,0) counter
|
|
||||||
FROM vn.item i
|
|
||||||
JOIN cache.available a ON a.item_id = i.id
|
|
||||||
LEFT JOIN vn.itemProposal ip ON ip.mateFk = i.id AND ip.itemFk = vItemFk
|
|
||||||
LEFT JOIN vn.itemTag it1 ON it1.itemFk = i.id AND it1.priority = 1
|
|
||||||
LEFT JOIN vn.tag t1 ON t1.id = it1.tagFk
|
|
||||||
WHERE a.calc_id = vCalcFk
|
|
||||||
AND available > 0
|
|
||||||
AND i.typeFk = vTypeFk
|
|
||||||
AND i.id != vItemFk
|
|
||||||
ORDER BY counter DESC,
|
|
||||||
(t1.name = vTag1 COLLATE utf8_general_ci) DESC,
|
|
||||||
(it1.value = vValue1 COLLATE utf8_general_ci) DESC,
|
|
||||||
(i.tag5 = vTag5 COLLATE utf8_general_ci) DESC,
|
|
||||||
(i.value5 = vValue5 COLLATE utf8_general_ci) DESC,
|
|
||||||
(i.tag6 = vTag6 COLLATE utf8_general_ci) DESC,
|
|
||||||
(i.value6 = vValue6 COLLATE utf8_general_ci) DESC,
|
|
||||||
(i.tag7 = vTag7 COLLATE utf8_general_ci) DESC,
|
|
||||||
(i.value7 = vValue7 COLLATE utf8_general_ci) DESC,
|
|
||||||
(i.tag8 = vTag8 COLLATE utf8_general_ci) DESC,
|
|
||||||
(i.value8 = vValue8 COLLATE utf8_general_ci) DESC
|
|
||||||
LIMIT vResultsMax;
|
|
||||||
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -30,10 +30,11 @@ BEGIN
|
||||||
ish.visible,
|
ish.visible,
|
||||||
p.sectorFk,
|
p.sectorFk,
|
||||||
it.workerFk buyer,
|
it.workerFk buyer,
|
||||||
CONCAT('http:',ic.url, '/catalog/1600x900/',i.image) urlImage,
|
ic.url,
|
||||||
|
i.image,
|
||||||
ish.isChecked,
|
ish.isChecked,
|
||||||
CASE
|
CASE
|
||||||
WHEN s.notPrepared > sm.parked THEN 0
|
WHEN IFNULL (s.notPrepared, 0) > sm.parked THEN 0
|
||||||
WHEN sm.visible > sm.parked THEN 1
|
WHEN sm.visible > sm.parked THEN 1
|
||||||
ELSE 2
|
ELSE 2
|
||||||
END priority
|
END priority
|
||||||
|
@ -43,7 +44,7 @@ BEGIN
|
||||||
JOIN tmp.stockMisfit sm ON sm.itemFk = ish.itemFk
|
JOIN tmp.stockMisfit sm ON sm.itemFk = ish.itemFk
|
||||||
JOIN shelving sh ON sh.code = ish.shelvingFk
|
JOIN shelving sh ON sh.code = ish.shelvingFk
|
||||||
JOIN parking p ON p.id = sh.parkingFk
|
JOIN parking p ON p.id = sh.parkingFk
|
||||||
JOIN (
|
LEFT JOIN (
|
||||||
SELECT s.itemFk, sum(s.quantity) notPrepared
|
SELECT s.itemFk, sum(s.quantity) notPrepared
|
||||||
FROM sale s
|
FROM sale s
|
||||||
JOIN ticket t ON t.id = s.ticketFk
|
JOIN ticket t ON t.id = s.ticketFk
|
||||||
|
|
|
@ -1,84 +1,92 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`item_getSimilar`(vItemFk INT, vWarehouseFk INT, vDate DATE, vIsShowedByType BOOL)
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`item_getSimilar`(
|
||||||
|
vSelf INT,
|
||||||
|
vWarehouseFk INT,
|
||||||
|
vDated DATE,
|
||||||
|
vShowType BOOL
|
||||||
|
)
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Propone articulos similares para posible cambio,
|
* Propone articulos disponibles ordenados, con la cantidad
|
||||||
* ordenado con la cantidad de veces usado y segun sus caracteristicas
|
* de veces usado y segun sus caracteristicas.
|
||||||
*
|
*
|
||||||
* @param vItemFk item id
|
* @param vSelf Id de artículo
|
||||||
* @param vWarehouseFk warehouse id
|
* @param vWarehouseFk Id de almacen
|
||||||
* @param vDate fecha para revisar disponible
|
* @param vDated Fecha
|
||||||
* @param vIsShowedByType para mostrar solo artículos de ese tipo
|
* @param vShowType Mostrar tipos
|
||||||
*/
|
*/
|
||||||
|
|
||||||
DECLARE vCalcFk INT;
|
DECLARE vCalcFk INT;
|
||||||
DECLARE vTypeFk INT;
|
DECLARE vTypeFk INT;
|
||||||
|
DECLARE vPriority INT DEFAULT 1;
|
||||||
|
|
||||||
DECLARE vTag1 VARCHAR(25) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci';
|
CALL cache.available_refresh(vCalcFk, FALSE, vWarehouseFk, vDated);
|
||||||
DECLARE vTag5 VARCHAR(25) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci';
|
|
||||||
DECLARE vTag6 VARCHAR(25) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci';
|
|
||||||
DECLARE vTag7 VARCHAR(25) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci';
|
|
||||||
DECLARE vTag8 VARCHAR(25) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci';
|
|
||||||
|
|
||||||
DECLARE vValue1 VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci';
|
|
||||||
DECLARE vValue5 VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci';
|
|
||||||
DECLARE vValue6 VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci';
|
|
||||||
DECLARE vValue7 VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci';
|
|
||||||
DECLARE vValue8 VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci';
|
|
||||||
|
|
||||||
|
|
||||||
SELECT typeFk, tag5, value5, tag6, value6, tag7, value7, tag8, value8, t1.name, it1.value
|
WITH itemTags AS (
|
||||||
INTO vTypeFk, vTag5, vValue5, vTag6, vValue6, vTag7, vValue7, vTag8, vValue8, vTag1, vValue1
|
SELECT i.id,
|
||||||
|
typeFk,
|
||||||
|
tag5,
|
||||||
|
value5,
|
||||||
|
tag6,
|
||||||
|
value6,
|
||||||
|
tag7,
|
||||||
|
value7,
|
||||||
|
tag8,
|
||||||
|
value8,
|
||||||
|
t.name,
|
||||||
|
it.value
|
||||||
FROM vn.item i
|
FROM vn.item i
|
||||||
LEFT JOIN vn.itemTag it1 ON it1.itemFk = i.id AND it1.priority = 1
|
LEFT JOIN vn.itemTag it ON it.itemFk = i.id
|
||||||
LEFT JOIN vn.tag t1 ON t1.id = it1.tagFk
|
AND it.priority = vPriority
|
||||||
WHERE i.id = vItemFk;
|
LEFT JOIN vn.tag t ON t.id = it.tagFk
|
||||||
|
WHERE i.id = vSelf
|
||||||
CALL cache.available_refresh(vCalcFk, FALSE, vWarehouseFk, vDate);
|
)
|
||||||
|
|
||||||
SELECT i.id itemFk,
|
SELECT i.id itemFk,
|
||||||
i.longName,
|
i.longName,
|
||||||
i.subName,
|
i.subName,
|
||||||
i.tag5,
|
i.tag5,
|
||||||
i.value5,
|
i.value5,
|
||||||
(i.value5 <=> vValue5) match5,
|
(i.value5 <=> its.value5) match5,
|
||||||
i.tag6,
|
i.tag6,
|
||||||
i.value6,
|
i.value6,
|
||||||
(i.value6 <=> vValue6) match6,
|
(i.value6 <=> its.value6) match6,
|
||||||
i.tag7,
|
i.tag7,
|
||||||
i.value7,
|
i.value7,
|
||||||
(i.value7 <=> vValue7) match7,
|
(i.value7 <=> its.value7) match7,
|
||||||
i.tag8,
|
i.tag8,
|
||||||
i.value8,
|
i.value8,
|
||||||
(i.value8 <=> vValue8) match8,
|
(i.value8 <=> its.value8) match8,
|
||||||
a.available,
|
a.available,
|
||||||
IFNULL(ip.counter,0) counter,
|
IFNULL(ip.counter, 0) `counter`,
|
||||||
IF(b.groupingMode = 1, b.grouping, b.packing) as minQuantity
|
IF(b.groupingMode = 1, b.grouping, b.packing) minQuantity,
|
||||||
|
iss.visible located
|
||||||
FROM vn.item i
|
FROM vn.item i
|
||||||
JOIN cache.available a ON a.item_id = i.id
|
JOIN cache.available a ON a.item_id = i.id
|
||||||
LEFT JOIN vn.itemProposal ip ON ip.mateFk = i.id AND ip.itemFk = vItemFk
|
AND a.calc_id = vCalcFk
|
||||||
LEFT JOIN vn.itemTag it1 ON it1.itemFk = i.id AND it1.priority = 1
|
LEFT JOIN vn.itemProposal ip ON ip.mateFk = i.id
|
||||||
LEFT JOIN vn.tag t1 ON t1.id = it1.tagFk
|
AND ip.itemFk = vSelf
|
||||||
LEFT JOIN cache.last_buy lb ON lb.item_id = i.id AND lb.warehouse_id = vWarehouseFk
|
LEFT JOIN vn.itemTag it ON it.itemFk = i.id
|
||||||
|
AND it.priority = vPriority
|
||||||
|
LEFT JOIN vn.tag t ON t.id = it.tagFk
|
||||||
|
LEFT JOIN cache.last_buy lb ON lb.item_id = i.id
|
||||||
|
AND lb.warehouse_id = vWarehouseFk
|
||||||
LEFT JOIN vn.buy b ON b.id = lb.buy_id
|
LEFT JOIN vn.buy b ON b.id = lb.buy_id
|
||||||
WHERE a.calc_id = vCalcFk
|
LEFT JOIN vn.itemShelvingStock iss ON iss.itemFk = i.id
|
||||||
AND available > 0
|
AND iss.warehouseFk = vWarehouseFk
|
||||||
AND IF(vIsShowedByType, i.typeFk = vTypeFk, TRUE)
|
JOIN itemTags its
|
||||||
AND i.id != vItemFk
|
WHERE a.available > 0
|
||||||
ORDER BY counter DESC,
|
AND IF(vShowType, i.typeFk = its.typeFk, TRUE)
|
||||||
(t1.name = vTag1) DESC,
|
AND i.id <> vSelf
|
||||||
(it1.value = vValue1) DESC,
|
ORDER BY `counter` DESC,
|
||||||
(i.tag6 = vTag6) DESC,
|
(t.name = its.name) DESC,
|
||||||
(i.value6 = vValue6) DESC,
|
(it.value = its.value) DESC,
|
||||||
(i.tag5 = vTag5) DESC,
|
(i.tag5 = its.tag5) DESC,
|
||||||
(i.value5 = vValue5) DESC,
|
match5 DESC,
|
||||||
(i.tag7 = vTag7) DESC,
|
(i.tag6 = its.tag6) DESC,
|
||||||
(i.value7 = vValue7) DESC,
|
match6 DESC,
|
||||||
(i.tag8 = vTag8) DESC,
|
(i.tag7 = its.tag7) DESC,
|
||||||
(i.value8 = vValue8) DESC
|
match7 DESC,
|
||||||
LIMIT 30;
|
(i.tag8 = its.tag8) DESC,
|
||||||
|
match8 DESC;
|
||||||
|
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -0,0 +1,84 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`payment_add`(
|
||||||
|
vDated DATE,
|
||||||
|
vSupplierFk INT,
|
||||||
|
vAmount DOUBLE,
|
||||||
|
vCurrencyFk INT,
|
||||||
|
vForeignValue DOUBLE,
|
||||||
|
vBankFk INT,
|
||||||
|
vPayMethodFk INT,
|
||||||
|
vExpenseFk DOUBLE,
|
||||||
|
vConcept VARCHAR(40),
|
||||||
|
vCompanyFk INT)
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Registra un pago realizado a un proveedor y
|
||||||
|
* su correspondiente registro en caja.
|
||||||
|
*
|
||||||
|
* @param vDated Fecha del pago
|
||||||
|
* @param vSupplierFk Id del proveedor
|
||||||
|
* @param vAmount Cantidad a pagar
|
||||||
|
* @param vCurrencyFk Id de la moneda
|
||||||
|
* @param vForeignValue Tipo de cambio utilizado
|
||||||
|
* @param vBankFk Id del banco
|
||||||
|
* @param vPayMethodFk Id del método de pago
|
||||||
|
* @param vExpenseFk Id de gasto
|
||||||
|
* @param vConcept Concepto del pago
|
||||||
|
* @param vCompanyFk Id de la empresa
|
||||||
|
* @return paymentFk Id de pago insertado
|
||||||
|
*/
|
||||||
|
INSERT INTO till(
|
||||||
|
concept,
|
||||||
|
serie,
|
||||||
|
`number`,
|
||||||
|
`out`,
|
||||||
|
dated,
|
||||||
|
isAccountable,
|
||||||
|
bankFk,
|
||||||
|
workerFk,
|
||||||
|
companyFk,
|
||||||
|
isConciliate
|
||||||
|
)
|
||||||
|
SELECT CONCAT('n/pago a ', `name`),
|
||||||
|
'R',
|
||||||
|
vSupplierFk,
|
||||||
|
vAmount,
|
||||||
|
vDated,
|
||||||
|
1,
|
||||||
|
vBankFk,
|
||||||
|
account.myUser_getId(),
|
||||||
|
vCompanyFk,
|
||||||
|
1
|
||||||
|
FROM supplier
|
||||||
|
WHERE id = vSupplierFk;
|
||||||
|
|
||||||
|
INSERT INTO payment(
|
||||||
|
received,
|
||||||
|
dueDated,
|
||||||
|
supplierFk,
|
||||||
|
amount,
|
||||||
|
currencyFk,
|
||||||
|
divisa,
|
||||||
|
bankFk,
|
||||||
|
payMethodFk,
|
||||||
|
bankingFees,
|
||||||
|
concept,
|
||||||
|
companyFk
|
||||||
|
)
|
||||||
|
VALUES(
|
||||||
|
vDated,
|
||||||
|
vDated,
|
||||||
|
vSupplierFk,
|
||||||
|
vAmount,
|
||||||
|
vCurrencyFk,
|
||||||
|
IF(NOT vForeignValue, NULL, vForeignValue),
|
||||||
|
vBankFk,
|
||||||
|
vPayMethodFk,
|
||||||
|
vExpenseFk,
|
||||||
|
vConcept,
|
||||||
|
vCompanyFk
|
||||||
|
);
|
||||||
|
|
||||||
|
SELECT LAST_INSERT_ID() paymentFk;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -0,0 +1,70 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`remittance_calc`(
|
||||||
|
vDated DATE
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Calcula los datos de remesa, incluyendo el importe,
|
||||||
|
* el vencimiento, y otros datos relevantes.
|
||||||
|
*
|
||||||
|
* @param vDated Fecha a calcular
|
||||||
|
* @return tmp.remittance
|
||||||
|
*/
|
||||||
|
CREATE OR REPLACE TEMPORARY TABLE tmp.remittance
|
||||||
|
SELECT CONCAT(s.nif, REPEAT('0', 12 - LENGTH(s.nif))) cif,
|
||||||
|
c.id clientFk,
|
||||||
|
c.name client,
|
||||||
|
c.fi,
|
||||||
|
sub.paymentDate,
|
||||||
|
0 invoiceAmount,
|
||||||
|
CAST(sub.receipt AS DECIMAL(10,2)) receiptAmount,
|
||||||
|
0 currentAmount,
|
||||||
|
sub.companyFk,
|
||||||
|
c.socialName,
|
||||||
|
CAST(sub.receipt AS DECIMAL(10,2)) totalAmount,
|
||||||
|
CAST(sub.receipt AS DECIMAL(10,2)) balance,
|
||||||
|
s.name company,
|
||||||
|
co.code companyCode,
|
||||||
|
c.accountingAccount,
|
||||||
|
c.iban,
|
||||||
|
c.hasSepaVnl,
|
||||||
|
c.hasCoreVnl,
|
||||||
|
c.hasLcr,
|
||||||
|
be.bic,
|
||||||
|
be.`name` entityName
|
||||||
|
FROM client c
|
||||||
|
JOIN (
|
||||||
|
SELECT risk.companyFk,
|
||||||
|
c.id,
|
||||||
|
SUM(risk.amount) receipt,
|
||||||
|
IF((c.dueDay + graceDays) MOD 30.001 <= DAY(vDated),
|
||||||
|
LAST_DAY(vDated - INTERVAL 1 MONTH) + INTERVAL (c.dueDay + graceDays) MOD 30.001 DAY,
|
||||||
|
LAST_DAY(vDated - INTERVAL 2 MONTH) + INTERVAL (c.dueDay + graceDays) MOD 30.001 DAY
|
||||||
|
) paymentDate
|
||||||
|
FROM client c
|
||||||
|
JOIN payMethod pm ON pm.id = c.payMethodFk
|
||||||
|
JOIN (
|
||||||
|
SELECT cr.companyFk, cr.clientFk, cr.amount
|
||||||
|
FROM client c
|
||||||
|
JOIN clientRisk cr ON cr.clientFk = c.id
|
||||||
|
JOIN payMethod pm ON pm.id = c.payMethodFk
|
||||||
|
WHERE pm.code = 'bankDraft'
|
||||||
|
UNION ALL
|
||||||
|
SELECT io.companyFk, io.clientFk, - io.amount
|
||||||
|
FROM invoiceOut io
|
||||||
|
JOIN client c ON c.id = io.clientFk
|
||||||
|
JOIN payMethod pm ON pm.id = c.payMethodFk
|
||||||
|
WHERE io.dued > vDated
|
||||||
|
AND pm.code = 'bankDraft'
|
||||||
|
AND pm.outstandingDebt
|
||||||
|
AND io.amount > 0
|
||||||
|
|
||||||
|
) risk ON risk.clientFk = c.id
|
||||||
|
GROUP BY risk.companyFk, c.id
|
||||||
|
HAVING receipt > 10
|
||||||
|
) sub ON sub.id = c.id
|
||||||
|
JOIN supplier s ON s.id = sub.companyFk
|
||||||
|
JOIN company co ON co.id = sub.companyFk
|
||||||
|
LEFT JOIN bankEntity be ON be.id = c.bankEntityFk;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -1,70 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`sale_checkNoComponents`(vCreatedFrom DATETIME, vCreatedTo DATETIME)
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Comprueba que las ventas creadas entre un rango de fechas tienen componentes
|
|
||||||
*
|
|
||||||
* @param vCreatedFrom inicio del rango
|
|
||||||
* @param vCreatedTo fin del rango
|
|
||||||
*/
|
|
||||||
DECLARE v_done BOOL DEFAULT FALSE;
|
|
||||||
DECLARE vSaleFk INTEGER;
|
|
||||||
DECLARE vTicketFk INTEGER;
|
|
||||||
DECLARE vConcept VARCHAR(50);
|
|
||||||
DECLARE vCur CURSOR FOR
|
|
||||||
SELECT s.id
|
|
||||||
FROM sale s
|
|
||||||
JOIN ticket t ON t.id = s.ticketFk
|
|
||||||
JOIN item i ON i.id = s.itemFk
|
|
||||||
JOIN itemType tp ON tp.id = i.typeFk
|
|
||||||
JOIN itemCategory ic ON ic.id = tp.categoryFk
|
|
||||||
LEFT JOIN tmp.coste c ON c.id = s.id
|
|
||||||
WHERE s.created >= vCreatedFrom AND s.created <= vCreatedTo
|
|
||||||
AND c.id IS NULL
|
|
||||||
AND t.agencyModeFk IS NOT NULL
|
|
||||||
AND t.isDeleted IS FALSE
|
|
||||||
AND t.warehouseFk = 60
|
|
||||||
AND ic.merchandise != FALSE
|
|
||||||
GROUP BY s.id;
|
|
||||||
|
|
||||||
DECLARE CONTINUE HANDLER FOR NOT FOUND
|
|
||||||
SET v_done = TRUE;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.coste;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.coste;
|
|
||||||
CREATE TEMPORARY TABLE tmp.coste
|
|
||||||
(PRIMARY KEY (id)) ENGINE = MEMORY
|
|
||||||
SELECT s.id
|
|
||||||
FROM sale s
|
|
||||||
JOIN item i ON i.id = s.itemFk
|
|
||||||
JOIN itemType tp ON tp.id = i.typeFk
|
|
||||||
JOIN itemCategory ic ON ic.id = tp.categoryFk
|
|
||||||
JOIN saleComponent sc ON sc.saleFk = s.id
|
|
||||||
JOIN component c ON c.id = sc.componentFk
|
|
||||||
JOIN componentType ct ON ct.id = c.typeFk AND ct.id = 6
|
|
||||||
WHERE s.created >= vCreatedFrom
|
|
||||||
AND ic.merchandise != FALSE;
|
|
||||||
|
|
||||||
OPEN vCur;
|
|
||||||
|
|
||||||
l: LOOP
|
|
||||||
SET v_done = FALSE;
|
|
||||||
FETCH vCur INTO vSaleFk;
|
|
||||||
|
|
||||||
IF v_done THEN
|
|
||||||
LEAVE l;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
SELECT ticketFk, concept
|
|
||||||
INTO vTicketFk, vConcept
|
|
||||||
FROM sale
|
|
||||||
WHERE id = vSaleFk;
|
|
||||||
|
|
||||||
CALL sale_calculateComponent(vSaleFk, 'renewPrices');
|
|
||||||
END LOOP;
|
|
||||||
|
|
||||||
CLOSE vCur;
|
|
||||||
DROP TEMPORARY TABLE tmp.coste;
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -27,7 +27,7 @@ BEGIN
|
||||||
s.quantity,
|
s.quantity,
|
||||||
MAKETIME(pb.HH,pb.mm,0) etd,
|
MAKETIME(pb.HH,pb.mm,0) etd,
|
||||||
pb.routeFk,
|
pb.routeFk,
|
||||||
FLOOR(s.quantity / ish.packing) stickers,
|
FLOOR(s.quantity / IF(i.isBoxPickingMode, ish.packing, i.packingOut)) stickers,
|
||||||
IF(i.isBoxPickingMode, ish.packing, i.packingOut) packing,
|
IF(i.isBoxPickingMode, ish.packing, i.packingOut) packing,
|
||||||
b.packagingFk
|
b.packagingFk
|
||||||
FROM sale s
|
FROM sale s
|
||||||
|
@ -71,5 +71,3 @@ BEGIN
|
||||||
DROP TEMPORARY TABLE tmp.sale;
|
DROP TEMPORARY TABLE tmp.sale;
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
||||||
CALL `vn`.`sale_getBoxPickingList`(1, curdate());
|
|
|
@ -79,7 +79,10 @@ DECLARE vIsCollection BOOL;
|
||||||
IF(SUM(iss.quantity) IS NULL, 0, SUM(iss.quantity)) pickedQuantity,
|
IF(SUM(iss.quantity) IS NULL, 0, SUM(iss.quantity)) pickedQuantity,
|
||||||
MIN(iss.created) picked,
|
MIN(iss.created) picked,
|
||||||
IF(sm.id, TRUE, FALSE) hasMistake,
|
IF(sm.id, TRUE, FALSE) hasMistake,
|
||||||
sg.sectorFk
|
sg.sectorFk,
|
||||||
|
b.packing,
|
||||||
|
b.grouping,
|
||||||
|
o.code
|
||||||
FROM tmp.ticket t
|
FROM tmp.ticket t
|
||||||
JOIN sale s ON s.ticketFk = t.id
|
JOIN sale s ON s.ticketFk = t.id
|
||||||
JOIN ticket tt ON tt.id = t.id
|
JOIN ticket tt ON tt.id = t.id
|
||||||
|
|
|
@ -94,7 +94,7 @@ BEGIN
|
||||||
'payment'
|
'payment'
|
||||||
FROM payment p
|
FROM payment p
|
||||||
LEFT JOIN currency c ON c.id = p.currencyFk
|
LEFT JOIN currency c ON c.id = p.currencyFk
|
||||||
LEFT JOIN bank b ON b.id = p.bankFk
|
LEFT JOIN accounting a ON a.id = p.bankFk
|
||||||
LEFT JOIN payMethod pm ON pm.id = p.payMethodFk
|
LEFT JOIN payMethod pm ON pm.id = p.payMethodFk
|
||||||
LEFT JOIN promissoryNote pn ON pn.paymentFk = p.id
|
LEFT JOIN promissoryNote pn ON pn.paymentFk = p.id
|
||||||
WHERE p.received > '2014-12-31'
|
WHERE p.received > '2014-12-31'
|
||||||
|
|
|
@ -18,7 +18,8 @@ BEGIN
|
||||||
WHERE (al.code = 'PACKED' OR (am.code = 'refund' AND al.code != 'delivered'))
|
WHERE (al.code = 'PACKED' OR (am.code = 'refund' AND al.code != 'delivered'))
|
||||||
AND t.id = vTicketFk
|
AND t.id = vTicketFk
|
||||||
AND t.refFk IS NULL
|
AND t.refFk IS NULL
|
||||||
GROUP BY t.id);
|
GROUP BY t.id
|
||||||
|
);
|
||||||
|
|
||||||
CALL ticket_close();
|
CALL ticket_close();
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,8 @@ BEGIN
|
||||||
CALL supplier_checkIsActive(NEW.supplierFk);
|
CALL supplier_checkIsActive(NEW.supplierFk);
|
||||||
SET NEW.currencyFk = entry_getCurrency(NEW.currencyFk, NEW.supplierFk);
|
SET NEW.currencyFk = entry_getCurrency(NEW.currencyFk, NEW.supplierFk);
|
||||||
SET NEW.commission = entry_getCommission(NEW.travelFk, NEW.currencyFk,NEW.supplierFk);
|
SET NEW.commission = entry_getCommission(NEW.travelFk, NEW.currencyFk,NEW.supplierFk);
|
||||||
|
IF NEW.travelFk IS NOT NULL AND NOT travel_hasUniqueAwb(NEW.travelFk) THEN
|
||||||
|
CALL util.throw('The travel is incorrect, there is a different AWB in the associated entries');
|
||||||
|
END IF;
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -9,12 +9,17 @@ BEGIN
|
||||||
|
|
||||||
SET NEW.editorFk = account.myUser_getId();
|
SET NEW.editorFk = account.myUser_getId();
|
||||||
|
|
||||||
IF !(NEW.travelFk <=> OLD.travelFk) THEN
|
IF NOT (NEW.travelFk <=> OLD.travelFk) THEN
|
||||||
|
|
||||||
|
IF NEW.travelFk IS NOT NULL AND NOT travel_hasUniqueAwb(NEW.travelFk) THEN
|
||||||
|
CALL util.throw('The travel is incorrect, there is a different AWB in the associated entries');
|
||||||
|
END IF;
|
||||||
|
|
||||||
SELECT COUNT(*) > 0 INTO vIsVirtual
|
SELECT COUNT(*) > 0 INTO vIsVirtual
|
||||||
FROM entryVirtual WHERE entryFk = NEW.id;
|
FROM entryVirtual WHERE entryFk = NEW.id;
|
||||||
|
|
||||||
SELECT !(o.warehouseInFk <=> n.warehouseInFk)
|
SELECT NOT (o.warehouseInFk <=> n.warehouseInFk)
|
||||||
OR !(o.warehouseOutFk <=> n.warehouseOutFk)
|
OR NOT (o.warehouseOutFk <=> n.warehouseOutFk)
|
||||||
INTO vHasDistinctWarehouses
|
INTO vHasDistinctWarehouses
|
||||||
FROM travel o, travel n
|
FROM travel o, travel n
|
||||||
WHERE o.id = OLD.travelFk
|
WHERE o.id = OLD.travelFk
|
||||||
|
@ -43,9 +48,8 @@ BEGIN
|
||||||
SET NEW.currencyFk = entry_getCurrency(NEW.currencyFk, NEW.supplierFk);
|
SET NEW.currencyFk = entry_getCurrency(NEW.currencyFk, NEW.supplierFk);
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
IF NOT (NEW.travelFk <=> OLD.travelFk)
|
IF NOT (NEW.travelFk <=> OLD.travelFk) OR NOT (NEW.currencyFk <=> OLD.currencyFk) THEN
|
||||||
OR NOT (NEW.currencyFk <=> OLD.currencyFk) THEN
|
SET NEW.commission = entry_getCommission(NEW.travelFk, NEW.currencyFk, NEW.supplierFk);
|
||||||
SET NEW.commission = entry_getCommission(NEW.travelFk, NEW.currencyFk,NEW.supplierFk);
|
|
||||||
END IF;
|
END IF;
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`parking_afterDelete`
|
||||||
|
AFTER DELETE ON `parking`
|
||||||
|
FOR EACH ROW
|
||||||
|
BEGIN
|
||||||
|
INSERT INTO parkingLog
|
||||||
|
SET `action` = 'delete',
|
||||||
|
`changedModel` = 'Parking',
|
||||||
|
`changedModelId` = OLD.id,
|
||||||
|
`userFk` = account.myUser_getId();
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -3,7 +3,7 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`parking_beforeInsert`
|
||||||
BEFORE INSERT ON `parking`
|
BEFORE INSERT ON `parking`
|
||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
|
SET NEW.editorFk = account.myUser_getId();
|
||||||
-- SET new.`code` = CONCAT(new.`column`,' - ',new.`row`) ;
|
-- SET new.`code` = CONCAT(new.`column`,' - ',new.`row`) ;
|
||||||
|
|
||||||
END$$
|
END$$
|
||||||
|
|
|
@ -3,7 +3,7 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`parking_beforeUpdate`
|
||||||
BEFORE UPDATE ON `parking`
|
BEFORE UPDATE ON `parking`
|
||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
|
SET NEW.editorFk = account.myUser_getId();
|
||||||
-- SET new.`code` = CONCAT(new.`column`,' - ',new.`row`) ;
|
-- SET new.`code` = CONCAT(new.`column`,' - ',new.`row`) ;
|
||||||
|
|
||||||
END$$
|
END$$
|
||||||
|
|
|
@ -10,21 +10,21 @@ BEGIN
|
||||||
|
|
||||||
-- PAK 10/02/15 No se asientan los pagos directamente, salvo en el caso de las cajas de CASH
|
-- PAK 10/02/15 No se asientan los pagos directamente, salvo en el caso de las cajas de CASH
|
||||||
SELECT (at2.code = 'cash') INTO bolCASH
|
SELECT (at2.code = 'cash') INTO bolCASH
|
||||||
FROM vn.bank b
|
FROM accounting a
|
||||||
JOIN vn.accountingType at2 ON at2.id = b.cash
|
JOIN accountingType at2 ON at2.id = a.accountingTypeFk
|
||||||
WHERE b.id = NEW.bankFk;
|
WHERE a.id = NEW.bankFk;
|
||||||
|
|
||||||
IF bolCASH THEN
|
IF bolCASH THEN
|
||||||
|
|
||||||
SELECT account INTO cuenta_banco
|
SELECT account INTO cuenta_banco
|
||||||
FROM bank
|
FROM accounting
|
||||||
WHERE id = NEW.bankFk;
|
WHERE id = NEW.bankFk;
|
||||||
|
|
||||||
SELECT account INTO cuenta_proveedor
|
SELECT account INTO cuenta_proveedor
|
||||||
FROM supplier
|
FROM supplier
|
||||||
WHERE id = NEW.supplierFk;
|
WHERE id = NEW.supplierFk;
|
||||||
|
|
||||||
CALL vn.ledger_next(vNewBookEntry);
|
CALL ledger_next(vNewBookEntry);
|
||||||
|
|
||||||
INSERT INTO XDiario ( ASIEN,
|
INSERT INTO XDiario ( ASIEN,
|
||||||
FECHA,
|
FECHA,
|
||||||
|
|
|
@ -5,7 +5,7 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`travel_afterUpdate`
|
||||||
BEGIN
|
BEGIN
|
||||||
CALL stock.log_add('travel', NEW.id, OLD.id);
|
CALL stock.log_add('travel', NEW.id, OLD.id);
|
||||||
|
|
||||||
IF !(NEW.shipped <=> OLD.shipped) THEN
|
IF NOT(NEW.shipped <=> OLD.shipped) THEN
|
||||||
UPDATE entry
|
UPDATE entry
|
||||||
SET commission = entry_getCommission(travelFk, currencyFk,supplierFk)
|
SET commission = entry_getCommission(travelFk, currencyFk,supplierFk)
|
||||||
WHERE travelFk = NEW.id;
|
WHERE travelFk = NEW.id;
|
||||||
|
@ -23,5 +23,9 @@ BEGIN
|
||||||
CALL buy_checkItem();
|
CALL buy_checkItem();
|
||||||
END IF;
|
END IF;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
|
IF (NOT(NEW.awbFk <=> OLD.awbFk)) AND NEW.awbFk IS NOT NULL AND NOT travel_hasUniqueAwb(NEW.id) THEN
|
||||||
|
CALL util.throw('The AWB is incorrect, there is a different AWB in the associated entries');
|
||||||
|
END IF;
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -8,5 +8,9 @@ BEGIN
|
||||||
CALL travel_checkDates(NEW.shipped, NEW.landed);
|
CALL travel_checkDates(NEW.shipped, NEW.landed);
|
||||||
|
|
||||||
CALL travel_checkWarehouseIsFeedStock(NEW.warehouseInFk);
|
CALL travel_checkWarehouseIsFeedStock(NEW.warehouseInFk);
|
||||||
|
|
||||||
|
IF NEW.awbFk IS NOT NULL AND NOT travel_hasUniqueAwb(NEW.id) THEN
|
||||||
|
CALL util.throw('The AWB is incorrect, there is a different AWB in the associated entries');
|
||||||
|
END IF;
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost`
|
|
||||||
SQL SECURITY DEFINER
|
|
||||||
VIEW `vn`.`bank`
|
|
||||||
AS SELECT `a`.`id` AS `id`,
|
|
||||||
`a`.`bank` AS `bank`,
|
|
||||||
`a`.`account` AS `account`,
|
|
||||||
`a`.`accountingTypeFk` AS `cash`,
|
|
||||||
`a`.`entityFk` AS `entityFk`,
|
|
||||||
`a`.`isActive` AS `isActive`,
|
|
||||||
`a`.`currencyFk` AS `currencyFk`,
|
|
||||||
`a`.`code` AS `code`
|
|
||||||
FROM `vn`.`accounting` `a`
|
|
|
@ -7,9 +7,9 @@ AS SELECT `p`.`received` AS `received`,
|
||||||
FROM (
|
FROM (
|
||||||
(
|
(
|
||||||
`vn`.`payment` `p`
|
`vn`.`payment` `p`
|
||||||
JOIN `vn`.`bank` `b` ON(`b`.`id` = `p`.`bankFk`)
|
JOIN `vn`.`accounting` `a` ON(`a`.`id` = `p`.`bankFk`)
|
||||||
)
|
)
|
||||||
JOIN `vn`.`accountingType` `at2` ON(`at2`.`id` = `b`.`cash`)
|
JOIN `vn`.`accountingType` `at2` ON(`at2`.`id` = `a`.`accountingTypeFk`)
|
||||||
)
|
)
|
||||||
WHERE `p`.`currencyFk` = 2
|
WHERE `p`.`currencyFk` = 2
|
||||||
AND `at2`.`code` = 'wireTransfer'
|
AND `at2`.`code` = 'wireTransfer'
|
||||||
|
|
|
@ -1,66 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`CalculoRemesas`(IN vFechaRemesa DATE)
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS TMP_REMESAS;
|
|
||||||
CREATE TEMPORARY TABLE TMP_REMESAS
|
|
||||||
SELECT
|
|
||||||
CONCAT(p.NIF,REPEAT('0', 12-LENGTH(p.NIF))) as CIF1,
|
|
||||||
cli.Id_Cliente,
|
|
||||||
cli.Cliente,
|
|
||||||
cli.`IF` as NIF,
|
|
||||||
c.PaymentDate as Vencimiento,
|
|
||||||
0 ImporteFac,
|
|
||||||
cast(c.Recibo as decimal(10,2)) as ImporteRec,
|
|
||||||
0 as ImporteActual,
|
|
||||||
c.companyFk empresa_id,
|
|
||||||
cli.RazonSocial,
|
|
||||||
cast(c.Recibo as decimal(10,2)) as ImporteTotal,
|
|
||||||
cast(c.Recibo as decimal(10,2)) as Saldo,
|
|
||||||
p.Proveedor as Empresa,
|
|
||||||
e.abbreviation as EMP,
|
|
||||||
cli.cuenta,
|
|
||||||
iban AS Iban,
|
|
||||||
CONVERT(SUBSTRING(iban,5,4),UNSIGNED INT) AS nrbe,
|
|
||||||
sepavnl as SEPA,
|
|
||||||
corevnl as RecibidoCORE,
|
|
||||||
hasLcr,
|
|
||||||
be.bic,
|
|
||||||
be.`name` entityName
|
|
||||||
FROM Clientes cli
|
|
||||||
JOIN
|
|
||||||
(SELECT risk.companyFk,
|
|
||||||
c.Id_Cliente,
|
|
||||||
sum(risk.amount) as Recibo,
|
|
||||||
IF((c.Vencimiento + graceDays) mod 30.001 <= day(vFechaRemesa)
|
|
||||||
,TIMESTAMPADD(DAY, (c.Vencimiento + graceDays) MOD 30.001, LAST_DAY(TIMESTAMPADD(MONTH,-1,vFechaRemesa)))
|
|
||||||
,TIMESTAMPADD(DAY, (c.Vencimiento + graceDays) MOD 30.001, LAST_DAY(TIMESTAMPADD(MONTH,-2,vFechaRemesa)))
|
|
||||||
) as PaymentDate
|
|
||||||
FROM Clientes c
|
|
||||||
JOIN pay_met pm on pm.id = pay_met_id
|
|
||||||
JOIN
|
|
||||||
(
|
|
||||||
SELECT companyFk, clientFk, amount
|
|
||||||
FROM Clientes c
|
|
||||||
JOIN vn.clientRisk cr ON cr.clientFk = c.Id_Cliente
|
|
||||||
WHERE pay_met_id = 4
|
|
||||||
|
|
||||||
UNION ALL
|
|
||||||
|
|
||||||
SELECT io.companyFk, io.clientFk Id_Cliente, - io.amount
|
|
||||||
FROM vn.invoiceOut io
|
|
||||||
JOIN Clientes c ON c.Id_Cliente = io.clientFk
|
|
||||||
JOIN pay_met pm on pm.id = pay_met_id
|
|
||||||
WHERE io.dued > vFechaRemesa
|
|
||||||
AND pay_met_id = 4 AND pm.deudaviva
|
|
||||||
AND io.amount > 0
|
|
||||||
|
|
||||||
) risk ON c.Id_Cliente = risk.clientFk
|
|
||||||
GROUP BY risk.companyFk, Id_Cliente
|
|
||||||
HAVING Recibo > 10
|
|
||||||
) c on c.Id_Cliente = cli.Id_Cliente
|
|
||||||
JOIN Proveedores p on p.Id_Proveedor = c.companyFk
|
|
||||||
JOIN empresa e on e.id = c.companyFk
|
|
||||||
LEFT JOIN vn.bankEntity be ON be.id = cli.bankEntityFk;
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,25 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`ListaTicketsEncajados`(IN intId_Trabajador int)
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
SELECT Agencia,
|
|
||||||
Consignatario,
|
|
||||||
ti.Id_Ticket,
|
|
||||||
ts.userFk Id_Trabajador,
|
|
||||||
IFNULL(ncajas,0) AS ncajas,
|
|
||||||
IFNULL(nbultos,0) AS nbultos,
|
|
||||||
IFNULL(notros,0) AS notros,
|
|
||||||
ts.code AS Estado
|
|
||||||
FROM Tickets ti
|
|
||||||
INNER JOIN Consignatarios ON ti.Id_Consigna = Consignatarios.Id_consigna
|
|
||||||
INNER JOIN Agencias ON ti.Id_Agencia = Agencias.Id_Agencia
|
|
||||||
LEFT JOIN (SELECT ticketFk,count(*) AS ncajas FROM vn.expedition WHERE packagingFk=94 GROUP BY ticketFk) sub1 ON ti.Id_Ticket=sub1.ticketFk
|
|
||||||
LEFT JOIN (SELECT ticketFk,count(*) AS nbultos FROM vn.expedition WHERE packagingFk IS NULL GROUP BY ticketFk) sub2 ON ti.Id_Ticket=sub2.ticketFk
|
|
||||||
LEFT JOIN (SELECT ticketFk,count(*) AS notros FROM vn.expedition WHERE packagingFk >0 GROUP BY ticketFk) sub3 ON ti.Id_Ticket=sub3.ticketFk
|
|
||||||
INNER JOIN vn.ticketState ts ON ti.Id_ticket = ts.ticketFk
|
|
||||||
WHERE ti.Fecha=util.VN_CURDATE() AND
|
|
||||||
ts.userFk=intId_Trabajador
|
|
||||||
GROUP BY ti.Id_Ticket;
|
|
||||||
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,11 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`cacheReset`(vCacheName VARCHAR(10), vParams VARCHAR(15))
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
UPDATE cache.cache_calc
|
|
||||||
SET expires = util.VN_NOW()
|
|
||||||
WHERE cacheName = vCacheName collate utf8_unicode_ci
|
|
||||||
AND params = vParams collate utf8_unicode_ci;
|
|
||||||
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,23 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`camiones`(vWarehouse INT, vDate DATE)
|
|
||||||
BEGIN
|
|
||||||
SELECT Temperatura
|
|
||||||
,ROUND(SUM(Etiquetas * volume)) AS cm3
|
|
||||||
,ROUND(SUM(IF(scanned, Etiquetas, 0) * volume)) AS cm3s
|
|
||||||
,ROUND(SUM(Vida * volume)) AS cm3e
|
|
||||||
FROM (
|
|
||||||
SELECT t.Temperatura, c.Etiquetas, b.scanned, c.Vida,
|
|
||||||
IF(cu.Volumen > 0, cu.Volumen, cu.x * cu.y * IF(cu.z > 0, cu.z, a.Medida + 10)) volume
|
|
||||||
FROM Compres c
|
|
||||||
LEFT JOIN buy_edi b ON b.id = c.buy_edi_id
|
|
||||||
JOIN Articles a ON a.Id_Article = c.Id_Article
|
|
||||||
JOIN Tipos t ON t.tipo_id = a.tipo_id
|
|
||||||
JOIN Entradas e ON e.Id_Entrada = c.Id_Entrada
|
|
||||||
JOIN travel tr ON tr.id = e.travel_id
|
|
||||||
JOIN Cubos cu ON cu.Id_Cubo = c.Id_Cubo
|
|
||||||
WHERE tr.warehouse_id = vWarehouse
|
|
||||||
AND tr.landing = vDate
|
|
||||||
) sub
|
|
||||||
GROUP BY Temperatura;
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,74 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`clean`(IN `v_full` TINYINT(1))
|
|
||||||
proc: BEGIN
|
|
||||||
DECLARE vDate DATETIME;
|
|
||||||
DECLARE vDate18 DATETIME;
|
|
||||||
DECLARE vDate26 DATETIME;
|
|
||||||
DECLARE vDate8 DATE;
|
|
||||||
DECLARE vDate6 DATE;
|
|
||||||
DECLARE vDate3 DATE;
|
|
||||||
DECLARE vDate2000 DATE;
|
|
||||||
DECLARE vRangeDeleteTicket INT;
|
|
||||||
DECLARE vStrtable VARCHAR(15) DEFAULT NULL;
|
|
||||||
|
|
||||||
SET vDate = util.VN_CURDATE() - INTERVAL 2 MONTH;
|
|
||||||
SET vDate18 = util.VN_CURDATE() - INTERVAL 18 MONTH;
|
|
||||||
SET vDate26 = util.VN_CURDATE() - INTERVAL 26 MONTH;
|
|
||||||
SET vDate3 = util.VN_CURDATE() - INTERVAL 3 MONTH;
|
|
||||||
SET vDate8 = util.VN_CURDATE() - INTERVAL 8 DAY;
|
|
||||||
SET vDate6 = util.VN_CURDATE() - INTERVAL 6 DAY;
|
|
||||||
SET vDate2000 = util.VN_CURDATE() + INTERVAL (2000 - YEAR(util.VN_CURDATE())) YEAR;
|
|
||||||
SET vRangeDeleteTicket = 60;
|
|
||||||
|
|
||||||
DELETE FROM cdr WHERE calldate < vDate18;
|
|
||||||
DELETE FROM mail WHERE DATE_ODBC < vDate;
|
|
||||||
DELETE FROM Movimientos_mark WHERE odbc_date < vDate;
|
|
||||||
DELETE FROM Splits WHERE Fecha < vDate18;
|
|
||||||
|
|
||||||
DELETE FROM Remesas WHERE `Fecha Remesa` < vDate18;
|
|
||||||
|
|
||||||
DELETE tt.*
|
|
||||||
FROM Tickets_turno tt
|
|
||||||
LEFT JOIN Movimientos m USING(Id_Ticket)
|
|
||||||
WHERE m.Id_Article IS NULL;
|
|
||||||
|
|
||||||
DELETE FROM cl_main WHERE Fecha < vDate18;
|
|
||||||
DELETE FROM hedera.`order` WHERE date_send < vDate18;
|
|
||||||
DELETE FROM vn.message WHERE sendDate < vDate;
|
|
||||||
|
|
||||||
DELETE FROM cache.departure_limit WHERE Fecha < util.VN_CURDATE() - INTERVAL 1 MONTH;
|
|
||||||
|
|
||||||
DELETE cm
|
|
||||||
FROM Compres_mark cm
|
|
||||||
JOIN Compres c ON c.Id_Compra = cm.Id_Compra
|
|
||||||
JOIN Entradas e ON e.Id_Entrada = c.Id_Entrada
|
|
||||||
JOIN travel t ON t.id = e.travel_id
|
|
||||||
WHERE t.landing <= vDate;
|
|
||||||
|
|
||||||
IF v_full THEN
|
|
||||||
CREATE OR REPLACE TEMPORARY TABLE tTicketDelete
|
|
||||||
SELECT DISTINCT tl.originFk ticketFk
|
|
||||||
FROM vn.ticketLog tl
|
|
||||||
JOIN (SELECT MAX(tl.id)ids
|
|
||||||
FROM vn.ticket t
|
|
||||||
JOIN vn.ticketLog tl ON tl.originFk = t.id
|
|
||||||
WHERE t.shipped BETWEEN '2000-01-01' AND '2000-12-31'
|
|
||||||
AND t.isDeleted
|
|
||||||
GROUP BY t.id
|
|
||||||
)sub ON sub.ids = tl.id
|
|
||||||
WHERE tl.creationDate <= util.VN_CURDATE() - INTERVAL 60 DAY;
|
|
||||||
|
|
||||||
DELETE t
|
|
||||||
FROM vn.ticket t
|
|
||||||
JOIN tTicketDelete tmp ON tmp.ticketFk = t.id;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE tTicketDelete;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
-- Tickets Nulos PAK 11/10/2016
|
|
||||||
UPDATE Tickets
|
|
||||||
SET empresa_id = 965
|
|
||||||
WHERE Id_Cliente = 31
|
|
||||||
AND empresa_id != 965;
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,6 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`clean_launcher`()
|
|
||||||
BEGIN
|
|
||||||
CALL clean(TRUE);
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,79 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`cobro`(IN datFEC DATE
|
|
||||||
, IN idCLI INT
|
|
||||||
, IN dblIMPORTE DOUBLE
|
|
||||||
, IN idCAJA INT
|
|
||||||
, IN idPAYMET INT
|
|
||||||
, IN strCONCEPTO VARCHAR(40)
|
|
||||||
, IN idEMP INT
|
|
||||||
, IN idWH INT
|
|
||||||
, IN idTRABAJADOR INT)
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
DECLARE bolCASH BOOLEAN;
|
|
||||||
DECLARE cuenta_banco BIGINT;
|
|
||||||
DECLARE cuenta_cliente BIGINT;
|
|
||||||
DECLARE max_asien INT;
|
|
||||||
-- XDIARIO
|
|
||||||
-- No se asientan los cobros directamente, salvo en el caso de las cajas de CASH
|
|
||||||
SELECT (at2.code = 'cash') INTO bolCASH FROM Bancos b JOIN vn.accountingType at2 ON at2.id = b.cash WHERE b.Id_Banco = idCAJA;
|
|
||||||
IF bolCASH THEN
|
|
||||||
SELECT Cuenta INTO cuenta_banco
|
|
||||||
FROM Bancos
|
|
||||||
WHERE Id_Banco = idCAJA;
|
|
||||||
SELECT Cuenta INTO cuenta_cliente
|
|
||||||
FROM Clientes
|
|
||||||
WHERE Id_Cliente = idCLI;
|
|
||||||
CALL vn.ledger_next(max_asien);
|
|
||||||
INSERT INTO vn.XDiario (ASIEN,FECHA,SUBCTA,CONTRA,CONCEPTO,EURODEBE,EUROHABER,empresa_id)
|
|
||||||
SELECT max_asien,datFEC,SUBCTA,CONTRA,strCONCEPTO,EURODEBE,EUROHABER,idEMP
|
|
||||||
FROM(SELECT cuenta_banco SUBCTA, cuenta_cliente CONTRA, 0 EURODEBE, dblIMPORTE EUROHABER
|
|
||||||
UNION ALL
|
|
||||||
SELECT cuenta_cliente SUBCTA, cuenta_banco CONTRA, dblIMPORTE EURODEBE, 0 EUROHABER
|
|
||||||
) gf;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
-- CAJERA
|
|
||||||
INSERT INTO Cajas(Id_Trabajador,
|
|
||||||
Id_Banco,
|
|
||||||
Entrada,
|
|
||||||
Concepto,
|
|
||||||
Cajafecha,
|
|
||||||
Serie,
|
|
||||||
Partida,
|
|
||||||
Numero,
|
|
||||||
empresa_id,
|
|
||||||
warehouse_id
|
|
||||||
)
|
|
||||||
VALUES (idTRABAJADOR,
|
|
||||||
idCAJA,
|
|
||||||
dblIMPORTE,
|
|
||||||
strCONCEPTO,
|
|
||||||
datFEC,
|
|
||||||
'A',
|
|
||||||
TRUE,
|
|
||||||
idCLI,
|
|
||||||
idEMP,
|
|
||||||
idWH
|
|
||||||
);
|
|
||||||
|
|
||||||
-- RECIBO
|
|
||||||
INSERT INTO Recibos(Entregado,
|
|
||||||
Fechacobro,
|
|
||||||
Id_Trabajador,
|
|
||||||
Id_Banco,
|
|
||||||
Id_Cliente,
|
|
||||||
Id_Factura,
|
|
||||||
empresa_id
|
|
||||||
)
|
|
||||||
VALUES ( dblIMPORTE,
|
|
||||||
datFEC,
|
|
||||||
idTRABAJADOR,
|
|
||||||
idCAJA,
|
|
||||||
idCLI,
|
|
||||||
strCONCEPTO,
|
|
||||||
idEMP
|
|
||||||
);
|
|
||||||
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,105 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`confection_control_source`(vDated DATE, vScopeDays TINYINT)
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
DECLARE vMidnight DATETIME DEFAULT TIMESTAMP(vDated,'23:59:59');
|
|
||||||
DECLARE vEndingDate DATETIME DEFAULT TIMESTAMPADD(DAY,vScopeDays,vMidnight);
|
|
||||||
DECLARE maxAlertLevel INT DEFAULT 2;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.production_buffer;
|
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE tmp.production_buffer
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT
|
|
||||||
date(t.Fecha) as Fecha,
|
|
||||||
hour(t.Fecha) as Hora,
|
|
||||||
hour(t.Fecha) as Departure,
|
|
||||||
t.Id_Ticket,
|
|
||||||
m.Id_Movimiento,
|
|
||||||
m.Cantidad,
|
|
||||||
m.Concepte,
|
|
||||||
ABS(m.Reservado) Reservado,
|
|
||||||
i.Categoria,
|
|
||||||
tp.Tipo,
|
|
||||||
t.Alias as Cliente,
|
|
||||||
wh.name as Almacen,
|
|
||||||
t.warehouse_id,
|
|
||||||
cs.province_id,
|
|
||||||
a.agency_id,
|
|
||||||
ct.description as Taller,
|
|
||||||
stock.visible,
|
|
||||||
stock.available
|
|
||||||
FROM vn2008.Tickets t
|
|
||||||
JOIN vn2008.Agencias a ON a.Id_Agencia = t.Id_Agencia
|
|
||||||
JOIN vn.warehouse wh ON wh.id = t.warehouse_id
|
|
||||||
JOIN vn2008.Movimientos m ON m.Id_Ticket = t.Id_Ticket
|
|
||||||
JOIN vn2008.Articles i ON i.Id_Article = m.Id_Article
|
|
||||||
JOIN vn2008.Tipos tp ON tp.tipo_id = i.tipo_id
|
|
||||||
JOIN vn.confectionType ct ON ct.id = tp.confeccion
|
|
||||||
JOIN vn2008.Consignatarios cs on cs.Id_Consigna = t.Id_Consigna
|
|
||||||
LEFT JOIN vn.ticketState tls on tls.ticketFk = t.Id_Ticket
|
|
||||||
LEFT JOIN
|
|
||||||
(
|
|
||||||
SELECT item_id, sum(visible) visible, sum(available) available
|
|
||||||
FROM
|
|
||||||
(
|
|
||||||
SELECT a.item_id, 0 as visible, a.available
|
|
||||||
FROM cache.cache_calc cc
|
|
||||||
LEFT JOIN cache.available a ON a.calc_id = cc.id
|
|
||||||
WHERE cc.cache_id IN (2,8)
|
|
||||||
AND cc.params IN (concat("1/", util.VN_CURDATE()),concat("44/", util.VN_CURDATE()))
|
|
||||||
|
|
||||||
UNION ALL
|
|
||||||
|
|
||||||
SELECT v.item_id, v.visible, 0 as available
|
|
||||||
FROM cache.cache_calc cc
|
|
||||||
LEFT JOIN cache.visible v ON v.calc_id = cc.id
|
|
||||||
where cc.cache_id IN (2,8) and cc.params IN ("1","44")
|
|
||||||
) sub
|
|
||||||
GROUP BY item_id
|
|
||||||
) stock ON stock.item_id = m.Id_Article
|
|
||||||
WHERE tp.confeccion
|
|
||||||
AND tls.alertLevel < maxAlertLevel
|
|
||||||
AND wh.hasConfectionTeam
|
|
||||||
AND t.Fecha BETWEEN vDated AND vEndingDate
|
|
||||||
AND m.Cantidad > 0;
|
|
||||||
|
|
||||||
-- Entradas
|
|
||||||
|
|
||||||
INSERT INTO tmp.production_buffer(
|
|
||||||
Fecha,
|
|
||||||
Id_Ticket,
|
|
||||||
Cantidad,
|
|
||||||
Concepte,
|
|
||||||
Categoria,
|
|
||||||
Cliente,
|
|
||||||
Almacen,
|
|
||||||
Taller
|
|
||||||
)
|
|
||||||
SELECT
|
|
||||||
tr.shipment AS Fecha,
|
|
||||||
e.Id_Entrada AS Id_Ticket,
|
|
||||||
c.Cantidad,
|
|
||||||
a.Article,
|
|
||||||
a.Categoria,
|
|
||||||
whi.name as Cliente,
|
|
||||||
who.name as Almacen,
|
|
||||||
ct.description as Taller
|
|
||||||
FROM vn2008.Compres c
|
|
||||||
JOIN vn2008.Entradas e ON e.Id_Entrada = c.Id_Entrada
|
|
||||||
JOIN vn2008.travel tr ON tr.id = e.travel_id
|
|
||||||
JOIN vn.warehouse whi ON whi.id = tr.warehouse_id
|
|
||||||
JOIN vn.warehouse who ON who.id = tr.warehouse_id_out
|
|
||||||
JOIN vn2008.Articles a ON a.Id_Article = c.Id_Article
|
|
||||||
JOIN vn2008.Tipos tp ON tp.tipo_id = a.tipo_id
|
|
||||||
JOIN vn.confectionType ct ON ct.id = tp.confeccion
|
|
||||||
WHERE who.hasConfectionTeam
|
|
||||||
AND tp.confeccion
|
|
||||||
AND tr.shipment BETWEEN vDated AND vEndingDate;
|
|
||||||
|
|
||||||
|
|
||||||
SELECT * FROM tmp.production_buffer;
|
|
||||||
|
|
||||||
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,49 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`customerDebtEvolution`(IN vCustomer INT)
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
SELECT * FROM
|
|
||||||
(
|
|
||||||
SELECT day, date, @s:= round(IFNULL(Euros,0) + @s,2) as Saldo, Euros, Credito, 0 as Cero
|
|
||||||
FROM
|
|
||||||
(
|
|
||||||
SELECT day, date, IFNULL(Euros,0) as Euros, Credito
|
|
||||||
FROM time
|
|
||||||
JOIN (SELECT @s:= 0, - Credito as Credito FROM Clientes WHERE Id_Cliente = vCustomer) c
|
|
||||||
LEFT JOIN
|
|
||||||
(SELECT Euros, date(Fecha) as Fecha FROM
|
|
||||||
(
|
|
||||||
SELECT Fechacobro as Fecha, Entregado as Euros
|
|
||||||
FROM Recibos
|
|
||||||
WHERE Id_Cliente = vCustomer
|
|
||||||
AND Fechacobro >= '2017-01-01'
|
|
||||||
UNION ALL
|
|
||||||
SELECT vn.getDueDate(io.issued,c.Vencimiento), - io.amount
|
|
||||||
FROM vn.invoiceOut io
|
|
||||||
JOIN Clientes c ON io.clientFk = c.Id_Cliente
|
|
||||||
WHERE io.clientFk = vCustomer
|
|
||||||
AND io.issued >= '2017-01-01'
|
|
||||||
UNION ALL
|
|
||||||
SELECT '2016-12-31', Debt
|
|
||||||
FROM bi.customerDebtInventory
|
|
||||||
WHERE Id_Cliente = vCustomer
|
|
||||||
UNION ALL
|
|
||||||
SELECT Fecha, - SUM(Cantidad * Preu * (100 - Descuento ) * 1.10 / 100)
|
|
||||||
FROM Tickets t
|
|
||||||
JOIN Movimientos m on m.Id_Ticket = t.Id_Ticket
|
|
||||||
WHERE Id_Cliente = vCustomer
|
|
||||||
AND Factura IS NULL
|
|
||||||
AND Fecha >= '2017-01-01'
|
|
||||||
GROUP BY Fecha
|
|
||||||
) sub2
|
|
||||||
ORDER BY Fecha
|
|
||||||
)sub ON time.date = sub.Fecha
|
|
||||||
WHERE time.date BETWEEN '2016-12-31' AND util.VN_CURDATE()
|
|
||||||
ORDER BY date
|
|
||||||
) sub3
|
|
||||||
)sub4
|
|
||||||
;
|
|
||||||
|
|
||||||
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,100 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`emailYesterdayPurchasesByConsigna`(IN v_Date DATE, IN v_Client_Id INT)
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
DECLARE MyIdTicket BIGINT;
|
|
||||||
DECLARE MyAlias VARCHAR(50);
|
|
||||||
DECLARE MyDomicilio VARCHAR(255);
|
|
||||||
DECLARE MyPoblacion VARCHAR(25);
|
|
||||||
DECLARE MyImporte DOUBLE;
|
|
||||||
DECLARE MyMailTo VARCHAR(250);
|
|
||||||
DECLARE MyMailReplyTo VARCHAR(250);
|
|
||||||
DECLARE done INT DEFAULT FALSE;
|
|
||||||
DECLARE emptyList INT DEFAULT 0;
|
|
||||||
DECLARE txt TEXT;
|
|
||||||
|
|
||||||
DECLARE rs CURSOR FOR
|
|
||||||
SELECT t.Id_Ticket, Alias, cast(amount as decimal(10,2)) Importe, Domicilio, POBLACION
|
|
||||||
FROM Tickets t
|
|
||||||
JOIN Consignatarios cs ON t.Id_Consigna = cs.Id_Consigna
|
|
||||||
JOIN (
|
|
||||||
SELECT `Movimientos`.`Id_Ticket` AS `Id_Ticket`,
|
|
||||||
sum(
|
|
||||||
`Movimientos`.`Cantidad` * `Movimientos`.`Preu` * (100 - `Movimientos`.`Descuento`) / 100
|
|
||||||
) AS `amount`
|
|
||||||
FROM (
|
|
||||||
`vn2008`.`Movimientos`
|
|
||||||
JOIN `vn2008`.`Tickets` ON(
|
|
||||||
`Movimientos`.`Id_Ticket` = `Tickets`.`Id_Ticket`
|
|
||||||
)
|
|
||||||
)
|
|
||||||
WHERE `Tickets`.`Fecha` >= `util`.`VN_CURDATE`() + INTERVAL -6 MONTH
|
|
||||||
GROUP BY `Movimientos`.`Id_Ticket`
|
|
||||||
) v ON v.Id_Ticket = t.Id_Ticket
|
|
||||||
WHERE t.Fecha BETWEEN v_Date AND util.dayEnd(v_Date)
|
|
||||||
AND t.Id_Cliente = v_Client_Id;
|
|
||||||
|
|
||||||
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
|
|
||||||
|
|
||||||
SET v_Date = IFNULL(v_Date, util.yesterday());
|
|
||||||
|
|
||||||
OPEN rs;
|
|
||||||
|
|
||||||
FETCH rs INTO MyIdTicket, MyAlias, MyImporte, MyDomicilio, MyPoblacion;
|
|
||||||
|
|
||||||
SET emptyList = done;
|
|
||||||
|
|
||||||
SET txt = CONCAT('<p><font face="verdana" >',
|
|
||||||
'<h2> Relación de envíos.</h2>',
|
|
||||||
'<h3><font color="green">Dia: ', v_Date, '</font></h3>');
|
|
||||||
|
|
||||||
WHILE NOT done DO
|
|
||||||
|
|
||||||
SET txt = CONCAT(txt, '<br><br>',
|
|
||||||
'<table>
|
|
||||||
<tr>
|
|
||||||
<th> <a href = "https://shop.verdnatura.es/#!form=ecomerce/ticket&ticket=',MyIdTicket,'">
|
|
||||||
<font color="green"> Ticket ', MyIdTicket,'</font></th>
|
|
||||||
<th></th><th></th><th></th><th></th>
|
|
||||||
<th></th><th></th><th></th><th></th>
|
|
||||||
<th> <font color="orange"> ', MyImporte, ' € </a></font></th>
|
|
||||||
</tr>
|
|
||||||
</table>'
|
|
||||||
, ' ', MyAlias, '<br>'
|
|
||||||
, ' ', MyDomicilio, '(', MyPoblacion, ')');
|
|
||||||
|
|
||||||
FETCH rs INTO MyIdTicket, MyAlias, MyImporte, MyDomicilio, MyPoblacion;
|
|
||||||
|
|
||||||
END WHILE;
|
|
||||||
|
|
||||||
SET txt = CONCAT(
|
|
||||||
txt,
|
|
||||||
'<table>',
|
|
||||||
'<tr><th></th></tr>',
|
|
||||||
'</table>',
|
|
||||||
'<br><br>Puede acceder al detalle de los albaranes haciendo click sobre el número de Ticket',
|
|
||||||
'<br><h3> Muchas gracias por su confianza</h3>',
|
|
||||||
'</font></p>');
|
|
||||||
|
|
||||||
-- Envío del email
|
|
||||||
IF emptyList = 0 THEN
|
|
||||||
|
|
||||||
SELECT CONCAT(`e-mail`,',pako@verdnatura.es') INTO MyMailTo
|
|
||||||
FROM Clientes
|
|
||||||
WHERE Id_Cliente = v_Client_Id AND `e-mail`>'';
|
|
||||||
|
|
||||||
IF v_Client_Id = 7818 THEN -- LOEWE
|
|
||||||
SET MyMailTo = 'isabel@elisabethblumen.com,emunozca@loewe.es,pako@verdnatura.es';
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL vn.mail_insert(
|
|
||||||
IFNULL(MyMailTo,'pako.natek@gmail.com'),
|
|
||||||
'pako@verdnatura.es',
|
|
||||||
'Resumen de pedidos preparados',
|
|
||||||
txt
|
|
||||||
);
|
|
||||||
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,27 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`emailYesterdayPurchasesLauncher`()
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
DECLARE done INT DEFAULT 0;
|
|
||||||
DECLARE vMyClientId INT;
|
|
||||||
|
|
||||||
DECLARE rs CURSOR FOR
|
|
||||||
SELECT Id_Cliente
|
|
||||||
FROM Clientes
|
|
||||||
WHERE EYPBC != 0;
|
|
||||||
|
|
||||||
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
|
|
||||||
|
|
||||||
OPEN rs;
|
|
||||||
|
|
||||||
FETCH rs INTO vMyClientId;
|
|
||||||
|
|
||||||
WHILE NOT done DO
|
|
||||||
|
|
||||||
CALL emailYesterdayPurchasesByConsigna(util.yesterday(), vMyClientId);
|
|
||||||
|
|
||||||
FETCH rs INTO vMyClientId;
|
|
||||||
|
|
||||||
END WHILE;
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,51 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`embalajes_stocks`(IN idPEOPLE INT, IN bolCLIENT BOOLEAN)
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
if bolCLIENT then
|
|
||||||
|
|
||||||
select m.Id_Article, Article, - cast(sum(m.Cantidad) as decimal) as Saldo
|
|
||||||
from Movimientos m
|
|
||||||
join Articles a on m.Id_Article = a.Id_Article
|
|
||||||
join Tipos tp on tp.tipo_id = a.tipo_id
|
|
||||||
join Tickets t using(Id_Ticket)
|
|
||||||
join Consignatarios cs using(Id_Consigna)
|
|
||||||
where cs.Id_Cliente = idPEOPLE
|
|
||||||
and Tipo = 'Contenedores'
|
|
||||||
and t.Fecha > '2010-01-01'
|
|
||||||
group by m.Id_Article;
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
select Id_Article, Article, sum(Cantidad) as Saldo
|
|
||||||
from
|
|
||||||
(select Id_Article, Cantidad
|
|
||||||
from Compres c
|
|
||||||
join Articles a using(Id_Article)
|
|
||||||
join Tipos tp using(tipo_id)
|
|
||||||
join Entradas e using(Id_Entrada)
|
|
||||||
join travel tr on tr.id = travel_id
|
|
||||||
where Id_Proveedor = idPEOPLE
|
|
||||||
and landing >= '2010-01-01'
|
|
||||||
and reino_id = 6
|
|
||||||
|
|
||||||
union all
|
|
||||||
|
|
||||||
select Id_Article, - Cantidad
|
|
||||||
from Movimientos m
|
|
||||||
join Articles a using(Id_Article)
|
|
||||||
join Tipos tp using(tipo_id)
|
|
||||||
join Tickets t using(Id_Ticket)
|
|
||||||
join Consignatarios cs using(Id_Consigna)
|
|
||||||
join proveedores_clientes pc on pc.Id_Cliente = cs.Id_Cliente
|
|
||||||
where Id_Proveedor = idPEOPLE
|
|
||||||
and reino_id = 6
|
|
||||||
and t.Fecha > '2010-01-01') mov
|
|
||||||
|
|
||||||
join Articles a using(Id_Article)
|
|
||||||
group by Id_Article;
|
|
||||||
|
|
||||||
end if;
|
|
||||||
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,78 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`embalajes_stocks_detalle`(IN idPEOPLE INT, IN idARTICLE INT, IN bolCLIENT BOOLEAN)
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
|
|
||||||
if bolCLIENT then
|
|
||||||
|
|
||||||
select m.Id_Article
|
|
||||||
, Article
|
|
||||||
, IF(Cantidad < 0, - Cantidad, NULL) as Entrada
|
|
||||||
, IF(Cantidad < 0, NULL, Cantidad) as Salida
|
|
||||||
, 'T' as Tabla
|
|
||||||
, t.Id_Ticket as Registro
|
|
||||||
, t.Fecha
|
|
||||||
, w.name as Almacen
|
|
||||||
, cast(Preu as Decimal(5,2)) Precio
|
|
||||||
, c.Cliente as Proveedor
|
|
||||||
, abbreviation as Empresa
|
|
||||||
from Movimientos m
|
|
||||||
join Articles a using(Id_Article)
|
|
||||||
join Tickets t using(Id_Ticket)
|
|
||||||
join empresa e on e.id = t.empresa_id
|
|
||||||
join warehouse w on w.id = t.warehouse_id
|
|
||||||
join Consignatarios cs using(Id_Consigna)
|
|
||||||
join Clientes c on c.Id_Cliente = cs.Id_Cliente
|
|
||||||
where cs.Id_Cliente = idPEOPLE
|
|
||||||
and m.Id_Article = idARTICLE
|
|
||||||
and t.Fecha > '2010-01-01';
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
select Id_Article, Tabla, Registro, Fecha, Article
|
|
||||||
, w.name as Almacen, Entrada, Salida, Proveedor, cast(Precio as Decimal(5,2)) Precio
|
|
||||||
|
|
||||||
from
|
|
||||||
|
|
||||||
(select Id_Article
|
|
||||||
, IF(Cantidad > 0, Cantidad, NULL) as Entrada
|
|
||||||
, IF(Cantidad > 0, NULL,- Cantidad) as Salida
|
|
||||||
, 'E' as Tabla
|
|
||||||
, Id_Entrada as Registro
|
|
||||||
, landing as Fecha
|
|
||||||
, tr.warehouse_id
|
|
||||||
, Costefijo as Precio
|
|
||||||
from Compres c
|
|
||||||
join Entradas e using(Id_Entrada)
|
|
||||||
join travel tr on tr.id = travel_id
|
|
||||||
where Id_Proveedor = idPEOPLE
|
|
||||||
and Id_Article = idARTICLE
|
|
||||||
and landing >= '2010-01-01'
|
|
||||||
|
|
||||||
union all
|
|
||||||
|
|
||||||
select Id_Article
|
|
||||||
, IF(Cantidad < 0, - Cantidad, NULL) as Entrada
|
|
||||||
, IF(Cantidad < 0, NULL, Cantidad) as Salida
|
|
||||||
, 'T'
|
|
||||||
, Id_Ticket
|
|
||||||
, Fecha
|
|
||||||
, t.warehouse_id
|
|
||||||
, Preu
|
|
||||||
from Movimientos m
|
|
||||||
join Tickets t using(Id_Ticket)
|
|
||||||
join Consignatarios cs using(Id_Consigna)
|
|
||||||
join proveedores_clientes pc on pc.Id_Cliente = cs.Id_Cliente
|
|
||||||
where Id_Proveedor = idPEOPLE
|
|
||||||
and Id_Article = idARTICLE
|
|
||||||
and t.Fecha > '2010-01-01') mov
|
|
||||||
|
|
||||||
join Articles a using(Id_Article)
|
|
||||||
join Proveedores p on Id_Proveedor = idPEOPLE
|
|
||||||
join warehouse w on w.id = mov.warehouse_id
|
|
||||||
;
|
|
||||||
|
|
||||||
end if;
|
|
||||||
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,48 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`nest_child_add`(
|
|
||||||
vTable VARCHAR(45)
|
|
||||||
,vChild VARCHAR(45)
|
|
||||||
,vFatherId INT
|
|
||||||
)
|
|
||||||
BEGIN
|
|
||||||
DECLARE vMyLeft INT;
|
|
||||||
|
|
||||||
SET vTable = util.quoteIdentifier(vTable);
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS aux;
|
|
||||||
CREATE TEMPORARY TABLE aux
|
|
||||||
SELECT 0 as lft;
|
|
||||||
|
|
||||||
EXECUTE IMMEDIATE CONCAT(
|
|
||||||
'UPDATE aux
|
|
||||||
SET lft = (SELECT lft
|
|
||||||
FROM ', vTable,
|
|
||||||
' WHERE id = ?)')
|
|
||||||
USING vFatherId;
|
|
||||||
|
|
||||||
SELECT lft INTO vMyLeft FROM aux;
|
|
||||||
DROP TEMPORARY TABLE aux;
|
|
||||||
|
|
||||||
EXECUTE IMMEDIATE CONCAT(
|
|
||||||
'UPDATE ', vTable, '
|
|
||||||
SET rgt = rgt + 2
|
|
||||||
WHERE rgt > ?
|
|
||||||
ORDER BY rgt DESC')
|
|
||||||
USING vMyLeft;
|
|
||||||
|
|
||||||
EXECUTE IMMEDIATE CONCAT(
|
|
||||||
'UPDATE ', vTable, '
|
|
||||||
SET lft = lft + 2
|
|
||||||
WHERE lft > ?
|
|
||||||
ORDER BY lft DESC')
|
|
||||||
USING vMyLeft;
|
|
||||||
|
|
||||||
EXECUTE IMMEDIATE CONCAT(
|
|
||||||
'INSERT INTO ', vTable, ' (name, lft, rgt)
|
|
||||||
VALUES(?, ? + 1, ? + 2)')
|
|
||||||
USING vChild,
|
|
||||||
vMyLeft,
|
|
||||||
vMyLeft;
|
|
||||||
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,51 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`nest_delete`(
|
|
||||||
vTable VARCHAR(45)
|
|
||||||
,vNodeId INT
|
|
||||||
)
|
|
||||||
BEGIN
|
|
||||||
DECLARE vMyRight INT;
|
|
||||||
DECLARE vMyLeft INT;
|
|
||||||
DECLARE vMyWidth INT;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS aux;
|
|
||||||
CREATE TEMPORARY TABLE aux
|
|
||||||
SELECT 0 rgt, 0 lft, 0 wdt;
|
|
||||||
|
|
||||||
SET vTable = util.quoteIdentifier(vTable);
|
|
||||||
|
|
||||||
EXECUTE IMMEDIATE CONCAT(
|
|
||||||
'UPDATE aux a
|
|
||||||
JOIN ', vTable, ' t
|
|
||||||
SET a.rgt = t.rgt,
|
|
||||||
a.lft = t.lft,
|
|
||||||
a.wdt = t.rgt - t.lft + 1
|
|
||||||
WHERE t.id = ?')
|
|
||||||
USING vNodeId;
|
|
||||||
|
|
||||||
SELECT rgt, lft, wdt
|
|
||||||
INTO vMyRight, vMyLeft, vMyWidth
|
|
||||||
FROM aux;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE aux;
|
|
||||||
|
|
||||||
EXECUTE IMMEDIATE CONCAT(
|
|
||||||
'DELETE FROM ', vTable,
|
|
||||||
' WHERE lft BETWEEN ? AND ?')
|
|
||||||
USING vMyLeft, vMyRight;
|
|
||||||
|
|
||||||
EXECUTE IMMEDIATE CONCAT(
|
|
||||||
'UPDATE ', vTable,
|
|
||||||
' SET rgt = rgt - ?
|
|
||||||
WHERE rgt > ?
|
|
||||||
ORDER BY rgt')
|
|
||||||
USING vMyWidth,vMyRight;
|
|
||||||
|
|
||||||
EXECUTE IMMEDIATE CONCAT(
|
|
||||||
'UPDATE ', vTable,
|
|
||||||
' SET lft = lft - ?
|
|
||||||
WHERE lft > ?
|
|
||||||
ORDER BY lft')
|
|
||||||
USING vMyWidth, vMyRight;
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,108 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`nest_move`(
|
|
||||||
vTable VARCHAR(45)
|
|
||||||
,idNODE INT
|
|
||||||
,idFATHER INT
|
|
||||||
)
|
|
||||||
BEGIN
|
|
||||||
DECLARE myRight INT;
|
|
||||||
DECLARE myLeft INT;
|
|
||||||
DECLARE myWidth INT;
|
|
||||||
DECLARE fatherRight INT;
|
|
||||||
DECLARE fatherLeft INT;
|
|
||||||
DECLARE gap INT;
|
|
||||||
|
|
||||||
SET vTable = util.quoteIdentifier(vTable);
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS aux;
|
|
||||||
CREATE TEMPORARY TABLE aux
|
|
||||||
SELECT 0 as rgt, 0 as lft, 0 as wdt, 0 as frg, 0 as flf;
|
|
||||||
|
|
||||||
-- Averiguamos el ancho de la rama
|
|
||||||
EXECUTE IMMEDIATE CONCAT(
|
|
||||||
'UPDATE aux a
|
|
||||||
JOIN ', vTable, ' t
|
|
||||||
SET a.wdt = t.rgt - t.lft + 1
|
|
||||||
WHERE t.id = ?')
|
|
||||||
USING idNODE;
|
|
||||||
|
|
||||||
-- Averiguamos la posicion del nuevo padre
|
|
||||||
EXECUTE IMMEDIATE CONCAT(
|
|
||||||
'UPDATE aux a
|
|
||||||
JOIN ', vTable, ' t
|
|
||||||
SET a.frg = t.rgt,
|
|
||||||
a.flf = t.lft
|
|
||||||
WHERE t.id = ?')
|
|
||||||
USING idFATHER;
|
|
||||||
|
|
||||||
SELECT wdt, frg, flf INTO myWidth, fatherRight, fatherLeft
|
|
||||||
FROM aux;
|
|
||||||
|
|
||||||
-- 1º Incrementamos los valores de todos los nodos a la derecha del punto de inserción (fatherRight) , para hacer sitio
|
|
||||||
EXECUTE IMMEDIATE CONCAT(
|
|
||||||
'UPDATE ', vTable,
|
|
||||||
'SET rgt = rgt + ?
|
|
||||||
WHERE rgt >= ?
|
|
||||||
ORDER BY rgt DESC')
|
|
||||||
USING myWidth,
|
|
||||||
fatherRight;
|
|
||||||
|
|
||||||
EXECUTE IMMEDIATE CONCAT(
|
|
||||||
'UPDATE ', vTable,
|
|
||||||
'SET lft = lft + ?
|
|
||||||
WHERE lft >= ?
|
|
||||||
ORDER BY lft DESC')
|
|
||||||
USING myWidth,
|
|
||||||
fatherRight;
|
|
||||||
|
|
||||||
-- Es preciso recalcular los valores del nodo en el caso de que estuviera a la derecha del nuevo padre
|
|
||||||
EXECUTE IMMEDIATE CONCAT(
|
|
||||||
'UPDATE aux a
|
|
||||||
JOIN ', vTable, ' t
|
|
||||||
SET a.rgt = t.rgt,
|
|
||||||
a.lft = t.lft
|
|
||||||
WHERE t.id = ?')
|
|
||||||
USING idNODE;
|
|
||||||
|
|
||||||
SELECT lft, rgt, frg - lft INTO myLeft, myRight, gap
|
|
||||||
FROM aux;
|
|
||||||
|
|
||||||
-- 2º Incrementamos el valor de todos los nodos a trasladar hasta alcanzar su nueva posicion
|
|
||||||
EXECUTE IMMEDIATE CONCAT(
|
|
||||||
'UPDATE ', vTable,
|
|
||||||
'SET lft = lft + ?
|
|
||||||
WHERE lft BETWEEN ? AND ?
|
|
||||||
ORDER BY lft DESC')
|
|
||||||
USING gap,
|
|
||||||
myLeft,
|
|
||||||
myRight;
|
|
||||||
|
|
||||||
EXECUTE IMMEDIATE CONCAT(
|
|
||||||
'UPDATE ', vTable,
|
|
||||||
'SET rgt = rgt + ?
|
|
||||||
WHERE rgt BETWEEN ? AND ?
|
|
||||||
ORDER BY rgt DESC')
|
|
||||||
USING gap,
|
|
||||||
myLeft,
|
|
||||||
myRight;
|
|
||||||
|
|
||||||
-- 3º Restaremos a todos los nodos resultantes, a la derecha de la posicion arrancada el ancho de la rama escindida
|
|
||||||
EXECUTE IMMEDIATE CONCAT(
|
|
||||||
'UPDATE ', vTable,
|
|
||||||
'SET lft = lft - ?
|
|
||||||
WHERE lft > ?
|
|
||||||
ORDER BY lft')
|
|
||||||
USING myWidth,
|
|
||||||
myLeft;
|
|
||||||
|
|
||||||
EXECUTE IMMEDIATE CONCAT(
|
|
||||||
'UPDATE ', vTable,
|
|
||||||
'SET rgt = rgt - ?
|
|
||||||
WHERE rgt > ?
|
|
||||||
ORDER BY rgt')
|
|
||||||
USING myWidth,
|
|
||||||
myRight;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE aux;
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,67 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`pay`(IN datFEC DATE
|
|
||||||
, IN idPROV INT
|
|
||||||
, IN dblIMPORTE DOUBLE
|
|
||||||
, IN idMONEDA INT
|
|
||||||
, IN dblDIVISA DOUBLE
|
|
||||||
, IN idCAJA INT
|
|
||||||
, IN idPAYMET INT
|
|
||||||
, IN dblGASTOS DOUBLE
|
|
||||||
, IN strCONCEPTO VARCHAR(40)
|
|
||||||
, IN idEMP INT)
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
-- Registro en la tabla Cajas
|
|
||||||
INSERT INTO Cajas ( Concepto
|
|
||||||
, Serie
|
|
||||||
, Numero
|
|
||||||
, Salida
|
|
||||||
, Cajafecha
|
|
||||||
, Partida
|
|
||||||
, Id_Banco
|
|
||||||
, Id_Trabajador
|
|
||||||
,empresa_id
|
|
||||||
,conciliado)
|
|
||||||
|
|
||||||
SELECT CONCAT('n/pago a ', Proveedor)
|
|
||||||
, 'R'
|
|
||||||
, idPROV
|
|
||||||
, dblIMPORTE
|
|
||||||
, datFEC
|
|
||||||
, 1
|
|
||||||
, idCAJA
|
|
||||||
, account.myUser_getId()
|
|
||||||
, idEMP
|
|
||||||
, 1
|
|
||||||
FROM Proveedores
|
|
||||||
WHERE Id_Proveedor = idPROV;
|
|
||||||
|
|
||||||
-- Registro en la tabla pago
|
|
||||||
INSERT INTO pago(fecha
|
|
||||||
, dueDated
|
|
||||||
, id_proveedor
|
|
||||||
, importe
|
|
||||||
, id_moneda
|
|
||||||
, divisa
|
|
||||||
, id_banco
|
|
||||||
, pay_met_id
|
|
||||||
, g_bancarios
|
|
||||||
, concepte
|
|
||||||
, empresa_id)
|
|
||||||
|
|
||||||
VALUES(datFEC
|
|
||||||
, datFEC
|
|
||||||
, idPROV
|
|
||||||
, dblIMPORTE
|
|
||||||
, idMONEDA
|
|
||||||
, IF(dblDIVISA = 0, NULL, dblDIVISA)
|
|
||||||
, idCAJA
|
|
||||||
, idPAYMET
|
|
||||||
, dblGASTOS
|
|
||||||
, strCONCEPTO
|
|
||||||
, idEMP);
|
|
||||||
|
|
||||||
SELECT LAST_INSERT_ID() as pago_id;
|
|
||||||
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,22 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`preOrdenarRuta`(IN vRutaId INT)
|
|
||||||
BEGIN
|
|
||||||
/* Usa los valores del ultimo año para adivinar el orden de los tickets en la ruta
|
|
||||||
* vRutaId id ruta
|
|
||||||
* DEPRECATED use vn.routeGressPriority
|
|
||||||
*/
|
|
||||||
|
|
||||||
UPDATE Tickets mt
|
|
||||||
JOIN (
|
|
||||||
SELECT tt.Id_Consigna, round(ifnull(avg(t.Prioridad),0),0) as Prioridad
|
|
||||||
from Tickets t
|
|
||||||
JOIN Tickets tt on tt.Id_Consigna = t.Id_Consigna
|
|
||||||
where t.Fecha > TIMESTAMPADD(YEAR,-1,util.VN_CURDATE())
|
|
||||||
AND tt.Id_Ruta = vRutaId
|
|
||||||
GROUP BY Id_Consigna
|
|
||||||
) sub ON sub.Id_Consigna = mt.Id_Consigna
|
|
||||||
SET mt.Prioridad = sub.Prioridad
|
|
||||||
WHERE mt.Id_Ruta = vRutaId;
|
|
||||||
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,22 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`prepare_ticket_list`(vStartingDate DATETIME, vEndingDate DATETIME)
|
|
||||||
BEGIN
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.ticket_list;
|
|
||||||
CREATE TEMPORARY TABLE tmp.ticket_list
|
|
||||||
(PRIMARY KEY (Id_Ticket))
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT t.Id_Ticket, c.Id_Cliente
|
|
||||||
FROM Tickets t
|
|
||||||
LEFT JOIN vn.ticketState ts ON ts.ticketFk = t.Id_Ticket
|
|
||||||
JOIN Clientes c ON c.Id_Cliente = t.Id_Cliente
|
|
||||||
WHERE c.typeFk IN ('normal','handMaking','internalUse')
|
|
||||||
AND (
|
|
||||||
Fecha BETWEEN util.today() AND vEndingDate
|
|
||||||
OR (
|
|
||||||
ts.alertLevel < 3
|
|
||||||
AND t.Fecha >= vStartingDate
|
|
||||||
AND t.Fecha < util.today()
|
|
||||||
)
|
|
||||||
);
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,39 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`recibidaIvaInsert`(IN vId INT)
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
DECLARE vRate DOUBLE DEFAULT 1;
|
|
||||||
DECLARE vDated DATE;
|
|
||||||
|
|
||||||
SELECT MAX(rr.date) INTO vDated
|
|
||||||
FROM reference_rate rr
|
|
||||||
JOIN recibida r ON r.id = vId
|
|
||||||
WHERE rr.date <= r.fecha
|
|
||||||
AND rr.moneda_id = r.moneda_id ;
|
|
||||||
|
|
||||||
IF vDated THEN
|
|
||||||
|
|
||||||
SELECT rate INTO vRate
|
|
||||||
FROM reference_rate
|
|
||||||
WHERE `date` = vDated;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
DELETE FROM recibida_iva WHERE recibida_id = vId;
|
|
||||||
|
|
||||||
INSERT INTO recibida_iva(recibida_id, bi, gastos_id, divisa, taxTypeSageFk, transactionTypeSageFk)
|
|
||||||
SELECT r.id,
|
|
||||||
SUM(Costefijo * Cantidad) / IFNULL(vRate,1) bi,
|
|
||||||
6003000000,
|
|
||||||
IF(r.moneda_id = 1,NULL,SUM(Costefijo * Cantidad )) divisa,
|
|
||||||
taxTypeSageFk,
|
|
||||||
transactionTypeSageFk
|
|
||||||
FROM recibida r
|
|
||||||
JOIN Entradas e ON e.recibida_id = r.id
|
|
||||||
JOIN Proveedores p ON p.Id_Proveedor = e.Id_Proveedor
|
|
||||||
JOIN Compres c ON c.Id_Entrada = e.Id_Entrada
|
|
||||||
LEFT JOIN reference_rate rr ON rr.moneda_id = r.moneda_id AND rr.date = r.fecha
|
|
||||||
WHERE r.id = vId
|
|
||||||
HAVING bi IS NOT NULL;
|
|
||||||
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,11 +1,11 @@
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost`
|
CREATE OR REPLACE DEFINER=`root`@`localhost`
|
||||||
SQL SECURITY DEFINER
|
SQL SECURITY DEFINER
|
||||||
VIEW `vn2008`.`Bancos`
|
VIEW `vn2008`.`Bancos`
|
||||||
AS SELECT `b`.`id` AS `Id_Banco`,
|
AS SELECT `a`.`id` AS `Id_Banco`,
|
||||||
`b`.`bank` AS `Banco`,
|
`a`.`bank` AS `Banco`,
|
||||||
`b`.`account` AS `Cuenta`,
|
`a`.`account` AS `Cuenta`,
|
||||||
`b`.`cash` AS `cash`,
|
`a`.`accountingTypeFk` AS `cash`,
|
||||||
`b`.`entityFk` AS `entity_id`,
|
`a`.`entityFk` AS `entity_id`,
|
||||||
`b`.`isActive` AS `activo`,
|
`a`.`isActive` AS `activo`,
|
||||||
`b`.`currencyFk` AS `currencyFk`
|
`a`.`currencyFk` AS `currencyFk`
|
||||||
FROM `vn`.`bank` `b`
|
FROM `vn`.`accounting` `a`
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
INSERT INTO `salix`.`ACL` (model, property, accessType, permission, principalType, principalId)
|
||||||
|
VALUES
|
||||||
|
('Collection', 'assign', 'WRITE', 'ALLOW', 'ROLE', 'production'),
|
||||||
|
('ExpeditionPallet', 'getPallet', 'READ', 'ALLOW', 'ROLE', 'production'),
|
||||||
|
('MachineWorker','updateInTime','WRITE','ALLOW','ROLE','production'),
|
||||||
|
('MobileAppVersionControl','getVersion','READ','ALLOW','ROLE','production'),
|
||||||
|
('SaleTracking','delete','WRITE','ALLOW','ROLE','production'),
|
||||||
|
('SaleTracking','updateTracking','WRITE','ALLOW','ROLE','production'),
|
||||||
|
('SaleTracking','setPicked','WRITE','ALLOW','ROLE','production'),
|
||||||
|
('ExpeditionPallet', '*', 'READ', 'ALLOW', 'ROLE', 'production'),
|
||||||
|
('Sale', 'getFromSectorCollection', 'READ', 'ALLOW', 'ROLE', 'production'),
|
||||||
|
('ItemBarcode', 'delete', 'WRITE', 'ALLOW', 'ROLE', 'production');
|
|
@ -0,0 +1,36 @@
|
||||||
|
USE vn;
|
||||||
|
|
||||||
|
CREATE OR REPLACE TABLE vn.workerActivityType (
|
||||||
|
`code` varchar(20) NOT NULL,
|
||||||
|
`description` varchar(45) NOT NULL,
|
||||||
|
PRIMARY KEY (`code`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
|
||||||
|
|
||||||
|
ALTER TABLE vn.department ADD workerActivityTypeFk varchar(20) NULL COMMENT 'Indica la actitividad que desempeña por defecto ese departamento';
|
||||||
|
ALTER TABLE vn.department ADD CONSTRAINT department_workerActivityType_FK FOREIGN KEY (workerActivityTypeFk) REFERENCES vn.workerActivityType(code) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO vn.workerActivityType (code, description) VALUES('ON_CHECKING', 'REVISION');
|
||||||
|
INSERT INTO vn.workerActivityType (code, description) VALUES('PREVIOUS_CAM', 'CAMARA');
|
||||||
|
INSERT INTO vn.workerActivityType (code, description) VALUES('PREVIOUS_ART', 'ARTIFICIAL');
|
||||||
|
INSERT INTO vn.workerActivityType (code, description) VALUES('ON_PREPARATION', 'SACADO');
|
||||||
|
INSERT INTO vn.workerActivityType (code, description) VALUES('PACKING', 'ENCAJADO');
|
||||||
|
INSERT INTO vn.workerActivityType (code, description) VALUES('FIELD', 'CAMPOS');
|
||||||
|
INSERT INTO vn.workerActivityType (code, description) VALUES('DELIVERY', 'REPARTO');
|
||||||
|
INSERT INTO vn.workerActivityType (code, description) VALUES('STORAGE', 'ALMACENAJE');
|
||||||
|
INSERT INTO vn.workerActivityType (code, description) VALUES('PALLETIZING', 'PALETIZADO');
|
||||||
|
INSERT INTO vn.workerActivityType (code, description) VALUES('STOP', 'PARADA');
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO salix.ACL ( model, property, accessType, permission, principalType, principalId) VALUES('WorkerActivityType', '*', 'READ', 'ALLOW', 'ROLE', 'production');
|
||||||
|
INSERT INTO salix.ACL ( model, property, accessType, permission, principalType, principalId) VALUES('WorkerActivity', '*', '*', 'ALLOW', 'ROLE', 'production');
|
||||||
|
|
||||||
|
|
||||||
|
ALTER TABLE vn.workerActivity MODIFY COLUMN event enum('open','close','insert','delete','update','refresh') CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL;
|
||||||
|
ALTER TABLE vn.workerActivity MODIFY COLUMN model enum('COM','ENT','TPV','ENC','LAB','ETI','APP') CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL;
|
||||||
|
|
||||||
|
|
||||||
|
ALTER TABLE vn.workerActivity ADD workerActivityTypeFk varchar(20) NULL;
|
||||||
|
ALTER TABLE vn.workerActivity ADD CONSTRAINT workerActivity_workerActivityType_FK FOREIGN KEY (workerActivityTypeFk) REFERENCES vn.workerActivityType(code) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
-- Place your SQL code here
|
||||||
|
RENAME TABLE IF EXISTS vn.claimRma TO vn.claimRma__;
|
||||||
|
ALTER TABLE IF EXISTS vn.claimRma__ COMMENT='kkeada el 2024-02-26 por Pablo';
|
||||||
|
ALTER TABLE vn.claim CHANGE IF EXISTS rma rma__ varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL NULL;
|
|
@ -0,0 +1,2 @@
|
||||||
|
DELETE IGNORE FROM bs.nightTask
|
||||||
|
WHERE `procedure` = 'clean_launcher';
|
|
@ -0,0 +1,2 @@
|
||||||
|
DELETE FROM bs.nightTask
|
||||||
|
WHERE `procedure` = 'emailYesterdayPurchasesLauncher';
|
|
@ -0,0 +1,60 @@
|
||||||
|
CREATE OR REPLACE TABLE vn.parkingLog (
|
||||||
|
|
||||||
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
|
||||||
|
`originFk` int(11) DEFAULT NULL,
|
||||||
|
|
||||||
|
`userFk` int(10) unsigned DEFAULT NULL,
|
||||||
|
|
||||||
|
`action` set('insert','update','delete','select') NOT NULL,
|
||||||
|
|
||||||
|
`creationDate` timestamp NULL DEFAULT current_timestamp(),
|
||||||
|
|
||||||
|
`description` text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
|
||||||
|
|
||||||
|
`changedModel` enum('Parking','SaleGroup','SaleGroupDetail') NOT NULL DEFAULT 'Parking',
|
||||||
|
|
||||||
|
`oldInstance` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`oldInstance`)),
|
||||||
|
|
||||||
|
`newInstance` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`newInstance`)),
|
||||||
|
|
||||||
|
`changedModelId` int(11) NOT NULL,
|
||||||
|
|
||||||
|
`changedModelValue` varchar(45) DEFAULT NULL,
|
||||||
|
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
|
||||||
|
KEY `logParkinguserFk` (`userFk`),
|
||||||
|
|
||||||
|
KEY `parkingLog_changedModel` (`changedModel`,`changedModelId`,`creationDate`),
|
||||||
|
|
||||||
|
KEY `parkingLog_originFk` (`originFk`,`creationDate`),
|
||||||
|
|
||||||
|
CONSTRAINT `parkingOriginFk` FOREIGN KEY (`originFk`) REFERENCES `parking` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
|
|
||||||
|
CONSTRAINT `parkingUserFk` FOREIGN KEY (`userFk`) REFERENCES `account`.`user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
|
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
|
||||||
|
|
||||||
|
ALTER TABLE vn.parking DROP COLUMN IF EXISTS editorFk;
|
||||||
|
ALTER TABLE IF EXISTS vn.parking ADD COLUMN editorFk INT;
|
||||||
|
|
||||||
|
ALTER TABLE vn.saleGroupDetail DROP COLUMN IF EXISTS editorFk;
|
||||||
|
ALTER TABLE IF EXISTS vn.saleGroupDetail ADD COLUMN editorFk INT;
|
||||||
|
|
||||||
|
|
||||||
|
ALTER TABLE vn.ticketLog
|
||||||
|
MODIFY COLUMN changedModel ENUM(
|
||||||
|
'Ticket',
|
||||||
|
'Sale',
|
||||||
|
'TicketWeekly',
|
||||||
|
'TicketTracking',
|
||||||
|
'TicketService',
|
||||||
|
'TicketRequest',
|
||||||
|
'TicketRefund',
|
||||||
|
'TicketPackaging',
|
||||||
|
'TicketObservation',
|
||||||
|
'TicketDms',
|
||||||
|
'Expedition',
|
||||||
|
'Sms'
|
||||||
|
) NOT NULL DEFAULT 'Ticket';
|
|
@ -0,0 +1,2 @@
|
||||||
|
INSERT INTO salix.ACL (model, property, accessType, permission, principalType, principalId)
|
||||||
|
VALUES ('ParkingLog', '*', 'READ', 'ALLOW', 'ROLE', 'employee');
|
|
@ -0,0 +1,31 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`balanceNestTree_addChild`()
|
||||||
|
BEGIN
|
||||||
|
SELECT 1;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
||||||
|
GRANT EXECUTE ON PROCEDURE vn.balanceNestTree_addChild TO adminBoss;
|
||||||
|
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`balanceNestTree_delete`()
|
||||||
|
BEGIN
|
||||||
|
SELECT 1;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
||||||
|
GRANT EXECUTE ON PROCEDURE vn.balanceNestTree_delete TO adminBoss;
|
||||||
|
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`balanceNestTree_move`()
|
||||||
|
BEGIN
|
||||||
|
SELECT 1;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
||||||
|
GRANT EXECUTE ON PROCEDURE vn.balanceNestTree_move TO adminBoss;
|
||||||
|
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`payment_add`()
|
||||||
|
BEGIN
|
||||||
|
SELECT 1;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
||||||
|
GRANT EXECUTE ON PROCEDURE vn.payment_add TO financial;
|
|
@ -0,0 +1,15 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`confection_controlSource`()
|
||||||
|
BEGIN
|
||||||
|
SELECT 1;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
||||||
|
GRANT EXECUTE ON PROCEDURE vn.confection_controlSource TO handmadeBoss, productionAssi, artificialBoss;
|
||||||
|
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`remittance_calc`()
|
||||||
|
BEGIN
|
||||||
|
SELECT 1;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
||||||
|
GRANT EXECUTE ON PROCEDURE vn.remittance_calc TO financial;
|
|
@ -0,0 +1,8 @@
|
||||||
|
UPDATE vn.claim c
|
||||||
|
JOIN vn.claimState cs ON cs.id = c.claimStateFk
|
||||||
|
JOIN vn.claimState ns ON ns.code = 'resolved'
|
||||||
|
SET c.claimStateFk = ns.id
|
||||||
|
WHERE cs.code IN ('managed', 'mana', 'lack', 'relocation');
|
||||||
|
|
||||||
|
DELETE FROM vn.claimState
|
||||||
|
WHERE code IN ('managed', 'mana', 'lack', 'relocation');
|
|
@ -0,0 +1,5 @@
|
||||||
|
REVOKE SELECT ON TABLE vn.bank FROM administrative, hr;
|
||||||
|
GRANT SELECT ON TABLE vn.accounting TO administrative, hr;
|
||||||
|
UPDATE salix.ACL
|
||||||
|
SET model = 'Accounting'
|
||||||
|
WHERE model = 'Bank';
|
|
@ -0,0 +1,2 @@
|
||||||
|
-- Place your SQL code here
|
||||||
|
ALTER TABLE dipole.expedition_PrintOut MODIFY COLUMN street varchar(42) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT ' ' NOT NULL;
|
|
@ -21,7 +21,7 @@ describe('Claim edit basic data path', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it(`should edit claim state and observation fields`, async() => {
|
it(`should edit claim state and observation fields`, async() => {
|
||||||
await page.autocompleteSearch(selectors.claimBasicData.claimState, 'Gestionado');
|
await page.autocompleteSearch(selectors.claimBasicData.claimState, 'Resuelto');
|
||||||
await page.clearInput(selectors.claimBasicData.packages);
|
await page.clearInput(selectors.claimBasicData.packages);
|
||||||
await page.write(selectors.claimBasicData.packages, '2');
|
await page.write(selectors.claimBasicData.packages, '2');
|
||||||
await page.waitToClick(selectors.claimBasicData.saveButton);
|
await page.waitToClick(selectors.claimBasicData.saveButton);
|
||||||
|
@ -48,7 +48,7 @@ describe('Claim edit basic data path', () => {
|
||||||
await page.waitForSelector(selectors.claimBasicData.claimState);
|
await page.waitForSelector(selectors.claimBasicData.claimState);
|
||||||
const result = await page.waitToGetProperty(selectors.claimBasicData.claimState, 'value');
|
const result = await page.waitToGetProperty(selectors.claimBasicData.claimState, 'value');
|
||||||
|
|
||||||
expect(result).toEqual('Gestionado');
|
expect(result).toEqual('Resuelto');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should confirm the "is paid with mana" and "Pick up" checkbox are checked', async() => {
|
it('should confirm the "is paid with mana" and "Pick up" checkbox are checked', async() => {
|
||||||
|
|
|
@ -58,7 +58,7 @@
|
||||||
label="Local bank"
|
label="Local bank"
|
||||||
id="localBank"
|
id="localBank"
|
||||||
ng-model="$ctrl.localBankFk"
|
ng-model="$ctrl.localBankFk"
|
||||||
url="Banks"
|
url="Accountings"
|
||||||
select-fields="['id','bank']"
|
select-fields="['id','bank']"
|
||||||
show-field="bank"
|
show-field="bank"
|
||||||
order="id"
|
order="id"
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
// For a detailed explanation regarding each configuration property, visit:
|
// For a detailed explanation regarding each configuration property, visit:
|
||||||
// https://jestjs.io/docs/en/configuration.html
|
// https://jestjs.io/docs/en/configuration.html
|
||||||
/* eslint max-len: ["error", { "code": 150 }]*/
|
/* eslint max-len: ["error", { "code": 150 }]*/
|
||||||
|
const cpus = require('os').cpus().length;
|
||||||
|
const maxCpus = Math.floor(cpus * 0.45);
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'front end',
|
name: 'front end',
|
||||||
|
@ -12,6 +14,7 @@ module.exports = {
|
||||||
setupFilesAfterEnv: [
|
setupFilesAfterEnv: [
|
||||||
'./front/jest-setup.js'
|
'./front/jest-setup.js'
|
||||||
],
|
],
|
||||||
|
maxWorkers: maxCpus,
|
||||||
testMatch: [
|
testMatch: [
|
||||||
'**/front/**/*.spec.js',
|
'**/front/**/*.spec.js',
|
||||||
'**/print/**/*.spec.js',
|
'**/print/**/*.spec.js',
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
const LoopBackContext = require('loopback-context');
|
const LoopBackContext = require('loopback-context');
|
||||||
async function handleObserve(ctx) {
|
async function handleObserve(ctx) {
|
||||||
ctx.options.httpCtx = LoopBackContext.getCurrentContext();
|
const httpCtx = LoopBackContext.getCurrentContext();
|
||||||
|
ctx.options.userId = httpCtx?.active?.accessToken?.userId;
|
||||||
}
|
}
|
||||||
module.exports = function(Self) {
|
module.exports = function(Self) {
|
||||||
let Mixin = {
|
let Mixin = {
|
||||||
|
|
|
@ -209,5 +209,16 @@
|
||||||
"You cannot update these fields": "You cannot update these fields",
|
"You cannot update these fields": "You cannot update these fields",
|
||||||
"CountryFK cannot be empty": "Country cannot be empty",
|
"CountryFK cannot be empty": "Country cannot be empty",
|
||||||
"You are not allowed to modify the alias": "You are not allowed to modify the alias",
|
"You are not allowed to modify the alias": "You are not allowed to modify the alias",
|
||||||
"You already have the mailAlias": "You already have the mailAlias"
|
"You already have the mailAlias": "You already have the mailAlias",
|
||||||
|
"This machine is already in use.": "This machine is already in use.",
|
||||||
|
"the plate does not exist": "The plate {{plate}} does not exist",
|
||||||
|
"We do not have availability for the selected item": "We do not have availability for the selected item",
|
||||||
|
"You are already using a machine": "You are already using a machine",
|
||||||
|
"this state does not exist": "This state does not exist",
|
||||||
|
"The line could not be marked": "The line could not be marked",
|
||||||
|
"The sale cannot be tracked": "The sale cannot be tracked",
|
||||||
|
"Shelving not valid": "Shelving not valid",
|
||||||
|
"printerNotExists": "The printer does not exist",
|
||||||
|
"There are not picking tickets": "There are not picking tickets",
|
||||||
|
"ticketCommercial": "The ticket {{ ticket }} for the salesperson {{ salesMan }} is in preparation. (automatically generated message)"
|
||||||
}
|
}
|
||||||
|
|
|
@ -324,7 +324,6 @@
|
||||||
"The response is not a PDF": "La respuesta no es un PDF",
|
"The response is not a PDF": "La respuesta no es un PDF",
|
||||||
"Booking completed": "Reserva completada",
|
"Booking completed": "Reserva completada",
|
||||||
"The ticket is in preparation": "El ticket [{{ticketId}}]({{{ticketUrl}}}) del comercial {{salesPersonId}} está en preparación",
|
"The ticket is in preparation": "El ticket [{{ticketId}}]({{{ticketUrl}}}) del comercial {{salesPersonId}} está en preparación",
|
||||||
"Incoterms data for consignee is missing": "Faltan los datos de los Incoterms para el consignatario",
|
|
||||||
"The notification subscription of this worker cant be modified": "La subscripción a la notificación de este trabajador no puede ser modificada",
|
"The notification subscription of this worker cant be modified": "La subscripción a la notificación de este trabajador no puede ser modificada",
|
||||||
"User disabled": "Usuario desactivado",
|
"User disabled": "Usuario desactivado",
|
||||||
"The amount cannot be less than the minimum": "La cantidad no puede ser menor que la cantidad mínima",
|
"The amount cannot be less than the minimum": "La cantidad no puede ser menor que la cantidad mínima",
|
||||||
|
|
|
@ -275,7 +275,7 @@ class VnMySQL extends MySQL {
|
||||||
}
|
}
|
||||||
|
|
||||||
invokeMethod(method, args, model, ctx, opts, cb) {
|
invokeMethod(method, args, model, ctx, opts, cb) {
|
||||||
if (!this.isLoggable(model))
|
if (!this.isLoggable(model) && !opts?.userId)
|
||||||
return super[method].apply(this, args);
|
return super[method].apply(this, args);
|
||||||
|
|
||||||
this.invokeMethodP(method, [...args], model, ctx, opts)
|
this.invokeMethodP(method, [...args], model, ctx, opts)
|
||||||
|
@ -287,11 +287,11 @@ class VnMySQL extends MySQL {
|
||||||
let tx;
|
let tx;
|
||||||
if (!opts.transaction) {
|
if (!opts.transaction) {
|
||||||
tx = await Transaction.begin(this, {});
|
tx = await Transaction.begin(this, {});
|
||||||
opts = Object.assign({transaction: tx, httpCtx: opts.httpCtx}, opts);
|
opts = Object.assign({transaction: tx}, opts);
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const userId = opts.httpCtx && opts.httpCtx.active?.accessToken?.userId;
|
const {userId} = opts;
|
||||||
if (userId) {
|
if (userId) {
|
||||||
const user = await Model.app.models.VnUser.findById(userId, {fields: ['name']}, opts);
|
const user = await Model.app.models.VnUser.findById(userId, {fields: ['name']}, opts);
|
||||||
await this.executeP(`CALL account.myUser_loginWithName(?)`, [user.name], opts);
|
await this.executeP(`CALL account.myUser_loginWithName(?)`, [user.name], opts);
|
||||||
|
|
|
@ -3,7 +3,6 @@ module.exports = function(iban, countryCode) {
|
||||||
if (typeof iban != 'string') return false;
|
if (typeof iban != 'string') return false;
|
||||||
if (countryCode?.toLowerCase() != 'es') return true;
|
if (countryCode?.toLowerCase() != 'es') return true;
|
||||||
|
|
||||||
iban = iban.toUpperCase();
|
|
||||||
iban = trim(iban);
|
iban = trim(iban);
|
||||||
iban = iban.replace(/\s/g, '');
|
iban = iban.replace(/\s/g, '');
|
||||||
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue