Merge pull request '3513-export_database' (#849) from 3513-export_database into dev
gitea/salix/pipeline/head This commit looks good
Details
gitea/salix/pipeline/head This commit looks good
Details
Reviewed-on: #849 Reviewed-by: Carlos Jimenez Ruiz <carlosjr@verdnatura.es>
This commit is contained in:
commit
983c2d5e8c
|
@ -1,4 +0,0 @@
|
||||||
DELETE FROM `salix`.`ACL` WHERE id = 48;
|
|
||||||
DELETE FROM `salix`.`ACL` WHERE id = 49;
|
|
||||||
DELETE FROM `salix`.`ACL` WHERE id = 50;
|
|
||||||
DELETE FROM `salix`.`ACL` WHERE id = 107;
|
|
|
@ -1,197 +0,0 @@
|
||||||
drop procedure `vn`.`sale_getProblems`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
$$
|
|
||||||
create
|
|
||||||
definer = root@`%` procedure `vn`.`sale_getProblems`(IN vIsTodayRelative tinyint(1))
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Calcula los problemas de cada venta
|
|
||||||
* para un conjunto de tickets.
|
|
||||||
*
|
|
||||||
* @table tmp.sale_getProblems(ticketFk, clientFk, warehouseFk, shipped) Identificadores de los tickets a calcular
|
|
||||||
* @return tmp.sale_problems
|
|
||||||
*/
|
|
||||||
DECLARE vWarehouse INT;
|
|
||||||
DECLARE vDate DATE;
|
|
||||||
DECLARE vAvailableCache INT;
|
|
||||||
DECLARE vDone INT DEFAULT 0;
|
|
||||||
DECLARE vComponentCount INT;
|
|
||||||
|
|
||||||
DECLARE vCursor CURSOR FOR
|
|
||||||
SELECT DISTINCT tt.warehouseFk, IF(vIsTodayRelative, CURDATE(), date(tt.shipped))
|
|
||||||
FROM tmp.sale_getProblems tt
|
|
||||||
WHERE DATE(tt.shipped) BETWEEN CURDATE()
|
|
||||||
AND TIMESTAMPADD(DAY, IF(vIsTodayRelative, 9.9, 1.9), CURDATE());
|
|
||||||
|
|
||||||
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = 1;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.sale_problems;
|
|
||||||
CREATE TEMPORARY TABLE tmp.sale_problems (
|
|
||||||
ticketFk INT(11),
|
|
||||||
saleFk INT(11),
|
|
||||||
isFreezed INTEGER(1) DEFAULT 0,
|
|
||||||
risk DECIMAL(10,2) DEFAULT 0,
|
|
||||||
hasHighRisk TINYINT(1) DEFAULT 0,
|
|
||||||
hasTicketRequest INTEGER(1) DEFAULT 0,
|
|
||||||
isAvailable INTEGER(1) DEFAULT 1,
|
|
||||||
itemShortage VARCHAR(250),
|
|
||||||
isTaxDataChecked INTEGER(1) DEFAULT 1,
|
|
||||||
itemDelay VARCHAR(250),
|
|
||||||
hasComponentLack INTEGER(1),
|
|
||||||
PRIMARY KEY (ticketFk, saleFk)
|
|
||||||
) ENGINE = MEMORY;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.ticket_list;
|
|
||||||
CREATE TEMPORARY TABLE tmp.ticket_list
|
|
||||||
(PRIMARY KEY (ticketFk))
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT tp.ticketFk, c.id clientFk
|
|
||||||
FROM tmp.sale_getProblems tp
|
|
||||||
JOIN vn.client c ON c.id = tp.clientFk;
|
|
||||||
|
|
||||||
SELECT COUNT(*) INTO vComponentCount
|
|
||||||
FROM vn.component c
|
|
||||||
WHERE c.isRequired;
|
|
||||||
|
|
||||||
INSERT INTO tmp.sale_problems(ticketFk, hasComponentLack, saleFk)
|
|
||||||
SELECT tl.ticketFk, (COUNT(DISTINCT s.id) * vComponentCount > COUNT(c.id)), s.id
|
|
||||||
FROM tmp.ticket_list tl
|
|
||||||
JOIN vn.sale s ON s.ticketFk = tl.ticketFk
|
|
||||||
LEFT JOIN vn.saleComponent sc ON sc.saleFk = s.id
|
|
||||||
LEFT JOIN vn.component c ON c.id = sc.componentFk AND c.isRequired
|
|
||||||
JOIN vn.ticket t ON t.id = tl.ticketFk
|
|
||||||
JOIN vn.agencyMode am ON am.id = t.agencyModeFk
|
|
||||||
JOIN vn.deliveryMethod dm ON dm.id = am.deliveryMethodFk
|
|
||||||
WHERE dm.code IN('AGENCY','DELIVERY','PICKUP')
|
|
||||||
GROUP BY tl.ticketFk, s.id;
|
|
||||||
|
|
||||||
INSERT INTO tmp.sale_problems(ticketFk, isFreezed)
|
|
||||||
SELECT DISTINCT tl.ticketFk, TRUE
|
|
||||||
FROM tmp.ticket_list tl
|
|
||||||
JOIN vn.client c ON c.id = tl.clientFk
|
|
||||||
WHERE c.isFreezed
|
|
||||||
ON DUPLICATE KEY UPDATE
|
|
||||||
isFreezed = c.isFreezed;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.clientGetDebt;
|
|
||||||
CREATE TEMPORARY TABLE tmp.clientGetDebt
|
|
||||||
(PRIMARY KEY (clientFk))
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT DISTINCT clientFk
|
|
||||||
FROM tmp.ticket_list;
|
|
||||||
|
|
||||||
CALL clientGetDebt(CURDATE());
|
|
||||||
|
|
||||||
INSERT INTO tmp.sale_problems(ticketFk, risk, hasHighRisk)
|
|
||||||
SELECT DISTINCT tl.ticketFk, r.risk, ((r.risk - cc.riskTolerance) > c.credit + 10)
|
|
||||||
FROM tmp.ticket_list tl
|
|
||||||
JOIN vn.ticket t ON t.id = tl.ticketFk
|
|
||||||
JOIN vn.agencyMode a ON t.agencyModeFk = a.id
|
|
||||||
JOIN tmp.risk r ON r.clientFk = t.clientFk
|
|
||||||
JOIN vn.client c ON c.id = t.clientFk
|
|
||||||
JOIN vn.clientConfig cc
|
|
||||||
WHERE r.risk > c.credit + 10
|
|
||||||
AND a.isRiskFree = FALSE
|
|
||||||
ON DUPLICATE KEY UPDATE
|
|
||||||
risk = r.risk, hasHighRisk = ((r.risk - cc.riskTolerance) > c.credit + 10);
|
|
||||||
|
|
||||||
INSERT INTO tmp.sale_problems(ticketFk, hasTicketRequest)
|
|
||||||
SELECT DISTINCT tl.ticketFk, TRUE
|
|
||||||
FROM tmp.ticket_list tl
|
|
||||||
JOIN vn.ticketRequest tr ON tr.ticketFk = tl.ticketFk
|
|
||||||
WHERE tr.isOK IS NULL
|
|
||||||
ON DUPLICATE KEY UPDATE
|
|
||||||
hasTicketRequest = TRUE;
|
|
||||||
|
|
||||||
OPEN vCursor;
|
|
||||||
|
|
||||||
WHILE NOT vDone
|
|
||||||
DO
|
|
||||||
FETCH vCursor INTO vWarehouse, vDate;
|
|
||||||
|
|
||||||
CALL cache.available_refresh(vAvailableCache, FALSE, vWarehouse, vDate);
|
|
||||||
|
|
||||||
INSERT INTO tmp.sale_problems(ticketFk, isAvailable, saleFk)
|
|
||||||
SELECT tl.ticketFk, FALSE, s.id
|
|
||||||
FROM tmp.ticket_list tl
|
|
||||||
JOIN vn.ticket t ON t.id = tl.ticketFk
|
|
||||||
JOIN vn.sale s ON s.ticketFk = t.id
|
|
||||||
JOIN vn.item i ON i.id = s.itemFk
|
|
||||||
JOIN vn.itemType it on it.id = i.typeFk
|
|
||||||
LEFT JOIN cache.available av ON av.item_id = i.id
|
|
||||||
AND av.calc_id = vAvailableCache
|
|
||||||
WHERE date(t.shipped) = vDate
|
|
||||||
AND it.categoryFk != 6
|
|
||||||
AND IFNULL(av.available, 0) < 0
|
|
||||||
AND s.isPicked = FALSE
|
|
||||||
AND NOT i.generic
|
|
||||||
AND vWarehouse = t.warehouseFk
|
|
||||||
GROUP BY tl.ticketFk
|
|
||||||
ON DUPLICATE KEY UPDATE
|
|
||||||
isAvailable = FALSE, saleFk = VALUES(saleFk);
|
|
||||||
|
|
||||||
INSERT INTO tmp.sale_problems(ticketFk, itemShortage, saleFk)
|
|
||||||
SELECT ticketFk, problem, saleFk
|
|
||||||
FROM (
|
|
||||||
SELECT tl.ticketFk, CONCAT('F: ',GROUP_CONCAT(i.id, ' ', i.longName, ' ')) problem, s.id AS saleFk
|
|
||||||
FROM tmp.ticket_list tl
|
|
||||||
JOIN vn.ticket t ON t.id = tl.ticketFk
|
|
||||||
JOIN vn.sale s ON s.ticketFk = t.id
|
|
||||||
JOIN vn.item i ON i.id = s.itemFk
|
|
||||||
JOIN vn.itemType it on it.id = i.typeFk
|
|
||||||
LEFT JOIN vn.itemShelvingStock_byWarehouse issw ON issw.itemFk = i.id AND issw.warehouseFk = t.warehouseFk
|
|
||||||
LEFT JOIN cache.available av ON av.item_id = i.id AND av.calc_id = vAvailableCache
|
|
||||||
WHERE IFNULL(av.available, 0) < 0
|
|
||||||
AND s.quantity > IFNULL(issw.visible, 0)
|
|
||||||
AND s.quantity > 0
|
|
||||||
AND s.isPicked = FALSE
|
|
||||||
AND s.reserved = FALSE
|
|
||||||
AND it.categoryFk != 6
|
|
||||||
AND IF(vIsTodayRelative, TRUE, date(t.shipped) = vDate)
|
|
||||||
AND NOT i.generic
|
|
||||||
AND CURDATE() = vDate
|
|
||||||
AND t.warehouseFk = vWarehouse
|
|
||||||
GROUP BY tl.ticketFk LIMIT 1) sub
|
|
||||||
ON DUPLICATE KEY UPDATE
|
|
||||||
itemShortage = sub.problem, saleFk = sub.saleFk;
|
|
||||||
|
|
||||||
INSERT INTO tmp.sale_problems(ticketFk, itemDelay, saleFk)
|
|
||||||
SELECT ticketFk, problem, saleFk
|
|
||||||
FROM (
|
|
||||||
SELECT tl.ticketFk, GROUP_CONCAT('I: ',i.id, ' ', i.longName, ' ') problem, s.id AS saleFk
|
|
||||||
FROM tmp.ticket_list tl
|
|
||||||
JOIN vn.ticket t ON t.id = tl.ticketFk
|
|
||||||
JOIN vn.sale s ON s.ticketFk = t.id
|
|
||||||
JOIN vn.item i ON i.id = s.itemFk
|
|
||||||
JOIN vn.itemType it on it.id = i.typeFk
|
|
||||||
LEFT JOIN vn.itemShelvingStock_byWarehouse issw ON issw.itemFk = i.id AND issw.warehouseFk = t.warehouseFk
|
|
||||||
WHERE s.quantity > IFNULL(issw.visible, 0)
|
|
||||||
AND s.quantity > 0
|
|
||||||
AND s.isPicked = FALSE
|
|
||||||
AND s.reserved = FALSE
|
|
||||||
AND it.categoryFk != 6
|
|
||||||
AND IF(vIsTodayRelative, TRUE, date(t.shipped) = vDate)
|
|
||||||
AND NOT i.generic
|
|
||||||
AND CURDATE() = vDate
|
|
||||||
AND t.warehouseFk = vWarehouse
|
|
||||||
GROUP BY tl.ticketFk LIMIT 1) sub
|
|
||||||
ON DUPLICATE KEY UPDATE
|
|
||||||
itemDelay = sub.problem, saleFk = sub.saleFk;
|
|
||||||
END WHILE;
|
|
||||||
|
|
||||||
CLOSE vCursor;
|
|
||||||
|
|
||||||
INSERT INTO tmp.sale_problems(ticketFk, isTaxDataChecked)
|
|
||||||
SELECT DISTINCT tl.ticketFk, FALSE
|
|
||||||
FROM tmp.ticket_list tl
|
|
||||||
JOIN vn.client c ON c.id = tl.clientFk
|
|
||||||
WHERE c.isTaxDataChecked = FALSE
|
|
||||||
ON DUPLICATE KEY UPDATE
|
|
||||||
isTaxDataChecked = FALSE;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE
|
|
||||||
tmp.clientGetDebt,
|
|
||||||
tmp.ticket_list;
|
|
||||||
END;;$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,48 +0,0 @@
|
||||||
drop procedure `vn`.`ticket_getProblems`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
$$
|
|
||||||
create
|
|
||||||
definer = root@`%` procedure `vn`.`ticket_getProblems`(IN vIsTodayRelative tinyint(1))
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Calcula los problemas para un conjunto de tickets.
|
|
||||||
* Agrupados por ticket
|
|
||||||
*
|
|
||||||
* @table tmp.sale_getProblems(ticketFk, clientFk, warehouseFk, shipped) Identificadores de los tickets a calcular
|
|
||||||
* @return tmp.ticket_problems
|
|
||||||
*/
|
|
||||||
CALL sale_getProblems(vIsTodayRelative);
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.ticket_problems;
|
|
||||||
CREATE TEMPORARY TABLE tmp.ticket_problems
|
|
||||||
(INDEX (ticketFk))
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT
|
|
||||||
ticketFk,
|
|
||||||
MAX(p.isFreezed) AS isFreezed,
|
|
||||||
MAX(p.risk) AS risk,
|
|
||||||
MAX(p.hasHighRisk) AS hasHighRisk,
|
|
||||||
MAX(p.hasTicketRequest) AS hasTicketRequest,
|
|
||||||
MIN(p.isAvailable) AS isAvailable,
|
|
||||||
MAX(p.itemShortage) AS itemShortage,
|
|
||||||
MIN(p.isTaxDataChecked) AS isTaxDataChecked,
|
|
||||||
MAX(p.hasComponentLack) AS hasComponentLack,
|
|
||||||
0 AS totalProblems
|
|
||||||
FROM tmp.sale_problems p
|
|
||||||
GROUP BY ticketFk;
|
|
||||||
|
|
||||||
UPDATE tmp.ticket_problems tp
|
|
||||||
SET tp.totalProblems = (
|
|
||||||
(tp.isFreezed) +
|
|
||||||
IF(tp.risk, TRUE, FALSE) +
|
|
||||||
(tp.hasTicketRequest) +
|
|
||||||
(tp.isAvailable = 0) +
|
|
||||||
(tp.isTaxDataChecked = 0) +
|
|
||||||
(tp.hasComponentLack)
|
|
||||||
);
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE
|
|
||||||
tmp.sale_problems;
|
|
||||||
END;;$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1 +0,0 @@
|
||||||
alter table `vn`.`travelThermograph` modify `temperature` enum('COOL', 'WARM') null;
|
|
|
@ -1 +0,0 @@
|
||||||
UPDATE salix.ACL t SET t.principalId = 'employee' WHERE t.id = 269;
|
|
|
@ -1,3 +0,0 @@
|
||||||
ALTER TABLE vn.accountingType ADD maxAmount INT DEFAULT NULL NULL;
|
|
||||||
|
|
||||||
UPDATE vn.accountingType SET maxAmount = 1000 WHERE code = 'cash';
|
|
|
@ -1,4 +0,0 @@
|
||||||
ALTER TABLE vn.payMethod CHANGE ibanRequired ibanRequiredForClients tinyint(3) DEFAULT 0 NULL;
|
|
||||||
ALTER TABLE vn.payMethod ADD ibanRequiredForSuppliers tinyint(3) DEFAULT 0 NULL;
|
|
||||||
ALTER TABLE vn.payMethod CHANGE ibanRequiredForSuppliers ibanRequiredForSuppliers tinyint(3) DEFAULT 0 NULL AFTER ibanRequiredForClients;
|
|
||||||
UPDATE vn.payMethod SET ibanRequiredForSuppliers = 1 WHERE code = 'wireTransfer';
|
|
|
@ -1,2 +0,0 @@
|
||||||
ALTER TABLE vn.silexACL MODIFY module VARCHAR(50) NOT NULL;
|
|
||||||
ALTER TABLE vn.silexACL MODIFY method VARCHAR(50) NOT NULL;
|
|
|
@ -1,48 +0,0 @@
|
||||||
drop procedure `vn`.`ticket_getProblems`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
$$
|
|
||||||
create
|
|
||||||
definer = root@`%` procedure `vn`.`ticket_getProblems`(IN vIsTodayRelative tinyint(1))
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Calcula los problemas para un conjunto de tickets.
|
|
||||||
* Agrupados por ticket
|
|
||||||
*
|
|
||||||
* @table tmp.sale_getProblems(ticketFk, clientFk, warehouseFk, shipped) Identificadores de los tickets a calcular
|
|
||||||
* @return tmp.ticket_problems
|
|
||||||
*/
|
|
||||||
CALL sale_getProblems(vIsTodayRelative);
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.ticket_problems;
|
|
||||||
CREATE TEMPORARY TABLE tmp.ticket_problems
|
|
||||||
(PRIMARY KEY (ticketFk))
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT
|
|
||||||
ticketFk,
|
|
||||||
MAX(p.isFreezed) AS isFreezed,
|
|
||||||
MAX(p.risk) AS risk,
|
|
||||||
MAX(p.hasHighRisk) AS hasHighRisk,
|
|
||||||
MAX(p.hasTicketRequest) AS hasTicketRequest,
|
|
||||||
MIN(p.isAvailable) AS isAvailable,
|
|
||||||
MAX(p.itemShortage) AS itemShortage,
|
|
||||||
MIN(p.isTaxDataChecked) AS isTaxDataChecked,
|
|
||||||
MAX(p.hasComponentLack) AS hasComponentLack,
|
|
||||||
0 AS totalProblems
|
|
||||||
FROM tmp.sale_problems p
|
|
||||||
GROUP BY ticketFk;
|
|
||||||
|
|
||||||
UPDATE tmp.ticket_problems tp
|
|
||||||
SET tp.totalProblems = (
|
|
||||||
(tp.isFreezed) +
|
|
||||||
IF(tp.risk, TRUE, FALSE) +
|
|
||||||
(tp.hasTicketRequest) +
|
|
||||||
(tp.isAvailable = 0) +
|
|
||||||
(tp.isTaxDataChecked = 0) +
|
|
||||||
(tp.hasComponentLack)
|
|
||||||
);
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE
|
|
||||||
tmp.sale_problems;
|
|
||||||
END;;$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,14 +0,0 @@
|
||||||
CREATE TABLE `salix`.`defaultViewConfig`
|
|
||||||
(
|
|
||||||
tableCode VARCHAR(25) not null,
|
|
||||||
columns JSON not null
|
|
||||||
)
|
|
||||||
comment 'The default configuration of columns for views';
|
|
||||||
|
|
||||||
INSERT INTO `salix`.`defaultViewConfig` (tableCode, columns)
|
|
||||||
VALUES
|
|
||||||
('itemsIndex', '{"intrastat":false,"stemMultiplier":false,"landed":false}'),
|
|
||||||
('latestBuys', '{"intrastat":false,"description":false,"density":false,"isActive":false,"freightValue":false,"packageValue":false,"isIgnored":false,"price2":false,"minPrice":true,"ektFk":false,"weight":false,"id":true,"packing":true,"grouping":true,"quantity":true,"size":false,"name":true,"code":true,"origin":true,"family":true,"entryFk":true,"buyingValue":true,"comissionValue":false,"price3":true,"packageFk":true,"packingOut":true}'),
|
|
||||||
('ticketsMonitor', '{"id":false}');
|
|
||||||
|
|
||||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue