reviewed
gitea/salix/pipeline/pr-dev There was a failure building this commit
Details
gitea/salix/pipeline/pr-dev There was a failure building this commit
Details
This commit is contained in:
parent
fc7c7beef7
commit
9b2cbcd5cc
|
@ -1,5 +1,4 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
$$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE vn.supplier_statementWithEntries(
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE vn.supplier_statementWithEntries(
|
||||||
vSupplierFk INT,
|
vSupplierFk INT,
|
||||||
vCurrencyFk INT,
|
vCurrencyFk INT,
|
||||||
|
@ -20,9 +19,15 @@ BEGIN
|
||||||
* @param vHasEntries Indicates if future entries must be shown
|
* @param vHasEntries Indicates if future entries must be shown
|
||||||
* @return tmp.supplierStatement
|
* @return tmp.supplierStatement
|
||||||
*/
|
*/
|
||||||
|
DECLARE vBalanceStartingDate DATETIME;
|
||||||
|
|
||||||
SET @euroBalance:= 0;
|
SET @euroBalance:= 0;
|
||||||
SET @currencyBalance:= 0;
|
SET @currencyBalance:= 0;
|
||||||
|
|
||||||
|
SELECT balanceStartingDate
|
||||||
|
INTO vBalanceStartingDate
|
||||||
|
FROM invoiceInConfig;
|
||||||
|
|
||||||
CREATE OR REPLACE TEMPORARY TABLE tmp.supplierStatement
|
CREATE OR REPLACE TEMPORARY TABLE tmp.supplierStatement
|
||||||
ENGINE = MEMORY
|
ENGINE = MEMORY
|
||||||
SELECT *,
|
SELECT *,
|
||||||
|
@ -35,132 +40,127 @@ BEGIN
|
||||||
IFNULL(invoiceCurrency, 0), 2
|
IFNULL(invoiceCurrency, 0), 2
|
||||||
) currencyBalance
|
) currencyBalance
|
||||||
FROM (
|
FROM (
|
||||||
SELECT * FROM
|
SELECT NULL bankFk,
|
||||||
(
|
ii.companyFk,
|
||||||
SELECT NULL bankFk,
|
ii.serial,
|
||||||
ii.companyFk,
|
ii.id,
|
||||||
ii.serial,
|
CASE
|
||||||
ii.id,
|
WHEN vOrderBy = 'issued' THEN ii.issued
|
||||||
CASE
|
WHEN vOrderBy = 'bookEntried' THEN ii.bookEntried
|
||||||
WHEN vOrderBy = 'issued' THEN ii.issued
|
WHEN vOrderBy = 'booked' THEN ii.booked
|
||||||
WHEN vOrderBy = 'bookEntried' THEN ii.bookEntried
|
WHEN vOrderBy = 'dueDate' THEN iid.dueDated
|
||||||
WHEN vOrderBy = 'booked' THEN ii.booked
|
END dated,
|
||||||
WHEN vOrderBy = 'dueDate' THEN iid.dueDated
|
CONCAT('S/Fra ', ii.supplierRef) sref,
|
||||||
END dated,
|
IF(ii.currencyFk > 1,
|
||||||
CONCAT('S/Fra ', ii.supplierRef) sref,
|
ROUND(SUM(iid.foreignValue) / SUM(iid.amount), 3),
|
||||||
IF(ii.currencyFk > 1,
|
NULL
|
||||||
ROUND(SUM(iid.foreignValue) / SUM(iid.amount), 3),
|
) changeValue,
|
||||||
NULL
|
CAST(SUM(iid.amount) AS DECIMAL(10,2)) invoiceEuros,
|
||||||
) changeValue,
|
CAST(SUM(iid.foreignValue) AS DECIMAL(10,2)) invoiceCurrency,
|
||||||
CAST(SUM(iid.amount) AS DECIMAL(10,2)) invoiceEuros,
|
NULL paymentEuros,
|
||||||
CAST(SUM(iid.foreignValue) AS DECIMAL(10,2)) invoiceCurrency,
|
NULL paymentCurrency,
|
||||||
NULL paymentEuros,
|
ii.currencyFk,
|
||||||
NULL paymentCurrency,
|
ii.isBooked,
|
||||||
ii.currencyFk,
|
c.code,
|
||||||
ii.isBooked,
|
'invoiceIn' statementType
|
||||||
c.code,
|
FROM invoiceIn ii
|
||||||
'invoiceIn' statementType
|
JOIN invoiceInDueDay iid ON iid.invoiceInFk = ii.id
|
||||||
FROM invoiceIn ii
|
JOIN currency c ON c.id = ii.currencyFk
|
||||||
JOIN invoiceInDueDay iid ON iid.invoiceInFk = ii.id
|
WHERE ii.issued >= vBalanceStartingDate
|
||||||
JOIN currency c ON c.id = ii.currencyFk
|
AND ii.supplierFk = vSupplierFk
|
||||||
JOIN invoiceInConfig iic
|
AND vCurrencyFk IN (ii.currencyFk, 0)
|
||||||
WHERE ii.issued >= iic.balanceStartingDate
|
AND vCompanyFk IN (ii.companyFk, 0)
|
||||||
AND ii.supplierFk = vSupplierFk
|
AND (vIsConciliated = ii.isBooked OR NOT vIsConciliated)
|
||||||
AND vCurrencyFk IN (ii.currencyFk, 0)
|
GROUP BY iid.id
|
||||||
AND vCompanyFk IN (ii.companyFk, 0)
|
UNION ALL
|
||||||
AND (vIsConciliated = ii.isBooked OR NOT vIsConciliated)
|
SELECT p.bankFk,
|
||||||
GROUP BY iid.id
|
p.companyFk,
|
||||||
UNION ALL
|
NULL,
|
||||||
SELECT p.bankFk,
|
p.id,
|
||||||
p.companyFk,
|
CASE
|
||||||
NULL,
|
WHEN vOrderBy = 'issued' THEN p.received
|
||||||
p.id,
|
WHEN vOrderBy = 'bookEntried' THEN p.received
|
||||||
CASE
|
WHEN vOrderBy = 'booked' THEN p.received
|
||||||
WHEN vOrderBy = 'issued' THEN p.received
|
WHEN vOrderBy = 'dueDate' THEN p.dueDated
|
||||||
WHEN vOrderBy = 'bookEntried' THEN p.received
|
END,
|
||||||
WHEN vOrderBy = 'booked' THEN p.received
|
CONCAT(IFNULL(pm.name, ''),
|
||||||
WHEN vOrderBy = 'dueDate' THEN p.dueDated
|
IF(pn.concept <> '',
|
||||||
END,
|
CONCAT(' : ', pn.concept),
|
||||||
CONCAT(IFNULL(pm.name, ''),
|
'')
|
||||||
IF(pn.concept <> '',
|
),
|
||||||
CONCAT(' : ', pn.concept),
|
IF(p.currencyFk > 1, p.divisa / p.amount, NULL),
|
||||||
'')
|
NULL,
|
||||||
),
|
NULL,
|
||||||
IF(p.currencyFk > 1, p.divisa / p.amount, NULL),
|
p.amount,
|
||||||
NULL,
|
p.divisa,
|
||||||
NULL,
|
p.currencyFk,
|
||||||
p.amount,
|
p.isConciliated,
|
||||||
p.divisa,
|
c.code,
|
||||||
p.currencyFk,
|
'payment'
|
||||||
p.isConciliated,
|
FROM payment p
|
||||||
c.code,
|
LEFT JOIN currency c ON c.id = p.currencyFk
|
||||||
'payment'
|
LEFT JOIN accounting a ON a.id = p.bankFk
|
||||||
FROM payment p
|
LEFT JOIN payMethod pm ON pm.id = p.payMethodFk
|
||||||
LEFT JOIN currency c ON c.id = p.currencyFk
|
LEFT JOIN promissoryNote pn ON pn.paymentFk = p.id
|
||||||
LEFT JOIN accounting a ON a.id = p.bankFk
|
WHERE p.received >= vBalanceStartingDate
|
||||||
LEFT JOIN payMethod pm ON pm.id = p.payMethodFk
|
AND p.supplierFk = vSupplierFk
|
||||||
LEFT JOIN promissoryNote pn ON pn.paymentFk = p.id
|
AND vCurrencyFk IN (p.currencyFk, 0)
|
||||||
JOIN invoiceInConfig iic
|
AND vCompanyFk IN (p.companyFk, 0)
|
||||||
WHERE p.received >= iic.balanceStartingDate
|
AND (vIsConciliated = p.isConciliated OR NOT vIsConciliated)
|
||||||
AND p.supplierFk = vSupplierFk
|
UNION ALL
|
||||||
AND vCurrencyFk IN (p.currencyFk, 0)
|
SELECT NULL,
|
||||||
AND vCompanyFk IN (p.companyFk, 0)
|
companyFk,
|
||||||
AND (vIsConciliated = p.isConciliated OR NOT vIsConciliated)
|
NULL,
|
||||||
UNION ALL
|
se.id,
|
||||||
SELECT NULL,
|
CASE
|
||||||
companyFk,
|
WHEN vOrderBy = 'issued' THEN se.dated
|
||||||
NULL,
|
WHEN vOrderBy = 'bookEntried' THEN se.dated
|
||||||
se.id,
|
WHEN vOrderBy = 'booked' THEN se.dated
|
||||||
CASE
|
WHEN vOrderBy = 'dueDate' THEN se.dueDated
|
||||||
WHEN vOrderBy = 'issued' THEN se.dated
|
END,
|
||||||
WHEN vOrderBy = 'bookEntried' THEN se.dated
|
se.description,
|
||||||
WHEN vOrderBy = 'booked' THEN se.dated
|
1,
|
||||||
WHEN vOrderBy = 'dueDate' THEN se.dueDated
|
amount,
|
||||||
END,
|
NULL,
|
||||||
se.description,
|
NULL,
|
||||||
1,
|
NULL,
|
||||||
amount,
|
currencyFk,
|
||||||
NULL,
|
isConciliated,
|
||||||
NULL,
|
c.`code`,
|
||||||
NULL,
|
'expense'
|
||||||
currencyFk,
|
FROM supplierExpense se
|
||||||
isConciliated,
|
JOIN currency c ON c.id = se.currencyFk
|
||||||
c.`code`,
|
WHERE se.supplierFk = vSupplierFk
|
||||||
'expense'
|
AND vCurrencyFk IN (se.currencyFk,0)
|
||||||
FROM supplierExpense se
|
AND vCompanyFk IN (se.companyFk,0)
|
||||||
JOIN currency c ON c.id = se.currencyFk
|
AND (vIsConciliated = se.isConciliated OR NOT vIsConciliated)
|
||||||
WHERE se.supplierFk = vSupplierFk
|
UNION ALL
|
||||||
AND vCurrencyFk IN (se.currencyFk,0)
|
SELECT NULL bankFk,
|
||||||
AND vCompanyFk IN (se.companyFk,0)
|
e.companyFk,
|
||||||
AND (vIsConciliated = se.isConciliated OR NOT vIsConciliated)
|
'E' serial,
|
||||||
UNION ALL
|
e.invoiceNumber id,
|
||||||
SELECT NULL bankFk,
|
tr.landed dated,
|
||||||
e.companyFk,
|
CONCAT('Ent. ',e.id) sref,
|
||||||
'E' serial,
|
1 / ((e.commission/100)+1) changeValue,
|
||||||
e.invoiceNumber id,
|
e.invoiceAmount * (1 + (e.commission/100)),
|
||||||
tr.landed dated,
|
e.invoiceAmount,
|
||||||
CONCAT('Ent. ',e.id) sref,
|
NULL,
|
||||||
1 / ((e.commission/100)+1) changeValue,
|
NULL,
|
||||||
e.invoiceAmount * (1 + (e.commission/100)),
|
e.currencyFk,
|
||||||
e.invoiceAmount,
|
FALSE isBooked,
|
||||||
NULL,
|
c.code,
|
||||||
NULL,
|
'order'
|
||||||
e.currencyFk,
|
FROM entry e
|
||||||
FALSE isBooked,
|
JOIN travel tr ON tr.id = e.travelFk
|
||||||
c.code,
|
JOIN currency c ON c.id = e.currencyFk
|
||||||
'order'
|
WHERE e.supplierFk = vSupplierFk
|
||||||
FROM vn.entry e
|
AND tr.landed >= CURDATE()
|
||||||
JOIN travel tr ON tr.id = e.travelFk
|
AND e.invoiceInFk IS NULL
|
||||||
JOIN currency c ON c.id = e.currencyFk
|
AND vHasEntries
|
||||||
WHERE e.supplierFk = vSupplierFk
|
ORDER BY (dated IS NULL AND NOT isBooked),
|
||||||
AND tr.landed >= CURDATE()
|
dated,
|
||||||
AND e.invoiceInFk IS NULL
|
IF(vOrderBy = 'dueDate', id, NULL)
|
||||||
AND vHasEntries
|
LIMIT 10000000000000000000
|
||||||
) sub
|
|
||||||
ORDER BY (dated IS NULL AND NOT isBooked),
|
|
||||||
dated,
|
|
||||||
IF(vOrderBy = 'dueDate', id, NULL)
|
|
||||||
LIMIT 10000000000000000000
|
|
||||||
) t;
|
) t;
|
||||||
END;$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
Loading…
Reference in New Issue