refs #5914 refactor: getTaxBases
gitea/salix/pipeline/head There was a failure building this commit Details

This commit is contained in:
Alex Moreno 2024-01-03 12:19:28 +01:00
parent 121caee93a
commit ba26237998
6 changed files with 41 additions and 10 deletions

View File

@ -2,8 +2,8 @@ DELIMITER $$
$$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`getTaxBases`()
BEGIN
/* Calcula y devuelve en número de bases imponibles postivas y negativas
/**
* Calcula y devuelve en número de bases imponibles postivas y negativas
* Requiere la tabla temporal tmp.ticketToInvoice(id)
*
* returns tmp.taxBases
@ -21,10 +21,10 @@ BEGIN
CREATE TEMPORARY TABLE tmp.taxBases
ENGINE = MEMORY
SELECT
SUM(CASE WHEN taxableBase > 0 THEN 1 ELSE 0 END) as positive,
SUM(CASE WHEN taxableBase < 0 THEN 1 ELSE 0 END) as negative
SUM(taxableBase > 0) as positive,
SUM(taxableBase < 0) as negative
FROM(
SELECT SUM(taxableBase) as taxableBase
SELECT SUM(taxableBase) taxableBase
FROM tmp.ticketTax
GROUP BY pgcFk
) t;

View File

@ -4,7 +4,8 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `vn`.`hasAnyPositiveBase`(
DETERMINISTIC
BEGIN
/* Calcula si existe alguna base imponible positiva
/**
* Calcula si existe alguna base imponible positiva
* Requiere la tabla temporal tmp.ticketToInvoice(id) para getTaxBases()
*
* returns BOOLEAN
@ -15,7 +16,8 @@ BEGIN
CALL getTaxBases();
SELECT positive INTO hasAnyPositiveBase
FROM tmp.taxBases;
FROM tmp.taxBases
LIMIT 1;
DROP TEMPORARY TABLE
tmp.ticketTax,

View File

@ -4,7 +4,8 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `vn`.`hasAnyNegativeBase`(
DETERMINISTIC
BEGIN
/* Calcula si existe alguna base imponible negativa
/**
* Calcula si existe alguna base imponible negativa
* Requiere la tabla temporal tmp.ticketToInvoice(id) para getTaxBases()
*
* returns BOOLEAN
@ -15,7 +16,8 @@ BEGIN
CALL getTaxBases();
SELECT negative INTO hasAnyNegativeBase
FROM tmp.taxBases;
FROM tmp.taxBases
LIMIT 1;
DROP TEMPORARY TABLE
tmp.ticketTax,
@ -27,3 +29,4 @@ BEGIN
END$$
DELIMITER ;

View File

@ -23,3 +23,4 @@ The following refund tickets have been created: "Se han creado los siguientes ti
Refund...: Abono...
Transfer invoice to...: Transferir factura a...
Rectificative type: Tipo rectificativa
Invoice trasfered!: ¡Factura transferida!

View File

@ -71,7 +71,7 @@ module.exports = function(Self) {
group[addressFk].push(id);
return group;
}, {}))
: [[ticketsIds]];
: [ticketsIds];
for (const ticketIds of ticketsByAddress)
invoicesIds.push(await createInvoice(ctx, companyId, ticketIds, invoiceCorrection, myOptions));

View File

@ -121,4 +121,29 @@ describe('ticket canBeInvoiced()', () => {
throw e;
}
});
it('should return falsy for a ticket has positiveBase', async() => {
const tx = await models.Ticket.beginTransaction({});
try {
const options = {transaction: tx};
await models.Ticket.rawSql(`
CREATE OR REPLACE TEMPORARY TABLE tmp.ticketToInvoice
(PRIMARY KEY (id))
ENGINE = MEMORY
SELECT id
FROM vn.ticket
WHERE id IN (?)
`, [ticketId], options);
await models.Ticket.canBeInvoiced(ctx, [ticketId], true, options);
await tx.rollback();
} catch (e) {
error = e;
await tx.rollback();
}
expect(error.message).toEqual(`hasAnyPositiveBase`);
});
});