7213-Pasar-problemas-a-columnas-calculadas #2396
No reviewers
Labels
No Milestone
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: verdnatura/salix#2396
Loading…
Reference in New Issue
No description provided.
Delete Branch "7213-Pasar-problemas-a-columnas-calculadas"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
@ -0,0 +15,4 @@
SELECT (SUM(IFNULL(sv.litros, 0)) < vc.minTicketVolume
OR IFNULL(t.totalWithoutVat, 0) < vc.minTicketValue) INTO vIsTooLittle
FROM ticket t
LEFT JOIN sale s ON s.ticketFk = t.id
la taula sale no es gasta, pots llevarla
@ -0,0 +6,4 @@
/**
* Update the rounding problems for sales lines related to a buy.
*
* @param vSelf Id ticket
si el proc es diu buy_ sSelf no pot ser un ticket
Elimine el proc, no el gastaré
@ -0,0 +11,4 @@
DECLARE vWarehouseFk INT;
DECLARE vDated DATE;
SELECT warehouseFk, DATE(shipped)
si vDated es tipo DATE, et pots ahorrar la funcion DATE(shipped)
@ -0,0 +1,82 @@
DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`client_risk`(
en este proc no has gastat el mateix patró de noms que en la resta de procediments
Este es un proc adicional que actualitza un camp cache de ticket que és el que es gastarà per a calcular el problema del riesgo
@ -0,0 +74,4 @@
UPDATE ticket t
JOIN tTicketRisk tr ON tr.ticketFk = t.id
SET t.risk = tr.amount;
no cal actualizar tb el camp problem?
@ -0,0 +76,4 @@
JOIN tTicketRisk tr ON tr.ticketFk = t.id
SET t.risk = tr.amount;
DROP TEMPORARY TABLE IF EXISTS tTicketRisk;
if exist no es posa
@ -0,0 +16,4 @@
JOIN sale s ON s.ticketFk = t.id
LEFT JOIN saleComponent sc ON sc.saleFk = s.id
WHERE t.shipped >= util.midnight()
AND sc.componentFk = vComponentFk;
es codi repetit, fusional en el de dalt, si li pases vComponentFk fas una cosa y si pases NULL ho mira per a tots.
@ -0,0 +9,4 @@
*/
DECLARE vItemFk INT;
DECLARE vWarehouseFk INT;
DECLARE vDated DATE;
vShipped es mes concret
@ -0,0 +12,4 @@
DECLARE vDated DATE;
DECLARE vQuantity INT;
SELECT s.itemFk, t.warehouseFk, DATE(t.shipped), s.quantity
no cal DATE(
@ -0,0 +12,4 @@
SET s.problem = CONCAT(
IF(ts.hasProblem,
CONCAT(s.problem, ',', vProblemCode),
REPLACE(s.problem, vProblemCode , '')));
explicam el objectiu d'esta linea
Està validat per Juan, de moment no em trobat manera de fer-ho diferent, marca o desmarca un valor de un camp SET
@ -0,0 +4,4 @@
/**
* Update the problems of all tickets that have a pending ticketRequest or no longer have it
*/
DECLARE vHasProblem BOOL;
no es gasta esta variable
@ -0,0 +8,4 @@
* deja de tenerla
* @param vSelf Id del ticket de la petición de compra
*/
DECLARE vHasProblem BOOL;
no es gasta
@ -0,0 +9,4 @@
*/
UPDATE tmp.ticket t
JOIN ticket ti ON ti.id = t.ticketFk
JOIN client c ON c.id = ti.clientFk
si actualices y despues la borres no val per a res, deuries actualizar la taula ticket en este cas ti
@ -0,0 +10,4 @@
UPDATE tmp.ticket t
JOIN ticket ti ON ti.id = t.ticketFk
JOIN client c ON c.id = ti.clientFk
SET t.hasproblem = TRUE
esta condicio deu ser al revés, es un problema quan no te el datos comprovats
@ -0,0 +1,20 @@
DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_getTooLittleProblemConfig`()
db/routines/vn/procedures/ticket_getTooLittleProblemConfig.sql
y
db/routines/vn/procedures/ticket_getTooLittleProblemAll.sql
son igual llevem un?
Gastarem només la de ticket_getTooLittleProblemConfig.sql
@ -0,0 +1,82 @@
DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`client_risk`(
vSelf INT)
ticket_setRisk seria realment lo que fa
@ -0,0 +29,4 @@
), dated AS(
SELECT MIN(DATE(t.dated) - INTERVAL cc.riskScope MONTH) started,
MAX(DATE(t.dated)) ended
FROM ticket t
aci no poses cap filtro?
No de fet el procediment es per a inicialitzar les dades i en cas de emergencia tindre que recalcular-ho tot
@ -0,0 +1,26 @@
DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`sale_getComponentLackProblemComponent`(
realment no es un get..seria mes un sale_setComponentLackProblemComponent
@ -0,0 +1,34 @@
DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`sale_getRoundingProblem`(
set
@ -0,0 +1,18 @@
DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_getRequestProblemAll`()
set
@ -0,0 +11,4 @@
DECLARE vWarehouseFk INT;
DECLARE vDated DATE;
SELECT warehouseFk, DATE(shipped)
sense DATE
@ -0,0 +1,82 @@
DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`client_setRisk`(
el nom deu ser ticket_setRisk perque no s'actualiza client
@ -0,0 +20,4 @@
SET vDone = FALSE;
FETCH cClients INTO vClientFk;
IF vDone THEN LEAVE myLoop; END IF;
CALL client_setRisk(vClientFk);
ticket_setRisk
@ -0,0 +12,4 @@
FROM ticket t
WHERE t.shipped >= util.midnight();
CALL ticket_getFreezeProblem();
ticket_setFreezeProblem
@ -0,0 +1,22 @@
DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_setFreezeProblemByClient`(
lo mateix que en el anterior, pasali el vClientFk, si es null tots sino ixe, i no repetim codi
@ -0,0 +15,4 @@
WHERE t.clientFk = vClientFk
AND t.shipped >= util.midnight();
CALL ticket_getFreezeProblem();
ticket_setFreezeProblem
@ -0,0 +1,22 @@
DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_setRequestProblemByTicket`(
fusionar amb ticket_setRequestProblemAll
, així creem menys procs
@ -0,0 +1,39 @@
DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_setRiskProblemAll`()
ja posats, faria el mateix..borraria tots els all y by client i els faria ticket_setRiskProblem
@ -0,0 +1,18 @@
DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost`
PROCEDURE `vn`.`ticket_setTaxDataCheckedProblem`()
ticket_setProblemTaxDataChecked
@ -0,0 +10,4 @@
UPDATE tmp.ticket t
JOIN ticket ti ON ti.id = t.ticketFk
JOIN client c ON c.id = ti.clientFk
SET ti.hasproblem = TRUE
t.hasproblem = TRUE
@ -0,0 +16,4 @@
FROM ticket t
WHERE t.shipped >= util.midnight()
AND (vSelf IS NULL OR t.id = vSelf);
dos bots de linea
@ -0,0 +1,34 @@
DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_setProblemRounding`(
sols per confirmar, ja hiha un sale_setProblemRounding fa falta 2? ticket i sale?
Sí, es dispara desde sale y desde ticket
@ -0,0 +15,4 @@
FROM ticket t
JOIN client c ON c.id = t.clientFk
WHERE t.shipped >= util.midnight()
AND (c.id = vClientFk OR vClientFk IS NULL);
esta variabla no esta declarada
@ -0,0 +17,4 @@
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)
2 espais