Merge branch 'dev' into 7356-FixTicketWeekly
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
ae039d6ce2
|
@ -126,7 +126,10 @@ BEGIN
|
||||||
AND a.available > 0
|
AND a.available > 0
|
||||||
AND (sub.itemAllowed OR NOT it.isFloramondo OR anr.available > 0)
|
AND (sub.itemAllowed OR NOT it.isFloramondo OR anr.available > 0)
|
||||||
AND (ag.isAnyVolumeAllowed OR NOT itt.isUnconventionalSize)
|
AND (ag.isAnyVolumeAllowed OR NOT itt.isUnconventionalSize)
|
||||||
AND (itc.isReclining OR it.`size` IS NULL OR it.`size` < z.itemMaxSize OR z.itemMaxSize IS NULL)
|
AND (it.`size` IS NULL
|
||||||
|
OR IF(itc.isReclining,
|
||||||
|
it.size <= z.itemMaxLength OR z.itemMaxLength IS NULL,
|
||||||
|
it.size <= z.itemMaxSize OR z.itemMaxSize IS NULL))
|
||||||
AND cit.id IS NULL
|
AND cit.id IS NULL
|
||||||
AND zit.id IS NULL
|
AND zit.id IS NULL
|
||||||
AND ait.id IS NULL;
|
AND ait.id IS NULL;
|
||||||
|
|
|
@ -7,7 +7,7 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`catalog_componentCalc
|
||||||
)
|
)
|
||||||
BEGIN
|
BEGIN
|
||||||
/**
|
/**
|
||||||
* Calcula los componentes de los articulos de tmp.ticketLot
|
* Calcula los componentes de los articulos de la tabla tmp.ticketLot
|
||||||
*
|
*
|
||||||
* @param vZoneFk para calcular el transporte
|
* @param vZoneFk para calcular el transporte
|
||||||
* @param vAddressFk Consignatario
|
* @param vAddressFk Consignatario
|
||||||
|
@ -134,7 +134,7 @@ BEGIN
|
||||||
tcb.warehouseFk,
|
tcb.warehouseFk,
|
||||||
tcb.itemFk,
|
tcb.itemFk,
|
||||||
c.id,
|
c.id,
|
||||||
(tcb.base * (1 + IFNULL(tpd.ratIncreasing / 100,0))) + IFNULL(tpd.absIncreasing,0)
|
IFNULL(tcb.base * tpd.ratIncreasing / 100,0) + IFNULL(tpd.absIncreasing,0)
|
||||||
FROM tmp.ticketComponentBase tcb
|
FROM tmp.ticketComponentBase tcb
|
||||||
JOIN component c ON c.code = 'bonus'
|
JOIN component c ON c.code = 'bonus'
|
||||||
JOIN tPriceDelta tpd
|
JOIN tPriceDelta tpd
|
||||||
|
|
|
@ -1,58 +1,64 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`previousSticker_get`(vSaleGroupFk INT)
|
CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`previousSticker_get`(
|
||||||
|
vSaleGroupFk INT
|
||||||
|
)
|
||||||
BEGIN
|
BEGIN
|
||||||
/**
|
/**
|
||||||
* Devuelve los campos a imprimir en una etiqueta de preparación previa.
|
* Devuelve los campos a imprimir en una etiqueta de preparación previa.
|
||||||
* Actualiza el valor de vn.saleGroup.parkingFk en el caso de que exista un
|
* Actualiza el valor de saleGroup.parkingFk en el caso de que exista un
|
||||||
* saleGroup del mismo ticket con parking, del mismo sector, para que todos se
|
* saleGroup del mismo ticket con parking, del mismo sector, para que todos se
|
||||||
* pongan juntos.
|
* pongan juntos.
|
||||||
*
|
*
|
||||||
* @param vSaleGroupFk Identificador de vn.saleGroup
|
* @param vSaleGroupFk Identificador de saleGroup
|
||||||
*/
|
*/
|
||||||
DECLARE vTicketFk INT;
|
DECLARE vTicketFk INT;
|
||||||
DECLARE vParkingFk INT;
|
DECLARE vParkingFk INT;
|
||||||
DECLARE vSectorFk INT;
|
DECLARE vSectorFk INT;
|
||||||
|
DECLARE vTicketLines INT;
|
||||||
|
|
||||||
SELECT s.ticketFk
|
WITH ticketData AS(
|
||||||
INTO vTicketFk
|
SELECT DISTINCT s.ticketFk
|
||||||
FROM vn.saleGroupDetail sgd
|
FROM vn.saleGroupDetail sgd
|
||||||
JOIN vn.sale s ON s.id = sgd.saleFk
|
JOIN vn.sale s ON s.id = sgd.saleFk
|
||||||
WHERE sgd.saleGroupFk = vSaleGroupFk
|
WHERE sgd.saleGroupFk = vSaleGroupFk
|
||||||
LIMIT 1;
|
)
|
||||||
|
SELECT COUNT(*), s.ticketFk INTO vTicketLines, vTicketFk
|
||||||
|
FROM vn.sale s
|
||||||
|
JOIN ticketData td ON td.ticketFk = s.ticketFk;
|
||||||
|
|
||||||
SELECT sg.parkingFk, sc.sectorFk
|
SELECT sg.parkingFk, sc.sectorFk
|
||||||
INTO vParkingFk, vSectorFk
|
INTO vParkingFk, vSectorFk
|
||||||
FROM vn.saleGroup sg
|
FROM saleGroup sg
|
||||||
JOIN vn.sectorCollectionSaleGroup scsg ON scsg.saleGroupFk = sg.id
|
JOIN sectorCollectionSaleGroup scsg ON scsg.saleGroupFk = sg.id
|
||||||
JOIN vn.sectorCollection sc ON sc.id = scsg.sectorCollectionFk
|
JOIN sectorCollection sc ON sc.id = scsg.sectorCollectionFk
|
||||||
JOIN vn.saleGroupDetail sgd ON sgd.saleGroupFk = sg.id
|
JOIN saleGroupDetail sgd ON sgd.saleGroupFk = sg.id
|
||||||
JOIN vn.sale s ON s.id = sgd.saleFk
|
JOIN sale s ON s.id = sgd.saleFk
|
||||||
WHERE s.ticketFk = vTicketFk
|
WHERE s.ticketFk = vTicketFk
|
||||||
AND sg.parkingFk IS NOT NULL
|
AND sg.parkingFk IS NOT NULL
|
||||||
LIMIT 1;
|
LIMIT 1;
|
||||||
|
|
||||||
UPDATE vn.saleGroup sg
|
UPDATE saleGroup sg
|
||||||
SET sg.parkingFk = vParkingFk
|
SET sg.parkingFk = vParkingFk
|
||||||
WHERE sg.id = vSaleGroupFk
|
WHERE sg.id = vSaleGroupFk
|
||||||
AND sg.sectorFk = vSectorFk;
|
AND sg.sectorFk = vSectorFk;
|
||||||
|
|
||||||
SELECT sgd.saleGroupFk,
|
SELECT sgd.saleGroupFk,
|
||||||
t.id ticketFk,
|
t.id ticketFk,
|
||||||
p.code as location,
|
COUNT(*) previousLines,
|
||||||
t.observations,
|
|
||||||
IF(HOUR(t.shipped), HOUR(t.shipped), HOUR(z.`hour`)) shippingHour,
|
IF(HOUR(t.shipped), HOUR(t.shipped), HOUR(z.`hour`)) shippingHour,
|
||||||
IF(MINUTE(t.shipped), MINUTE(t.shipped), MINUTE(z.`hour`)) shippingMinute ,
|
IF(MINUTE(t.shipped), MINUTE(t.shipped), MINUTE(z.`hour`)) shippingMinute ,
|
||||||
IFNULL(MAX(i.itemPackingTypeFk),'H') itemPackingTypeFk ,
|
IFNULL(MAX(i.itemPackingTypeFk),'H') itemPackingTypeFk ,
|
||||||
count(*) items,
|
vTicketLines ticketLines,
|
||||||
|
p.code `location`,
|
||||||
sc.description sector
|
sc.description sector
|
||||||
FROM vn.sale s
|
FROM sale s
|
||||||
JOIN vn.item i ON i.id = s.itemFk
|
JOIN item i ON i.id = s.itemFk
|
||||||
JOIN vn.saleGroupDetail sgd ON sgd.saleFk = s.id
|
JOIN saleGroupDetail sgd ON sgd.saleFk = s.id
|
||||||
JOIN vn.saleGroup sg ON sg.id = sgd.saleGroupFk
|
JOIN saleGroup sg ON sg.id = sgd.saleGroupFk
|
||||||
JOIN vn.sector sc ON sc.id = sg.sectorFk
|
JOIN sector sc ON sc.id = sg.sectorFk
|
||||||
JOIN vn.ticket t ON t.id = s.ticketFk
|
JOIN ticket t ON t.id = s.ticketFk
|
||||||
LEFT JOIN vn.parking p ON p.id = sg.parkingFk
|
LEFT JOIN parking p ON p.id = sg.parkingFk
|
||||||
LEFT JOIN vn.`zone` z ON z.id = t.zoneFk
|
LEFT JOIN `zone` z ON z.id = t.zoneFk
|
||||||
WHERE sgd.saleGroupFk = vSaleGroupFk;
|
WHERE sgd.saleGroupFk = vSaleGroupFk;
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -99,7 +99,7 @@ proc: BEGIN
|
||||||
LEFT JOIN `zone` z ON z.id = t.zoneFk
|
LEFT JOIN `zone` z ON z.id = t.zoneFk
|
||||||
LEFT JOIN zoneClosure zc ON zc.zoneFk = t.zoneFk
|
LEFT JOIN zoneClosure zc ON zc.zoneFk = t.zoneFk
|
||||||
AND DATE(t.shipped) = zc.dated
|
AND DATE(t.shipped) = zc.dated
|
||||||
LEFT JOIN ticketParking tp ON tp.ticketFk = t.id
|
LEFT JOIN ticketParking tp ON tp.ticketFk = t.id
|
||||||
LEFT JOIN parking pk ON pk.id = tp.parkingFk
|
LEFT JOIN parking pk ON pk.id = tp.parkingFk
|
||||||
WHERE t.warehouseFk = vWarehouseFk
|
WHERE t.warehouseFk = vWarehouseFk
|
||||||
AND dm.code IN ('AGENCY', 'DELIVERY', 'PICKUP');
|
AND dm.code IN ('AGENCY', 'DELIVERY', 'PICKUP');
|
||||||
|
@ -124,8 +124,8 @@ proc: BEGIN
|
||||||
ADD COLUMN `collectionN` INT;
|
ADD COLUMN `collectionN` INT;
|
||||||
|
|
||||||
UPDATE tmp.productionBuffer pb
|
UPDATE tmp.productionBuffer pb
|
||||||
JOIN tmp.ticket_problems tp ON tp.ticketFk = pb.ticketFk
|
JOIN tmp.ticket_problems tp ON tp.ticketFk = pb.ticketFk
|
||||||
SET pb.problem = TRIM(CAST(CONCAT( IFNULL(tp.itemShortage, ''),
|
SET pb.problem = TRIM(CAST(CONCAT( IFNULL(tp.itemShortage, ''),
|
||||||
IFNULL(tp.itemDelay, ''),
|
IFNULL(tp.itemDelay, ''),
|
||||||
IFNULL(tp.itemLost, ''),
|
IFNULL(tp.itemLost, ''),
|
||||||
IF(tp.isFreezed, ' CONGELADO',''),
|
IF(tp.isFreezed, ' CONGELADO',''),
|
||||||
|
@ -141,7 +141,7 @@ proc: BEGIN
|
||||||
LEFT JOIN bs.clientNewBorn cnb ON cnb.clientFk = pb.clientFk
|
LEFT JOIN bs.clientNewBorn cnb ON cnb.clientFk = pb.clientFk
|
||||||
JOIN productionConfig pc
|
JOIN productionConfig pc
|
||||||
SET pb.problem = TRIM(CAST(CONCAT('NUEVO ', pb.problem) AS CHAR(255)))
|
SET pb.problem = TRIM(CAST(CONCAT('NUEVO ', pb.problem) AS CHAR(255)))
|
||||||
WHERE (cnb.clientFk IS NULL OR cnb.isRookie)
|
WHERE (cnb.clientFk IS NULL OR cnb.isRookie)
|
||||||
AND pc.rookieDays;
|
AND pc.rookieDays;
|
||||||
|
|
||||||
-- Líneas y volumen por ticket
|
-- Líneas y volumen por ticket
|
||||||
|
|
|
@ -25,8 +25,9 @@ UPDATE shelving sh
|
||||||
AND (
|
AND (
|
||||||
sh.parked IS NULL
|
sh.parked IS NULL
|
||||||
OR
|
OR
|
||||||
sh.parked < TIMESTAMPADD(MONTH,-1,util.VN_CURDATE())
|
sh.parked < util.VN_CURDATE() - INTERVAL 2 WEEK
|
||||||
)
|
)
|
||||||
|
|
||||||
AND IF(code REGEXP '^[A-Za-z]{2}[0-9]', LEFT (code, 2) NOT IN (
|
AND IF(code REGEXP '^[A-Za-z]{2}[0-9]', LEFT (code, 2) NOT IN (
|
||||||
SELECT DISTINCT LEFT(its.shelvingFk, 2)
|
SELECT DISTINCT LEFT(its.shelvingFk, 2)
|
||||||
FROM itemShelving its
|
FROM itemShelving its
|
||||||
|
|
|
@ -3,7 +3,7 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`ticket_splitItemPacki
|
||||||
vSelf INT,
|
vSelf INT,
|
||||||
vOriginalItemPackingTypeFk VARCHAR(1)
|
vOriginalItemPackingTypeFk VARCHAR(1)
|
||||||
)
|
)
|
||||||
proc: BEGIN
|
BEGIN
|
||||||
/**
|
/**
|
||||||
* Clona y reparte las ventas de un ticket en funcion del tipo de empaquetado.
|
* Clona y reparte las ventas de un ticket en funcion del tipo de empaquetado.
|
||||||
* Respeta el id inicial para el tipo propuesto.
|
* Respeta el id inicial para el tipo propuesto.
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
ALTER TABLE vn.`zone`
|
||||||
|
ADD COLUMN IF NOT EXISTS itemMaxLength int(11) NULL COMMENT 'Longitud maxima para articulos acostados que esa agencia puede transportar',
|
||||||
|
MODIFY COLUMN itemMaxSize int(11) DEFAULT NULL NULL COMMENT 'Altura maxima de los articulos que esa agencia puede transportar';
|
|
@ -0,0 +1,3 @@
|
||||||
|
INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId)
|
||||||
|
VALUES ('Postcode','*','WRITE','ALLOW','ROLE','administrative');
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId)
|
||||||
|
VALUES ('Province','*','WRITE','ALLOW','ROLE','administrative');
|
||||||
|
|
||||||
|
INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId)
|
||||||
|
VALUES ('Town','*','WRITE','ALLOW','ROLE','administrative');
|
||||||
|
|
|
@ -63,8 +63,7 @@ module.exports = Self => {
|
||||||
FROM tItemShelving ti
|
FROM tItemShelving ti
|
||||||
JOIN tItemInSector tis ON tis.itemFk = ti.itemFk
|
JOIN tItemInSector tis ON tis.itemFk = ti.itemFk
|
||||||
JOIN vn.productionConfig pc
|
JOIN vn.productionConfig pc
|
||||||
WHERE ti.created + INTERVAL pc.itemOlderReviewHours HOUR < tis.created
|
WHERE ti.created + INTERVAL pc.itemOlderReviewHours HOUR < tis.created;`,
|
||||||
LIMIT 10;`,
|
|
||||||
[shelvingFk, shelvingFk], myOptions);
|
[shelvingFk, shelvingFk], myOptions);
|
||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
|
|
|
@ -81,7 +81,7 @@ module.exports = Self => {
|
||||||
let stmts = [];
|
let stmts = [];
|
||||||
let stmt;
|
let stmt;
|
||||||
stmt = new ParameterizedSQL(
|
stmt = new ParameterizedSQL(
|
||||||
`SELECT
|
`SELECT
|
||||||
s.id,
|
s.id,
|
||||||
s.name AS socialName,
|
s.name AS socialName,
|
||||||
s.nickname AS alias,
|
s.nickname AS alias,
|
||||||
|
@ -92,10 +92,13 @@ module.exports = Self => {
|
||||||
s.payDay,
|
s.payDay,
|
||||||
s.phone,
|
s.phone,
|
||||||
s.city,
|
s.city,
|
||||||
|
s.countryFk,
|
||||||
|
c.name country,
|
||||||
pm.name AS payMethod,
|
pm.name AS payMethod,
|
||||||
pd.payDem AS payDem
|
pd.payDem AS payDem
|
||||||
FROM vn.supplier s
|
FROM vn.supplier s
|
||||||
LEFT JOIN vn.payMethod pm ON pm.id = s.payMethodFk
|
LEFT JOIN vn.payMethod pm ON pm.id = s.payMethodFk
|
||||||
|
LEFT JOIN vn.country c ON c.id = s.countryFk
|
||||||
LEFT JOIN vn.payDem pd ON pd.id = s.payDemFk`
|
LEFT JOIN vn.payDem pd ON pd.id = s.payDemFk`
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -79,6 +79,10 @@ module.exports = Self => {
|
||||||
arg: 'landingHour',
|
arg: 'landingHour',
|
||||||
type: 'string',
|
type: 'string',
|
||||||
description: 'The landing hour'
|
description: 'The landing hour'
|
||||||
|
}, {
|
||||||
|
arg: 'daysOnward',
|
||||||
|
type: 'number',
|
||||||
|
description: 'The days onward'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
returns: {
|
returns: {
|
||||||
|
@ -92,8 +96,11 @@ module.exports = Self => {
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.filter = async(ctx, filter) => {
|
Self.filter = async(ctx, filter) => {
|
||||||
let conn = Self.dataSource.connector;
|
const conn = Self.dataSource.connector;
|
||||||
let where = buildFilter(ctx.args, (param, value) => {
|
const today = Date.vnNew();
|
||||||
|
const future = Date.vnNew();
|
||||||
|
|
||||||
|
const where = buildFilter(ctx.args, (param, value) => {
|
||||||
switch (param) {
|
switch (param) {
|
||||||
case 'search':
|
case 'search':
|
||||||
return /^\d+$/.test(value)
|
return /^\d+$/.test(value)
|
||||||
|
@ -109,6 +116,12 @@ module.exports = Self => {
|
||||||
return {'t.landed': {gte: value}};
|
return {'t.landed': {gte: value}};
|
||||||
case 'landedTo':
|
case 'landedTo':
|
||||||
return {'t.landed': {lte: value}};
|
return {'t.landed': {lte: value}};
|
||||||
|
case 'daysOnward':
|
||||||
|
|
||||||
|
today.setHours(0, 0, 0, 0);
|
||||||
|
future.setDate(today.getDate() + value);
|
||||||
|
future.setHours(23, 59, 59, 999);
|
||||||
|
return {'t.landed': {between: [today, future]}};
|
||||||
case 'id':
|
case 'id':
|
||||||
case 'agencyModeFk':
|
case 'agencyModeFk':
|
||||||
case 'warehouseOutFk':
|
case 'warehouseOutFk':
|
||||||
|
|
|
@ -42,6 +42,9 @@
|
||||||
},
|
},
|
||||||
"itemMaxSize": {
|
"itemMaxSize": {
|
||||||
"type": "number"
|
"type": "number"
|
||||||
|
},
|
||||||
|
"itemMaxLength": {
|
||||||
|
"type": "number"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"relations": {
|
"relations": {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "salix-back",
|
"name": "salix-back",
|
||||||
"version": "24.40.0",
|
"version": "24.42.0",
|
||||||
"author": "Verdnatura Levante SL",
|
"author": "Verdnatura Levante SL",
|
||||||
"description": "Salix backend",
|
"description": "Salix backend",
|
||||||
"license": "GPL-3.0",
|
"license": "GPL-3.0",
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
<div class="packing">{{previa.itemPackingTypeFk}}</div>
|
<div class="packing">{{previa.itemPackingTypeFk}}</div>
|
||||||
<div class="dated">{{previa.shippingHour}}:{{previa.shippingMinute}}</div>
|
<div class="dated">{{previa.shippingHour}}:{{previa.shippingMinute}}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="size">{{previa.items}}</div>
|
<div class="size">{{previa.previousLines}}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in New Issue