refs #6493 refactorizar-procedimientos-vn2008-parte_2 #2235
Labels
No Milestone
No Assignees
3 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: verdnatura/salix#2235
Loading…
Reference in New Issue
No description provided.
Delete Branch "6493-refactorizar-procedimientos-vn2008-parte_2"
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 +21,4 @@
END IF;
CALL item_getStock (vWarehouseLanding, vDated, NULL);
Salto de línea innecesario
@ -0,0 +62,4 @@
CREATE OR REPLACE TEMPORARY TABLE tItemRangeLive
(PRIMARY KEY (itemFk))
ENGINE = MEMORY
SELECT ir.itemFk, TIMESTAMP(TIMESTAMPADD(DAY, it.life, ir.dated), '23:59:59') dated
TIMESTAMPADD substituir por INTERVAL
@ -0,0 +73,4 @@
(INDEX (itemFk,warehouseFk))
ENGINE = MEMORY
SELECT i.itemFk, vWarehouseLanding warehouseFk, i.shipped dated, i.quantity
FROM vn.itemTicketOut i
eliminar esquema vn, no es necesario
@ -0,0 +74,4 @@
ENGINE = MEMORY
SELECT i.itemFk, vWarehouseLanding warehouseFk, i.shipped dated, i.quantity
FROM vn.itemTicketOut i
JOIN tItemRangeLive ir ON ir.itemFK = i.item_id
porque se ha cambiado a item_id?
@ -0,0 +92,4 @@
AND (ir.dated IS NULL OR t.landed <= ir.dated)
UNION ALL
SELECT i.itemFk, vWarehouseLanding, i.shipped, i.quantity
FROM vn.itemEntryOut i
eliminar esquema innecesario
@ -0,0 +58,4 @@
WHERE id = vCompany;
CREATE OR REPLACE TEMPORARY TABLE tCompanyReceiving
SELECT id companyId
companyFk
@ -0,0 +71,4 @@
DELETE ci.*
FROM tCompanyIssuing ci
JOIN company e on e.id = ci.companyId
companyFk
@ -0,0 +86,4 @@
SUM(taxableBase) amount
FROM invoiceIn r
JOIN invoiceInTax ri on ri.invoiceInFk = r.id
JOIN tCompanyReceiving cr on cr.companyId = r.companyFk
companyFk
@ -0,0 +88,4 @@
JOIN invoiceInTax ri on ri.invoiceInFk = r.id
JOIN tCompanyReceiving cr on cr.companyId = r.companyFk
JOIN tCompanyIssuing ci ON ci.companyId = r.supplierFk
WHERE IFNULL(r.bookEntried,IFNULL(r.booked, r.issued)) >= vStartingDate
utilizar en este casi COALESCE
@ -0,0 +90,4 @@
JOIN tCompanyIssuing ci ON ci.companyId = r.supplierFk
WHERE IFNULL(r.bookEntried,IFNULL(r.booked, r.issued)) >= vStartingDate
AND r.isBooked
GROUP BY expenseFk, year, month, ci.companyId, cr.companyId;
companyFk
@ -0,0 +106,4 @@
expenseFk,
SUM(amount)
FROM expenseManual em
JOIN tCompanyReceiving er on em.companyFk = em.companyFk
ON en mayúsculas
el JOIN está mal em.companyFk = em.companyFk enlazará todos los registros
@ -0,0 +205,4 @@
b.', vOneYearAgo, ' = oneYearAgo,
b.', vTwoYearsAgo, ' = twoYearsAgo');
SELECT *, CONCAT('',ifnull(expenseFk,'')) newgasto
funciones en mayúsculas
@ -0,0 +61,4 @@
CREATE OR REPLACE TEMPORARY TABLE tItemRangeLive
(PRIMARY KEY (itemFk))
ENGINE = MEMORY
SELECT ir.itemFk, TIMESTAMP(ir.dated + INTERVAL it.life DAY, '23:59:59') dated
No utilizar hacer uso de TIMESTAMP(ir.dated + INTERVAL it.life DAY, '23:59:59') , tenemos una función que hace eso util.dayEnd
@ -0,0 +53,4 @@
CREATE OR REPLACE TEMPORARY TABLE tmp.balance
SELECT * FROM tmp.nest;
SELECT companyGroupFk INTO vConsolidatedGroup
tabulación
@ -0,0 +5,4 @@
vWarehouseShipment INT)
proc: BEGIN
/**
* Calcular la disponibilidad dependiendo del almacen de origen y destino según la fecha
Sobrepasa los carácteres máximos x linea, a parte que al final va un punto
@ -0,0 +7,4 @@
/**
* Calcular la disponibilidad dependiendo del almacen de origen y destino según la fecha
*
* @param vWarehouseLanding almacén de llegada.
Falta poner un espacio entre vWarehouse y Landing.
Además de que cuando se ponen los params, ninguna descripción del param debe de tener punto (viendo otros procs se puede comprobar)
vWarehouseLanding no se porque quieres el espacio la variable se llama asi, si pongo el espacio en esa también tendía que ponerlo en vWarehouseShipment?
Vale no sorry, queria decir que la primera letra del comentario de la variable debe de estár en mayuscula, así en todos los del PR
@ -0,0 +8,4 @@
* Calcular la disponibilidad dependiendo del almacen de origen y destino según la fecha
*
* @param vWarehouseLanding almacén de llegada.
* @param vDated la fecha para la cual se está calculando la disponibilidad de articulos.
Aquí hay doble espacio, y sobrepasa los carácteres máximos, acortar
@ -0,0 +44,4 @@
AND NOT e.isRaid
GROUP BY c.itemFk;
-- Tabla con el ultimo dia de last_buy para cada producto que hace un replace de la anterior
Sobrepasa los carácteres máximos x linea
@ -0,0 +56,4 @@
LEFT JOIN tItemRange i ON t.itemFk = i.itemFk
WHERE t.warehouseFk = vWarehouseShipment
AND NOT e.isRaid
ON DUPLICATE KEY UPDATE tItemRange.dated = GREATEST(tItemRange.dated, tr.landed);
Sobrepasa los carácteres máximos x linea
@ -0,0 +71,4 @@
CREATE OR REPLACE TEMPORARY TABLE tmp.itemCalc
(INDEX (itemFk,warehouseFk))
ENGINE = MEMORY
SELECT i.itemFk, vWarehouseLanding warehouseFk, i.shipped dated, i.quantity
Sobrepasa los carácteres máximos x linea, tabular
@ -0,0 +7,4 @@
IN vInterGroupSalesIncluded BOOLEAN)
BEGIN
/**
* Crea un balance financiero para una empresa durante un período de tiempo determinado
Sobrepasa los carácteres máximos x linea, a parte que al final va un punto
@ -0,0 +13,4 @@
* @param vEndingMonth Mes de finalización del período
* @param vCompany Identificador de la empresa
* @param vIsConsolidated Indica si se trata de un balance consolidado
* @param vInterGroupSalesIncluded Indica si se incluyen las ventas dentro del grupo
Sobrepasa los caracteres máximos, acortar
@ -0,0 +30,4 @@
SET vTable = util.quoteIdentifier('balanceNestTree');
SET vYear = util.quoteIdentifier(vCurYear);
SET vOneYearAgo = util.quoteIdentifier(vCurYear-1);
SET vTwoYearsAgo = util.quoteIdentifier(vCurYear-2);
En el string donde hay una consulta SQL, linea 38, no poner la coma al principio, sino al final:
SELECT node.id,
CONCAT( REPEA...
A parte de quitar los AS (Menos el del CAST que es necesario).
Cast va en mayuscula.
Cambiar
CONCAT( REPE...
porCONCAT(REPE...
@ -0,0 +76,4 @@
END IF;
-- Se calculan las facturas que intervienen, para luego poder servir el desglose desde aqui
Sobrepasa los caracteres máximos x linea
@ -0,0 +95,4 @@
INSERT INTO tmp.balanceDetail(
receivingId,
issuingId,
year,
Year y month son palabras reservadas, poner entre `
Revisa todo el PR aplicandolo
@ -0,0 +131,4 @@
FROM expense
GROUP BY id) g ON g.id = bnt.expenseFk COLLATE utf8_general_ci
SET b.expenseFk = g.id COLLATE utf8_general_ci
, b.expenseName = g.id COLLATE utf8_general_ci ;
No poner la , al principio, sino al final en la linea anterior
@ -0,0 +208,4 @@
SELECT *, CONCAT('',IFNULL(expenseFk,'')) newgasto
FROM tmp.balance;
DROP TEMPORARY TABLE IF EXISTS tCompanyReceiving;
Utilizar un solo DROP para dropear las 2 tablas.
@ -0,0 +2,4 @@
CREATE OR REPLACE PROCEDURE `vn`.`buy_recalcPricesByEntry`() BEGIN END;
CREATE OR REPLACE PROCEDURE `vn`.`buy_recalcPricesByBuy`() BEGIN END;
GRANT EXECUTE ON PROCEDURE vn.balance_create TO `financialBoss`;
Unificar GRANT EXECUTE ON PROCEDURE vn.balance_create TO
financialBoss
,hrBoss
;Así con los demás grants, solo tiene que haber un GRANT EXECUTE para cada proc
#6493 refactorizar-procedimientos-vn2008-parte_2to refs #6493 refactorizar-procedimientos-vn2008-parte_2@ -0,0 +8,4 @@
* Calcular la disponibilidad dependiendo del almacen
* de origen y destino según la fecha.
*
* @param vWarehouseLanding almacén de llegada
lA primera letra del comentario de la variable debe de estar en mayúscula, así en todos los del PR
@ -0,0 +75,4 @@
(INDEX (itemFk,warehouseFk))
ENGINE = MEMORY
SELECT i.itemFk,
vWarehouseLanding warehouseFk,
Tab
@ -0,0 +85,4 @@
AND i.warehouseFk = vWarehouseLanding
UNION ALL
SELECT b.itemFk,
vWarehouseLanding,
Tab
@ -0,0 +89,4 @@
t.landed,
b.quantity
FROM buy b
JOIN entry e ON b.entryFk = e.id
Tab
@ -0,0 +130,4 @@
-- Añadimos los gastos, para facilitar el formulario
UPDATE tmp.balance b
JOIN balanceNestTree bnt on bnt.id = b.id
JOIN (SELECT id, name
JOIN (
(TAB) SELECT id, name
....
GROUP BY id
) g ON g.id = bnt.expenseFk COLLATE utf8_general_ci
@ -0,0 +164,4 @@
c.Gasto
FROM bs.ventas_contables c
JOIN tCompanyReceiving cr ON cr.companyFk = c.empresa_id
WHERE month BETWEEN ? AND ?
Sobra un espacio
@ -0,0 +203,4 @@
SUM(b2.', vTwoYearsAgo,') twoYearsAgo
FROM tmp.nest b1
JOIN tmp.balance_aux b2 on b2.lft BETWEEN b1.lft and b1.rgt
GROUP BY b1.id)sub ON sub.id = b.id
(Tab) GROUP BY b1.id)
sub ON sub.id = b.id
@ -0,0 +69,4 @@
SELECT id companyFk
FROM supplier p;
IF vInterGroupSalesIncluded = FALSE THEN
NOT
@ -0,0 +71,4 @@
IF vInterGroupSalesIncluded = FALSE THEN
DELETE ci.*
'*' no es necesario
@ -0,0 +131,4 @@
UPDATE tmp.balance b
JOIN balanceNestTree bnt on bnt.id = b.id
JOIN (
SELECT id, name
El id de la tabla expense es PK no tiene sentido hacer subconsulta con el GROUP BY
@ -0,0 +188,4 @@
DELETE
FROM tmp.balance
WHERE lft BETWEEN @grupoLft AND @grupoRgt;
nombre de las variable en inglés si no se retornan
@ -0,0 +25,4 @@
-- Calcula algunos parámetros necesarios.
SET vDatedFrom = TIMESTAMP(vDated, '00:00:00');
SET vDatedTo = TIMESTAMP(TIMESTAMPADD(DAY, 4, vDated), '23:59:59');
no utilizamos TIMESTAMPADD, modificar por INTERVAL