7430_devToTest #2490
|
@ -5,97 +5,90 @@ BEGIN
|
|||
DECLARE vFromDated DATE;
|
||||
DECLARE vForDeleteDated DATE;
|
||||
DECLARE vManaId INT;
|
||||
DECLARE vManaAutoId INT;
|
||||
DECLARE vClaimManaId INT;
|
||||
DECLARE vManaBankId INT;
|
||||
DECLARE vManaGreugeTypeId INT;
|
||||
DECLARE vManaFromDays INT;
|
||||
DECLARE vManaToDays INT;
|
||||
DECLARE vManaAutoId INT;
|
||||
DECLARE vClaimManaId INT;
|
||||
DECLARE vManaBankId INT;
|
||||
DECLARE vManaGreugeTypeId INT;
|
||||
DECLARE vManaFromDays INT;
|
||||
DECLARE vManaToDays INT;
|
||||
|
||||
SELECT id INTO vManaId
|
||||
FROM vn.component WHERE code = 'mana';
|
||||
SELECT id INTO vManaId
|
||||
FROM vn.component WHERE code = 'mana';
|
||||
|
||||
SELECT id INTO vManaAutoId
|
||||
SELECT id INTO vManaAutoId
|
||||
FROM vn.component WHERE code = 'autoMana';
|
||||
|
||||
SELECT id INTO vClaimManaId
|
||||
FROM vn.component WHERE code = 'manaClaim';
|
||||
|
||||
SELECT id INTO vManaBankId
|
||||
SELECT id INTO vManaBankId
|
||||
FROM vn.accounting WHERE code = 'mana';
|
||||
|
||||
SELECT id INTO vManaGreugeTypeId
|
||||
SELECT id INTO vManaGreugeTypeId
|
||||
FROM vn.greugeType WHERE code = 'mana';
|
||||
|
||||
SELECT manaFromDays, manaToDays
|
||||
INTO vManaFromDays, vManaToDays
|
||||
FROM vn.salespersonConfig;
|
||||
SELECT manaFromDays, manaToDays
|
||||
INTO vManaFromDays, vManaToDays
|
||||
FROM vn.salespersonConfig;
|
||||
|
||||
SELECT MAX(dated)
|
||||
INTO vFromDated
|
||||
FROM vn.clientManaCache;
|
||||
SELECT MAX(dated) INTO vFromDated
|
||||
FROM vn.clientManaCache;
|
||||
|
||||
DELETE
|
||||
FROM vn.clientManaCache
|
||||
WHERE dated = vFromDated;
|
||||
|
||||
SELECT MAX(dated)
|
||||
INTO vFromDated
|
||||
FROM vn.clientManaCache;
|
||||
|
||||
IF ISNULL(vFromDated) THEN
|
||||
SELECT manaDateFrom
|
||||
INTO vFromDated
|
||||
FROM vn.salespersonConfig;
|
||||
END IF;
|
||||
DELETE FROM vn.clientManaCache
|
||||
WHERE dated = vFromDated;
|
||||
|
||||
SELECT MAX(dated) INTO vFromDated
|
||||
FROM vn.clientManaCache;
|
||||
|
||||
IF vFromDated IS NULL THEN
|
||||
SELECT manaDateFrom
|
||||
INTO vFromDated
|
||||
FROM vn.salespersonConfig;
|
||||
END IF;
|
||||
|
||||
WHILE vFromDated + INTERVAL vManaToDays DAY < util.VN_CURDATE() DO
|
||||
SELECT
|
||||
vFromDated + INTERVAL vManaToDays DAY,
|
||||
vFromDated - INTERVAL vManaFromDays DAY
|
||||
INTO
|
||||
vToDated,
|
||||
vForDeleteDated;
|
||||
|
||||
DELETE FROM vn.clientManaCache
|
||||
WHERE dated <= vForDeleteDated;
|
||||
WHILE vFromDated + INTERVAL vManaToDays DAY < util.VN_CURDATE() DO
|
||||
SELECT vFromDated + INTERVAL vManaToDays DAY,
|
||||
vFromDated - INTERVAL vManaFromDays DAY
|
||||
INTO vToDated,
|
||||
vForDeleteDated;
|
||||
|
||||
DELETE FROM vn.clientManaCache
|
||||
WHERE dated <= vForDeleteDated;
|
||||
|
||||
INSERT INTO vn.clientManaCache(clientFk, mana, dated)
|
||||
SELECT
|
||||
Id_Cliente,
|
||||
SUM(mana),
|
||||
vToDated
|
||||
FROM
|
||||
(
|
||||
SELECT a.clientFk Id_Cliente, s.quantity * sc.value as mana
|
||||
FROM vn.ticket t
|
||||
JOIN vn.address a ON a.id = t.addressFk
|
||||
JOIN vn.sale s on s.ticketFk = t.id
|
||||
JOIN vn.saleComponent sc on sc.saleFk = s.id
|
||||
WHERE sc.componentFk IN (vManaAutoId, vManaId, vClaimManaId)
|
||||
AND t.shipped > vFromDated
|
||||
AND date(t.shipped) <= vToDated
|
||||
UNION ALL
|
||||
SELECT clientFk, - amountPaid
|
||||
FROM vn.receipt
|
||||
WHERE bankFk = vManaBankId
|
||||
AND payed > vFromDated
|
||||
AND payed <= vToDated
|
||||
UNION ALL
|
||||
SELECT clientFk, amount
|
||||
FROM vn.greuge
|
||||
WHERE greugeTypeFk = vManaGreugeTypeId
|
||||
AND shipped > vFromDated
|
||||
AND shipped <= vToDated
|
||||
UNION ALL
|
||||
SELECT clientFk, mana
|
||||
FROM vn.clientManaCache
|
||||
WHERE dated = vFromDated
|
||||
) sub
|
||||
GROUP BY Id_Cliente
|
||||
HAVING Id_Cliente;
|
||||
INSERT INTO vn.clientManaCache(clientFk, mana, dated)
|
||||
SELECT Id_Cliente,
|
||||
SUM(mana),
|
||||
vToDated
|
||||
FROM (
|
||||
SELECT a.clientFk Id_Cliente, s.quantity * sc.value mana
|
||||
FROM vn.ticket t
|
||||
JOIN vn.address a ON a.id = t.addressFk
|
||||
JOIN vn.sale s ON s.ticketFk = t.id
|
||||
JOIN vn.saleComponent sc ON sc.saleFk = s.id
|
||||
WHERE sc.componentFk IN (vManaAutoId, vManaId, vClaimManaId)
|
||||
AND t.shipped > vFromDated
|
||||
AND DATE(t.shipped) <= vToDated
|
||||
UNION ALL
|
||||
SELECT clientFk, - amountPaid
|
||||
FROM vn.receipt
|
||||
WHERE bankFk = vManaBankId
|
||||
AND payed > vFromDated
|
||||
AND payed <= vToDated
|
||||
UNION ALL
|
||||
SELECT clientFk, amount
|
||||
FROM vn.greuge
|
||||
WHERE greugeTypeFk = vManaGreugeTypeId
|
||||
AND shipped > vFromDated
|
||||
AND shipped <= vToDated
|
||||
UNION ALL
|
||||
SELECT clientFk, mana
|
||||
FROM vn.clientManaCache
|
||||
WHERE dated = vFromDated
|
||||
) sub
|
||||
GROUP BY Id_Cliente
|
||||
HAVING Id_Cliente;
|
||||
|
||||
SET vFromDated = vToDated;
|
||||
END WHILE;
|
||||
SET vFromDated = vToDated;
|
||||
END WHILE;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
|
|
@ -1,101 +0,0 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`fv_pca`()
|
||||
BEGIN
|
||||
|
||||
DECLARE done INT DEFAULT FALSE;
|
||||
|
||||
DECLARE vTicketFk INT;
|
||||
DECLARE vSaleFk INT;
|
||||
DECLARE vClonTicket INT DEFAULT 0;
|
||||
|
||||
DECLARE cur1 CURSOR FOR
|
||||
SELECT s.ticketFk, s.id
|
||||
FROM vn.sale s
|
||||
JOIN vn.ticket t ON t.id = s.ticketFk
|
||||
JOIN vn.item i ON i.id = s.itemFk
|
||||
JOIN vn.itemType it ON it.id = i.typeFk
|
||||
WHERE t.shipped BETWEEN '2020-10-18' AND '2020-10-31'
|
||||
AND it.code IN ('ANT','ANS','ORQ','TRO')
|
||||
and t.warehouseFk = 1;
|
||||
|
||||
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
|
||||
|
||||
OPEN cur1;
|
||||
|
||||
FETCH cur1 INTO vTicketFk, vSaleFk;
|
||||
|
||||
WHILE done = 0 DO
|
||||
|
||||
SELECT t.id INTO vClonTicket
|
||||
FROM vn.ticket t
|
||||
JOIN (SELECT addressFk, shipped FROM vn.ticket WHERE id = vTicketFk) sub USING(addressFk, shipped)
|
||||
WHERE t.warehouseFk = 44
|
||||
LIMIT 1;
|
||||
|
||||
SELECT vTicketFk, vClonTicket;
|
||||
|
||||
IF vClonTicket = 0 THEN
|
||||
|
||||
INSERT INTO ticket (
|
||||
clientFk,
|
||||
shipped,
|
||||
addressFk,
|
||||
agencyModeFk,
|
||||
nickname,
|
||||
warehouseFk,
|
||||
companyFk,
|
||||
landed,
|
||||
zoneFk,
|
||||
zonePrice,
|
||||
zoneBonus,
|
||||
routeFk
|
||||
)
|
||||
SELECT
|
||||
clientFk,
|
||||
shipped,
|
||||
addressFk,
|
||||
agencyModeFk,
|
||||
nickname,
|
||||
44,
|
||||
companyFk,
|
||||
landed,
|
||||
zoneFk,
|
||||
zonePrice,
|
||||
zoneBonus,
|
||||
routeFk
|
||||
|
||||
FROM ticket
|
||||
WHERE id = vTicketFk;
|
||||
|
||||
SET vClonTicket = LAST_INSERT_ID();
|
||||
|
||||
SELECT 'lstID', vClonTicket;
|
||||
/*
|
||||
INSERT INTO ticketObservation(ticketFk, observationTypeFk, description)
|
||||
SELECT vTicketFk, ao.observationTypeFk, ao.description
|
||||
FROM addressObservation ao
|
||||
JOIN ticket t ON t.addressFk = ao.addressFk
|
||||
WHERE t.id = vClonTicket;
|
||||
*/
|
||||
INSERT INTO ticketLog
|
||||
SET originFk = vTicketFk, userFk = account.myUser_getId(), `action` = 'insert',
|
||||
description = CONCAT('Ha creado el ticket:', ' ', vClonTicket, ' clonando el ', vTicketFk);
|
||||
|
||||
END IF;
|
||||
|
||||
UPDATE vn.sale
|
||||
SET ticketFk = vClonTicket
|
||||
WHERE id = vSaleFk;
|
||||
|
||||
SET vClonTicket = 0;
|
||||
|
||||
SET done = 0;
|
||||
FETCH cur1 INTO vTicketFk, vSaleFk;
|
||||
|
||||
END WHILE;
|
||||
|
||||
CLOSE cur1;
|
||||
|
||||
|
||||
END$$
|
||||
DELIMITER ;
|
Loading…
Reference in New Issue