Merge pull request '7213-Pasar-problemas-a-columnas-calculadas' (!2396) from 7213-Pasar-problemas-a-columnas-calculadas into dev
gitea/salix/pipeline/head There was a failure building this commit
Details
gitea/salix/pipeline/head There was a failure building this commit
Details
Reviewed-on: #2396 Reviewed-by: Javi Gallego <jgallego@verdnatura.es>
This commit is contained in:
commit
4254fac6c2
|
@ -0,0 +1,28 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `vn`.`sale_hasComponentLack`(
|
||||||
|
vSelf INT
|
||||||
|
)RETURNS tinyint(1)
|
||||||
|
READS SQL DATA
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Check if a sales line has all the required components.
|
||||||
|
*
|
||||||
|
* @param vSelf Id de sale
|
||||||
|
* @return BOOL
|
||||||
|
*/
|
||||||
|
DECLARE vHasComponentLack TINYINT(1);
|
||||||
|
|
||||||
|
WITH componentRequired AS(
|
||||||
|
SELECT COUNT(*) total
|
||||||
|
FROM vn.component
|
||||||
|
WHERE isRequired
|
||||||
|
)SELECT SUM(IF(c.isRequired, TRUE, FALSE)) <> cr.total INTO vHasComponentLack
|
||||||
|
FROM vn.sale s
|
||||||
|
JOIN componentRequired cr
|
||||||
|
LEFT JOIN vn.saleComponent sc ON sc.saleFk = s.id
|
||||||
|
LEFT JOIN vn.component c ON c.id = sc.componentFk
|
||||||
|
WHERE s.id = vSelf;
|
||||||
|
|
||||||
|
RETURN vHasComponentLack;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -0,0 +1,25 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `vn`.`ticket_isTooLittle`(
|
||||||
|
vSelf INT
|
||||||
|
)
|
||||||
|
RETURNS tinyint(1)
|
||||||
|
READS SQL DATA
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Check if the ticket is small based on the volume and amount parameters.
|
||||||
|
*
|
||||||
|
* @param vSelf Id ticket
|
||||||
|
* @return BOOL
|
||||||
|
*/
|
||||||
|
DECLARE vIsTooLittle TINYINT(1);
|
||||||
|
|
||||||
|
SELECT (SUM(IFNULL(sv.litros, 0)) < vc.minTicketVolume
|
||||||
|
OR IFNULL(t.totalWithoutVat, 0) < vc.minTicketValue) INTO vIsTooLittle
|
||||||
|
FROM ticket t
|
||||||
|
LEFT JOIN saleVolume sv ON sv.ticketFk = t.id
|
||||||
|
JOIN volumeConfig vc
|
||||||
|
WHERE t.id = vSelf;
|
||||||
|
|
||||||
|
RETURN vIsTooLittle;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -0,0 +1,18 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`sale_setProblem`(
|
||||||
|
vProblemCode VARCHAR(25)
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Update column sale.problem with a problem code
|
||||||
|
* @param vProblemCode Code to set or unset
|
||||||
|
* @table tmp.sale(saleFk, hasProblem)
|
||||||
|
*/
|
||||||
|
UPDATE sale s
|
||||||
|
JOIN tmp.sale ts ON ts.saleFk = s.id
|
||||||
|
SET s.problem = CONCAT(
|
||||||
|
IF(ts.hasProblem,
|
||||||
|
CONCAT(s.problem, ',', vProblemCode),
|
||||||
|
REPLACE(s.problem, vProblemCode , '')));
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -0,0 +1,21 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`sale_setProblemComponentLack`(
|
||||||
|
vSelf INT
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Update the problems for sales lines that have or no longer have problems with components,
|
||||||
|
* verify whether all mandatory components are present or not
|
||||||
|
*
|
||||||
|
* @param vSelf Id del sale
|
||||||
|
*/
|
||||||
|
CREATE OR REPLACE TEMPORARY TABLE tmp.sale
|
||||||
|
(INDEX(saleFk))
|
||||||
|
ENGINE = MEMORY
|
||||||
|
SELECT vSelf saleFk, sale_hasComponentLack(vSelf) hasProblem;
|
||||||
|
|
||||||
|
CALL sale_setProblem('hasComponentLack');
|
||||||
|
|
||||||
|
DROP TEMPORARY TABLE tmp.sale;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -0,0 +1,26 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`sale_setProblemComponentLackByComponent`(
|
||||||
|
vComponentFk INT
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Update the issues for sales lines that have or no longer have problems with components, verify
|
||||||
|
* whether all mandatory components are present or not resulting from changes in the table vn.component
|
||||||
|
*
|
||||||
|
* @param vComponentFk Id component
|
||||||
|
*/
|
||||||
|
CREATE OR REPLACE TEMPORARY TABLE tmp.sale
|
||||||
|
(INDEX(saleFk))
|
||||||
|
ENGINE = MEMORY
|
||||||
|
SELECT s.id saleFk, sale_hasComponentLack(s.id) hasProblem
|
||||||
|
FROM ticket t
|
||||||
|
JOIN sale s ON s.ticketFk = t.id
|
||||||
|
LEFT JOIN saleComponent sc ON sc.saleFk = s.id
|
||||||
|
WHERE t.shipped >= util.midnight()
|
||||||
|
AND (vComponentFk IS NULL OR sc.componentFk = vComponentFk);
|
||||||
|
|
||||||
|
CALL sale_setProblem('hasComponentLack');
|
||||||
|
|
||||||
|
DROP TEMPORARY TABLE tmp.sale;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -0,0 +1,34 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`sale_setProblemRounding`(
|
||||||
|
vSelf INT
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Update the rounding problem for a sales line
|
||||||
|
* @param vSelf Id sale
|
||||||
|
*/
|
||||||
|
DECLARE vItemFk INT;
|
||||||
|
DECLARE vWarehouseFk INT;
|
||||||
|
DECLARE vShipped DATE;
|
||||||
|
DECLARE vQuantity INT;
|
||||||
|
|
||||||
|
SELECT s.itemFk, t.warehouseFk, t.shipped, s.quantity
|
||||||
|
INTO vItemFk, vWarehouseFk, vShipped, vQuantity
|
||||||
|
FROM sale s
|
||||||
|
JOIN ticket t ON t.id = s.ticketFk
|
||||||
|
WHERE s.id = vSelf;
|
||||||
|
|
||||||
|
CALL buyUltimate(vWarehouseFk, vShipped);
|
||||||
|
|
||||||
|
CREATE OR REPLACE TEMPORARY TABLE tmp.ticket
|
||||||
|
SELECT vSelf saleFk, MOD(vQuantity, bu.`grouping`) hasProblem
|
||||||
|
FROM tmp.buyUltimate bu
|
||||||
|
JOIN buy b ON b.id = bu.buyFk
|
||||||
|
WHERE bu.itemFk = vItemFk;
|
||||||
|
|
||||||
|
CALL sale_setProblem('hasRounding');
|
||||||
|
|
||||||
|
DROP TEMPORARY TABLE tmp.ticket;
|
||||||
|
DROP TEMPORARY TABLE tmp.buyUltimate;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -0,0 +1,19 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_setProblem`(
|
||||||
|
vProblemCode VARCHAR(25)
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Update column ticket.problem with a problem code
|
||||||
|
*
|
||||||
|
* @param vProblemCode Code to set or unset
|
||||||
|
* @table tmp.ticket(ticketFk, hasProblem)
|
||||||
|
*/
|
||||||
|
UPDATE ticket t
|
||||||
|
JOIN tmp.ticket tt ON tt.ticketFk = t.id
|
||||||
|
SET t.problem = CONCAT(
|
||||||
|
IF(tt.hasProblem,
|
||||||
|
CONCAT(problem, ',', vProblemCode),
|
||||||
|
REPLACE(problem, vProblemCode , '')));
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -0,0 +1,29 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_setProblemFreeze`(
|
||||||
|
vClientFk INT
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Update the problem of tickets whose client is frozen or unfrozen
|
||||||
|
*
|
||||||
|
* @param vClientFk Id Cliente, if NULL all clients
|
||||||
|
*/
|
||||||
|
CREATE OR REPLACE TEMPORARY TABLE tmp.ticket
|
||||||
|
(INDEX(ticketFk))
|
||||||
|
ENGINE = MEMORY
|
||||||
|
SELECT t.id ticketFk, FALSE hasProblem
|
||||||
|
FROM ticket t
|
||||||
|
WHERE t.shipped >= util.midnight()
|
||||||
|
AND (vClientFk IS NULL OR t.clientFk = vClientFk);
|
||||||
|
|
||||||
|
UPDATE tmp.ticket t
|
||||||
|
JOIN ticket ti ON ti.id = t.ticketFk
|
||||||
|
JOIN client c ON c.id = ti.clientFk
|
||||||
|
SET t.hasProblem = TRUE
|
||||||
|
WHERE c.isFreezed;
|
||||||
|
|
||||||
|
CALL ticket_setProblem('hasTicketRequest');
|
||||||
|
|
||||||
|
DROP TEMPORARY TABLE tmp.ticket;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -0,0 +1,28 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_setProblemRequest`(
|
||||||
|
vSelf INT
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Update the problems of tickets that have a pending ticketRequest or no longer have it
|
||||||
|
*
|
||||||
|
* @param vSelf Id ticket, if NULL ALL tickets
|
||||||
|
*/
|
||||||
|
CREATE OR REPLACE TEMPORARY TABLE tmp.ticket
|
||||||
|
(INDEX(ticketFk))
|
||||||
|
ENGINE = MEMORY
|
||||||
|
SELECT t.id ticketFk, FALSE hasProblem
|
||||||
|
FROM ticket t
|
||||||
|
WHERE t.shipped >= util.midnight()
|
||||||
|
AND (vSelf IS NULL OR t.id = vSelf);
|
||||||
|
|
||||||
|
UPDATE tmp.ticket t
|
||||||
|
JOIN ticketRequest tr ON tr.ticketFk = t.ticketFk
|
||||||
|
SET t.hasProblem = TRUE
|
||||||
|
WHERE tr.isOK IS NULL;
|
||||||
|
|
||||||
|
CALL ticket_setProblem('hasTicketRequest');
|
||||||
|
|
||||||
|
DROP TEMPORARY TABLE tmp.ticket;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -0,0 +1,33 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_setProblemRisk`(
|
||||||
|
vSelf INT
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Update the risk problem for a specific ticket
|
||||||
|
*
|
||||||
|
* @param vSelf Id ticket
|
||||||
|
*/
|
||||||
|
DECLARE vHasRisk BOOL;
|
||||||
|
DECLARE vHasHighRisk BOOL;
|
||||||
|
|
||||||
|
SELECT t.risk > (c.credit + 10), ((t.risk - cc.riskTolerance) > (c.credit + 10))
|
||||||
|
INTO vHasRisk, vHasHighRisk
|
||||||
|
FROM client c
|
||||||
|
JOIN ticket t ON t.clientFk = c.id
|
||||||
|
JOIN clientConfig cc
|
||||||
|
WHERE t.id = vSelf;
|
||||||
|
|
||||||
|
CREATE OR REPLACE TEMPORARY TABLE tmp.ticket
|
||||||
|
SELECT vSelf ticketFk, vRisk hasProblem;
|
||||||
|
|
||||||
|
CALL ticket_setProblem('hasRisk');
|
||||||
|
|
||||||
|
CREATE OR REPLACE TEMPORARY TABLE tmp.ticket
|
||||||
|
SELECT vSelf ticketFk, vHasHighRisk hasProblem;
|
||||||
|
|
||||||
|
CALL ticket_setProblem('hasHighRisk');
|
||||||
|
|
||||||
|
DROP TEMPORARY TABLE tmp.ticket;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -0,0 +1,34 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_setProblemRounding`(
|
||||||
|
vSelf INT
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Update the rounding problem for the sales lines of a ticket
|
||||||
|
*
|
||||||
|
* @param vSelf Id de ticket
|
||||||
|
*/
|
||||||
|
DECLARE vWarehouseFk INT;
|
||||||
|
DECLARE vDated DATE;
|
||||||
|
|
||||||
|
SELECT warehouseFk, shipped
|
||||||
|
INTO vWarehouseFk, vDated
|
||||||
|
FROM ticket
|
||||||
|
WHERE id = vSelf;
|
||||||
|
|
||||||
|
CALL buyUltimate(vWarehouseFk, vDated);
|
||||||
|
|
||||||
|
CREATE OR REPLACE TEMPORARY TABLE tmp.ticket
|
||||||
|
SELECT s.id saleFk , MOD(s.quantity, b.`grouping`) hasProblem
|
||||||
|
FROM ticket t
|
||||||
|
JOIN sale s ON s.ticketFk = tl.ticketFk
|
||||||
|
JOIN tmp.buyUltimate bu ON bu.itemFk = s.itemFk
|
||||||
|
JOIN buy b ON b.id = bu.buyFk
|
||||||
|
WHERE t.id = vSelf;
|
||||||
|
|
||||||
|
CALL sale_setProblem('hasRounding');
|
||||||
|
|
||||||
|
DROP TEMPORARY TABLE tmp.ticket;
|
||||||
|
DROP TEMPORARY TABLE tmp.buyUltimate;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -0,0 +1,24 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost`
|
||||||
|
PROCEDURE `vn`.`ticket_setProblemTaxDataChecked`(vClientFk INT)
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Update the problem of tickets, depending on whether
|
||||||
|
* the client taxDataCheched is verified or not
|
||||||
|
*
|
||||||
|
* @param vClientFk Id cliente, if NULL all clients
|
||||||
|
*/
|
||||||
|
CREATE OR REPLACE TEMPORARY TABLE tmp.ticket
|
||||||
|
(INDEX(ticketFk))
|
||||||
|
ENGINE = MEMORY
|
||||||
|
SELECT t.id ticketFk, IF(c.isTaxDataChecked, FALSE, TRUE) hasProblem
|
||||||
|
FROM ticket t
|
||||||
|
JOIN client c ON c.id = t.clientFk
|
||||||
|
WHERE t.shipped >= util.midnight()
|
||||||
|
AND (c.id = vClientFk OR vClientFk IS NULL);
|
||||||
|
|
||||||
|
CALL ticket_setProblem('isTaxDataChecked');
|
||||||
|
|
||||||
|
DROP TEMPORARY TABLE tmp.ticket;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -0,0 +1,20 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_setProblemTooLittle`(
|
||||||
|
vSelf INT
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Update the problems when the ticket is too small or is no longer so
|
||||||
|
*
|
||||||
|
* @param vSelf Id del ticket
|
||||||
|
*/
|
||||||
|
CREATE OR REPLACE TEMPORARY TABLE tmp.ticket
|
||||||
|
(INDEX(ticketFk))
|
||||||
|
ENGINE = MEMORY
|
||||||
|
SELECT vSelf ticketFk, ticket_isTooLittle(vSelf) hasProblem;
|
||||||
|
|
||||||
|
CALL ticket_setProblem('isTooLittle');
|
||||||
|
|
||||||
|
DROP TEMPORARY TABLE tmp.ticket;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -0,0 +1,29 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_setProblemTooLittleItemCost`(
|
||||||
|
vItemFk INT
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Update the problems when the ticket is too small or is no longer so,
|
||||||
|
* derived from changes in the itemCost table
|
||||||
|
*
|
||||||
|
* @param vItemFk Id del item, NULL ALL items
|
||||||
|
*/
|
||||||
|
CREATE OR REPLACE TEMPORARY TABLE tmp.ticket
|
||||||
|
(INDEX(ticketFk))
|
||||||
|
ENGINE = MEMORY
|
||||||
|
WITH tickets AS(
|
||||||
|
SELECT t.id ticketFk
|
||||||
|
FROM vn.ticket t
|
||||||
|
JOIN vn.sale s ON s.ticketFk = t.id
|
||||||
|
WHERE t.shipped >= util.midnight()
|
||||||
|
AND (s.itemFk = vItemFk OR vItemFk IS NULL)
|
||||||
|
GROUP BY t.id
|
||||||
|
)SELECT ticketFk, ticket_isTooLittle(ticketFk) hasProblem
|
||||||
|
FROM tickets;
|
||||||
|
|
||||||
|
CALL ticket_setProblem('isTooLittle');
|
||||||
|
|
||||||
|
DROP TEMPORARY TABLE tmp.ticket;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -0,0 +1,87 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_setRisk`(
|
||||||
|
vClientFk INT)
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Update the risk for a client with pending tickets
|
||||||
|
*
|
||||||
|
* @param vClientFk Id cliente
|
||||||
|
*/
|
||||||
|
DECLARE vHasDebt BOOL;
|
||||||
|
|
||||||
|
SELECT COUNT(*) INTO vHasDebt
|
||||||
|
FROM `client`
|
||||||
|
WHERE id = vClientFk
|
||||||
|
AND typeFk = 'normal';
|
||||||
|
|
||||||
|
IF vHasDebt THEN
|
||||||
|
|
||||||
|
CREATE OR REPLACE TEMPORARY TABLE tTicketRisk
|
||||||
|
(KEY (ticketFk))
|
||||||
|
ENGINE = MEMORY
|
||||||
|
WITH ticket AS(
|
||||||
|
SELECT id ticketFk, companyFk, DATE(shipped) dated
|
||||||
|
FROM vn.ticket t
|
||||||
|
WHERE clientFk = vClientFk
|
||||||
|
AND refFk IS NULL
|
||||||
|
AND NOT isDeleted
|
||||||
|
AND totalWithoutVat <> 0
|
||||||
|
), dated AS(
|
||||||
|
SELECT t.companyFk, MIN(DATE(t.dated) - INTERVAL cc.riskScope MONTH) started,
|
||||||
|
MAX(DATE(t.dated)) ended
|
||||||
|
FROM ticket t
|
||||||
|
JOIN vn.clientConfig cc
|
||||||
|
GROUP BY t.companyFk
|
||||||
|
), balance AS(
|
||||||
|
SELECT SUM(amount)amount, companyFk
|
||||||
|
FROM (
|
||||||
|
SELECT amount, companyFk
|
||||||
|
FROM vn.clientRisk
|
||||||
|
WHERE clientFk = vClientFk
|
||||||
|
UNION ALL
|
||||||
|
SELECT -(SUM(amount) / 100) amount, tm.companyFk
|
||||||
|
FROM hedera.tpvTransaction t
|
||||||
|
JOIN hedera.tpvMerchant tm ON t.id = t.merchantFk
|
||||||
|
WHERE clientFk = vClientFk
|
||||||
|
AND receiptFk IS NULL
|
||||||
|
AND status = 'ok'
|
||||||
|
) sub
|
||||||
|
WHERE companyFk
|
||||||
|
GROUP BY companyFk
|
||||||
|
), uninvoiced AS(
|
||||||
|
SELECT t.companyFk, DATE(t.shipped) dated, SUM(IFNULL(t.totalWithVat, 0)) amount
|
||||||
|
FROM vn.ticket t
|
||||||
|
JOIN dated d
|
||||||
|
WHERE t.clientFk = vClientFk
|
||||||
|
AND t.refFk IS NULL
|
||||||
|
AND t.shipped BETWEEN d.started AND d.ended
|
||||||
|
GROUP BY t.companyFk, DATE(t.shipped)
|
||||||
|
), receipt AS(
|
||||||
|
SELECT companyFk,DATE(payed) dated, SUM(amountPaid) amount
|
||||||
|
FROM vn.receipt
|
||||||
|
WHERE clientFk = vClientFk
|
||||||
|
AND payed > util.VN_CURDATE()
|
||||||
|
GROUP BY companyFk, DATE(payed)
|
||||||
|
), risk AS(
|
||||||
|
SELECT b.companyFk,
|
||||||
|
ui.dated,
|
||||||
|
SUM(ui.amount) OVER (PARTITION BY b.companyFk ORDER BY ui.dated ) +
|
||||||
|
b.amount +
|
||||||
|
SUM(IFNULL(r.amount, 0)) amount
|
||||||
|
FROM balance b
|
||||||
|
JOIN uninvoiced ui ON ui.companyFk = b.companyFk
|
||||||
|
LEFT JOIN receipt r ON r.dated > ui.dated AND r.companyFk = ui.companyFk
|
||||||
|
GROUP BY b.companyFk, ui.dated
|
||||||
|
)
|
||||||
|
SELECT ti.ticketFk, r.amount
|
||||||
|
FROM ticket ti
|
||||||
|
JOIN risk r ON r.dated = ti.dated AND r.companyFk = ti.companyFk;
|
||||||
|
|
||||||
|
UPDATE ticket t
|
||||||
|
JOIN tTicketRisk tr ON tr.ticketFk = t.id
|
||||||
|
SET t.risk = tr.amount;
|
||||||
|
|
||||||
|
DROP TEMPORARY TABLE tTicketRisk;
|
||||||
|
END IF;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -1,5 +1,5 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`worker_updateBalance`(vSelfFk INT(11), vCredit DECIMAL(10,2), vDebit DECIMAL(10,2))
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`worker_updateBalance`(vSelf INT(11), vCredit DECIMAL(10,2), vDebit DECIMAL(10,2))
|
||||||
BEGIN
|
BEGIN
|
||||||
/**
|
/**
|
||||||
* Actualiza la columna balance de worker.
|
* Actualiza la columna balance de worker.
|
||||||
|
@ -8,6 +8,6 @@ BEGIN
|
||||||
*/
|
*/
|
||||||
UPDATE worker
|
UPDATE worker
|
||||||
SET balance = IFNULL(balance, 0) + IFNULL(vCredit, 0) - IFNULL(vDebit, 0)
|
SET balance = IFNULL(balance, 0) + IFNULL(vCredit, 0) - IFNULL(vDebit, 0)
|
||||||
WHERE id = vSelfFk;
|
WHERE id = vSelf;
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
ALTER TABLE vn.ticket DROP COLUMN IF EXISTS problem;
|
||||||
|
ALTER TABLE vn.sale DROP COLUMN IF EXISTS problem;
|
||||||
|
ALTER TABLE vn.ticket DROP COLUMN IF EXISTS risk;
|
||||||
|
|
||||||
|
ALTER TABLE vn.ticket ADD IF NOT EXISTS problem SET('hasTicketRequest', 'isFreezed', 'hasRisk', 'hasHighRisk', 'isTaxDataChecked', 'isTooLittle')NOT NULL DEFAULT '';
|
||||||
|
ALTER TABLE vn.sale ADD IF NOT EXISTS problem SET('hasItemShortage', 'hasComponentLack', 'hasItemDelay', 'hasRounding', 'hasItemLost')NOT NULL DEFAULT '';
|
||||||
|
ALTER TABLE vn.ticket ADD IF NOT EXISTS risk DECIMAL(10,2) DEFAULT NULL NULL COMMENT 'cache calculada con el riesgo del cliente';
|
||||||
|
|
Loading…
Reference in New Issue