Merge branch 'test' into dev
gitea/salix/pipeline/head This commit looks good Details

This commit is contained in:
Guillermo Bonet 2024-07-23 09:27:05 +02:00
commit c6b49e2134
5 changed files with 54 additions and 66 deletions

View File

@ -13,30 +13,16 @@ BEGIN
* @param vBookEntry Id de asiento, si es NULL se genera uno nuevo * @param vBookEntry Id de asiento, si es NULL se genera uno nuevo
*/ */
DECLARE vFiscalYear INT; DECLARE vFiscalYear INT;
DECLARE vDistinctTransactions INT;
DECLARE vHasRepeatedTransactions BOOL; DECLARE vHasRepeatedTransactions BOOL;
SELECT COUNT(DISTINCT iit.transactionTypeSageFk) INTO vDistinctTransactions
FROM invoiceIn ii
JOIN invoiceInTax iit ON iit.invoiceInFk = ii.id
JOIN invoiceInSerial iis ON iis.code = ii.serial
WHERE iit.invoiceInFk = vSelf
AND iis.taxAreaFk = 'CEE'
AND iit.transactionTypeSageFk;
IF vDistinctTransactions > 1 THEN
CALL util.throw ('This invoice does not allow different types of transactions');
END IF;
SELECT TRUE INTO vHasRepeatedTransactions SELECT TRUE INTO vHasRepeatedTransactions
FROM invoiceInTax FROM invoiceInTax
WHERE invoiceInFk = vSelf WHERE invoiceInFk = vSelf
GROUP BY transactionTypeSageFk HAVING COUNT(DISTINCT transactionTypeSageFk) > 1
HAVING COUNT(transactionTypeSageFk) > 1
LIMIT 1; LIMIT 1;
IF vHasRepeatedTransactions THEN IF vHasRepeatedTransactions THEN
CALL util.throw ('This invoice contains repeated types of transactions'); CALL util.throw ('This invoice contains different types of transactions');
END IF; END IF;
CREATE OR REPLACE TEMPORARY TABLE tInvoiceIn CREATE OR REPLACE TEMPORARY TABLE tInvoiceIn

View File

@ -98,11 +98,12 @@ proc: BEGIN
itemShelvingFk, itemShelvingFk,
saleFk, saleFk,
quantity, quantity,
userFk) isPicked)
SELECT vItemShelvingFk, SELECT vItemShelvingFk,
vSaleFk, vSaleFk,
vReservedQuantity, vReservedQuantity,
vUserFk; vUserFk,
FALSE;
UPDATE itemShelving UPDATE itemShelving
SET available = available - vReservedQuantity SET available = available - vReservedQuantity

View File

@ -91,11 +91,13 @@ module.exports = Self => {
SELECT t.cmrFk, SELECT t.cmrFk,
t.id ticketFk, t.id ticketFk,
t.routeFk, t.routeFk,
co.name country, co.id countryFk,
co.name countryName,
t.clientFk, t.clientFk,
IF(sub.id, TRUE, FALSE) hasCmrDms, IF(sub.id, TRUE, FALSE) hasCmrDms,
DATE(t.shipped) shipped, DATE(t.shipped) shipped,
t.warehouseFk t.warehouseFk,
w.name warehouseName
FROM ticket t FROM ticket t
JOIN ticketState ts ON ts.ticketFk = t.id JOIN ticketState ts ON ts.ticketFk = t.id
JOIN state s ON s.id = ts.stateFk JOIN state s ON s.id = ts.stateFk

View File

@ -91,25 +91,20 @@ module.exports = Self => {
let where = buildFilter(ctx.args, (param, value) => { let where = buildFilter(ctx.args, (param, value) => {
switch (param) { switch (param) {
case 'search': case 'search':
return {'r.id': value}; return {'id': value};
case 'from': case 'from':
return {'r.created': {gte: value}}; return {'created': {gte: value}};
case 'to': case 'to':
return {'r.created': {lte: value}}; return {'created': {lte: value}};
case 'm3':
return {'r.m3': value};
case 'description': case 'description':
return {'r.description': {like: `%${value}%`}}; return {'description': {like: `%${value}%`}};
case 'isOk':
case 'm3':
case 'warehouseFk': case 'warehouseFk':
param = `v.${param}`;
return {[param]: value};
case 'workerFk': case 'workerFk':
case 'vehicleFk': case 'vehicleFk':
case 'agencyModeFk': case 'agencyModeFk':
param = `r.${param}`;
return {[param]: value}; return {[param]: value};
case 'isOk':
return {'r.isOk': value};
} }
}); });
@ -119,34 +114,38 @@ module.exports = Self => {
let stmt; let stmt;
stmt = new ParameterizedSQL( stmt = new ParameterizedSQL(
`SELECT `SELECT *
r.id, FROM(
r.workerFk, SELECT
r.created, r.id,
r.vehicleFk, r.workerFk,
r.agencyModeFk, r.created,
r.time, r.vehicleFk,
r.isOk, r.agencyModeFk,
r.kmStart, r.time,
r.kmEnd, r.isOk,
r.started, r.kmStart,
r.finished, r.kmEnd,
r.gestdocFk, r.started,
r.cost, r.finished,
r.m3, r.gestdocFk,
r.description, r.cost,
am.name agencyName, r.m3,
u.name AS workerUserName, r.description,
v.numberPlate AS vehiclePlateNumber, am.name agencyName,
Date_format(r.time, '%H:%i') hour, u.name workerUserName,
eu.email v.numberPlate vehiclePlateNumber,
FROM route r Date_format(r.time, '%H:%i') hour,
LEFT JOIN agencyMode am ON am.id = r.agencyModeFk eu.email,
LEFT JOIN agency a ON a.id = am.agencyFk v.warehouseFk
LEFT JOIN vehicle v ON v.id = r.vehicleFk FROM route r
LEFT JOIN worker w ON w.id = r.workerFk LEFT JOIN agencyMode am ON am.id = r.agencyModeFk
LEFT JOIN account.user u ON u.id = w.id LEFT JOIN agency a ON a.id = am.agencyFk
LEFT JOIN account.emailUser eu ON eu.userFk = r.workerFk` LEFT JOIN vehicle v ON v.id = r.vehicleFk
LEFT JOIN worker w ON w.id = r.workerFk
LEFT JOIN account.user u ON u.id = w.id
LEFT JOIN account.emailUser eu ON eu.userFk = r.workerFk
) sub`
); );
stmt.merge(conn.makeSuffix(filter)); stmt.merge(conn.makeSuffix(filter));

View File

@ -28,11 +28,11 @@ module.exports = Self => {
if (canViewAll) { if (canViewAll) {
const userConfig = await models.UserConfig.getUserConfig(ctx, myOptions); const userConfig = await models.UserConfig.getUserConfig(ctx, myOptions);
filterGrant = { filterGrant = {
where: {'a.warehouseFk': userConfig.warehouseFk} where: {'warehouseFk': userConfig.warehouseFk}
}; };
} else { } else {
filterGrant = { filterGrant = {
where: {'r.workerFk': userId} where: {'workerFk': userId}
}; };
} }
@ -46,16 +46,16 @@ module.exports = Self => {
and: [ and: [
{ {
or: [ or: [
{'r.created': currentDate}, {'created': currentDate},
{'r.created': nextDay} {'created': nextDay}
] ]
} }
] ]
}, },
order: [ order: [
'r.created ASC', 'created ASC',
'r.time ASC', 'time ASC',
'am.name ASC' 'agencyName ASC'
] ]
}; };