fix: invoiceInTax_getFromEntries (referenceRate) #2462
|
@ -1,24 +1,24 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`invoiceInTax_getFromEntries`(IN vInvoiceInFk INT)
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`invoiceInTax_getFromEntries`(
|
||||
IN vInvoiceInFk INT
|
||||
)
|
||||
BEGIN
|
||||
DECLARE vRate DOUBLE DEFAULT 1;
|
||||
DECLARE vDated DATE;
|
||||
DECLARE vExpenseFk VARCHAR(10);
|
||||
|
||||
SELECT MAX(rr.dated) INTO vDated
|
||||
FROM referenceRate rr
|
||||
JOIN invoiceIn ii ON ii.id = vInvoiceInFk
|
||||
WHERE rr.dated <= ii.issued
|
||||
AND rr.currencyFk = ii.currencyFk ;
|
||||
|
||||
IF vDated THEN
|
||||
SELECT `value` INTO vRate
|
||||
FROM referenceRate
|
||||
WHERE dated = vDated;
|
||||
END IF;
|
||||
WITH rate AS(
|
||||
SELECT MAX(rr.dated) dated, ii.currencyFk
|
||||
FROM vn.invoiceIn ii
|
||||
JOIN vn.referenceRate rr ON rr.currencyFk = ii.currencyFk
|
||||
WHERE ii.id = vInvoiceInFk
|
||||
AND rr.dated <= ii.issued
|
||||
) SELECT `value` INTO vRate
|
||||
FROM vn.referenceRate rr
|
||||
JOIN rate r ON r.dated = rr.dated
|
||||
AND r.currencyFk = rr.currencyFk;
|
||||
|
||||
SELECT id INTO vExpenseFk
|
||||
FROM vn.expense
|
||||
FROM expense
|
||||
WHERE `name` = 'Adquisición mercancia Extracomunitaria'
|
||||
GROUP BY id
|
||||
LIMIT 1;
|
||||
|
@ -26,19 +26,25 @@ BEGIN
|
|||
DELETE FROM invoiceInTax
|
||||
WHERE invoiceInFk = vInvoiceInFk;
|
||||
|
||||
INSERT INTO invoiceInTax(invoiceInFk, taxableBase, expenseFk, foreignValue, taxTypeSageFk, transactionTypeSageFk)
|
||||
SELECT ii.id,
|
||||
SUM(b.buyingValue * b.quantity) / IFNULL(vRate,1) taxableBase,
|
||||
vExpenseFk,
|
||||
IF(ii.currencyFk = 1,NULL,SUM(b.buyingValue * b.quantity )) divisa,
|
||||
INSERT INTO invoiceInTax(
|
||||
invoiceInFk,
|
||||
taxableBase,
|
||||
expenseFk,
|
||||
foreignValue,
|
||||
taxTypeSageFk,
|
||||
transactionTypeSageFk
|
||||
)SELECT ii.id,
|
||||
SUM(b.buyingValue * b.quantity) / vRate taxableBase,
|
||||
vExpenseFk,
|
||||
IF(ii.currencyFk = 1,
|
||||
NULL,
|
||||
SUM(b.buyingValue * b.quantity )),
|
||||
taxTypeSageFk,
|
||||
transactionTypeSageFk
|
||||
FROM invoiceIn ii
|
||||
JOIN entry e ON e.invoiceInFk = ii.id
|
||||
JOIN supplier s ON s.id = e.supplierFk
|
||||
JOIN buy b ON b.entryFk = e.id
|
||||
LEFT JOIN referenceRate rr ON rr.currencyFk = ii.currencyFk
|
||||
AND rr.dated = ii.issued
|
||||
WHERE ii.id = vInvoiceInFk
|
||||
HAVING taxableBase IS NOT NULL;
|
||||
END$$
|
||||
|
|
Loading…
Reference in New Issue