Merge branch 'dev' into 7190_renewTokenMultimedia
gitea/salix/pipeline/pr-dev This commit looks good
Details
gitea/salix/pipeline/pr-dev This commit looks good
Details
This commit is contained in:
commit
83d89d13ad
|
@ -5,7 +5,9 @@ All notable changes to this project will be documented in this file.
|
||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
## [24.18.01] - 2024-05-02
|
## [24.20.01] - 2024-05-14
|
||||||
|
|
||||||
|
## [24.18.01] - 2024-05-07
|
||||||
|
|
||||||
## [24.16.01] - 2024-04-18
|
## [24.16.01] - 2024-04-18
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@ module.exports = Self => {
|
||||||
path: `/:id/downloadFile`,
|
path: `/:id/downloadFile`,
|
||||||
verb: 'GET'
|
verb: 'GET'
|
||||||
},
|
},
|
||||||
accessScopes: ['read:multimedia']
|
accessScopes: ['DEFAULT', 'read:multimedia']
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.downloadFile = async function(ctx, id) {
|
Self.downloadFile = async function(ctx, id) {
|
||||||
|
|
|
@ -43,7 +43,7 @@ module.exports = Self => {
|
||||||
path: `/:id/download`,
|
path: `/:id/download`,
|
||||||
verb: 'GET'
|
verb: 'GET'
|
||||||
},
|
},
|
||||||
accessScopes: ['read:multimedia']
|
accessScopes: ['DEFAULT', 'read:multimedia']
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.download = async function(id, fileCabinet, filter) {
|
Self.download = async function(id, fileCabinet, filter) {
|
||||||
|
|
|
@ -48,7 +48,7 @@ module.exports = Self => {
|
||||||
path: `/:collection/:size/:id/download`,
|
path: `/:collection/:size/:id/download`,
|
||||||
verb: 'GET'
|
verb: 'GET'
|
||||||
},
|
},
|
||||||
accessScopes: ['read:multimedia']
|
accessScopes: ['DEFAULT', 'read:multimedia']
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.download = async function(ctx, collection, size, id) {
|
Self.download = async function(ctx, collection, size, id) {
|
||||||
|
|
|
@ -28,6 +28,9 @@ describe('Renew Token', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should renew token', async() => {
|
it('should renew token', async() => {
|
||||||
|
const {courtesyTime} = await models.AccessTokenConfig.findOne({
|
||||||
|
fields: ['courtesyTime']
|
||||||
|
});
|
||||||
const mockDate = new Date(startingTime + 26600000);
|
const mockDate = new Date(startingTime + 26600000);
|
||||||
jasmine.clock().mockDate(mockDate);
|
jasmine.clock().mockDate(mockDate);
|
||||||
const {id} = await models.VnUser.renewToken(ctx);
|
const {id} = await models.VnUser.renewToken(ctx);
|
||||||
|
@ -35,7 +38,7 @@ describe('Renew Token', () => {
|
||||||
expect(id).not.toEqual(ctx.req.accessToken.id);
|
expect(id).not.toEqual(ctx.req.accessToken.id);
|
||||||
|
|
||||||
await models.VnUser.logout(ctx.req.accessToken.id);
|
await models.VnUser.logout(ctx.req.accessToken.id);
|
||||||
jasmine.clock().tick(70 * 1000);
|
jasmine.clock().tick((courtesyTime + 10) * 1000);
|
||||||
let tokenNotExists;
|
let tokenNotExists;
|
||||||
try {
|
try {
|
||||||
tokenNotExists = await models.AccessToken.findById(ctx.req.accessToken.id);
|
tokenNotExists = await models.AccessToken.findById(ctx.req.accessToken.id);
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
# EditorConfig helps developers define and maintain consistent
|
||||||
|
# coding styles between different editors and IDEs
|
||||||
|
# http://editorconfig.org
|
||||||
|
|
||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
indent_style = tab
|
||||||
|
indent_size = 4
|
||||||
|
end_of_line = lf
|
||||||
|
charset = utf-8
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
insert_final_newline = true
|
|
@ -527,7 +527,8 @@ INSERT INTO `vn`.`observationType`(`id`,`description`, `code`)
|
||||||
(4, 'SalesPerson', 'salesPerson'),
|
(4, 'SalesPerson', 'salesPerson'),
|
||||||
(5, 'Administrative', 'administrative'),
|
(5, 'Administrative', 'administrative'),
|
||||||
(6, 'Weight', 'weight'),
|
(6, 'Weight', 'weight'),
|
||||||
(7, 'InvoiceOut', 'invoiceOut');
|
(7, 'InvoiceOut', 'invoiceOut'),
|
||||||
|
(8, 'DropOff', 'dropOff');
|
||||||
|
|
||||||
INSERT INTO `vn`.`addressObservation`(`id`,`addressFk`,`observationTypeFk`,`description`)
|
INSERT INTO `vn`.`addressObservation`(`id`,`addressFk`,`observationTypeFk`,`description`)
|
||||||
VALUES
|
VALUES
|
||||||
|
@ -2615,16 +2616,32 @@ INSERT INTO `vn`.`invoiceInIntrastat` (`invoiceInFk`, `net`, `intrastatFk`, `amo
|
||||||
(2, 16.10, 6021010, 25.00, 80, 5);
|
(2, 16.10, 6021010, 25.00, 80, 5);
|
||||||
|
|
||||||
UPDATE `vn`.`invoiceIn`
|
UPDATE `vn`.`invoiceIn`
|
||||||
SET isBooked = TRUE
|
SET isBooked = TRUE
|
||||||
WHERE id IN (2, 5, 7, 8, 9, 10);
|
WHERE id IN (5, 7, 8, 9, 10);
|
||||||
|
|
||||||
INSERT INTO `vn`.`ticketRecalc`(`ticketFk`)
|
DELIMITER $$
|
||||||
SELECT t.id
|
CREATE PROCEDURE `tmp`.`ticket_recalc`()
|
||||||
FROM vn.ticket t
|
BEGIN
|
||||||
LEFT JOIN vn.ticketRecalc tr ON tr.ticketFk = t.id
|
DECLARE vDone BOOL;
|
||||||
WHERE tr.ticketFk IS NULL;
|
DECLARE vTicketFk INT;
|
||||||
|
|
||||||
CALL `vn`.`ticket_doRecalc`();
|
DECLARE cTickets CURSOR FOR SELECT id FROM vn.ticket;
|
||||||
|
DECLARE CONTINUE HANDLER FOR NOT FOUND
|
||||||
|
SET vDone = TRUE;
|
||||||
|
|
||||||
|
OPEN cTickets;
|
||||||
|
myLoop: LOOP
|
||||||
|
SET vDone = FALSE;
|
||||||
|
FETCH cTickets INTO vTicketFk;
|
||||||
|
IF vDone THEN LEAVE myLoop; END IF;
|
||||||
|
CALL vn.ticket_recalc(vTicketFk, NULL);
|
||||||
|
END LOOP;
|
||||||
|
CLOSE cTickets;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
||||||
|
|
||||||
|
CALL tmp.ticket_recalc;
|
||||||
|
DROP PROCEDURE tmp.ticket_recalc;
|
||||||
|
|
||||||
UPDATE `vn`.`ticket`
|
UPDATE `vn`.`ticket`
|
||||||
SET refFk = 'T1111111'
|
SET refFk = 'T1111111'
|
||||||
|
|
|
@ -92,12 +92,12 @@ BEGIN
|
||||||
UPDATE bi.Greuge_Evolution ge
|
UPDATE bi.Greuge_Evolution ge
|
||||||
JOIN (
|
JOIN (
|
||||||
SELECT cs.Id_Cliente, sum(Valor * Cantidad) as Importe
|
SELECT cs.Id_Cliente, sum(Valor * Cantidad) as Importe
|
||||||
FROM vn2008.Tickets t
|
FROM vn.ticket t
|
||||||
JOIN vn2008.Consignatarios cs on cs.Id_Consigna = t.Id_Consigna
|
JOIN vn2008.Consignatarios cs on cs.Id_Consigna = t.addressFk
|
||||||
JOIN vn2008.Movimientos m on m.Id_Ticket = t.Id_Ticket
|
JOIN vn2008.Movimientos m on m.Id_Ticket = t.id
|
||||||
JOIN vn2008.Movimientos_componentes mc on mc.Id_Movimiento = m.Id_Movimiento
|
JOIN vn2008.Movimientos_componentes mc on mc.Id_Movimiento = m.Id_Movimiento
|
||||||
WHERE t.Fecha >= datFEC
|
WHERE t.shipped >= datFEC
|
||||||
AND t.Fecha < datFEC_TOMORROW
|
AND t.shipped < datFEC_TOMORROW
|
||||||
AND mc.Id_Componente = 17 -- Recobro
|
AND mc.Id_Componente = 17 -- Recobro
|
||||||
GROUP BY cs.Id_Cliente
|
GROUP BY cs.Id_Cliente
|
||||||
) sub using(Id_Cliente)
|
) sub using(Id_Cliente)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bi`.`analisis_ventas_update`()
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bi`.`analisis_ventas_update`()
|
||||||
BEGIN
|
BEGIN
|
||||||
DECLARE vLastMonth DATE;
|
DECLARE vLastMonth DATE;
|
||||||
|
|
||||||
|
@ -10,18 +10,18 @@ BEGIN
|
||||||
OR (Año = YEAR(vLastMonth) AND Mes >= MONTH(vLastMonth));
|
OR (Año = YEAR(vLastMonth) AND Mes >= MONTH(vLastMonth));
|
||||||
|
|
||||||
INSERT INTO analisis_ventas (
|
INSERT INTO analisis_ventas (
|
||||||
Familia,
|
Familia,
|
||||||
Reino,
|
Reino,
|
||||||
Comercial,
|
Comercial,
|
||||||
Comprador,
|
Comprador,
|
||||||
Provincia,
|
Provincia,
|
||||||
almacen,
|
almacen,
|
||||||
Año,
|
Año,
|
||||||
Mes,
|
Mes,
|
||||||
Semana,
|
Semana,
|
||||||
Vista,
|
Vista,
|
||||||
Importe
|
Importe
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
tp.Tipo AS Familia,
|
tp.Tipo AS Familia,
|
||||||
r.reino AS Reino,
|
r.reino AS Reino,
|
||||||
|
@ -35,19 +35,19 @@ BEGIN
|
||||||
dm.description AS Vista,
|
dm.description AS Vista,
|
||||||
bt.importe AS Importe
|
bt.importe AS Importe
|
||||||
FROM bs.ventas bt
|
FROM bs.ventas bt
|
||||||
LEFT JOIN vn2008.Tipos tp ON tp.tipo_id = bt.tipo_id
|
LEFT JOIN vn2008.Tipos tp ON tp.tipo_id = bt.tipo_id
|
||||||
LEFT JOIN vn2008.reinos r ON r.id = tp.reino_id
|
LEFT JOIN vn2008.reinos r ON r.id = tp.reino_id
|
||||||
LEFT JOIN vn2008.Clientes c on c.Id_Cliente = bt.Id_Cliente
|
LEFT JOIN vn2008.Clientes c on c.Id_Cliente = bt.Id_Cliente
|
||||||
LEFT JOIN vn2008.Trabajadores tr ON tr.Id_Trabajador = c.Id_Trabajador
|
LEFT JOIN vn2008.Trabajadores tr ON tr.Id_Trabajador = c.Id_Trabajador
|
||||||
LEFT JOIN vn2008.Trabajadores tr2 ON tr2.Id_Trabajador = tp.Id_Trabajador
|
LEFT JOIN vn2008.Trabajadores tr2 ON tr2.Id_Trabajador = tp.Id_Trabajador
|
||||||
JOIN vn2008.time tm ON tm.date = bt.fecha
|
JOIN vn2008.time tm ON tm.date = bt.fecha
|
||||||
JOIN vn2008.Movimientos m ON m.Id_Movimiento = bt.Id_Movimiento
|
JOIN vn2008.Movimientos m ON m.Id_Movimiento = bt.Id_Movimiento
|
||||||
LEFT JOIN vn2008.Tickets t ON t.Id_Ticket = m.Id_Ticket
|
LEFT JOIN vn.ticket t ON t.id = m.Id_Ticket
|
||||||
JOIN vn2008.Agencias a ON a.Id_Agencia = t.Id_Agencia
|
JOIN vn2008.Agencias a ON a.Id_Agencia = t.agencyModeFk
|
||||||
LEFT JOIN vn.deliveryMethod dm ON dm.id = a.Vista
|
LEFT JOIN vn.deliveryMethod dm ON dm.id = a.Vista
|
||||||
LEFT JOIN vn2008.Consignatarios cs ON cs.Id_Consigna = t.Id_Consigna
|
LEFT JOIN vn2008.Consignatarios cs ON cs.Id_Consigna = t.addressFk
|
||||||
LEFT JOIN vn2008.province p ON p.province_id = cs.province_id
|
LEFT JOIN vn2008.province p ON p.province_id = cs.province_id
|
||||||
LEFT JOIN vn.warehouse w ON w.id = t.warehouse_id
|
LEFT JOIN vn.warehouse w ON w.id = t.warehouseFk
|
||||||
WHERE bt.fecha >= vLastMonth AND r.mercancia;
|
WHERE bt.fecha >= vLastMonth AND r.mercancia;
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -59,18 +59,18 @@ BEGIN
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.ticket_list;
|
DROP TEMPORARY TABLE IF EXISTS tmp.ticket_list;
|
||||||
CREATE TEMPORARY TABLE tmp.ticket_list
|
CREATE TEMPORARY TABLE tmp.ticket_list
|
||||||
(PRIMARY KEY (Id_Ticket))
|
(PRIMARY KEY (Id_Ticket))
|
||||||
SELECT DISTINCT t.Id_Ticket
|
SELECT DISTINCT t.id Id_Ticket
|
||||||
FROM vn2008.Movimientos_componentes mc
|
FROM vn2008.Movimientos_componentes mc
|
||||||
JOIN vn2008.Movimientos m ON mc.Id_Movimiento = m.Id_Movimiento
|
JOIN vn2008.Movimientos m ON mc.Id_Movimiento = m.Id_Movimiento
|
||||||
JOIN vn2008.Tickets t ON t.Id_Ticket = m.Id_Ticket
|
JOIN vn.ticket t ON t.id = m.Id_Ticket
|
||||||
JOIN vn2008.Tickets_state ts ON ts.Id_Ticket = t.Id_Ticket
|
JOIN vn.ticketLastState ts ON ts.ticketFk = t.id
|
||||||
JOIN vn.ticketTracking tt ON tt.id = ts.inter_id
|
JOIN vn.ticketTracking tt ON tt.id = ts.ticketTrackingFk
|
||||||
JOIN vn2008.state s ON s.id = tt.stateFk
|
JOIN vn.state s ON s.id = tt.stateFk
|
||||||
WHERE mc.Id_Componente = 17
|
WHERE mc.Id_Componente = 17
|
||||||
AND mc.greuge = 0
|
AND mc.greuge = 0
|
||||||
AND t.Fecha >= '2016-10-01'
|
AND t.shipped >= '2016-10-01'
|
||||||
AND t.Fecha < util.VN_CURDATE()
|
AND t.shipped < util.VN_CURDATE()
|
||||||
AND s.alert_level >= 3;
|
AND s.alertLevel >= 3;
|
||||||
|
|
||||||
DELETE g.*
|
DELETE g.*
|
||||||
FROM vn.greuge g
|
FROM vn.greuge g
|
||||||
|
@ -79,18 +79,18 @@ BEGIN
|
||||||
|
|
||||||
INSERT INTO vn.greuge(clientFk, description, amount,shipped,
|
INSERT INTO vn.greuge(clientFk, description, amount,shipped,
|
||||||
greugeTypeFk, ticketFk)
|
greugeTypeFk, ticketFk)
|
||||||
SELECT Id_Cliente
|
SELECT t.clientFk
|
||||||
,concat('recobro ', m.Id_Ticket), - round(SUM(mc.Valor*Cantidad),2)
|
,concat('recobro ', m.Id_Ticket), - round(SUM(mc.Valor*Cantidad),2)
|
||||||
AS dif
|
AS dif
|
||||||
,date(t.Fecha)
|
,date(t.shipped)
|
||||||
, 2
|
, 2
|
||||||
,tt.Id_Ticket
|
,tt.Id_Ticket
|
||||||
FROM vn2008.Movimientos m
|
FROM vn2008.Movimientos m
|
||||||
JOIN vn2008.Tickets t ON t.Id_Ticket = m.Id_Ticket
|
JOIN vn.ticket t ON t.id = m.Id_Ticket
|
||||||
JOIN tmp.ticket_list tt ON tt.Id_Ticket = t.Id_Ticket
|
JOIN tmp.ticket_list tt ON tt.Id_Ticket = t.id
|
||||||
JOIN vn2008.Movimientos_componentes mc
|
JOIN vn2008.Movimientos_componentes mc
|
||||||
ON mc.Id_Movimiento = m.Id_Movimiento AND mc.Id_Componente = 17
|
ON mc.Id_Movimiento = m.Id_Movimiento AND mc.Id_Componente = 17
|
||||||
GROUP BY t.Id_Ticket
|
GROUP BY t.id
|
||||||
HAVING ABS(dif) > 1;
|
HAVING ABS(dif) > 1;
|
||||||
|
|
||||||
UPDATE vn2008.Movimientos_componentes mc
|
UPDATE vn2008.Movimientos_componentes mc
|
||||||
|
|
|
@ -15,17 +15,17 @@ BEGIN
|
||||||
IF lastCOMP < vMaxPeriod - 3 AND vMaxWeek > 3 THEN
|
IF lastCOMP < vMaxPeriod - 3 AND vMaxWeek > 3 THEN
|
||||||
|
|
||||||
REPLACE vn2008.Comparativa(Periodo, Id_Article, warehouse_id, Cantidad,price)
|
REPLACE vn2008.Comparativa(Periodo, Id_Article, warehouse_id, Cantidad,price)
|
||||||
SELECT tm.period as Periodo, m.Id_Article, t.warehouse_id, sum(m.Cantidad), sum(v.importe)
|
SELECT tm.period as Periodo, m.Id_Article, t.warehouseFk, sum(m.Cantidad), sum(v.importe)
|
||||||
FROM bs.ventas v
|
FROM bs.ventas v
|
||||||
JOIN vn2008.time tm ON tm.date = v.fecha
|
JOIN vn2008.time tm ON tm.date = v.fecha
|
||||||
JOIN vn2008.Movimientos m ON m.Id_Movimiento = v.Id_Movimiento
|
JOIN vn2008.Movimientos m ON m.Id_Movimiento = v.Id_Movimiento
|
||||||
JOIN vn2008.Tipos tp ON tp.tipo_id = v.tipo_id
|
JOIN vn2008.Tipos tp ON tp.tipo_id = v.tipo_id
|
||||||
JOIN vn2008.reinos r ON r.id = tp.reino_id
|
JOIN vn2008.reinos r ON r.id = tp.reino_id
|
||||||
JOIN vn2008.Tickets t ON t.Id_Ticket = m.Id_Ticket
|
JOIN vn.ticket t ON t.id = m.Id_Ticket
|
||||||
WHERE tm.period BETWEEN lastCOMP AND vMaxPeriod - 3
|
WHERE tm.period BETWEEN lastCOMP AND vMaxPeriod - 3
|
||||||
AND t.Id_Cliente NOT IN(400,200)
|
AND t.clientFk NOT IN(400,200)
|
||||||
AND t.warehouse_id NOT IN (0,13)
|
AND t.warehouseFk NOT IN (0,13)
|
||||||
GROUP BY m.Id_Article, Periodo, t.warehouse_id;
|
GROUP BY m.Id_Article, Periodo, t.warehouseFk;
|
||||||
|
|
||||||
END IF;
|
END IF;
|
||||||
END$$
|
END$$
|
||||||
|
|
|
@ -25,16 +25,16 @@ BEGIN
|
||||||
WHERE Periodo BETWEEN periodStart AND periodEnd;
|
WHERE Periodo BETWEEN periodStart AND periodEnd;
|
||||||
|
|
||||||
INSERT INTO vn2008.Comparativa(Periodo, Id_Article, warehouse_id, Cantidad,price)
|
INSERT INTO vn2008.Comparativa(Periodo, Id_Article, warehouse_id, Cantidad,price)
|
||||||
SELECT tm.period as Periodo, m.Id_Article, t.warehouse_id, sum(m.Cantidad), sum(v.importe)
|
SELECT tm.period as Periodo, m.Id_Article, t.warehouseFk, sum(m.Cantidad), sum(v.importe)
|
||||||
FROM bs.ventas v
|
FROM bs.ventas v
|
||||||
JOIN vn2008.time tm ON tm.date = v.fecha
|
JOIN vn2008.time tm ON tm.date = v.fecha
|
||||||
JOIN vn2008.Movimientos m ON m.Id_Movimiento = v.Id_Movimiento
|
JOIN vn2008.Movimientos m ON m.Id_Movimiento = v.Id_Movimiento
|
||||||
JOIN vn2008.Tipos tp ON tp.tipo_id = v.tipo_id
|
JOIN vn2008.Tipos tp ON tp.tipo_id = v.tipo_id
|
||||||
JOIN vn2008.reinos r ON r.id = tp.reino_id
|
JOIN vn2008.reinos r ON r.id = tp.reino_id
|
||||||
JOIN vn2008.Tickets t ON t.Id_Ticket = m.Id_Ticket
|
JOIN vn.ticket t ON t.id = m.Id_Ticket
|
||||||
WHERE tm.period BETWEEN periodStart AND periodEnd
|
WHERE tm.period BETWEEN periodStart AND periodEnd
|
||||||
AND t.Id_Cliente NOT IN(400,200)
|
AND t.clientFk NOT IN(400,200)
|
||||||
AND t.warehouse_id NOT IN (0,13)
|
AND t.warehouseFk NOT IN (0,13)
|
||||||
GROUP BY m.Id_Article, Periodo, t.warehouse_id;
|
GROUP BY m.Id_Article, Periodo, t.warehouseFk;
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -11,13 +11,13 @@ AS SELECT `time`.`year` AS `year`,
|
||||||
FROM (
|
FROM (
|
||||||
(
|
(
|
||||||
(
|
(
|
||||||
`vn2008`.`Tickets` `t`
|
`vn`.`ticket` `t`
|
||||||
JOIN `bi`.`f_tvc` ON(`t`.`Id_Ticket` = `bi`.`f_tvc`.`Id_Ticket`)
|
JOIN `bi`.`f_tvc` ON(`t`.`id` = `bi`.`f_tvc`.`Id_Ticket`)
|
||||||
)
|
)
|
||||||
JOIN `vn2008`.`Movimientos` `m` ON(`t`.`Id_Ticket` = `m`.`Id_Ticket`)
|
JOIN `vn2008`.`Movimientos` `m` ON(`t`.`id` = `m`.`Id_Ticket`)
|
||||||
)
|
)
|
||||||
JOIN `vn2008`.`time` ON(`time`.`date` = cast(`t`.`Fecha` AS date))
|
JOIN `vn2008`.`time` ON(`time`.`date` = cast(`t`.`shipped` AS date))
|
||||||
)
|
)
|
||||||
WHERE `t`.`Fecha` >= '2014-01-01'
|
WHERE `t`.`shipped` >= '2014-01-01'
|
||||||
GROUP BY `time`.`year`,
|
GROUP BY `time`.`year`,
|
||||||
`time`.`month`
|
`time`.`month`
|
||||||
|
|
|
@ -70,23 +70,23 @@ BEGIN
|
||||||
AND (v.fecha BETWEEN TIMESTAMPADD(DAY, - DAY(vDate) + 1, vDate) AND TIMESTAMPADD(DAY, - 1, vDate))
|
AND (v.fecha BETWEEN TIMESTAMPADD(DAY, - DAY(vDate) + 1, vDate) AND TIMESTAMPADD(DAY, - 1, vDate))
|
||||||
GROUP BY Id_Cliente) mes_actual ON mes_actual.Id_Cliente = c.Id_Cliente
|
GROUP BY Id_Cliente) mes_actual ON mes_actual.Id_Cliente = c.Id_Cliente
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
(SELECT t.Id_Cliente, SUM(m.preu * m.Cantidad * (1 - m.Descuento / 100)) futur
|
(SELECT t.clientFk Id_Cliente, SUM(m.preu * m.Cantidad * (1 - m.Descuento / 100)) futur
|
||||||
FROM vn2008.Tickets t
|
FROM vn.ticket t
|
||||||
JOIN vn2008.Clientes c ON c.Id_Cliente = t.Id_Cliente
|
JOIN vn2008.Clientes c ON c.Id_Cliente = t.clientFk
|
||||||
JOIN vn2008.Movimientos m ON m.Id_Ticket = t.Id_Ticket
|
JOIN vn2008.Movimientos m ON m.Id_Ticket = t.id
|
||||||
LEFT JOIN vn2008.Trabajadores tr ON c.Id_Trabajador = tr.Id_Trabajador
|
LEFT JOIN vn2008.Trabajadores tr ON c.Id_Trabajador = tr.Id_Trabajador
|
||||||
WHERE
|
WHERE
|
||||||
(c.Id_Trabajador = vWorker OR tr.boss = vWorker)
|
(c.Id_Trabajador = vWorker OR tr.boss = vWorker)
|
||||||
AND t.Fecha BETWEEN vDate AND util.dayEnd(LAST_DAY(vDate))
|
AND t.shipped BETWEEN vDate AND util.dayEnd(LAST_DAY(vDate))
|
||||||
GROUP BY Id_Cliente) f ON c.Id_Cliente = f.Id_Cliente
|
GROUP BY Id_Cliente) f ON c.Id_Cliente = f.Id_Cliente
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
(SELECT MAX(t.Fecha) LastTicket, c.Id_Cliente
|
(SELECT MAX(t.shipped) LastTicket, c.Id_Cliente
|
||||||
FROM vn2008.Tickets t
|
FROM vn.ticket t
|
||||||
JOIN vn2008.Clientes c ON c.Id_cliente = t.Id_Cliente
|
JOIN vn2008.Clientes c ON c.Id_cliente = t.clientFk
|
||||||
LEFT JOIN vn2008.Trabajadores tr ON c.Id_Trabajador = tr.Id_Trabajador
|
LEFT JOIN vn2008.Trabajadores tr ON c.Id_Trabajador = tr.Id_Trabajador
|
||||||
WHERE
|
WHERE
|
||||||
(c.Id_Trabajador = vWorker OR tr.boss = vWorker)
|
(c.Id_Trabajador = vWorker OR tr.boss = vWorker)
|
||||||
GROUP BY t.Id_Cliente) LastTicket ON LastTicket.Id_Cliente = c.Id_Cliente
|
GROUP BY t.clientFk) LastTicket ON LastTicket.Id_Cliente = c.Id_Cliente
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
(
|
(
|
||||||
SELECT SUM(importe) peso, c.Id_Cliente
|
SELECT SUM(importe) peso, c.Id_Cliente
|
||||||
|
|
|
@ -68,13 +68,13 @@ BEGIN
|
||||||
FROM
|
FROM
|
||||||
(
|
(
|
||||||
SELECT cs.Id_Cliente, Cantidad * Valor as mana
|
SELECT cs.Id_Cliente, Cantidad * Valor as mana
|
||||||
FROM vn2008.Tickets t
|
FROM vn.ticket t
|
||||||
JOIN vn2008.Consignatarios cs using(Id_Consigna)
|
JOIN vn2008.Consignatarios cs using(Id_Consigna)
|
||||||
JOIN vn2008.Movimientos m on m.Id_Ticket = t.Id_Ticket
|
JOIN vn2008.Movimientos m on m.Id_Ticket = t.id
|
||||||
JOIN vn2008.Movimientos_componentes mc on mc.Id_Movimiento = m.Id_Movimiento
|
JOIN vn2008.Movimientos_componentes mc on mc.Id_Movimiento = m.Id_Movimiento
|
||||||
WHERE Id_Componente IN (vManaAutoId, vManaId, vClaimManaId)
|
WHERE Id_Componente IN (vManaAutoId, vManaId, vClaimManaId)
|
||||||
AND t.Fecha > vFromDated
|
AND t.shipped > vFromDated
|
||||||
AND date(t.Fecha) <= vToDated
|
AND date(t.shipped) <= vToDated
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT r.Id_Cliente, - Entregado
|
SELECT r.Id_Cliente, - Entregado
|
||||||
FROM vn2008.Recibos r
|
FROM vn2008.Recibos r
|
||||||
|
|
|
@ -19,11 +19,11 @@ BEGIN
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.ticket_list;
|
DROP TEMPORARY TABLE IF EXISTS tmp.ticket_list;
|
||||||
CREATE TEMPORARY TABLE tmp.ticket_list
|
CREATE TEMPORARY TABLE tmp.ticket_list
|
||||||
(PRIMARY KEY (Id_Ticket))
|
(PRIMARY KEY (id))
|
||||||
ENGINE = MEMORY
|
ENGINE = MEMORY
|
||||||
SELECT Id_Ticket
|
SELECT t.id
|
||||||
FROM vn2008.Tickets t
|
FROM vn.ticket t
|
||||||
JOIN vn.invoiceOut io ON io.`ref` = t.Factura
|
JOIN vn.invoiceOut io ON io.`ref` = t.refFk
|
||||||
WHERE year(io.issued) = vYear
|
WHERE year(io.issued) = vYear
|
||||||
AND month(io.issued) = vMonth;
|
AND month(io.issued) = vMonth;
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@ BEGIN
|
||||||
) as grupo
|
) as grupo
|
||||||
, tp.reino_id
|
, tp.reino_id
|
||||||
, a.tipo_id
|
, a.tipo_id
|
||||||
, t.empresa_id
|
, t.companyFk
|
||||||
, a.expenseFk
|
, a.expenseFk
|
||||||
+ IF(e.empresa_grupo = e2.empresa_grupo
|
+ IF(e.empresa_grupo = e2.empresa_grupo
|
||||||
,1
|
,1
|
||||||
|
@ -54,19 +54,19 @@ BEGIN
|
||||||
) * 100000
|
) * 100000
|
||||||
+ tp.reino_id * 1000 as Gasto
|
+ tp.reino_id * 1000 as Gasto
|
||||||
FROM vn2008.Movimientos m
|
FROM vn2008.Movimientos m
|
||||||
JOIN vn2008.Tickets t on t.Id_Ticket = m.Id_Ticket
|
JOIN vn.ticket t ON t.id = m.Id_Ticket
|
||||||
JOIN vn2008.Consignatarios cs on cs.Id_Consigna = t.Id_Consigna
|
JOIN vn2008.Consignatarios cs on cs.Id_Consigna = t.addressFk
|
||||||
JOIN vn2008.Clientes c on c.Id_Cliente = cs.Id_Cliente
|
JOIN vn2008.Clientes c on c.Id_Cliente = cs.Id_Cliente
|
||||||
JOIN tmp.ticket_list tt on tt.Id_Ticket = t.Id_Ticket
|
JOIN tmp.ticket_list tt on tt.id = t.id
|
||||||
JOIN vn2008.Articles a on m.Id_Article = a.Id_Article
|
JOIN vn2008.Articles a on m.Id_Article = a.Id_Article
|
||||||
JOIN vn2008.empresa e on e.id = t.empresa_id
|
JOIN vn2008.empresa e on e.id = t.companyFk
|
||||||
LEFT JOIN vn2008.empresa e2 on e2.Id_Cliente = c.Id_Cliente
|
LEFT JOIN vn2008.empresa e2 on e2.Id_Cliente = c.Id_Cliente
|
||||||
JOIN vn2008.Tipos tp on tp.tipo_id = a.tipo_id
|
JOIN vn2008.Tipos tp on tp.tipo_id = a.tipo_id
|
||||||
WHERE Cantidad <> 0
|
WHERE Cantidad <> 0
|
||||||
AND Preu <> 0
|
AND Preu <> 0
|
||||||
AND m.Descuento <> 100
|
AND m.Descuento <> 100
|
||||||
AND a.tipo_id != TIPO_PATRIMONIAL
|
AND a.tipo_id != TIPO_PATRIMONIAL
|
||||||
GROUP BY grupo, reino_id, tipo_id, empresa_id, Gasto;
|
GROUP BY grupo, reino_id, tipo_id, companyFk, Gasto;
|
||||||
|
|
||||||
INSERT INTO bs.ventas_contables(year
|
INSERT INTO bs.ventas_contables(year
|
||||||
, month
|
, month
|
||||||
|
@ -92,7 +92,7 @@ BEGIN
|
||||||
JOIN vn.ticket t ON ts.ticketFk = t.id
|
JOIN vn.ticket t ON ts.ticketFk = t.id
|
||||||
JOIN vn.address a on a.id = t.addressFk
|
JOIN vn.address a on a.id = t.addressFk
|
||||||
JOIN vn.client cl on cl.id = a.clientFk
|
JOIN vn.client cl on cl.id = a.clientFk
|
||||||
JOIN tmp.ticket_list tt on tt.Id_Ticket = t.id
|
JOIN tmp.ticket_list tt on tt.id = t.id
|
||||||
JOIN vn.company c on c.id = t.companyFk
|
JOIN vn.company c on c.id = t.companyFk
|
||||||
LEFT JOIN vn.company c2 on c2.clientFk = cl.id
|
LEFT JOIN vn.company c2 on c2.clientFk = cl.id
|
||||||
GROUP BY grupo, t.companyFk ;
|
GROUP BY grupo, t.companyFk ;
|
||||||
|
|
|
@ -10,38 +10,38 @@ BEGIN
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.ticket_list;
|
DROP TEMPORARY TABLE IF EXISTS tmp.ticket_list;
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE tmp.ticket_list
|
CREATE TEMPORARY TABLE tmp.ticket_list
|
||||||
(PRIMARY KEY (Id_Ticket))
|
(PRIMARY KEY (id))
|
||||||
SELECT Id_Ticket
|
SELECT t.id
|
||||||
FROM vn2008.Tickets t
|
FROM vn.ticket t
|
||||||
JOIN vn.invoiceOut io ON io.id = t.Factura
|
JOIN vn.invoiceOut io ON io.id = t.refFk
|
||||||
WHERE year(io.issued) = vYear
|
WHERE year(io.issued) = vYear
|
||||||
AND month(io.issued) = vMonth;
|
AND month(io.issued) = vMonth;
|
||||||
|
|
||||||
SELECT vYear Año,
|
SELECT vYear Año,
|
||||||
vMonth Mes,
|
vMonth Mes,
|
||||||
t.Id_Cliente,
|
t.clientFk Id_Cliente,
|
||||||
round(sum(Cantidad * Preu * (100 - m.Descuento)/100)) Venta,
|
round(sum(Cantidad * Preu * (100 - m.Descuento)/100)) Venta,
|
||||||
IF(e.empresa_grupo = e2.empresa_grupo,
|
IF(e.empresa_grupo = e2.empresa_grupo,
|
||||||
1,
|
1,
|
||||||
IF(e2.empresa_grupo,2,0))
|
IF(e2.empresa_grupo,2,0))
|
||||||
AS grupo,
|
AS grupo,
|
||||||
t.empresa_id empresa
|
t.companyFk empresa
|
||||||
FROM vn2008.Movimientos m
|
FROM vn2008.Movimientos m
|
||||||
JOIN vn2008.Tickets t ON t.Id_Ticket = m.Id_Ticket
|
JOIN vn.ticket t ON t.id = m.Id_Ticket
|
||||||
JOIN vn2008.Consignatarios cs ON cs.Id_Consigna = t.Id_Consigna
|
JOIN vn2008.Consignatarios cs ON cs.Id_Consigna = t.addressFk
|
||||||
JOIN vn2008.Clientes c ON c.Id_Cliente = cs.Id_Cliente
|
JOIN vn2008.Clientes c ON c.Id_Cliente = cs.Id_Cliente
|
||||||
JOIN tmp.ticket_list tt ON tt.Id_Ticket = t.Id_Ticket
|
JOIN tmp.ticket_list tt ON tt.id = t.id
|
||||||
JOIN vn2008.Articles a ON m.Id_Article = a.Id_Article
|
JOIN vn2008.Articles a ON m.Id_Article = a.Id_Article
|
||||||
JOIN vn2008.empresa e ON e.id = t.empresa_id
|
JOIN vn2008.empresa e ON e.id = t.companyFk
|
||||||
LEFT JOIN vn2008.empresa e2 ON e2.Id_Cliente = c.Id_Cliente
|
LEFT JOIN vn2008.empresa e2 ON e2.Id_Cliente = c.Id_Cliente
|
||||||
JOIN vn2008.Tipos tp ON tp.tipo_id = a.tipo_id
|
JOIN vn2008.Tipos tp ON tp.tipo_id = a.tipo_id
|
||||||
WHERE Cantidad <> 0
|
WHERE Cantidad <> 0
|
||||||
AND Preu <> 0
|
AND Preu <> 0
|
||||||
AND m.Descuento <> 100
|
AND m.Descuento <> 100
|
||||||
AND a.tipo_id != 188
|
AND a.tipo_id != 188
|
||||||
GROUP BY t.Id_Cliente, grupo,t.empresa_id;
|
GROUP BY t.clientFk, grupo,t.companyFk;
|
||||||
|
|
||||||
DROP TEMPORARY TABLE tmp.ticket_list;
|
DROP TEMPORARY TABLE tmp.ticket_list;
|
||||||
|
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` EVENT `hedera`.`order_doRecalc`
|
|
||||||
ON SCHEDULE EVERY 10 SECOND
|
|
||||||
STARTS '2019-08-29 14:18:04.000'
|
|
||||||
ON COMPLETION PRESERVE
|
|
||||||
DISABLE
|
|
||||||
DO CALL order_doRecalc$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,53 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`order_doRecalc`()
|
|
||||||
proc: BEGIN
|
|
||||||
/**
|
|
||||||
* Recalculates modified orders.
|
|
||||||
*/
|
|
||||||
DECLARE vDone BOOL;
|
|
||||||
DECLARE vOrderFk INT;
|
|
||||||
|
|
||||||
DECLARE cCur CURSOR FOR
|
|
||||||
SELECT DISTINCT orderFk FROM tOrder;
|
|
||||||
|
|
||||||
DECLARE CONTINUE HANDLER FOR NOT FOUND
|
|
||||||
SET vDone = TRUE;
|
|
||||||
|
|
||||||
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
|
|
||||||
BEGIN
|
|
||||||
DO RELEASE_LOCK('hedera.order_doRecalc');
|
|
||||||
ROLLBACK;
|
|
||||||
RESIGNAL;
|
|
||||||
END;
|
|
||||||
|
|
||||||
IF !GET_LOCK('hedera.order_doRecalc', 0) THEN
|
|
||||||
LEAVE proc;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tOrder;
|
|
||||||
CREATE TEMPORARY TABLE tOrder
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT id, orderFk FROM orderRecalc;
|
|
||||||
|
|
||||||
OPEN cCur;
|
|
||||||
|
|
||||||
myLoop: LOOP
|
|
||||||
SET vDone = FALSE;
|
|
||||||
FETCH cCur INTO vOrderFk;
|
|
||||||
|
|
||||||
IF vDone THEN
|
|
||||||
LEAVE myLoop;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL order_recalc(vOrderFk);
|
|
||||||
END LOOP;
|
|
||||||
|
|
||||||
CLOSE cCur;
|
|
||||||
|
|
||||||
DELETE o FROM orderRecalc o JOIN tOrder t ON t.id = o.id;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE tOrder;
|
|
||||||
|
|
||||||
DO RELEASE_LOCK('hedera.order_doRecalc');
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,16 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`order_requestRecalc`(vSelf INT)
|
|
||||||
proc: BEGIN
|
|
||||||
/**
|
|
||||||
* Adds a request to recalculate the order total.
|
|
||||||
*
|
|
||||||
* @param vSelf The order identifier
|
|
||||||
*/
|
|
||||||
IF vSelf IS NULL THEN
|
|
||||||
LEAVE proc;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
-- #4409 Disable order recalc
|
|
||||||
-- INSERT INTO orderRecalc SET orderFk = vSelf;
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,9 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `hedera`.`orderRow_afterDelete`
|
|
||||||
AFTER DELETE ON `orderRow`
|
|
||||||
FOR EACH ROW
|
|
||||||
BEGIN
|
|
||||||
CALL stock.log_add('orderRow', NULL, OLD.id);
|
|
||||||
CALL order_requestRecalc(OLD.orderFk);
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,9 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `hedera`.`orderRow_afterInsert`
|
|
||||||
AFTER INSERT ON `orderRow`
|
|
||||||
FOR EACH ROW
|
|
||||||
BEGIN
|
|
||||||
CALL stock.log_add('orderRow', NEW.id, NULL);
|
|
||||||
CALL order_requestRecalc(NEW.orderFk);
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,10 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `hedera`.`orderRow_afterUpdate`
|
|
||||||
AFTER UPDATE ON `orderRow`
|
|
||||||
FOR EACH ROW
|
|
||||||
BEGIN
|
|
||||||
CALL stock.log_add('orderRow', NEW.id, OLD.id);
|
|
||||||
CALL order_requestRecalc(OLD.orderFk);
|
|
||||||
CALL order_requestRecalc(NEW.orderFk);
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -2,23 +2,15 @@ DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `hedera`.`order_afterUpdate`
|
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `hedera`.`order_afterUpdate`
|
||||||
AFTER UPDATE ON `order`
|
AFTER UPDATE ON `order`
|
||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
CALL stock.log_add('order', NEW.id, OLD.id);
|
IF !(OLD.address_id <=> NEW.address_id) AND NEW.address_id = 2850 THEN
|
||||||
|
-- Fallo que se actualiza no se sabe como tickets en este cliente
|
||||||
IF !(OLD.address_id <=> NEW.address_id)
|
CALL vn.mail_insert(
|
||||||
OR !(OLD.company_id <=> NEW.company_id)
|
'jgallego@verdnatura.es',
|
||||||
OR !(OLD.customer_id <=> NEW.customer_id) THEN
|
'noreply@verdnatura.es',
|
||||||
CALL order_requestRecalc(NEW.id);
|
'Actualizada order al address 2850',
|
||||||
END IF;
|
CONCAT(account.myUser_getName(), ' ha creado la order ',NEW.id)
|
||||||
|
);
|
||||||
IF !(OLD.address_id <=> NEW.address_id) AND NEW.address_id = 2850 THEN
|
END IF;
|
||||||
-- Fallo que se actualiza no se sabe como tickets en este cliente
|
|
||||||
CALL vn.mail_insert(
|
|
||||||
'jgallego@verdnatura.es',
|
|
||||||
'noreply@verdnatura.es',
|
|
||||||
'Actualizada order al address 2850',
|
|
||||||
CONCAT(account.myUser_getName(), ' ha creado la order ',NEW.id)
|
|
||||||
);
|
|
||||||
END IF;
|
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`inbound_addPick`(
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`inbound_addPick`(
|
||||||
vSelf INT,
|
vSelf INT,
|
||||||
vOutboundFk INT,
|
vOutboundFk INT,
|
||||||
vQuantity INT
|
vQuantity INT
|
||||||
)
|
)
|
||||||
BEGIN
|
BEGIN
|
||||||
INSERT INTO inboundPick
|
INSERT INTO inboundPick
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`inbound_removePick`(
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`inbound_removePick`(
|
||||||
vSelf INT,
|
vSelf INT,
|
||||||
vOutboundFk INT,
|
vOutboundFk INT,
|
||||||
vQuantity INT,
|
vQuantity INT,
|
||||||
vTotalQuantity INT
|
vTotalQuantity INT
|
||||||
)
|
)
|
||||||
BEGIN
|
BEGIN
|
||||||
IF vQuantity < vTotalQuantity THEN
|
IF vQuantity < vTotalQuantity THEN
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`inbound_requestQuantity`(
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`inbound_requestQuantity`(
|
||||||
vSelf INT,
|
vSelf INT,
|
||||||
vRequested INT,
|
vRequested INT,
|
||||||
vDated DATETIME,
|
vDated DATETIME,
|
||||||
OUT vSupplied INT)
|
OUT vSupplied INT)
|
||||||
BEGIN
|
BEGIN
|
||||||
/**
|
/**
|
||||||
* Disassociates inbound picks after the given date until the
|
* Disassociates inbound picks after the given date until the
|
||||||
|
@ -29,7 +29,7 @@ BEGIN
|
||||||
|
|
||||||
DECLARE CONTINUE HANDLER FOR NOT FOUND
|
DECLARE CONTINUE HANDLER FOR NOT FOUND
|
||||||
SET vDone = TRUE;
|
SET vDone = TRUE;
|
||||||
|
|
||||||
SET vSupplied = 0;
|
SET vSupplied = 0;
|
||||||
|
|
||||||
OPEN vPicks;
|
OPEN vPicks;
|
||||||
|
@ -45,7 +45,7 @@ BEGIN
|
||||||
SET vPickGranted = LEAST(vRequested - vSupplied, vPickQuantity);
|
SET vPickGranted = LEAST(vRequested - vSupplied, vPickQuantity);
|
||||||
SET vSupplied = vSupplied + vPickGranted;
|
SET vSupplied = vSupplied + vPickGranted;
|
||||||
CALL inbound_removePick(vSelf, vOutboundFk, vPickGranted, vPickQuantity);
|
CALL inbound_removePick(vSelf, vOutboundFk, vPickGranted, vPickQuantity);
|
||||||
|
|
||||||
UPDATE outbound
|
UPDATE outbound
|
||||||
SET isSync = FALSE,
|
SET isSync = FALSE,
|
||||||
lack = lack + vPickGranted
|
lack = lack + vPickGranted
|
||||||
|
|
|
@ -23,7 +23,7 @@ BEGIN
|
||||||
SELECT id, lack, lack < quantity
|
SELECT id, lack, lack < quantity
|
||||||
FROM outbound
|
FROM outbound
|
||||||
WHERE warehouseFk = vWarehouse
|
WHERE warehouseFk = vWarehouse
|
||||||
AND itemFk = vItem
|
AND itemFk = vItem
|
||||||
AND dated >= vDated
|
AND dated >= vDated
|
||||||
AND (vExpired IS NULL OR dated < vExpired)
|
AND (vExpired IS NULL OR dated < vExpired)
|
||||||
ORDER BY dated, created;
|
ORDER BY dated, created;
|
||||||
|
@ -51,8 +51,8 @@ BEGIN
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
SET vSupplied = LEAST(vAvailable, vLack);
|
SET vSupplied = LEAST(vAvailable, vLack);
|
||||||
|
|
||||||
IF vSupplied > 0 THEN
|
IF vSupplied > 0 THEN
|
||||||
SET vAvailable = vAvailable - vSupplied;
|
SET vAvailable = vAvailable - vSupplied;
|
||||||
UPDATE outbound
|
UPDATE outbound
|
||||||
SET lack = lack - vSupplied
|
SET lack = lack - vSupplied
|
||||||
|
@ -64,8 +64,8 @@ BEGIN
|
||||||
SET vSupplied = vSupplied + vSuppliedFromRequest;
|
SET vSupplied = vSupplied + vSuppliedFromRequest;
|
||||||
SET vAvailable = vAvailable - vSuppliedFromRequest;
|
SET vAvailable = vAvailable - vSuppliedFromRequest;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
IF vSupplied > 0 THEN
|
IF vSupplied > 0 THEN
|
||||||
CALL inbound_addPick(vSelf, vOutboundFk, vSupplied);
|
CALL inbound_addPick(vSelf, vOutboundFk, vSupplied);
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`log_add`(IN `vTableName` VARCHAR(255), IN `vNewId` VARCHAR(255), IN `vOldId` VARCHAR(255))
|
|
||||||
proc: BEGIN
|
|
||||||
-- XXX: Disabled while testing
|
|
||||||
LEAVE proc;
|
|
||||||
|
|
||||||
IF vOldId IS NOT NULL AND !(vOldId <=> vNewId) THEN
|
|
||||||
INSERT IGNORE INTO `log` SET
|
|
||||||
tableName = vTableName,
|
|
||||||
tableId = vOldId,
|
|
||||||
operation = 'delete';
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF vNewId IS NOT NULL THEN
|
|
||||||
INSERT IGNORE INTO `log` SET
|
|
||||||
tableName = vTableName,
|
|
||||||
tableId = vNewId,
|
|
||||||
operation = 'insert';
|
|
||||||
END IF;
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -10,7 +10,7 @@ BEGIN
|
||||||
DO RELEASE_LOCK('stock.log_sync');
|
DO RELEASE_LOCK('stock.log_sync');
|
||||||
RESIGNAL;
|
RESIGNAL;
|
||||||
END;
|
END;
|
||||||
|
|
||||||
IF !GET_LOCK('stock.log_sync', 30) THEN
|
IF !GET_LOCK('stock.log_sync', 30) THEN
|
||||||
CALL util.throw('Lock timeout exceeded');
|
CALL util.throw('Lock timeout exceeded');
|
||||||
END IF;
|
END IF;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`log_refreshBuy`(
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`log_refreshBuy`(
|
||||||
`vTableName` VARCHAR(255),
|
`vTableName` VARCHAR(255),
|
||||||
`vTableId` INT)
|
`vTableId` INT)
|
||||||
BEGIN
|
BEGIN
|
||||||
DROP TEMPORARY TABLE IF EXISTS tValues;
|
DROP TEMPORARY TABLE IF EXISTS tValues;
|
||||||
CREATE TEMPORARY TABLE tValues
|
CREATE TEMPORARY TABLE tValues
|
||||||
|
@ -11,7 +11,7 @@ BEGIN
|
||||||
e.id entryFk,
|
e.id entryFk,
|
||||||
t.id travelFk,
|
t.id travelFk,
|
||||||
b.itemFk,
|
b.itemFk,
|
||||||
e.isRaid,
|
e.isRaid,
|
||||||
ADDTIME(t.shipped,
|
ADDTIME(t.shipped,
|
||||||
IFNULL(t.shipmentHour, '00:00:00')) shipped,
|
IFNULL(t.shipmentHour, '00:00:00')) shipped,
|
||||||
t.warehouseOutFk,
|
t.warehouseOutFk,
|
||||||
|
@ -24,7 +24,7 @@ BEGIN
|
||||||
ABS(b.quantity) quantity,
|
ABS(b.quantity) quantity,
|
||||||
b.created,
|
b.created,
|
||||||
b.quantity > 0 isIn,
|
b.quantity > 0 isIn,
|
||||||
t.shipped < vn.getInventoryDate() lessThanInventory
|
t.shipped < vn.getInventoryDate() lessThanInventory
|
||||||
FROM vn.buy b
|
FROM vn.buy b
|
||||||
JOIN vn.entry e ON e.id = b.entryFk
|
JOIN vn.entry e ON e.id = b.entryFk
|
||||||
JOIN vn.travel t ON t.id = e.travelFk
|
JOIN vn.travel t ON t.id = e.travelFk
|
||||||
|
@ -52,7 +52,7 @@ BEGIN
|
||||||
quantity,
|
quantity,
|
||||||
IF(isIn, isReceived, isDelivered) AND !isRaid
|
IF(isIn, isReceived, isDelivered) AND !isRaid
|
||||||
FROM tValues
|
FROM tValues
|
||||||
WHERE isIn OR !lessThanInventory;
|
WHERE isIn OR !lessThanInventory;
|
||||||
|
|
||||||
REPLACE INTO outbound (
|
REPLACE INTO outbound (
|
||||||
tableName, tableId, warehouseFk, dated,
|
tableName, tableId, warehouseFk, dated,
|
||||||
|
@ -67,7 +67,7 @@ BEGIN
|
||||||
quantity,
|
quantity,
|
||||||
IF(isIn, isDelivered, isReceived) AND !isRaid
|
IF(isIn, isDelivered, isReceived) AND !isRaid
|
||||||
FROM tValues
|
FROM tValues
|
||||||
WHERE !isIn OR !lessThanInventory;
|
WHERE !isIn OR !lessThanInventory;
|
||||||
|
|
||||||
DROP TEMPORARY TABLE tValues;
|
DROP TEMPORARY TABLE tValues;
|
||||||
END$$
|
END$$
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`log_refreshOrder`(
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`log_refreshOrder`(
|
||||||
`vTableName` VARCHAR(255),
|
`vTableName` VARCHAR(255),
|
||||||
`vTableId` INT)
|
`vTableId` INT)
|
||||||
BEGIN
|
BEGIN
|
||||||
DECLARE vExpireTime INT DEFAULT 20;
|
DECLARE vExpireTime INT DEFAULT 20;
|
||||||
DECLARE vExpired DATETIME DEFAULT TIMESTAMPADD(MINUTE, -vExpireTime, util.VN_NOW());
|
DECLARE vExpired DATETIME DEFAULT TIMESTAMPADD(MINUTE, -vExpireTime, util.VN_NOW());
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tValues;
|
DROP TEMPORARY TABLE IF EXISTS tValues;
|
||||||
CREATE TEMPORARY TABLE tValues
|
CREATE TEMPORARY TABLE tValues
|
||||||
ENGINE = MEMORY
|
ENGINE = MEMORY
|
||||||
SELECT
|
SELECT
|
||||||
r.id rowFk,
|
r.id rowFk,
|
||||||
|
@ -23,24 +23,24 @@ BEGIN
|
||||||
OR (vTableName = 'order' AND o.id = vTableId)
|
OR (vTableName = 'order' AND o.id = vTableId)
|
||||||
OR (vTableName = 'orderRow' AND r.id = vTableId)
|
OR (vTableName = 'orderRow' AND r.id = vTableId)
|
||||||
)
|
)
|
||||||
AND !o.confirmed
|
AND !o.confirmed
|
||||||
AND r.shipment >= vn.getInventoryDate()
|
AND r.shipment >= vn.getInventoryDate()
|
||||||
AND r.created >= vExpired
|
AND r.created >= vExpired
|
||||||
AND r.amount != 0;
|
AND r.amount != 0;
|
||||||
|
|
||||||
REPLACE INTO outbound (
|
REPLACE INTO outbound (
|
||||||
tableName, tableId, warehouseFk, dated,
|
tableName, tableId, warehouseFk, dated,
|
||||||
itemFk, created, expired, quantity
|
itemFk, created, expired, quantity
|
||||||
)
|
)
|
||||||
SELECT 'orderRow',
|
SELECT 'orderRow',
|
||||||
rowFk,
|
rowFk,
|
||||||
warehouseFk,
|
warehouseFk,
|
||||||
shipped,
|
shipped,
|
||||||
itemFk,
|
itemFk,
|
||||||
created,
|
created,
|
||||||
TIMESTAMPADD(MINUTE, vExpireTime, created),
|
TIMESTAMPADD(MINUTE, vExpireTime, created),
|
||||||
quantity
|
quantity
|
||||||
FROM tValues;
|
FROM tValues;
|
||||||
|
|
||||||
DROP TEMPORARY TABLE tValues;
|
DROP TEMPORARY TABLE tValues;
|
||||||
END$$
|
END$$
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`log_refreshSale`(
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`log_refreshSale`(
|
||||||
`vTableName` VARCHAR(255),
|
`vTableName` VARCHAR(255),
|
||||||
`vTableId` INT)
|
`vTableId` INT)
|
||||||
BEGIN
|
BEGIN
|
||||||
DROP TEMPORARY TABLE IF EXISTS tValues;
|
DROP TEMPORARY TABLE IF EXISTS tValues;
|
||||||
CREATE TEMPORARY TABLE tValues
|
CREATE TEMPORARY TABLE tValues
|
||||||
ENGINE = MEMORY
|
ENGINE = MEMORY
|
||||||
SELECT
|
SELECT
|
||||||
m.id saleFk,
|
m.id saleFk,
|
||||||
|
@ -14,7 +14,7 @@ BEGIN
|
||||||
t.shipped,
|
t.shipped,
|
||||||
ABS(m.quantity) quantity,
|
ABS(m.quantity) quantity,
|
||||||
m.created,
|
m.created,
|
||||||
TIMESTAMPADD(DAY, tp.life, t.shipped) expired,
|
TIMESTAMPADD(DAY, tp.life, t.shipped) expired,
|
||||||
m.quantity < 0 isIn,
|
m.quantity < 0 isIn,
|
||||||
m.isPicked OR s.alertLevel > 1 isPicked
|
m.isPicked OR s.alertLevel > 1 isPicked
|
||||||
FROM vn.sale m
|
FROM vn.sale m
|
||||||
|
@ -32,33 +32,33 @@ BEGIN
|
||||||
|
|
||||||
REPLACE INTO inbound (
|
REPLACE INTO inbound (
|
||||||
tableName, tableId, warehouseFk, dated,
|
tableName, tableId, warehouseFk, dated,
|
||||||
itemFk, expired, quantity, isPicked
|
itemFk, expired, quantity, isPicked
|
||||||
)
|
)
|
||||||
SELECT 'sale',
|
SELECT 'sale',
|
||||||
saleFk,
|
saleFk,
|
||||||
warehouseFk,
|
warehouseFk,
|
||||||
shipped,
|
shipped,
|
||||||
itemFk,
|
itemFk,
|
||||||
expired,
|
expired,
|
||||||
quantity,
|
quantity,
|
||||||
isPicked
|
isPicked
|
||||||
FROM tValues
|
FROM tValues
|
||||||
WHERE isIn;
|
WHERE isIn;
|
||||||
|
|
||||||
REPLACE INTO outbound (
|
REPLACE INTO outbound (
|
||||||
tableName, tableId, warehouseFk, dated,
|
tableName, tableId, warehouseFk, dated,
|
||||||
itemFk, created, quantity, isPicked
|
itemFk, created, quantity, isPicked
|
||||||
)
|
)
|
||||||
SELECT 'sale',
|
SELECT 'sale',
|
||||||
saleFk,
|
saleFk,
|
||||||
warehouseFk,
|
warehouseFk,
|
||||||
shipped,
|
shipped,
|
||||||
itemFk,
|
itemFk,
|
||||||
created,
|
created,
|
||||||
quantity,
|
quantity,
|
||||||
isPicked
|
isPicked
|
||||||
FROM tValues
|
FROM tValues
|
||||||
WHERE !isIn;
|
WHERE !isIn;
|
||||||
|
|
||||||
DROP TEMPORARY TABLE tValues;
|
DROP TEMPORARY TABLE tValues;
|
||||||
END$$
|
END$$
|
||||||
|
|
|
@ -7,7 +7,7 @@ BEGIN
|
||||||
* @param vSelf The outbound reference
|
* @param vSelf The outbound reference
|
||||||
*/
|
*/
|
||||||
DECLARE vDated DATETIME;
|
DECLARE vDated DATETIME;
|
||||||
DECLARE vItem INT;
|
DECLARE vItem INT;
|
||||||
DECLARE vWarehouse INT;
|
DECLARE vWarehouse INT;
|
||||||
DECLARE vLack INT;
|
DECLARE vLack INT;
|
||||||
DECLARE vSupplied INT;
|
DECLARE vSupplied INT;
|
||||||
|
@ -21,7 +21,7 @@ BEGIN
|
||||||
SELECT id, available, available < quantity
|
SELECT id, available, available < quantity
|
||||||
FROM inbound
|
FROM inbound
|
||||||
WHERE warehouseFk = vWarehouse
|
WHERE warehouseFk = vWarehouse
|
||||||
AND itemFk = vItem
|
AND itemFk = vItem
|
||||||
AND dated <= vDated
|
AND dated <= vDated
|
||||||
AND (expired IS NULL OR expired > vDated)
|
AND (expired IS NULL OR expired > vDated)
|
||||||
ORDER BY dated;
|
ORDER BY dated;
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`visible_log`(
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`visible_log`(
|
||||||
vIsPicked BOOL,
|
vIsPicked BOOL,
|
||||||
vWarehouseFk INT,
|
vWarehouseFk INT,
|
||||||
vItemFk INT,
|
vItemFk INT,
|
||||||
vQuantity INT
|
vQuantity INT
|
||||||
)
|
)
|
||||||
proc: BEGIN
|
proc: BEGIN
|
||||||
IF !vIsPicked THEN
|
IF !vIsPicked THEN
|
||||||
LEAVE proc;
|
LEAVE proc;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
INSERT INTO visible
|
INSERT INTO visible
|
||||||
SET itemFk = vItemFk,
|
SET itemFk = vItemFk,
|
||||||
warehouseFk = vWarehouseFk,
|
warehouseFk = vWarehouseFk,
|
||||||
quantity = vQuantity
|
quantity = vQuantity
|
||||||
|
|
|
@ -12,11 +12,11 @@ BEGIN
|
||||||
DELETE FROM inboundPick
|
DELETE FROM inboundPick
|
||||||
WHERE inboundFk = OLD.id;
|
WHERE inboundFk = OLD.id;
|
||||||
|
|
||||||
CALL visible_log(
|
CALL visible_log(
|
||||||
OLD.isPicked,
|
OLD.isPicked,
|
||||||
OLD.warehouseFk,
|
OLD.warehouseFk,
|
||||||
OLD.itemFk,
|
OLD.itemFk,
|
||||||
-OLD.quantity
|
-OLD.quantity
|
||||||
);
|
);
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -4,12 +4,12 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `stock`.`inbound_beforeInse
|
||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
SET NEW.isPicked = NEW.isPicked OR NEW.dated < util.VN_CURDATE();
|
SET NEW.isPicked = NEW.isPicked OR NEW.dated < util.VN_CURDATE();
|
||||||
|
|
||||||
CALL visible_log(
|
CALL visible_log(
|
||||||
NEW.isPicked,
|
NEW.isPicked,
|
||||||
NEW.warehouseFk,
|
NEW.warehouseFk,
|
||||||
NEW.itemFk,
|
NEW.itemFk,
|
||||||
NEW.quantity
|
NEW.quantity
|
||||||
);
|
);
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -12,11 +12,11 @@ BEGIN
|
||||||
DELETE FROM inboundPick
|
DELETE FROM inboundPick
|
||||||
WHERE outboundFk = OLD.id;
|
WHERE outboundFk = OLD.id;
|
||||||
|
|
||||||
CALL visible_log(
|
CALL visible_log(
|
||||||
OLD.isPicked,
|
OLD.isPicked,
|
||||||
OLD.warehouseFk,
|
OLD.warehouseFk,
|
||||||
OLD.itemFk,
|
OLD.itemFk,
|
||||||
OLD.quantity
|
OLD.quantity
|
||||||
);
|
);
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -5,12 +5,12 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `stock`.`outbound_beforeIns
|
||||||
BEGIN
|
BEGIN
|
||||||
SET NEW.lack = NEW.quantity;
|
SET NEW.lack = NEW.quantity;
|
||||||
SET NEW.isPicked = NEW.isPicked OR NEW.dated < util.VN_CURDATE();
|
SET NEW.isPicked = NEW.isPicked OR NEW.dated < util.VN_CURDATE();
|
||||||
|
|
||||||
CALL visible_log(
|
CALL visible_log(
|
||||||
NEW.isPicked,
|
NEW.isPicked,
|
||||||
NEW.warehouseFk,
|
NEW.warehouseFk,
|
||||||
NEW.itemFk,
|
NEW.itemFk,
|
||||||
-NEW.quantity
|
-NEW.quantity
|
||||||
);
|
);
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`binlogQueue_getDelay`(vCode VARCHAR(255))
|
CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`binlogQueue_getDelay`(vCode VARCHAR(255))
|
||||||
RETURNS BIGINT
|
RETURNS BIGINT
|
||||||
|
READS SQL DATA
|
||||||
NOT DETERMINISTIC
|
NOT DETERMINISTIC
|
||||||
BEGIN
|
BEGIN
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` EVENT `vn`.`ticket_doRecalc`
|
|
||||||
ON SCHEDULE EVERY 10 SECOND
|
|
||||||
STARTS '2022-01-28 09:29:18.000'
|
|
||||||
ON COMPLETION PRESERVE
|
|
||||||
ENABLE
|
|
||||||
DO CALL ticket_doRecalc$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,8 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` EVENT `vn`.`travel_doRecalc`
|
|
||||||
ON SCHEDULE EVERY 15 SECOND
|
|
||||||
STARTS '2019-05-17 10:52:29.000'
|
|
||||||
ON COMPLETION PRESERVE
|
|
||||||
ENABLE
|
|
||||||
DO CALL travel_doRecalc$$
|
|
||||||
DELIMITER ;
|
|
|
@ -11,9 +11,9 @@ BEGIN
|
||||||
SELECT
|
SELECT
|
||||||
a.Vista
|
a.Vista
|
||||||
INTO vDeliveryType
|
INTO vDeliveryType
|
||||||
FROM vn2008.Tickets t
|
FROM ticket t
|
||||||
JOIN vn2008.Agencias a ON a.Id_Agencia = t.Id_Agencia
|
JOIN vn2008.Agencias a ON a.Id_Agencia = t.agencyModeFk
|
||||||
WHERE Id_Ticket = vTicket;
|
WHERE t.id = vTicket;
|
||||||
|
|
||||||
CASE vDeliveryType
|
CASE vDeliveryType
|
||||||
WHEN 1 THEN -- AGENCIAS
|
WHEN 1 THEN -- AGENCIAS
|
||||||
|
@ -23,11 +23,11 @@ BEGIN
|
||||||
SET vCode = 'ON_DELIVERY';
|
SET vCode = 'ON_DELIVERY';
|
||||||
|
|
||||||
ELSE -- MERCADO, OTROS
|
ELSE -- MERCADO, OTROS
|
||||||
SELECT t.warehouse_id <> w.warehouse_id INTO isWaitingForPickUp
|
SELECT t.warehouseFk <> w.warehouse_id INTO isWaitingForPickUp
|
||||||
FROM vn2008.Tickets t
|
FROM ticket t
|
||||||
LEFT JOIN vn2008.warehouse_pickup w
|
LEFT JOIN vn2008.warehouse_pickup w
|
||||||
ON w.agency_id = t.Id_Agencia AND w.warehouse_id = t.warehouse_id
|
ON w.agency_id = t.agencyModeFk AND w.warehouse_id = t.warehouseFk
|
||||||
WHERE t.Id_Ticket = vTicket;
|
WHERE t.id = vTicket;
|
||||||
|
|
||||||
IF isWaitingForPickUp THEN
|
IF isWaitingForPickUp THEN
|
||||||
SET vCode = 'WAITING_FOR_PICKUP';
|
SET vCode = 'WAITING_FOR_PICKUP';
|
||||||
|
|
|
@ -28,10 +28,10 @@ SELECT t.routeFk, t.warehouseFk, IFNULL(ts.productionOrder,0)
|
||||||
|
|
||||||
SELECT (ag.`name` = 'VN_VALENCIA')
|
SELECT (ag.`name` = 'VN_VALENCIA')
|
||||||
INTO vIsValenciaPath
|
INTO vIsValenciaPath
|
||||||
FROM vn2008.Rutas r
|
FROM `route` r
|
||||||
JOIN vn2008.Agencias a on a.Id_Agencia = r.Id_Agencia
|
JOIN vn2008.Agencias a on a.Id_Agencia = r.agencyModeFk
|
||||||
JOIN vn2008.agency ag on ag.agency_id = a.agency_id
|
JOIN vn2008.agency ag on ag.agency_id = a.agency_id
|
||||||
WHERE r.Id_Ruta = vMyPath;
|
WHERE r.id = vMyPath;
|
||||||
|
|
||||||
IF vIsValenciaPath THEN -- Rutas Valencia
|
IF vIsValenciaPath THEN -- Rutas Valencia
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`creditInsurance_getRisk`()
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Devuelve el riesgo de los clientes que estan asegurados
|
||||||
|
*/
|
||||||
|
CREATE OR REPLACE TEMPORARY TABLE tmp.clientGetDebt
|
||||||
|
(PRIMARY KEY (clientFk))
|
||||||
|
ENGINE = MEMORY
|
||||||
|
SELECT * FROM (
|
||||||
|
SELECT cc.client clientFk, ci.grade
|
||||||
|
FROM creditClassification cc
|
||||||
|
JOIN creditInsurance ci ON cc.id = ci.creditClassification
|
||||||
|
WHERE dateEnd IS NULL
|
||||||
|
ORDER BY ci.creationDate DESC
|
||||||
|
LIMIT 10000000000000000000) t1
|
||||||
|
GROUP BY clientFk;
|
||||||
|
|
||||||
|
CALL client_getDebt(util.VN_CURDATE());
|
||||||
|
|
||||||
|
SELECT c.id,
|
||||||
|
c.name,
|
||||||
|
c.credit clientCredit,
|
||||||
|
c.creditInsurance solunion,
|
||||||
|
CAST(r.risk AS DECIMAL(10,0)) risk,
|
||||||
|
CAST(c.creditInsurance - r.risk AS DECIMAL(10,0)) riskAlive,
|
||||||
|
cac.invoiced billedAnnually,
|
||||||
|
c.dueDay,
|
||||||
|
cgd.grade,
|
||||||
|
c2.country
|
||||||
|
FROM tmp.clientGetDebt cgd
|
||||||
|
LEFT JOIN tmp.risk r ON r.clientFk = cgd.clientFk
|
||||||
|
JOIN client c ON c.id = cgd.clientFk
|
||||||
|
JOIN bs.clientAnnualConsumption cac ON c.id = cac.clientFk
|
||||||
|
JOIN country c2 ON c2.id = c.countryFk
|
||||||
|
GROUP BY c.id;
|
||||||
|
|
||||||
|
DROP TEMPORARY TABLE
|
||||||
|
tmp.risk,
|
||||||
|
tmp.clientGetDebt;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -8,12 +8,15 @@ BEGIN
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS `tmp`.`ticketToInvoice`;
|
DROP TEMPORARY TABLE IF EXISTS `tmp`.`ticketToInvoice`;
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE `tmp.``ticketToInvoice`
|
CREATE TEMPORARY TABLE `tmp`.`ticketToInvoice`
|
||||||
(PRIMARY KEY (`id`))
|
(PRIMARY KEY (`id`))
|
||||||
ENGINE = MEMORY
|
ENGINE = MEMORY
|
||||||
SELECT Id_Ticket id FROM vn2008.Tickets WHERE (Fecha BETWEEN vMinDateTicket
|
SELECT id
|
||||||
AND vMaxTicketDate) AND Id_Consigna = vAddress
|
FROM ticket
|
||||||
AND Factura IS NULL AND empresa_id = vCompany;
|
WHERE (shipped BETWEEN vMinDateTicket AND vMaxTicketDate)
|
||||||
|
AND addressFk = vAddress
|
||||||
|
AND refFk IS NULL
|
||||||
|
AND companyFk = vCompany;
|
||||||
|
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -39,7 +39,7 @@ BEGIN
|
||||||
UPDATE vn.itemShelving
|
UPDATE vn.itemShelving
|
||||||
SET isChecked = vIsChecked
|
SET isChecked = vIsChecked
|
||||||
WHERE shelvingFk COLLATE utf8_unicode_ci = vShelvingFk
|
WHERE shelvingFk COLLATE utf8_unicode_ci = vShelvingFk
|
||||||
AND itemFk = vItemFk;
|
AND itemFk = vItemFk AND isChecked IS NULL;
|
||||||
|
|
||||||
SET vCounter = vCounter + 1;
|
SET vCounter = vCounter + 1;
|
||||||
END WHILE;
|
END WHILE;
|
||||||
|
|
|
@ -65,7 +65,8 @@ BEGIN
|
||||||
WHEN b.groupingMode = 'packing' THEN b.packing
|
WHEN b.groupingMode = 'packing' THEN b.packing
|
||||||
ELSE 1
|
ELSE 1
|
||||||
END AS minQuantity,
|
END AS minQuantity,
|
||||||
iss.visible located
|
iss.visible located,
|
||||||
|
b.price2
|
||||||
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
|
||||||
AND a.calc_id = vCalcFk
|
AND a.calc_id = vCalcFk
|
||||||
|
|
|
@ -1,53 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_doRecalc`()
|
|
||||||
proc: BEGIN
|
|
||||||
/**
|
|
||||||
* Recalculates modified ticket.
|
|
||||||
*/
|
|
||||||
DECLARE vDone BOOL;
|
|
||||||
DECLARE vTicketFk INT;
|
|
||||||
|
|
||||||
DECLARE cCur CURSOR FOR
|
|
||||||
SELECT DISTINCT ticketFk FROM tTicket;
|
|
||||||
|
|
||||||
DECLARE CONTINUE HANDLER FOR NOT FOUND
|
|
||||||
SET vDone = TRUE;
|
|
||||||
|
|
||||||
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
|
|
||||||
BEGIN
|
|
||||||
DO RELEASE_LOCK('vn.ticket_doRecalc');
|
|
||||||
ROLLBACK;
|
|
||||||
RESIGNAL;
|
|
||||||
END;
|
|
||||||
|
|
||||||
IF !GET_LOCK('vn.ticket_doRecalc', 0) THEN
|
|
||||||
LEAVE proc;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tTicket;
|
|
||||||
CREATE TEMPORARY TABLE tTicket
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT id, ticketFk FROM ticketRecalc;
|
|
||||||
|
|
||||||
OPEN cCur;
|
|
||||||
|
|
||||||
myLoop: LOOP
|
|
||||||
SET vDone = FALSE;
|
|
||||||
FETCH cCur INTO vTicketFk;
|
|
||||||
|
|
||||||
IF vDone THEN
|
|
||||||
LEAVE myLoop;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL ticket_recalc(vTicketFk, NULL);
|
|
||||||
END LOOP;
|
|
||||||
|
|
||||||
CLOSE cCur;
|
|
||||||
|
|
||||||
DELETE tr FROM ticketRecalc tr JOIN tTicket t ON tr.id = t.id;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE tTicket;
|
|
||||||
|
|
||||||
DO RELEASE_LOCK('vn.ticket_doRecalc');
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_recalcByScope`(
|
||||||
|
vScope VARCHAR(255),
|
||||||
|
vId INT
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Recalculates tickets in an scope.
|
||||||
|
*
|
||||||
|
* @param vScope The scope name
|
||||||
|
* @param vId The scope id
|
||||||
|
*/
|
||||||
|
DECLARE vDone BOOL;
|
||||||
|
DECLARE vTicketFk INT;
|
||||||
|
|
||||||
|
DECLARE cTickets CURSOR FOR
|
||||||
|
SELECT id FROM ticket
|
||||||
|
WHERE refFk IS NULL
|
||||||
|
AND ((vScope = 'client' AND clientFk = vId)
|
||||||
|
OR (vScope = 'address' AND addressFk = vId));
|
||||||
|
|
||||||
|
DECLARE CONTINUE HANDLER FOR NOT FOUND
|
||||||
|
SET vDone = TRUE;
|
||||||
|
|
||||||
|
OPEN cTickets;
|
||||||
|
|
||||||
|
myLoop: LOOP
|
||||||
|
SET vDone = FALSE;
|
||||||
|
FETCH cTickets INTO vTicketFk;
|
||||||
|
|
||||||
|
IF vDone THEN
|
||||||
|
LEAVE myLoop;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CALL ticket_recalc(vTicketFk, NULL);
|
||||||
|
END LOOP;
|
||||||
|
|
||||||
|
CLOSE cTickets;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -1,15 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_requestRecalc`(vSelf INT)
|
|
||||||
proc: BEGIN
|
|
||||||
/**
|
|
||||||
* Adds a request to recalculate the ticket total.
|
|
||||||
*
|
|
||||||
* @param vSelf The ticket identifier
|
|
||||||
*/
|
|
||||||
IF vSelf IS NULL THEN
|
|
||||||
LEAVE proc;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
INSERT INTO ticketRecalc SET ticketFk = vSelf;
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,34 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`travel_doRecalc`()
|
|
||||||
proc: BEGIN
|
|
||||||
/**
|
|
||||||
* Recounts the number of entries of changed travels.
|
|
||||||
*/
|
|
||||||
DECLARE vTravelFk INT;
|
|
||||||
|
|
||||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
|
||||||
BEGIN
|
|
||||||
DO RELEASE_LOCK('vn.ticket_doRecalc');
|
|
||||||
END;
|
|
||||||
|
|
||||||
IF !GET_LOCK('vn.travel_doRecalc', 0) THEN
|
|
||||||
LEAVE proc;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CREATE OR REPLACE TEMPORARY TABLE tTravel
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT travelFk FROM travelRecalc;
|
|
||||||
|
|
||||||
UPDATE travel t
|
|
||||||
JOIN tTravel tt ON tt.travelFk = t.id
|
|
||||||
SET t.totalEntries = (
|
|
||||||
SELECT COUNT(e.id)
|
|
||||||
FROM entry e
|
|
||||||
WHERE e.travelFk = t.id
|
|
||||||
);
|
|
||||||
|
|
||||||
DELETE tr FROM travelRecalc tr JOIN tTravel t ON tr.travelFk = t.travelFk;
|
|
||||||
DROP TEMPORARY TABLE tTravel;
|
|
||||||
DO RELEASE_LOCK('vn.travel_doRecalc');
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`travel_recalc`(vSelf INT)
|
||||||
|
proc: BEGIN
|
||||||
|
/**
|
||||||
|
* Updates the number of entries assigned to the travel.
|
||||||
|
*
|
||||||
|
* @param vSelf The travel id
|
||||||
|
*/
|
||||||
|
UPDATE travel
|
||||||
|
SET totalEntries = (
|
||||||
|
SELECT COUNT(id)
|
||||||
|
FROM entry
|
||||||
|
WHERE travelFk = vSelf
|
||||||
|
)
|
||||||
|
WHERE id = vSelf;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -1,15 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`travel_requestRecalc`(vSelf INT)
|
|
||||||
proc: BEGIN
|
|
||||||
/**
|
|
||||||
* Adds a request to recount the number of entries for the travel.
|
|
||||||
*
|
|
||||||
* @param vSelf The travel reference
|
|
||||||
*/
|
|
||||||
IF vSelf IS NULL THEN
|
|
||||||
LEAVE proc;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
INSERT IGNORE INTO travelRecalc SET travelFk = vSelf;
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -5,36 +5,32 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`address_afterUpdate`
|
||||||
BEGIN
|
BEGIN
|
||||||
-- Recargos de equivalencia distintos implican facturacion por consignatario
|
-- Recargos de equivalencia distintos implican facturacion por consignatario
|
||||||
IF NEW.isEqualizated != OLD.isEqualizated THEN
|
IF NEW.isEqualizated != OLD.isEqualizated THEN
|
||||||
IF
|
IF
|
||||||
(SELECT COUNT(*) FROM
|
(SELECT COUNT(*) FROM
|
||||||
(
|
(
|
||||||
SELECT DISTINCT (isEqualizated = FALSE) as Equ
|
SELECT DISTINCT (isEqualizated = FALSE) as Equ
|
||||||
FROM address
|
FROM address
|
||||||
WHERE clientFk = NEW.clientFk
|
WHERE clientFk = NEW.clientFk
|
||||||
) t1
|
) t1
|
||||||
) > 1
|
) > 1
|
||||||
THEN
|
THEN
|
||||||
UPDATE client
|
UPDATE client
|
||||||
SET hasToInvoiceByAddress = TRUE
|
SET hasToInvoiceByAddress = TRUE
|
||||||
WHERE id = NEW.clientFk;
|
WHERE id = NEW.clientFk;
|
||||||
END IF;
|
END IF;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
IF NEW.isDefaultAddress AND NEW.isActive = FALSE THEN
|
IF NEW.isDefaultAddress AND NEW.isActive = FALSE THEN
|
||||||
CALL util.throw ('Cannot desactivate the default address');
|
CALL util.throw ('Cannot desactivate the default address');
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
IF NOT (NEW.isEqualizated <=> OLD.isEqualizated) THEN
|
IF (NEW.clientFk <> OLD.clientFk
|
||||||
INSERT IGNORE INTO ticketRecalc (ticketFk)
|
OR NEW.isActive <> OLD.isActive
|
||||||
SELECT id FROM ticket t
|
OR NOT (NEW.provinceFk <=> OLD.provinceFk))
|
||||||
WHERE t.addressFk = NEW.id
|
AND (SELECT client_hasDifferentCountries(NEW.clientFk)) THEN
|
||||||
AND t.refFk IS NULL;
|
UPDATE client
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF (NEW.clientFk <> OLD.clientFk OR NEW.isActive <> OLD.isActive OR NOT (NEW.provinceFk <=> OLD.provinceFk))
|
|
||||||
AND (SELECT client_hasDifferentCountries(NEW.clientFk)) THEN
|
|
||||||
UPDATE client
|
|
||||||
SET hasToInvoiceByAddress = TRUE
|
SET hasToInvoiceByAddress = TRUE
|
||||||
WHERE id = NEW.clientFk;
|
WHERE id = NEW.clientFk;
|
||||||
END IF;
|
END IF;
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -3,19 +3,14 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`buy_afterDelete`
|
||||||
AFTER DELETE ON `buy`
|
AFTER DELETE ON `buy`
|
||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
trig: BEGIN
|
trig: BEGIN
|
||||||
DECLARE vValues VARCHAR(255);
|
|
||||||
|
|
||||||
IF @isModeInventory OR @isTriggerDisabled THEN
|
IF @isModeInventory OR @isTriggerDisabled THEN
|
||||||
LEAVE trig;
|
LEAVE trig;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
CALL stock.log_add('buy', NULL, OLD.id);
|
|
||||||
|
|
||||||
INSERT INTO entryLog
|
INSERT INTO entryLog
|
||||||
SET `action` = 'delete',
|
SET `action` = 'delete',
|
||||||
`changedModel` = 'Buy',
|
`changedModel` = 'Buy',
|
||||||
`changedModelId` = OLD.id,
|
`changedModelId` = OLD.id,
|
||||||
`userFk` = account.myUser_getId();
|
`userFk` = account.myUser_getId();
|
||||||
|
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -7,8 +7,6 @@ trig: BEGIN
|
||||||
LEAVE trig;
|
LEAVE trig;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
CALL stock.log_add('buy', NEW.id, NULL);
|
|
||||||
|
|
||||||
CALL buy_afterUpsert(NEW.id);
|
CALL buy_afterUpsert(NEW.id);
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -12,14 +12,6 @@ trig: BEGIN
|
||||||
LEAVE trig;
|
LEAVE trig;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
IF !(NEW.id <=> OLD.id)
|
|
||||||
OR !(NEW.entryFk <=> OLD.entryFk)
|
|
||||||
OR !(NEW.itemFk <=> OLD.itemFk)
|
|
||||||
OR !(NEW.quantity <=> OLD.quantity)
|
|
||||||
OR !(NEW.created <=> OLD.created) THEN
|
|
||||||
CALL stock.log_add('buy', NEW.id, OLD.id);
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL buy_afterUpsert(NEW.id);
|
CALL buy_afterUpsert(NEW.id);
|
||||||
|
|
||||||
SELECT w.isBuyerToBeEmailed, t.landed
|
SELECT w.isBuyerToBeEmailed, t.landed
|
||||||
|
|
|
@ -4,20 +4,13 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`client_afterUpdate`
|
||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
IF !(NEW.defaultAddressFk <=> OLD.defaultAddressFk) THEN
|
IF !(NEW.defaultAddressFk <=> OLD.defaultAddressFk) THEN
|
||||||
UPDATE `address` SET isDefaultAddress = 0
|
UPDATE `address` SET isDefaultAddress = FALSE
|
||||||
WHERE clientFk = NEW.id;
|
WHERE clientFk = NEW.id;
|
||||||
|
|
||||||
UPDATE `address` SET isDefaultAddress = 1
|
UPDATE `address` SET isDefaultAddress = TRUE
|
||||||
WHERE id = NEW.defaultAddressFk;
|
WHERE id = NEW.defaultAddressFk;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
IF NOT (NEW.provinceFk <=> OLD.provinceFk) OR NOT (NEW.isVies <=> OLD.isVies) THEN
|
|
||||||
INSERT IGNORE INTO ticketRecalc (ticketFk)
|
|
||||||
SELECT id FROM ticket t
|
|
||||||
WHERE t.clientFk = NEW.id
|
|
||||||
AND t.refFk IS NULL;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF NOT NEW.isActive THEN
|
IF NOT NEW.isActive THEN
|
||||||
UPDATE account.`user`
|
UPDATE account.`user`
|
||||||
SET active = FALSE
|
SET active = FALSE
|
||||||
|
|
|
@ -8,7 +8,5 @@ BEGIN
|
||||||
`changedModel` = 'Entry',
|
`changedModel` = 'Entry',
|
||||||
`changedModelId` = OLD.id,
|
`changedModelId` = OLD.id,
|
||||||
`userFk` = account.myUser_getId();
|
`userFk` = account.myUser_getId();
|
||||||
|
|
||||||
CALL travel_requestRecalc(OLD.travelFk);
|
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`entry_afterInsert`
|
|
||||||
AFTER INSERT ON `entry`
|
|
||||||
FOR EACH ROW
|
|
||||||
BEGIN
|
|
||||||
CALL travel_requestRecalc(NEW.travelFk);
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -3,24 +3,12 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`entry_afterUpdate`
|
||||||
AFTER UPDATE ON `entry`
|
AFTER UPDATE ON `entry`
|
||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
IF NOT(NEW.id <=> OLD.id)
|
|
||||||
OR NOT(NEW.travelFk <=> OLD.travelFk)
|
|
||||||
OR NOT(NEW.isRaid <=> OLD.isRaid) THEN
|
|
||||||
CALL stock.log_add('entry', NEW.id, OLD.id);
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF NOT (NEW.travelFk <=> OLD.travelFk) THEN
|
|
||||||
CALL travel_requestRecalc(OLD.travelFk);
|
|
||||||
CALL travel_requestRecalc(NEW.travelFk);
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
|
|
||||||
IF NOT (NEW.travelFk <=> OLD.travelFk) THEN
|
IF NOT (NEW.travelFk <=> OLD.travelFk) THEN
|
||||||
CREATE OR REPLACE TEMPORARY TABLE tmp.buysToCheck
|
CREATE OR REPLACE TEMPORARY TABLE tmp.buysToCheck
|
||||||
SELECT b.id
|
SELECT b.id
|
||||||
FROM buy b
|
FROM buy b
|
||||||
WHERE b.entryFk = NEW.id;
|
WHERE b.entryFk = NEW.id;
|
||||||
|
|
||||||
CALL buy_checkItem();
|
CALL buy_checkItem();
|
||||||
END IF;
|
END IF;
|
||||||
END$$
|
END$$
|
||||||
|
|
|
@ -12,9 +12,6 @@ BEGIN
|
||||||
`changedModelId` = OLD.id,
|
`changedModelId` = OLD.id,
|
||||||
`userFk` = account.myUser_getId();
|
`userFk` = account.myUser_getId();
|
||||||
|
|
||||||
CALL stock.log_add('sale', NULL, OLD.id);
|
|
||||||
CALL ticket_requestRecalc(OLD.ticketFk);
|
|
||||||
|
|
||||||
SELECT account.myUser_getName() INTO vUserRole;
|
SELECT account.myUser_getName() INTO vUserRole;
|
||||||
SELECT account.user_getMysqlRole(vUserRole) INTO vUserRole;
|
SELECT account.user_getMysqlRole(vUserRole) INTO vUserRole;
|
||||||
|
|
||||||
|
|
|
@ -7,11 +7,7 @@ BEGIN
|
||||||
CALL util.throw('Cannot insert a service item into a ticket');
|
CALL util.throw('Cannot insert a service item into a ticket');
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
CALL stock.log_add('sale', NEW.id, NULL);
|
|
||||||
CALL ticket_requestRecalc(NEW.ticketFk);
|
|
||||||
|
|
||||||
IF NEW.quantity > 0 THEN
|
IF NEW.quantity > 0 THEN
|
||||||
|
|
||||||
UPDATE vn.collection c
|
UPDATE vn.collection c
|
||||||
JOIN vn.ticketCollection tc ON tc.collectionFk = c.id
|
JOIN vn.ticketCollection tc ON tc.collectionFk = c.id
|
||||||
AND tc.ticketFk = NEW.ticketFk
|
AND tc.ticketFk = NEW.ticketFk
|
||||||
|
|
|
@ -6,24 +6,6 @@ BEGIN
|
||||||
DECLARE vIsToSendMail BOOL;
|
DECLARE vIsToSendMail BOOL;
|
||||||
DECLARE vUserRole VARCHAR(255);
|
DECLARE vUserRole VARCHAR(255);
|
||||||
|
|
||||||
IF !(NEW.id <=> OLD.id)
|
|
||||||
OR !(NEW.ticketFk <=> OLD.ticketFk)
|
|
||||||
OR !(NEW.itemFk <=> OLD.itemFk)
|
|
||||||
OR !(NEW.quantity <=> OLD.quantity)
|
|
||||||
OR !(NEW.created <=> OLD.created)
|
|
||||||
OR !(NEW.isPicked <=> OLD.isPicked) THEN
|
|
||||||
CALL stock.log_add('sale', NEW.id, OLD.id);
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF !(NEW.price <=> OLD.price)
|
|
||||||
OR !(NEW.ticketFk <=> OLD.ticketFk)
|
|
||||||
OR !(NEW.itemFk <=> OLD.itemFk)
|
|
||||||
OR !(NEW.quantity <=> OLD.quantity)
|
|
||||||
OR !(NEW.discount <=> OLD.discount) THEN
|
|
||||||
CALL ticket_requestRecalc(NEW.ticketFk);
|
|
||||||
CALL ticket_requestRecalc(OLD.ticketFk);
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF !(OLD.ticketFk <=> NEW.ticketFk) THEN
|
IF !(OLD.ticketFk <=> NEW.ticketFk) THEN
|
||||||
UPDATE ticketRequest SET ticketFk = NEW.ticketFk
|
UPDATE ticketRequest SET ticketFk = NEW.ticketFk
|
||||||
WHERE saleFk = NEW.id;
|
WHERE saleFk = NEW.id;
|
||||||
|
|
|
@ -8,8 +8,5 @@ BEGIN
|
||||||
`changedModel` = 'TicketService',
|
`changedModel` = 'TicketService',
|
||||||
`changedModelId` = OLD.id,
|
`changedModelId` = OLD.id,
|
||||||
`userFk` = account.myUser_getId();
|
`userFk` = account.myUser_getId();
|
||||||
|
|
||||||
CALL ticket_requestRecalc(OLD.ticketFk);
|
|
||||||
|
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`ticketService_afterInsert`
|
|
||||||
AFTER INSERT ON `ticketService`
|
|
||||||
FOR EACH ROW
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
CALL ticket_requestRecalc(NEW.ticketFk);
|
|
||||||
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,13 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`ticketService_afterUpdate`
|
|
||||||
AFTER UPDATE ON `ticketService`
|
|
||||||
FOR EACH ROW
|
|
||||||
BEGIN
|
|
||||||
IF !(NEW.price <=> OLD.price)
|
|
||||||
OR !(NEW.ticketFk <=> OLD.ticketFk)
|
|
||||||
OR !(NEW.quantity <=> OLD.quantity) THEN
|
|
||||||
CALL ticket_requestRecalc(NEW.ticketFk);
|
|
||||||
CALL ticket_requestRecalc(OLD.ticketFk);
|
|
||||||
END IF;
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -3,24 +3,10 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`ticket_afterUpdate`
|
||||||
AFTER UPDATE ON `ticket`
|
AFTER UPDATE ON `ticket`
|
||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
||||||
IF !(NEW.id <=> OLD.id)
|
|
||||||
OR !(NEW.warehouseFk <=> OLD.warehouseFk)
|
|
||||||
OR !(NEW.shipped <=> OLD.shipped) THEN
|
|
||||||
CALL stock.log_add('ticket', NEW.id, OLD.id);
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF !(NEW.clientFk <=> OLD.clientFk)
|
|
||||||
OR !(NEW.addressFk <=> OLD.addressFk)
|
|
||||||
OR !(NEW.companyFk <=> OLD.companyFk) THEN
|
|
||||||
CALL ticket_requestRecalc(NEW.id);
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF NEW.routeFk <> OLD.routeFk THEN
|
IF NEW.routeFk <> OLD.routeFk THEN
|
||||||
UPDATE expedition
|
UPDATE expedition
|
||||||
SET hasNewRoute = TRUE
|
SET hasNewRoute = TRUE
|
||||||
WHERE ticketFk = NEW.id;
|
WHERE ticketFk = NEW.id;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -3,10 +3,8 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`travel_afterUpdate`
|
||||||
AFTER UPDATE ON `travel`
|
AFTER UPDATE ON `travel`
|
||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
CALL stock.log_add('travel', NEW.id, OLD.id);
|
|
||||||
|
|
||||||
IF NOT(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;
|
||||||
END IF;
|
END IF;
|
||||||
|
@ -15,11 +13,11 @@ BEGIN
|
||||||
IF (SELECT hasWeightVolumetric FROM agencyMode WHERE id = NEW.agencyModeFk) THEN
|
IF (SELECT hasWeightVolumetric FROM agencyMode WHERE id = NEW.agencyModeFk) THEN
|
||||||
CREATE OR REPLACE TEMPORARY TABLE tmp.buysToCheck
|
CREATE OR REPLACE TEMPORARY TABLE tmp.buysToCheck
|
||||||
SELECT b.id
|
SELECT b.id
|
||||||
FROM entry e
|
FROM entry e
|
||||||
JOIN buy b ON b.entryFk = e.id
|
JOIN buy b ON b.entryFk = e.id
|
||||||
JOIN item i ON i.id = b.itemFk
|
JOIN item i ON i.id = b.itemFk
|
||||||
WHERE e.travelFk = NEW.id;
|
WHERE e.travelFk = NEW.id;
|
||||||
|
|
||||||
CALL buy_checkItem();
|
CALL buy_checkItem();
|
||||||
END IF;
|
END IF;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost`
|
CREATE OR REPLACE DEFINER=`root`@`localhost`
|
||||||
SQL SECURITY DEFINER
|
SQL SECURITY DEFINER
|
||||||
VIEW `vn`.`ticketMRW`
|
VIEW `vn`.`ticketMRW`
|
||||||
AS SELECT `Tickets`.`Id_Agencia` AS `id_Agencia`,
|
AS SELECT `ticket`.`agencyModeFk` AS `id_Agencia`,
|
||||||
`Tickets`.`empresa_id` AS `empresa_id`,
|
`ticket`.`companyFk` AS `empresa_id`,
|
||||||
`Consignatarios`.`consignatario` AS `Consignatario`,
|
`Consignatarios`.`consignatario` AS `Consignatario`,
|
||||||
`Consignatarios`.`domicilio` AS `DOMICILIO`,
|
`Consignatarios`.`domicilio` AS `DOMICILIO`,
|
||||||
`Consignatarios`.`poblacion` AS `POBLACION`,
|
`Consignatarios`.`poblacion` AS `POBLACION`,
|
||||||
|
@ -19,13 +19,13 @@ AS SELECT `Tickets`.`Id_Agencia` AS `id_Agencia`,
|
||||||
0
|
0
|
||||||
) AS `movil`,
|
) AS `movil`,
|
||||||
`Clientes`.`if` AS `IF`,
|
`Clientes`.`if` AS `IF`,
|
||||||
`Tickets`.`Id_Ticket` AS `Id_Ticket`,
|
`ticket`.`id` AS `Id_Ticket`,
|
||||||
`Tickets`.`warehouse_id` AS `warehouse_id`,
|
`ticket`.`warehouseFk` AS `warehouse_id`,
|
||||||
`Consignatarios`.`id_consigna` AS `Id_Consigna`,
|
`Consignatarios`.`id_consigna` AS `Id_Consigna`,
|
||||||
`Paises`.`Codigo` AS `CodigoPais`,
|
`Paises`.`Codigo` AS `CodigoPais`,
|
||||||
`Tickets`.`Fecha` AS `Fecha`,
|
`ticket`.`shipped` AS `Fecha`,
|
||||||
`province`.`province_id` AS `province_id`,
|
`province`.`province_id` AS `province_id`,
|
||||||
`Tickets`.`landing` AS `landing`
|
`ticket`.`landed` AS `landing`
|
||||||
FROM (
|
FROM (
|
||||||
(
|
(
|
||||||
(
|
(
|
||||||
|
@ -35,8 +35,8 @@ FROM (
|
||||||
`Clientes`.`id_cliente` = `Consignatarios`.`Id_cliente`
|
`Clientes`.`id_cliente` = `Consignatarios`.`Id_cliente`
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
JOIN `vn2008`.`Tickets` ON(
|
JOIN `vn`.`ticket` ON(
|
||||||
`Consignatarios`.`id_consigna` = `Tickets`.`Id_Consigna`
|
`Consignatarios`.`id_consigna` = `ticket`.`addressFk`
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
JOIN `vn2008`.`province` ON(
|
JOIN `vn2008`.`province` ON(
|
||||||
|
@ -44,4 +44,4 @@ FROM (
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
JOIN `vn2008`.`Paises` ON(`province`.`Paises_Id` = `Paises`.`Id`)
|
JOIN `vn2008`.`Paises` ON(`province`.`Paises_Id` = `Paises`.`Id`)
|
||||||
)
|
);
|
||||||
|
|
|
@ -18,7 +18,7 @@ proc: BEGIN
|
||||||
-- Calcula algunos parámetros necesarios
|
-- Calcula algunos parámetros necesarios
|
||||||
SET vDatedFrom = TIMESTAMP(vDated, '00:00:00');
|
SET vDatedFrom = TIMESTAMP(vDated, '00:00:00');
|
||||||
SET vDatedTo = TIMESTAMP(TIMESTAMPADD(DAY, 4, vDated), '23:59:59');
|
SET vDatedTo = TIMESTAMP(TIMESTAMPADD(DAY, 4, vDated), '23:59:59');
|
||||||
SELECT FechaInventario INTO vDatedInventory FROM tblContadores;
|
SELECT inventoried INTO vDatedInventory FROM vn.config;
|
||||||
SELECT SUBTIME(util.VN_NOW(), reserveTime) INTO vDatedReserve
|
SELECT SUBTIME(util.VN_NOW(), reserveTime) INTO vDatedReserve
|
||||||
FROM hedera.orderConfig;
|
FROM hedera.orderConfig;
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
-- Place your SQL code here
|
||||||
|
ALTER TABLE vn.packaging
|
||||||
|
MODIFY COLUMN volume decimal(10,2) CHECK (volume >= COALESCE(width, 1) * COALESCE(depth, 1) * COALESCE(height, 1));
|
|
@ -0,0 +1,4 @@
|
||||||
|
-- Place your SQL code here
|
||||||
|
|
||||||
|
USE vn;
|
||||||
|
INSERT INTO vn.observationType (description,code) VALUES ('Entrega','dropOff');
|
|
@ -2,4 +2,10 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`client_getRisk`()
|
||||||
BEGIN
|
BEGIN
|
||||||
END;
|
END;
|
||||||
|
|
||||||
GRANT EXECUTE ON PROCEDURE vn.client_getRisk TO financialBoss;
|
GRANT EXECUTE ON PROCEDURE vn.client_getRisk TO financial;
|
||||||
|
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`creditInsurance_getRisk`()
|
||||||
|
BEGIN
|
||||||
|
END;
|
||||||
|
|
||||||
|
GRANT EXECUTE ON PROCEDURE vn.creditInsurance_getRisk TO financial;
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
DROP TABLE hedera.orderRecalc;
|
|
@ -0,0 +1 @@
|
||||||
|
DROP TABLE vn.ticketRecalc;
|
|
@ -0,0 +1 @@
|
||||||
|
DROP TABLE vn.travelRecalc;
|
|
@ -0,0 +1 @@
|
||||||
|
DROP SCHEMA IF EXISTS rfid;
|
|
@ -76,6 +76,6 @@ describe('Entry basic data path', () => {
|
||||||
expect(confirmed).toBe('checked');
|
expect(confirmed).toBe('checked');
|
||||||
expect(inventory).toBe('checked');
|
expect(inventory).toBe('checked');
|
||||||
expect(raid).toBe('checked');
|
expect(raid).toBe('checked');
|
||||||
expect(booked).toBe('checked');
|
expect(booked).toBe('unchecked');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,217 +1,217 @@
|
||||||
{
|
{
|
||||||
"State cannot be blank": "State cannot be blank",
|
"State cannot be blank": "State cannot be blank",
|
||||||
"Cannot be blank": "Cannot be blank",
|
"Cannot be blank": "Cannot be blank",
|
||||||
"The credit must be an integer greater than or equal to zero": "The credit must be an integer greater than or equal to zero",
|
"The credit must be an integer greater than or equal to zero": "The credit must be an integer greater than or equal to zero",
|
||||||
"The grade must be an integer greater than or equal to zero": "The grade must be an integer greater than or equal to zero",
|
"The grade must be an integer greater than or equal to zero": "The grade must be an integer greater than or equal to zero",
|
||||||
"Invalid email": "Invalid email",
|
"Invalid email": "Invalid email",
|
||||||
"Name cannot be blank": "Name cannot be blank",
|
"Name cannot be blank": "Name cannot be blank",
|
||||||
"Phone cannot be blank": "Phone cannot be blank",
|
"Phone cannot be blank": "Phone cannot be blank",
|
||||||
"Description should have maximum of 45 characters": "Description should have maximum of 45 characters",
|
"Description should have maximum of 45 characters": "Description should have maximum of 45 characters",
|
||||||
"Period cannot be blank": "Period cannot be blank",
|
"Period cannot be blank": "Period cannot be blank",
|
||||||
"Sample type cannot be blank": "Sample type cannot be blank",
|
"Sample type cannot be blank": "Sample type cannot be blank",
|
||||||
"That payment method requires an IBAN": "That payment method requires an IBAN",
|
"That payment method requires an IBAN": "That payment method requires an IBAN",
|
||||||
"That payment method requires a BIC": "That payment method requires a BIC",
|
"That payment method requires a BIC": "That payment method requires a BIC",
|
||||||
"The default consignee can not be unchecked": "The default consignee can not be unchecked",
|
"The default consignee can not be unchecked": "The default consignee can not be unchecked",
|
||||||
"Enter an integer different to zero": "Enter an integer different to zero",
|
"Enter an integer different to zero": "Enter an integer different to zero",
|
||||||
"Package cannot be blank": "Package cannot be blank",
|
"Package cannot be blank": "Package cannot be blank",
|
||||||
"The price of the item changed": "The price of the item changed",
|
"The price of the item changed": "The price of the item changed",
|
||||||
"The sales of this ticket can't be modified": "The sales of this ticket can't be modified",
|
"The sales of this ticket can't be modified": "The sales of this ticket can't be modified",
|
||||||
"Cannot check Equalization Tax in this NIF/CIF": "Cannot check Equalization Tax in this NIF/CIF",
|
"Cannot check Equalization Tax in this NIF/CIF": "Cannot check Equalization Tax in this NIF/CIF",
|
||||||
"You can't create an order for a frozen client": "You can't create an order for a frozen client",
|
"You can't create an order for a frozen client": "You can't create an order for a frozen client",
|
||||||
"This address doesn't exist": "This address doesn't exist",
|
"This address doesn't exist": "This address doesn't exist",
|
||||||
"Warehouse cannot be blank": "Warehouse cannot be blank",
|
"Warehouse cannot be blank": "Warehouse cannot be blank",
|
||||||
"Agency cannot be blank": "Agency cannot be blank",
|
"Agency cannot be blank": "Agency cannot be blank",
|
||||||
"The IBAN does not have the correct format": "The IBAN does not have the correct format",
|
"The IBAN does not have the correct format": "The IBAN does not have the correct format",
|
||||||
"You can't make changes on the basic data of an confirmed order or with rows": "You can't make changes on the basic data of an confirmed order or with rows",
|
"You can't make changes on the basic data of an confirmed order or with rows": "You can't make changes on the basic data of an confirmed order or with rows",
|
||||||
"You can't create a ticket for an inactive client": "You can't create a ticket for an inactive client",
|
"You can't create a ticket for an inactive client": "You can't create a ticket for an inactive client",
|
||||||
"Worker cannot be blank": "Worker cannot be blank",
|
"Worker cannot be blank": "Worker cannot be blank",
|
||||||
"You must delete the claim id %d first": "You must delete the claim id %d first",
|
"You must delete the claim id %d first": "You must delete the claim id %d first",
|
||||||
"You don't have enough privileges": "You don't have enough privileges",
|
"You don't have enough privileges": "You don't have enough privileges",
|
||||||
"Tag value cannot be blank": "Tag value cannot be blank",
|
"Tag value cannot be blank": "Tag value cannot be blank",
|
||||||
"A client with that Web User name already exists": "A client with that Web User name already exists",
|
"A client with that Web User name already exists": "A client with that Web User name already exists",
|
||||||
"The warehouse can't be repeated": "The warehouse can't be repeated",
|
"The warehouse can't be repeated": "The warehouse can't be repeated",
|
||||||
"Barcode must be unique": "Barcode must be unique",
|
"Barcode must be unique": "Barcode must be unique",
|
||||||
"You don't have enough privileges to do that": "You don't have enough privileges to do that",
|
"You don't have enough privileges to do that": "You don't have enough privileges to do that",
|
||||||
"You can't create a ticket for a frozen client": "You can't create a ticket for a frozen client",
|
"You can't create a ticket for a frozen client": "You can't create a ticket for a frozen client",
|
||||||
"can't be blank": "can't be blank",
|
"can't be blank": "can't be blank",
|
||||||
"Street cannot be empty": "Street cannot be empty",
|
"Street cannot be empty": "Street cannot be empty",
|
||||||
"City cannot be empty": "City cannot be empty",
|
"City cannot be empty": "City cannot be empty",
|
||||||
"EXTENSION_INVALID_FORMAT": "Invalid extension",
|
"EXTENSION_INVALID_FORMAT": "Invalid extension",
|
||||||
"The secret can't be blank": "The secret can't be blank",
|
"The secret can't be blank": "The secret can't be blank",
|
||||||
"Invalid TIN": "Invalid Tax number",
|
"Invalid TIN": "Invalid Tax number",
|
||||||
"This ticket can't be invoiced": "This ticket can't be invoiced",
|
"This ticket can't be invoiced": "This ticket can't be invoiced",
|
||||||
"The value should be a number": "The value should be a number",
|
"The value should be a number": "The value should be a number",
|
||||||
"The current ticket can't be modified": "The current ticket can't be modified",
|
"The current ticket can't be modified": "The current ticket can't be modified",
|
||||||
"Extension format is invalid": "Extension format is invalid",
|
"Extension format is invalid": "Extension format is invalid",
|
||||||
"NO_ZONE_FOR_THIS_PARAMETERS": "NO_ZONE_FOR_THIS_PARAMETERS",
|
"NO_ZONE_FOR_THIS_PARAMETERS": "NO_ZONE_FOR_THIS_PARAMETERS",
|
||||||
"This client can't be invoiced": "This client can't be invoiced",
|
"This client can't be invoiced": "This client can't be invoiced",
|
||||||
"You must provide the correction information to generate a corrective invoice": "You must provide the correction information to generate a corrective invoice",
|
"You must provide the correction information to generate a corrective invoice": "You must provide the correction information to generate a corrective invoice",
|
||||||
"The introduced hour already exists": "The introduced hour already exists",
|
"The introduced hour already exists": "The introduced hour already exists",
|
||||||
"Invalid parameters to create a new ticket": "Invalid parameters to create a new ticket",
|
"Invalid parameters to create a new ticket": "Invalid parameters to create a new ticket",
|
||||||
"Concept cannot be blank": "Concept cannot be blank",
|
"Concept cannot be blank": "Concept cannot be blank",
|
||||||
"Ticket id cannot be blank": "Ticket id cannot be blank",
|
"Ticket id cannot be blank": "Ticket id cannot be blank",
|
||||||
"Weekday cannot be blank": "Weekday cannot be blank",
|
"Weekday cannot be blank": "Weekday cannot be blank",
|
||||||
"This ticket can not be modified": "This ticket can not be modified",
|
"This ticket can not be modified": "This ticket can not be modified",
|
||||||
"You can't delete a confirmed order": "You can't delete a confirmed order",
|
"You can't delete a confirmed order": "You can't delete a confirmed order",
|
||||||
"Value has an invalid format": "Value has an invalid format",
|
"Value has an invalid format": "Value has an invalid format",
|
||||||
"The postcode doesn't exist. Please enter a correct one": "The postcode doesn't exist. Please enter a correct one",
|
"The postcode doesn't exist. Please enter a correct one": "The postcode doesn't exist. Please enter a correct one",
|
||||||
"Swift / BIC can't be empty": "Swift / BIC can't be empty",
|
"Swift / BIC can't be empty": "Swift / BIC can't be empty",
|
||||||
"Deleted sales from ticket": "I have deleted the following lines from the ticket [{{ticketId}}]({{{ticketUrl}}}): {{{deletions}}}",
|
"Deleted sales from ticket": "I have deleted the following lines from the ticket [{{ticketId}}]({{{ticketUrl}}}): {{{deletions}}}",
|
||||||
"Added sale to ticket": "I have added the following line to the ticket [{{ticketId}}]({{{ticketUrl}}}): {{{addition}}}",
|
"Added sale to ticket": "I have added the following line to the ticket [{{ticketId}}]({{{ticketUrl}}}): {{{addition}}}",
|
||||||
"Changed sale discount": "I have changed the following lines discounts from the ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}",
|
"Changed sale discount": "I have changed the following lines discounts from the ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}",
|
||||||
"Created claim": "I have created the claim [{{claimId}}]({{{claimUrl}}}) for the following lines from the ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}",
|
"Created claim": "I have created the claim [{{claimId}}]({{{claimUrl}}}) for the following lines from the ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}",
|
||||||
"Changed sale price": "I have changed the price of [{{itemId}} {{concept}}]({{{itemUrl}}}) ({{quantity}}) from {{oldPrice}}€ ➔ *{{newPrice}}€* of the ticket [{{ticketId}}]({{{ticketUrl}}})",
|
"Changed sale price": "I have changed the price of [{{itemId}} {{concept}}]({{{itemUrl}}}) ({{quantity}}) from {{oldPrice}}€ ➔ *{{newPrice}}€* of the ticket [{{ticketId}}]({{{ticketUrl}}})",
|
||||||
"Changed sale quantity": "I have changed the quantity of [{{itemId}} {{concept}}]({{{itemUrl}}}) from {{oldQuantity}} ➔ *{{newQuantity}}* of the ticket [{{ticketId}}]({{{ticketUrl}}})",
|
"Changed sale quantity": "I have changed the quantity of [{{itemId}} {{concept}}]({{{itemUrl}}}) from {{oldQuantity}} ➔ *{{newQuantity}}* of the ticket [{{ticketId}}]({{{ticketUrl}}})",
|
||||||
"Changed sale reserved state": "I have changed the following lines reserved state from the ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}",
|
"Changed sale reserved state": "I have changed the following lines reserved state from the ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}",
|
||||||
"Bought units from buy request": "Bought {{quantity}} units of [{{itemId}} {{concept}}]({{{urlItem}}}) for the ticket id [{{ticketId}}]({{{url}}})",
|
"Bought units from buy request": "Bought {{quantity}} units of [{{itemId}} {{concept}}]({{{urlItem}}}) for the ticket id [{{ticketId}}]({{{url}}})",
|
||||||
"MESSAGE_INSURANCE_CHANGE": "I have changed the insurence credit of client [{{clientName}} ({{clientId}})]({{{url}}}) to *{{credit}} €*",
|
"MESSAGE_INSURANCE_CHANGE": "I have changed the insurence credit of client [{{clientName}} ({{clientId}})]({{{url}}}) to *{{credit}} €*",
|
||||||
"Changed client paymethod": "I have changed the pay method for client [{{clientName}} ({{clientId}})]({{{url}}})",
|
"Changed client paymethod": "I have changed the pay method for client [{{clientName}} ({{clientId}})]({{{url}}})",
|
||||||
"Sent units from ticket": "I sent *{{quantity}}* units of [{{concept}} ({{itemId}})]({{{itemUrl}}}) to *\"{{nickname}}\"* coming from ticket id [{{ticketId}}]({{{ticketUrl}}})",
|
"Sent units from ticket": "I sent *{{quantity}}* units of [{{concept}} ({{itemId}})]({{{itemUrl}}}) to *\"{{nickname}}\"* coming from ticket id [{{ticketId}}]({{{ticketUrl}}})",
|
||||||
"Change quantity": "{{concept}} change of {{oldQuantity}} to {{newQuantity}}",
|
"Change quantity": "{{concept}} change of {{oldQuantity}} to {{newQuantity}}",
|
||||||
"Claim will be picked": "The product from the claim [({{claimId}})]({{{claimUrl}}}) from the client *{{clientName}}* will be picked, with the pickup type *{{claimPickup}}*",
|
"Claim will be picked": "The product from the claim [({{claimId}})]({{{claimUrl}}}) from the client *{{clientName}}* will be picked, with the pickup type *{{claimPickup}}*",
|
||||||
"Claim state has changed to": "The state of the claim [({{claimId}})]({{{claimUrl}}}) from client *{{clientName}}* has changed to *{{newState}}*",
|
"Claim state has changed to": "The state of the claim [({{claimId}})]({{{claimUrl}}}) from client *{{clientName}}* has changed to *{{newState}}*",
|
||||||
"Customs agent is required for a non UEE member": "Customs agent is required for a non UEE member",
|
"Customs agent is required for a non UEE member": "Customs agent is required for a non UEE member",
|
||||||
"Incoterms is required for a non UEE member": "Incoterms is required for a non UEE member",
|
"Incoterms is required for a non UEE member": "Incoterms is required for a non UEE member",
|
||||||
"Client checked as validated despite of duplication": "Client checked as validated despite of duplication from client id {{clientId}}",
|
"Client checked as validated despite of duplication": "Client checked as validated despite of duplication from client id {{clientId}}",
|
||||||
"Landing cannot be lesser than shipment": "Landing cannot be lesser than shipment",
|
"Landing cannot be lesser than shipment": "Landing cannot be lesser than shipment",
|
||||||
"NOT_ZONE_WITH_THIS_PARAMETERS": "There's no zone available for this day",
|
"NOT_ZONE_WITH_THIS_PARAMETERS": "There's no zone available for this day",
|
||||||
"Created absence": "The worker <strong>{{author}}</strong> has added an absence of type '{{absenceType}}' to <a href='{{{workerUrl}}}'><strong>{{employee}}</strong></a> for day {{dated}}.",
|
"Created absence": "The worker <strong>{{author}}</strong> has added an absence of type '{{absenceType}}' to <a href='{{{workerUrl}}}'><strong>{{employee}}</strong></a> for day {{dated}}.",
|
||||||
"Deleted absence": "The worker <strong>{{author}}</strong> has deleted an absence of type '{{absenceType}}' to <a href='{{{workerUrl}}}'><strong>{{employee}}</strong></a> for day {{dated}}.",
|
"Deleted absence": "The worker <strong>{{author}}</strong> has deleted an absence of type '{{absenceType}}' to <a href='{{{workerUrl}}}'><strong>{{employee}}</strong></a> for day {{dated}}.",
|
||||||
"I have deleted the ticket id": "I have deleted the ticket id [{{id}}]({{{url}}})",
|
"I have deleted the ticket id": "I have deleted the ticket id [{{id}}]({{{url}}})",
|
||||||
"I have restored the ticket id": "I have restored the ticket id [{{id}}]({{{url}}})",
|
"I have restored the ticket id": "I have restored the ticket id [{{id}}]({{{url}}})",
|
||||||
"Changed this data from the ticket": "I have changed the data from the ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}",
|
"Changed this data from the ticket": "I have changed the data from the ticket [{{ticketId}}]({{{ticketUrl}}}): {{{changes}}}",
|
||||||
"The grade must be similar to the last one": "The grade must be similar to the last one",
|
"The grade must be similar to the last one": "The grade must be similar to the last one",
|
||||||
"agencyModeFk": "Agency",
|
"agencyModeFk": "Agency",
|
||||||
"clientFk": "Client",
|
"clientFk": "Client",
|
||||||
"zoneFk": "Zone",
|
"zoneFk": "Zone",
|
||||||
"warehouseFk": "Warehouse",
|
"warehouseFk": "Warehouse",
|
||||||
"shipped": "Shipped",
|
"shipped": "Shipped",
|
||||||
"landed": "Landed",
|
"landed": "Landed",
|
||||||
"addressFk": "Address",
|
"addressFk": "Address",
|
||||||
"companyFk": "Company",
|
"companyFk": "Company",
|
||||||
"agency": "Agency",
|
"agency": "Agency",
|
||||||
"delivery": "Delivery",
|
"delivery": "Delivery",
|
||||||
"You need to fill sage information before you check verified data": "You need to fill sage information before you check verified data",
|
"You need to fill sage information before you check verified data": "You need to fill sage information before you check verified data",
|
||||||
"The social name cannot be empty": "The social name cannot be empty",
|
"The social name cannot be empty": "The social name cannot be empty",
|
||||||
"The nif cannot be empty": "The nif cannot be empty",
|
"The nif cannot be empty": "The nif cannot be empty",
|
||||||
"Amount cannot be zero": "Amount cannot be zero",
|
"Amount cannot be zero": "Amount cannot be zero",
|
||||||
"Company has to be official": "Company has to be official",
|
"Company has to be official": "Company has to be official",
|
||||||
"Unable to clone this travel": "Unable to clone this travel",
|
"Unable to clone this travel": "Unable to clone this travel",
|
||||||
"The observation type can't be repeated": "The observation type can't be repeated",
|
"The observation type can't be repeated": "The observation type can't be repeated",
|
||||||
"New ticket request has been created with price": "New ticket request has been created *'{{description}}'* for day *{{shipped}}*, with a quantity of *{{quantity}}* and a price of *{{price}} €*",
|
"New ticket request has been created with price": "New ticket request has been created *'{{description}}'* for day *{{shipped}}*, with a quantity of *{{quantity}}* and a price of *{{price}} €*",
|
||||||
"New ticket request has been created": "New ticket request has been created *'{{description}}'* for day *{{shipped}}*, with a quantity of *{{quantity}}*",
|
"New ticket request has been created": "New ticket request has been created *'{{description}}'* for day *{{shipped}}*, with a quantity of *{{quantity}}*",
|
||||||
"There's a new urgent ticket": "There's a new urgent ticket: [{{title}}](https://cau.verdnatura.es/WorkOrder.do?woMode=viewWO&woID={{issueId}})",
|
"There's a new urgent ticket": "There's a new urgent ticket: [{{title}}](https://cau.verdnatura.es/WorkOrder.do?woMode=viewWO&woID={{issueId}})",
|
||||||
"Swift / BIC cannot be empty": "Swift / BIC cannot be empty",
|
"Swift / BIC cannot be empty": "Swift / BIC cannot be empty",
|
||||||
"Role name must be written in camelCase": "Role name must be written in camelCase",
|
"Role name must be written in camelCase": "Role name must be written in camelCase",
|
||||||
"Client assignment has changed": "I did change the salesperson ~*\"<{{previousWorkerName}}>\"*~ by *\"<{{currentWorkerName}}>\"* from the client [{{clientName}} ({{clientId}})]({{{url}}})",
|
"Client assignment has changed": "I did change the salesperson ~*\"<{{previousWorkerName}}>\"*~ by *\"<{{currentWorkerName}}>\"* from the client [{{clientName}} ({{clientId}})]({{{url}}})",
|
||||||
"None": "None",
|
"None": "None",
|
||||||
"error densidad = 0": "error densidad = 0",
|
"error densidad = 0": "error densidad = 0",
|
||||||
"This document already exists on this ticket": "This document already exists on this ticket",
|
"This document already exists on this ticket": "This document already exists on this ticket",
|
||||||
"serial non editable": "This serial doesn't allow to set a reference",
|
"serial non editable": "This serial doesn't allow to set a reference",
|
||||||
"nickname": "nickname",
|
"nickname": "nickname",
|
||||||
"State": "State",
|
"State": "State",
|
||||||
"regular": "regular",
|
"regular": "regular",
|
||||||
"reserved": "reserved",
|
"reserved": "reserved",
|
||||||
"Global invoicing failed": "[Global invoicing] Wasn't able to invoice some of the clients",
|
"Global invoicing failed": "[Global invoicing] Wasn't able to invoice some of the clients",
|
||||||
"A ticket with a negative base can't be invoiced": "A ticket with a negative base can't be invoiced",
|
"A ticket with a negative base can't be invoiced": "A ticket with a negative base can't be invoiced",
|
||||||
"This client is not invoiceable": "This client is not invoiceable",
|
"This client is not invoiceable": "This client is not invoiceable",
|
||||||
"INACTIVE_PROVIDER": "Inactive provider",
|
"INACTIVE_PROVIDER": "Inactive provider",
|
||||||
"reference duplicated": "reference duplicated",
|
"reference duplicated": "reference duplicated",
|
||||||
"The PDF document does not exist": "The PDF document does not exists. Try regenerating it from 'Regenerate invoice PDF' option",
|
"The PDF document does not exist": "The PDF document does not exists. Try regenerating it from 'Regenerate invoice PDF' option",
|
||||||
"This item is not available": "This item is not available",
|
"This item is not available": "This item is not available",
|
||||||
"Deny buy request": "Purchase request for ticket id [{{ticketId}}]({{{url}}}) has been rejected. Reason: {{observation}}",
|
"Deny buy request": "Purchase request for ticket id [{{ticketId}}]({{{url}}}) has been rejected. Reason: {{observation}}",
|
||||||
"The type of business must be filled in basic data": "The type of business must be filled in basic data",
|
"The type of business must be filled in basic data": "The type of business must be filled in basic data",
|
||||||
"The worker has hours recorded that day": "The worker has hours recorded that day",
|
"The worker has hours recorded that day": "The worker has hours recorded that day",
|
||||||
"isWithoutNegatives": "isWithoutNegatives",
|
"isWithoutNegatives": "isWithoutNegatives",
|
||||||
"routeFk": "routeFk",
|
"routeFk": "routeFk",
|
||||||
"Not enough privileges to edit a client with verified data": "Not enough privileges to edit a client with verified data",
|
"Not enough privileges to edit a client with verified data": "Not enough privileges to edit a client with verified data",
|
||||||
"Can't change the password of another worker": "Can't change the password of another worker",
|
"Can't change the password of another worker": "Can't change the password of another worker",
|
||||||
"No hay un contrato en vigor": "There is no existing contract",
|
"No hay un contrato en vigor": "There is no existing contract",
|
||||||
"No está permitido trabajar": "Not allowed to work",
|
"No está permitido trabajar": "Not allowed to work",
|
||||||
"Dirección incorrecta": "Wrong direction",
|
"Dirección incorrecta": "Wrong direction",
|
||||||
"No se permite fichar a futuro": "It is not allowed to sign in the future",
|
"No se permite fichar a futuro": "It is not allowed to sign in the future",
|
||||||
"Descanso diario 12h.": "Daily rest 12h.",
|
"Descanso diario 12h.": "Daily rest 12h.",
|
||||||
"Fichadas impares": "Odd signs",
|
"Fichadas impares": "Odd signs",
|
||||||
"Descanso diario 9h.": "Daily rest 9h.",
|
"Descanso diario 9h.": "Daily rest 9h.",
|
||||||
"Descanso semanal 36h. / 72h.": "Weekly rest 36h. / 72h.",
|
"Descanso semanal 36h. / 72h.": "Weekly rest 36h. / 72h.",
|
||||||
"Verify email": "Verify email",
|
"Verify email": "Verify email",
|
||||||
"Click on the following link to verify this email. If you haven't requested this email, just ignore it": "Click on the following link to verify this email. If you haven't requested this email, just ignore it",
|
"Click on the following link to verify this email. If you haven't requested this email, just ignore it": "Click on the following link to verify this email. If you haven't requested this email, just ignore it",
|
||||||
"Password does not meet requirements": "Password does not meet requirements",
|
"Password does not meet requirements": "Password does not meet requirements",
|
||||||
"You don't have privileges to change the zone": "You don't have privileges to change the zone or for these parameters there are more than one shipping options, talk to agencies",
|
"You don't have privileges to change the zone": "You don't have privileges to change the zone or for these parameters there are more than one shipping options, talk to agencies",
|
||||||
"Not enough privileges to edit a client": "Not enough privileges to edit a client",
|
"Not enough privileges to edit a client": "Not enough privileges to edit a client",
|
||||||
"Claim pickup order sent": "Claim pickup order sent [{{claimId}}]({{{claimUrl}}}) to client *{{clientName}}*",
|
"Claim pickup order sent": "Claim pickup order sent [{{claimId}}]({{{claimUrl}}}) to client *{{clientName}}*",
|
||||||
"You don't have grant privilege": "You don't have grant privilege",
|
"You don't have grant privilege": "You don't have grant privilege",
|
||||||
"You don't own the role and you can't assign it to another user": "You don't own the role and you can't assign it to another user",
|
"You don't own the role and you can't assign it to another user": "You don't own the role and you can't assign it to another user",
|
||||||
"Email verify": "Email verify",
|
"Email verify": "Email verify",
|
||||||
"Ticket merged": "Ticket [{{originId}}]({{{originFullPath}}}) ({{{originDated}}}) merged with [{{destinationId}}]({{{destinationFullPath}}}) ({{{destinationDated}}})",
|
"Ticket merged": "Ticket [{{originId}}]({{{originFullPath}}}) ({{{originDated}}}) merged with [{{destinationId}}]({{{destinationFullPath}}}) ({{{destinationDated}}})",
|
||||||
"App locked": "App locked by user {{userId}}",
|
"App locked": "App locked by user {{userId}}",
|
||||||
"The sales of the receiver ticket can't be modified": "The sales of the receiver ticket can't be modified",
|
"The sales of the receiver ticket can't be modified": "The sales of the receiver ticket can't be modified",
|
||||||
"Receipt's bank was not found": "Receipt's bank was not found",
|
"Receipt's bank was not found": "Receipt's bank was not found",
|
||||||
"This receipt was not compensated": "This receipt was not compensated",
|
"This receipt was not compensated": "This receipt was not compensated",
|
||||||
"Client's email was not found": "Client's email was not found",
|
"Client's email was not found": "Client's email was not found",
|
||||||
"Tickets with associated refunds": "Tickets with associated refunds can't be deleted. This ticket is associated with refund Nº %d",
|
"Tickets with associated refunds": "Tickets with associated refunds can't be deleted. This ticket is associated with refund Nº %d",
|
||||||
"It is not possible to modify tracked sales": "It is not possible to modify tracked sales",
|
"It is not possible to modify tracked sales": "It is not possible to modify tracked sales",
|
||||||
"It is not possible to modify sales that their articles are from Floramondo": "It is not possible to modify sales that their articles are from Floramondo",
|
"It is not possible to modify sales that their articles are from Floramondo": "It is not possible to modify sales that their articles are from Floramondo",
|
||||||
"It is not possible to modify cloned sales": "It is not possible to modify cloned sales",
|
"It is not possible to modify cloned sales": "It is not possible to modify cloned sales",
|
||||||
"Warehouse inventory not set": "Almacén inventario no está establecido",
|
"Warehouse inventory not set": "Almacén inventario no está establecido",
|
||||||
"Component cost not set": "Componente coste no está estabecido",
|
"Component cost not set": "Componente coste no está estabecido",
|
||||||
"Description cannot be blank": "Description cannot be blank",
|
"Description cannot be blank": "Description cannot be blank",
|
||||||
"company": "Company",
|
"company": "Company",
|
||||||
"country": "Country",
|
"country": "Country",
|
||||||
"clientId": "Id client",
|
"clientId": "Id client",
|
||||||
"clientSocialName": "Client",
|
"clientSocialName": "Client",
|
||||||
"amount": "Amount",
|
"amount": "Amount",
|
||||||
"taxableBase": "Taxable base",
|
"taxableBase": "Taxable base",
|
||||||
"ticketFk": "Id ticket",
|
"ticketFk": "Id ticket",
|
||||||
"isActive": "Active",
|
"isActive": "Active",
|
||||||
"hasToInvoice": "Invoice",
|
"hasToInvoice": "Invoice",
|
||||||
"isTaxDataChecked": "Data checked",
|
"isTaxDataChecked": "Data checked",
|
||||||
"comercialId": "Id Comercial",
|
"comercialId": "Id Comercial",
|
||||||
"comercialName": "Comercial",
|
"comercialName": "Comercial",
|
||||||
"Added observation": "Added observation",
|
"Added observation": "Added observation",
|
||||||
"Comment added to client": "Comment added to client",
|
"Comment added to client": "Comment added to client",
|
||||||
"This ticket is already a refund": "This ticket is already a refund",
|
"This ticket is already a refund": "This ticket is already a refund",
|
||||||
"A claim with that sale already exists": "A claim with that sale already exists",
|
"A claim with that sale already exists": "A claim with that sale already exists",
|
||||||
"Pass expired": "The password has expired, change it from Salix",
|
"Pass expired": "The password has expired, change it from Salix",
|
||||||
"Can't transfer claimed sales": "Can't transfer claimed sales",
|
"Can't transfer claimed sales": "Can't transfer claimed sales",
|
||||||
"Invalid quantity": "Invalid quantity",
|
"Invalid quantity": "Invalid quantity",
|
||||||
"Failed to upload delivery note": "Error to upload delivery note {{id}}",
|
"Failed to upload delivery note": "Error to upload delivery note {{id}}",
|
||||||
"Mail not sent": "There has been an error sending the invoice to the client [{{clientId}}]({{{clientUrl}}}), please check the email address",
|
"Mail not sent": "There has been an error sending the invoice to the client [{{clientId}}]({{{clientUrl}}}), please check the email address",
|
||||||
"The renew period has not been exceeded": "The renew period has not been exceeded",
|
"The renew period has not been exceeded": "The renew period has not been exceeded",
|
||||||
"You can not use the same password": "You can not use the same password",
|
"You can not use the same password": "You can not use the same password",
|
||||||
"Valid priorities": "Valid priorities: %d",
|
"Valid priorities": "Valid priorities: %d",
|
||||||
"hasAnyNegativeBase": "Negative basis of tickets: {{ticketsIds}}",
|
"hasAnyNegativeBase": "Negative basis of tickets: {{ticketsIds}}",
|
||||||
"hasAnyPositiveBase": "Positive basis of tickets: {{ticketsIds}}",
|
"hasAnyPositiveBase": "Positive basis of tickets: {{ticketsIds}}",
|
||||||
"This ticket cannot be left empty.": "This ticket cannot be left empty. %s",
|
"This ticket cannot be left empty.": "This ticket cannot be left empty. %s",
|
||||||
"Social name should be uppercase": "Social name should be uppercase",
|
"Social name should be uppercase": "Social name should be uppercase",
|
||||||
"Street should be uppercase": "Street should be uppercase",
|
"Street should be uppercase": "Street should be uppercase",
|
||||||
"You don't have enough privileges.": "You don't have enough privileges.",
|
"You don't have enough privileges.": "You don't have enough privileges.",
|
||||||
"This ticket is locked": "This ticket is locked",
|
"This ticket is locked": "This ticket is locked",
|
||||||
"This ticket is not editable.": "This ticket is not editable.",
|
"This ticket is not editable.": "This ticket is not editable.",
|
||||||
"The ticket doesn't exist.": "The ticket doesn't exist.",
|
"The ticket doesn't exist.": "The ticket doesn't exist.",
|
||||||
"The sales do not exists": "The sales do not exists",
|
"The sales do not exists": "The sales do not exists",
|
||||||
"Ticket without Route": "Ticket without route",
|
"Ticket without Route": "Ticket without route",
|
||||||
"Select a different client": "Select a different client",
|
"Select a different client": "Select a different client",
|
||||||
"Fill all the fields": "Fill all the fields",
|
"Fill all the fields": "Fill all the fields",
|
||||||
"Error while generating PDF": "Error while generating PDF",
|
"Error while generating PDF": "Error while generating PDF",
|
||||||
"Can't invoice to future": "Can't invoice to future",
|
"Can't invoice to future": "Can't invoice to future",
|
||||||
"This ticket is already invoiced": "This ticket is already invoiced",
|
"This ticket is already invoiced": "This ticket is already invoiced",
|
||||||
"Negative basis of tickets: 23": "Negative basis of tickets: 23",
|
"Negative basis of tickets: 23": "Negative basis of tickets: 23",
|
||||||
"Booking completed": "Booking complete",
|
"Booking completed": "Booking complete",
|
||||||
"The ticket is in preparation": "The ticket [{{ticketId}}]({{{ticketUrl}}}) of the sales person {{salesPersonId}} is in preparation",
|
"The ticket is in preparation": "The ticket [{{ticketId}}]({{{ticketUrl}}}) of the sales person {{salesPersonId}} is in preparation",
|
||||||
"You can only add negative amounts in refund tickets": "You can only add negative amounts in refund tickets",
|
"You can only add negative amounts in refund tickets": "You can only add negative amounts in refund tickets",
|
||||||
"Bank entity must be specified": "Bank entity must be specified",
|
"Bank entity must be specified": "Bank entity must be specified",
|
||||||
"Try again": "Try again",
|
"Try again": "Try again",
|
||||||
"keepPrice": "keepPrice",
|
"keepPrice": "keepPrice",
|
||||||
"Cannot past travels with entries": "Cannot past travels with entries",
|
"Cannot past travels with entries": "Cannot past travels with entries",
|
||||||
"It was not able to remove the next expeditions:": "It was not able to remove the next expeditions: {{expeditions}}",
|
"It was not able to remove the next expeditions:": "It was not able to remove the next expeditions: {{expeditions}}",
|
||||||
"Incorrect pin": "Incorrect pin.",
|
"Incorrect pin": "Incorrect pin.",
|
||||||
"The notification subscription of this worker cant be modified": "The notification subscription of this worker cant be modified",
|
"The notification subscription of this worker cant be modified": "The notification subscription of this worker cant be modified",
|
||||||
"Name should be uppercase": "Name should be uppercase",
|
"Name should be uppercase": "Name should be uppercase",
|
||||||
"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.",
|
"This machine is already in use.": "This machine is already in use.",
|
||||||
"the plate does not exist": "The plate {{plate}} does not exist",
|
"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",
|
"We do not have availability for the selected item": "We do not have availability for the selected item",
|
||||||
|
@ -223,6 +223,7 @@
|
||||||
"printerNotExists": "The printer does not exist",
|
"printerNotExists": "The printer does not exist",
|
||||||
"There are not picking tickets": "There are not picking tickets",
|
"There are not picking tickets": "There are not picking tickets",
|
||||||
"ticketCommercial": "The ticket {{ ticket }} for the salesperson {{ salesMan }} is in preparation. (automatically generated message)",
|
"ticketCommercial": "The ticket {{ ticket }} for the salesperson {{ salesMan }} is in preparation. (automatically generated message)",
|
||||||
"This password can only be changed by the user themselves": "This password can only be changed by the user themselves",
|
"This password can only be changed by the user themselves": "This password can only be changed by the user themselves",
|
||||||
"They're not your subordinate": "They're not your subordinate"
|
"They're not your subordinate": "They're not your subordinate",
|
||||||
}
|
"InvoiceIn is already booked": "InvoiceIn is already booked"
|
||||||
|
}
|
|
@ -35,7 +35,7 @@ module.exports = Self => {
|
||||||
path: '/:id/claim-pickup-pdf',
|
path: '/:id/claim-pickup-pdf',
|
||||||
verb: 'GET'
|
verb: 'GET'
|
||||||
},
|
},
|
||||||
accessScopes: ['read:multimedia']
|
accessScopes: ['DEFAULT', 'read:multimedia']
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.claimPickupPdf = (ctx, id) => Self.printReport(ctx, id, 'claim-pickup-order');
|
Self.claimPickupPdf = (ctx, id) => Self.printReport(ctx, id, 'claim-pickup-order');
|
||||||
|
|
|
@ -33,7 +33,7 @@ module.exports = Self => {
|
||||||
path: `/:id/downloadFile`,
|
path: `/:id/downloadFile`,
|
||||||
verb: 'GET'
|
verb: 'GET'
|
||||||
},
|
},
|
||||||
accessScopes: ['read:multimedia']
|
accessScopes: ['DEFAULT', 'read:multimedia']
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.downloadFile = async function(ctx, id) {
|
Self.downloadFile = async function(ctx, id) {
|
||||||
|
|
|
@ -46,7 +46,7 @@ module.exports = Self => {
|
||||||
path: '/:id/campaign-metrics-pdf',
|
path: '/:id/campaign-metrics-pdf',
|
||||||
verb: 'GET'
|
verb: 'GET'
|
||||||
},
|
},
|
||||||
accessScopes: ['read:multimedia']
|
accessScopes: ['DEFAULT', 'read:multimedia']
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.campaignMetricsPdf = (ctx, id) => Self.printReport(ctx, id, 'campaign-metrics');
|
Self.campaignMetricsPdf = (ctx, id) => Self.printReport(ctx, id, 'campaign-metrics');
|
||||||
|
|
|
@ -34,7 +34,7 @@ module.exports = Self => {
|
||||||
path: '/:id/entry-order-pdf',
|
path: '/:id/entry-order-pdf',
|
||||||
verb: 'GET'
|
verb: 'GET'
|
||||||
},
|
},
|
||||||
accessScopes: ['read:multimedia']
|
accessScopes: ['DEFAULT', 'read:multimedia']
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.entryOrderPdf = (ctx, id) => Self.printReport(ctx, id, 'entry-order');
|
Self.entryOrderPdf = (ctx, id) => Self.printReport(ctx, id, 'entry-order');
|
||||||
|
|
|
@ -158,7 +158,7 @@ describe('InvoiceIn filter()', () => {
|
||||||
|
|
||||||
const result = await models.InvoiceIn.filter(ctx, {}, options);
|
const result = await models.InvoiceIn.filter(ctx, {}, options);
|
||||||
|
|
||||||
expect(result.length).toEqual(4);
|
expect(result.length).toEqual(5);
|
||||||
|
|
||||||
await tx.rollback();
|
await tx.rollback();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
@ -180,7 +180,7 @@ describe('InvoiceIn filter()', () => {
|
||||||
|
|
||||||
const result = await models.InvoiceIn.filter(ctx, {}, options);
|
const result = await models.InvoiceIn.filter(ctx, {}, options);
|
||||||
|
|
||||||
expect(result.length).toEqual(6);
|
expect(result.length).toEqual(5);
|
||||||
expect(result[0].isBooked).toBeTruthy();
|
expect(result[0].isBooked).toBeTruthy();
|
||||||
|
|
||||||
await tx.rollback();
|
await tx.rollback();
|
||||||
|
|
|
@ -32,7 +32,7 @@ module.exports = Self => {
|
||||||
path: '/:id/download',
|
path: '/:id/download',
|
||||||
verb: 'GET'
|
verb: 'GET'
|
||||||
},
|
},
|
||||||
accessScopes: ['read:multimedia']
|
accessScopes: ['DEFAULT', 'read:multimedia']
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.download = async function(ctx, id, options) {
|
Self.download = async function(ctx, id, options) {
|
||||||
|
|
|
@ -32,7 +32,7 @@ module.exports = Self => {
|
||||||
path: '/downloadZip',
|
path: '/downloadZip',
|
||||||
verb: 'GET'
|
verb: 'GET'
|
||||||
},
|
},
|
||||||
accessScopes: ['read:multimedia']
|
accessScopes: ['DEFAULT', 'read:multimedia']
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.downloadZip = async function(ctx, ids, options) {
|
Self.downloadZip = async function(ctx, ids, options) {
|
||||||
|
|
|
@ -35,7 +35,7 @@ module.exports = Self => {
|
||||||
path: '/:reference/exportation-pdf',
|
path: '/:reference/exportation-pdf',
|
||||||
verb: 'GET'
|
verb: 'GET'
|
||||||
},
|
},
|
||||||
accessScopes: ['read:multimedia']
|
accessScopes: ['DEFAULT', 'read:multimedia']
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.exportationPdf = (ctx, reference) => Self.printReport(ctx, reference, 'exportation');
|
Self.exportationPdf = (ctx, reference) => Self.printReport(ctx, reference, 'exportation');
|
||||||
|
|
|
@ -38,7 +38,7 @@ module.exports = Self => {
|
||||||
path: '/:reference/invoice-csv',
|
path: '/:reference/invoice-csv',
|
||||||
verb: 'GET'
|
verb: 'GET'
|
||||||
},
|
},
|
||||||
accessScopes: ['read:multimedia']
|
accessScopes: ['DEFAULT', 'read:multimedia']
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.invoiceCsv = async reference => {
|
Self.invoiceCsv = async reference => {
|
||||||
|
|
|
@ -40,7 +40,7 @@ module.exports = Self => {
|
||||||
path: '/negativeBasesCsv',
|
path: '/negativeBasesCsv',
|
||||||
verb: 'GET'
|
verb: 'GET'
|
||||||
},
|
},
|
||||||
accessScopes: ['read:multimedia']
|
accessScopes: ['DEFAULT', 'read:multimedia']
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.negativeBasesCsv = async(ctx, options) => {
|
Self.negativeBasesCsv = async(ctx, options) => {
|
||||||
|
|
|
@ -11,7 +11,7 @@ module.exports = Self => {
|
||||||
path: `/download`,
|
path: `/download`,
|
||||||
verb: 'POST',
|
verb: 'POST',
|
||||||
},
|
},
|
||||||
accessScopes: ['read:multimedia']
|
accessScopes: ['DEFAULT', 'read:multimedia']
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.download = async() => {
|
Self.download = async() => {
|
||||||
|
|
|
@ -30,7 +30,7 @@ module.exports = Self => {
|
||||||
path: '/:id/cmr',
|
path: '/:id/cmr',
|
||||||
verb: 'GET'
|
verb: 'GET'
|
||||||
},
|
},
|
||||||
accessScopes: ['read:multimedia']
|
accessScopes: ['DEFAULT', 'read:multimedia']
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.cmr = (ctx, id) => Self.printReport(ctx, id, 'cmr');
|
Self.cmr = (ctx, id) => Self.printReport(ctx, id, 'cmr');
|
||||||
|
|
|
@ -30,7 +30,7 @@ module.exports = Self => {
|
||||||
path: '/downloadCmrsZip',
|
path: '/downloadCmrsZip',
|
||||||
verb: 'GET'
|
verb: 'GET'
|
||||||
},
|
},
|
||||||
accessScopes: ['read:multimedia']
|
accessScopes: ['DEFAULT', 'read:multimedia']
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.downloadCmrsZip = async function(ctx, ids, options) {
|
Self.downloadCmrsZip = async function(ctx, ids, options) {
|
||||||
|
|
|
@ -30,7 +30,7 @@ module.exports = Self => {
|
||||||
path: '/downloadZip',
|
path: '/downloadZip',
|
||||||
verb: 'GET'
|
verb: 'GET'
|
||||||
},
|
},
|
||||||
accessScopes: ['read:multimedia']
|
accessScopes: ['DEFAULT', 'read:multimedia']
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.downloadZip = async function(ctx, id, options) {
|
Self.downloadZip = async function(ctx, id, options) {
|
||||||
|
|
|
@ -35,7 +35,7 @@ module.exports = Self => {
|
||||||
path: '/:id/driver-route-pdf',
|
path: '/:id/driver-route-pdf',
|
||||||
verb: 'GET'
|
verb: 'GET'
|
||||||
},
|
},
|
||||||
accessScopes: ['read:multimedia']
|
accessScopes: ['DEFAULT', 'read:multimedia']
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -33,50 +33,54 @@ module.exports = Self => {
|
||||||
|
|
||||||
const stmt = new ParameterizedSQL(
|
const stmt = new ParameterizedSQL(
|
||||||
`SELECT
|
`SELECT
|
||||||
t.id,
|
t.id,
|
||||||
t.packages,
|
t.packages,
|
||||||
t.warehouseFk,
|
t.warehouseFk,
|
||||||
t.nickname,
|
t.nickname,
|
||||||
t.clientFk,
|
t.clientFk,
|
||||||
t.priority,
|
t.priority,
|
||||||
t.addressFk,
|
t.addressFk,
|
||||||
st.code ticketStateCode,
|
st.code ticketStateCode,
|
||||||
st.name ticketStateName,
|
st.name ticketStateName,
|
||||||
wh.name warehouseName,
|
wh.name warehouseName,
|
||||||
tob.description ticketObservation,
|
tob.description observationDelivery,
|
||||||
a.street,
|
tob2.description observationDropOff,
|
||||||
a.postalCode,
|
tob2.id observationId,
|
||||||
a.city,
|
a.street,
|
||||||
am.name agencyModeName,
|
a.postalCode,
|
||||||
u.nickname userNickname,
|
a.city,
|
||||||
vn.ticketTotalVolume(t.id) volume,
|
am.name agencyModeName,
|
||||||
tob.description,
|
u.nickname userNickname,
|
||||||
GROUP_CONCAT(DISTINCT i.itemPackingTypeFk ORDER BY i.itemPackingTypeFk) ipt,
|
vn.ticketTotalVolume(t.id) volume,
|
||||||
c.phone clientPhone,
|
GROUP_CONCAT(DISTINCT i.itemPackingTypeFk ORDER BY i.itemPackingTypeFk) ipt,
|
||||||
c.mobile clientMobile,
|
c.phone clientPhone,
|
||||||
a.phone addressPhone,
|
c.mobile clientMobile,
|
||||||
a.mobile addressMobile,
|
a.phone addressPhone,
|
||||||
a.longitude,
|
a.mobile addressMobile,
|
||||||
a.latitude,
|
a.longitude,
|
||||||
wm.mediaValue salePersonPhone,
|
a.latitude,
|
||||||
t.cmrFk,
|
wm.mediaValue salePersonPhone,
|
||||||
t.isSigned signed
|
t.cmrFk,
|
||||||
FROM vn.route r
|
t.isSigned signed
|
||||||
JOIN ticket t ON t.routeFk = r.id
|
FROM vn.route r
|
||||||
JOIN client c ON t.clientFk = c.id
|
JOIN ticket t ON t.routeFk = r.id
|
||||||
LEFT JOIN vn.sale s ON s.ticketFk = t.id
|
JOIN client c ON t.clientFk = c.id
|
||||||
LEFT JOIN vn.item i ON i.id = s.itemFk
|
LEFT JOIN vn.sale s ON s.ticketFk = t.id
|
||||||
LEFT JOIN ticketState ts ON ts.ticketFk = t.id
|
LEFT JOIN vn.item i ON i.id = s.itemFk
|
||||||
LEFT JOIN state st ON st.id = ts.stateFk
|
LEFT JOIN ticketState ts ON ts.ticketFk = t.id
|
||||||
LEFT JOIN warehouse wh ON wh.id = t.warehouseFk
|
LEFT JOIN state st ON st.id = ts.stateFk
|
||||||
LEFT JOIN observationType ot ON ot.code = 'delivery'
|
LEFT JOIN warehouse wh ON wh.id = t.warehouseFk
|
||||||
LEFT JOIN ticketObservation tob ON tob.ticketFk = t.id
|
LEFT JOIN observationType ot ON ot.code = 'delivery'
|
||||||
AND tob.observationTypeFk = ot.id
|
LEFT JOIN ticketObservation tob ON tob.ticketFk = t.id
|
||||||
LEFT JOIN address a ON a.id = t.addressFk
|
AND tob.observationTypeFk = ot.id
|
||||||
LEFT JOIN agencyMode am ON am.id = t.agencyModeFk
|
LEFT JOIN observationType ot2 ON ot2.code = 'dropOff'
|
||||||
LEFT JOIN account.user u ON u.id = r.workerFk
|
LEFT JOIN ticketObservation tob2 ON tob2.ticketFk = t.id
|
||||||
LEFT JOIN vehicle v ON v.id = r.vehicleFk
|
AND tob2.observationTypeFk = ot2.id
|
||||||
LEFT JOIN workerMedia wm ON wm.workerFk = c.salesPersonFk`
|
LEFT JOIN address a ON a.id = t.addressFk
|
||||||
|
LEFT JOIN agencyMode am ON am.id = t.agencyModeFk
|
||||||
|
LEFT JOIN account.user u ON u.id = r.workerFk
|
||||||
|
LEFT JOIN vehicle v ON v.id = r.vehicleFk
|
||||||
|
LEFT JOIN workerMedia wm ON wm.workerFk = c.salesPersonFk`
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!filter.where) filter.where = {};
|
if (!filter.where) filter.where = {};
|
||||||
|
|
|
@ -45,7 +45,7 @@ module.exports = Self => {
|
||||||
path: '/:id/campaign-metrics-pdf',
|
path: '/:id/campaign-metrics-pdf',
|
||||||
verb: 'GET'
|
verb: 'GET'
|
||||||
},
|
},
|
||||||
accessScopes: ['read:multimedia']
|
accessScopes: ['DEFAULT', 'read:multimedia']
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.campaignMetricsPdf = (ctx, id) => Self.printReport(ctx, id, 'supplier-campaign-metrics');
|
Self.campaignMetricsPdf = (ctx, id) => Self.printReport(ctx, id, 'supplier-campaign-metrics');
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
|
||||||
|
module.exports = Self => {
|
||||||
|
Self.remoteMethod('addDropOff', {
|
||||||
|
description: 'Add a dropOff note in a ticket',
|
||||||
|
accessType: 'WRITE',
|
||||||
|
accepts: [{
|
||||||
|
arg: 'ticketFk',
|
||||||
|
type: 'number',
|
||||||
|
required: true,
|
||||||
|
description: 'ticket ID'
|
||||||
|
}, {
|
||||||
|
arg: 'note',
|
||||||
|
type: 'string',
|
||||||
|
required: true,
|
||||||
|
description: 'note text'
|
||||||
|
}],
|
||||||
|
|
||||||
|
http: {
|
||||||
|
path: `/addDropOff`,
|
||||||
|
verb: 'post'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Self.addDropOff = async(ticketFk, note, options) => {
|
||||||
|
const models = Self.app.models;
|
||||||
|
const myOptions = {};
|
||||||
|
|
||||||
|
if (typeof options == 'object')
|
||||||
|
Object.assign(myOptions, options);
|
||||||
|
|
||||||
|
const observationTypeDropOff = await models.ObservationType.findOne({
|
||||||
|
where: {code: 'dropOff'}
|
||||||
|
}, myOptions);
|
||||||
|
|
||||||
|
await models.TicketObservation.create({
|
||||||
|
ticketFk: ticketFk,
|
||||||
|
observationTypeFk: observationTypeDropOff.id,
|
||||||
|
description: note
|
||||||
|
|
||||||
|
}, myOptions);
|
||||||
|
};
|
||||||
|
};
|
|
@ -0,0 +1,31 @@
|
||||||
|
const {models} = require('vn-loopback/server/server');
|
||||||
|
|
||||||
|
describe('ticketObservation addDropOff()', () => {
|
||||||
|
const ticketFk = 5;
|
||||||
|
const note = 'DropOff note';
|
||||||
|
const code = 'dropOff';
|
||||||
|
|
||||||
|
it('should return a dropOff note', async() => {
|
||||||
|
const tx = await models.TicketObservation.beginTransaction({});
|
||||||
|
|
||||||
|
try {
|
||||||
|
const options = {transaction: tx};
|
||||||
|
await models.TicketObservation.addDropOff(
|
||||||
|
ticketFk, note, options);
|
||||||
|
|
||||||
|
const observationTypeDropOff = await models.TicketObservation.find({
|
||||||
|
where: {
|
||||||
|
ticketFk,
|
||||||
|
code
|
||||||
|
}
|
||||||
|
}, options);
|
||||||
|
|
||||||
|
expect(observationTypeDropOff.length).toEqual(1);
|
||||||
|
|
||||||
|
await tx.rollback();
|
||||||
|
} catch (e) {
|
||||||
|
await tx.rollback();
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue