Compare commits

...

17 Commits

Author SHA1 Message Date
Robert Ferrús 20a5990535 Merge branch 'dev' of https://gitea.verdnatura.es/verdnatura/salix into 7709-supplierPackaging_ReportSource
gitea/salix/pipeline/pr-dev This commit looks good Details
2024-10-16 07:20:36 +02:00
Guillermo Bonet 5a2058865d Merge branch 'test' into dev
gitea/salix/pipeline/head This commit looks good Details
2024-10-15 14:02:39 +02:00
Ivan Mas 6cb8bea783 Merge pull request 'feat: refs #7994 update sale.originalQuantity' (!3104) from 7994-sale.originalQuantity into test
gitea/salix/pipeline/head This commit looks good Details
gitea/salix/pipeline/pr-dev This commit looks good Details
Reviewed-on: #3104
Reviewed-by: Guillermo Bonet <guillermo@verdnatura.es>
2024-10-15 12:01:02 +00:00
Ivan Mas 536c2fa5b5 feat: refs #7994 update sale.originalQuantity
gitea/salix/pipeline/pr-test This commit looks good Details
2024-10-15 13:54:02 +02:00
Alex Moreno 85f8b6fd20 build: init version 24.44
gitea/salix/pipeline/head This commit looks good Details
2024-10-15 09:29:38 +02:00
Alex Moreno 6eab66340f Merge branch 'test' of https://gitea.verdnatura.es/verdnatura/salix into dev
gitea/salix/pipeline/head This commit looks good Details
2024-10-15 09:21:31 +02:00
Javi Gallego 36bf2f89c7 Merge pull request '8098-closureTransation' (!3101) from 8098-closureTransation into dev
gitea/salix/pipeline/head There was a failure building this commit Details
Reviewed-on: #3101
Reviewed-by: Alex Moreno <alexm@verdnatura.es>
2024-10-15 07:20:06 +00:00
Alex Moreno cf78a12f3a fix(sql): addClientObservationType
gitea/salix/pipeline/pr-dev This commit looks good Details
gitea/salix/pipeline/head This commit looks good Details
2024-10-15 09:18:20 +02:00
Alex Moreno 8ff06d63c5 fix(sql): addClientObservationType
gitea/salix/pipeline/head There was a failure building this commit Details
gitea/salix/pipeline/pr-dev This commit looks good Details
2024-10-15 09:16:07 +02:00
Alex Moreno a2b9a59eb5 fix(sql): addClientObservationType
gitea/salix/pipeline/head There was a failure building this commit Details
gitea/salix/pipeline/pr-dev This commit looks good Details
2024-10-15 08:58:57 +02:00
Alex Moreno f61c2fa083 Merge pull request '8093-devToTest_2442_3' (!3100) from 8093-devToTest_2442_3 into test
gitea/salix/pipeline/pr-dev This commit looks good Details
gitea/salix/pipeline/head There was a failure building this commit Details
Reviewed-on: #3100
Reviewed-by: Carlos Satorres <carlossa@verdnatura.es>
2024-10-15 06:51:41 +00:00
Javi Gallego c5f987d04c fix: refs #8098 renew token test fixed
gitea/salix/pipeline/pr-dev This commit looks good Details
2024-10-15 08:44:08 +02:00
Javi Gallego 976e50b566 feat: refs #8098 identation
gitea/salix/pipeline/pr-dev There was a failure building this commit Details
2024-10-15 08:25:53 +02:00
Javi Gallego 4526873bbe feat: refs #8098 without Date 2024-10-15 08:24:13 +02:00
Javi Gallego 5e2edad6de Merge branch 'dev' into 8098-closureTransation 2024-10-15 08:21:40 +02:00
Alex Moreno 63f062a069 fix(renewToken): refs #8093 test & fix(sql) addClientObservationType
gitea/salix/pipeline/pr-test This commit looks good Details
2024-10-15 08:19:35 +02:00
Javi Gallego f2d1aa5f16 feat: refs #8098 closureDaysAgo 2024-10-15 08:17:03 +02:00
9 changed files with 19 additions and 18 deletions

View File

@ -72,9 +72,9 @@ describe('Renew Token', () => {
} }
expect(error).toBeDefined(); expect(error).toBeDefined();
const query = 'SELECT * FROM util.debug';
const debugLog = await models.Application.rawSql(query, null); const query = 'SELECT * FROM util.debug WHERE variable = "renewToken"';
const debugLog = await models.Application.rawSql(query);
expect(debugLog.length).toEqual(1); expect(debugLog.length).toEqual(1);
}); });

View File

@ -1,3 +1,3 @@
ALTER TABLE vn.clientObservation ALTER TABLE vn.clientObservation DROP COLUMN IF EXISTS observationTypeFk;
ADD COLUMN observationTypeFk TINYINT(3) UNSIGNED NOT NULL, ALTER TABLE vn.clientObservation ADD COLUMN IF NOT EXISTS observationTypeFk TINYINT(3) UNSIGNED NULL;
ADD CONSTRAINT clientObservationTypeFk FOREIGN KEY (observationTypeFk) REFERENCES vn.observationType(id); ALTER TABLE vn.clientObservation ADD CONSTRAINT clientObservationTypeFk FOREIGN KEY IF NOT EXISTS (observationTypeFk) REFERENCES vn.observationType(id);

View File

@ -1,5 +1,3 @@
/*
UPDATE vn.sale UPDATE vn.sale
SET originalQuantity = quantity SET originalQuantity = quantity
WHERE originalQuantity IS NULL WHERE originalQuantity IS NULL
*/

View File

@ -1 +1 @@
-- ALTER TABLE vn.sale MODIFY COLUMN originalQuantity decimal(10,2) DEFAULT 0.00 NOT NULL COMMENT 'Se utiliza para notificar a través de rocket los cambios de quantity'; ALTER TABLE vn.sale MODIFY COLUMN originalQuantity decimal(10,2) DEFAULT 0.00 NOT NULL COMMENT 'Se utiliza para notificar a través de rocket los cambios de quantity';

View File

@ -0,0 +1,3 @@
ALTER TABLE `vn`.`ticketConfig`
ADD COLUMN `closureDaysAgo` int(11) NOT NULL DEFAULT 2 COMMENT 'Number of days to look back for ticket closure',
ADD CONSTRAINT `closureDaysAgo_check` CHECK (`closureDaysAgo` > 0);

View File

@ -53,8 +53,9 @@ module.exports = Self => {
JOIN province p ON p.id = c.provinceFk JOIN province p ON p.id = c.provinceFk
JOIN country co ON co.id = p.countryFk JOIN country co ON co.id = p.countryFk
LEFT JOIN account.emailUser eu ON eu.userFk = c.salesPersonFk LEFT JOIN account.emailUser eu ON eu.userFk = c.salesPersonFk
JOIN ticketConfig tc ON TRUE
WHERE (al.code = 'PACKED' OR (am.code = 'refund' AND al.code <> 'delivered')) WHERE (al.code = 'PACKED' OR (am.code = 'refund' AND al.code <> 'delivered'))
AND DATE(t.shipped) BETWEEN ? - INTERVAL 7 DAY AND util.dayEnd(?) AND t.shipped BETWEEN ? - INTERVAL tc.closureDaysAgo DAY AND util.dayEnd(?)
AND t.refFk IS NULL AND t.refFk IS NULL
GROUP BY t.id GROUP BY t.id
`, [toDate, toDate]); `, [toDate, toDate]);
@ -108,6 +109,7 @@ module.exports = Self => {
JOIN alertLevel al ON al.id = ts.alertLevel JOIN alertLevel al ON al.id = ts.alertLevel
JOIN client c ON c.id = t.clientFk JOIN client c ON c.id = t.clientFk
JOIN province p ON p.id = c.provinceFk JOIN province p ON p.id = c.provinceFk
JOIN ticketConfig tc ON TRUE
LEFT JOIN autonomy a ON a.id = p.autonomyFk LEFT JOIN autonomy a ON a.id = p.autonomyFk
JOIN country co ON co.id = p.countryFk JOIN country co ON co.id = p.countryFk
LEFT JOIN account.emailUser eu ON eu.userFk = c.salesPersonFk LEFT JOIN account.emailUser eu ON eu.userFk = c.salesPersonFk
@ -116,7 +118,7 @@ module.exports = Self => {
LEFT JOIN vn.invoiceOutSerial ios ON ios.taxAreaFk = 'WORLD' LEFT JOIN vn.invoiceOutSerial ios ON ios.taxAreaFk = 'WORLD'
AND ios.code = invoiceSerial(t.clientFk, t.companyFk, 'multiple') AND ios.code = invoiceSerial(t.clientFk, t.companyFk, 'multiple')
WHERE (al.code = 'PACKED' OR (am.code = 'refund' AND al.code <> 'delivered')) WHERE (al.code = 'PACKED' OR (am.code = 'refund' AND al.code <> 'delivered'))
AND DATE(t.shipped) BETWEEN ? - INTERVAL 2 DAY AND util.dayEnd(?) AND t.shipped BETWEEN ? - INTERVAL tc.closureDaysAgo DAY AND util.dayEnd(?)
AND t.refFk IS NULL AND t.refFk IS NULL
AND IFNULL(a.hasDailyInvoice, co.hasDailyInvoice) AND IFNULL(a.hasDailyInvoice, co.hasDailyInvoice)
GROUP BY ticketFk GROUP BY ticketFk
@ -141,9 +143,10 @@ module.exports = Self => {
JOIN alertLevel al ON al.id = ts.alertLevel JOIN alertLevel al ON al.id = ts.alertLevel
JOIN agencyMode am ON am.id = t.agencyModeFk JOIN agencyMode am ON am.id = t.agencyModeFk
JOIN deliveryMethod dm ON dm.id = am.deliveryMethodFk JOIN deliveryMethod dm ON dm.id = am.deliveryMethodFk
JOIN ticketConfig tc ON TRUE
LEFT JOIN ticketObservation tob ON tob.ticketFk = t.id LEFT JOIN ticketObservation tob ON tob.ticketFk = t.id
SET t.routeFk = NULL SET t.routeFk = NULL
WHERE DATE(t.shipped) BETWEEN ? - INTERVAL 2 DAY AND util.dayEnd(?) WHERE t.shipped BETWEEN ? - INTERVAL tc.closureDaysAgo DAY AND util.dayEnd(?)
AND al.code NOT IN ('DELIVERED', 'PACKED') AND al.code NOT IN ('DELIVERED', 'PACKED')
AND NOT t.packages AND NOT t.packages
AND tob.id IS NULL AND tob.id IS NULL

View File

@ -12,10 +12,7 @@ module.exports = async function(ctx, Self, tickets, options) {
Object.assign(myOptions, options); Object.assign(myOptions, options);
let tx; let tx;
// if (!myOptions.transaction) { // IMPORTANT: Due to its high cost in production, wrapping this process in a transaction may cause timeouts.
// tx = await Self.beginTransaction({});
// myOptions.transaction = tx;
// }
if (tickets.length == 0) return; if (tickets.length == 0) return;

View File

@ -50,9 +50,9 @@ describe('Ticket closure functionality', () => {
expect(ticketStateBefore.code).not.toBe(ticketStateAfter.code); expect(ticketStateBefore.code).not.toBe(ticketStateAfter.code);
const ticketAfter = await models.TicketState.findById(ticketId, null, options); const ticketAfter = await models.Ticket.findById(ticketId, null, options);
expect(ticketAfter.refFk).toBeUndefined(); expect(ticketAfter.refFk).toBeNull();
}); });
it('should send Incoterms authorization email on first order', async() => { it('should send Incoterms authorization email on first order', async() => {

View File

@ -1,6 +1,6 @@
{ {
"name": "salix-back", "name": "salix-back",
"version": "24.42.0", "version": "24.44.0",
"author": "Verdnatura Levante SL", "author": "Verdnatura Levante SL",
"description": "Salix backend", "description": "Salix backend",
"license": "GPL-3.0", "license": "GPL-3.0",