refs #5914 refactor: getTaxBases
gitea/salix/pipeline/head There was a failure building this commit
Details
gitea/salix/pipeline/head There was a failure building this commit
Details
This commit is contained in:
parent
121caee93a
commit
ba26237998
|
@ -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;
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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 ;
|
||||
|
||||
|
||||
|
|
|
@ -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!
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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`);
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue