38 lines
799 B
SQL
38 lines
799 B
SQL
DELIMITER $$
|
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_recalc`(vSelf INT, vTaxArea VARCHAR(25))
|
|
proc:BEGIN
|
|
/**
|
|
* Calcula y guarda el total con/sin IVA en un ticket.
|
|
*
|
|
* @param vSelf Identificador del ticket
|
|
* @param vTaxArea
|
|
*/
|
|
DECLARE hasInvoice BOOL;
|
|
|
|
SELECT COUNT(*) INTO hasInvoice
|
|
FROM ticket
|
|
WHERE id = vSelf
|
|
AND refFk IS NOT NULL;
|
|
|
|
IF hasInvoice THEN
|
|
LEAVE proc;
|
|
END IF;
|
|
|
|
DROP TEMPORARY TABLE IF EXISTS tmp.ticket;
|
|
CREATE TEMPORARY TABLE tmp.ticket
|
|
ENGINE = MEMORY
|
|
SELECT vSelf ticketFk;
|
|
|
|
CALL ticketGetTotal(vTaxArea);
|
|
|
|
UPDATE ticket t
|
|
JOIN tmp.ticketTotal tt ON tt.ticketFk = t.id
|
|
SET t.totalWithVat = tt.total,
|
|
t.totalWithoutVat = tt.totalWithoutVat;
|
|
|
|
DROP TEMPORARY TABLE
|
|
tmp.ticket,
|
|
tmp.ticketTotal;
|
|
END$$
|
|
DELIMITER ;
|