refs #6498 procRefactor6 #2134

Merged
ivanm merged 8 commits from 6499-procRefactor6 into dev 2024-03-21 11:03:33 +00:00
2 changed files with 23 additions and 26 deletions
Showing only changes of commit 7947d6644e - Show all commits

View File

@ -1,6 +1,9 @@
DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`absoluteInventoryHistory`(
vItemFk INT, vWarehouse INT, vDate DATETIME)
vItemFk INT,

Esto separalo, tipo:

   vItemFk INT,
   vWarehouse INT,
   vDate DATETIME
)
Esto separalo, tipo: ``` vItemFk INT, vWarehouse INT, vDate DATETIME ) ```
vWarehouseFk INT,
vDate DATETIME
)
BEGIN
/**
* Calcula y proporciona un historial de inventario absoluto
@ -8,13 +11,11 @@ BEGIN
* hasta una fecha determinada.
guillermo marked this conversation as resolved
Review

Cambiar nombre de variable a vWarehouseFk y comentario a Id de almacén

Cambiar nombre de variable a vWarehouseFk y comentario a `Id de almacén`
*
* @param vItemFk Id de artículo
* @param vWarehouse Almacén
* @param vWarehouseFk Id de almacén
* @param vDate Fecha
guillermo marked this conversation as resolved
Review
DECLARE vToday DATETIME DEFAULT util.VN_CURDATE();
``` DECLARE vToday DATETIME DEFAULT util.VN_CURDATE(); ```
*/
DECLARE vCalculatedInventory INT;
guillermo marked this conversation as resolved
Review

Quitar linea

Quitar linea
DECLARE vToday DATETIME;
SET vToday = util.VN_CURDATE();
DECLARE vToday DATETIME DEFAULT util.VN_CURDATE();
CREATE OR REPLACE TEMPORARY TABLE tHistoricalPast
ENGINE = MEMORY
@ -23,7 +24,7 @@ BEGIN
SELECT tr.landed `date`,
b.quantity input,
NULL `output`,
guillermo marked this conversation as resolved
Review
tr.isReceived ok,
``` tr.isReceived ok, ```
(tr.isReceived != FALSE) ok,
tr.isReceived ok,
s.name alias,
e.invoiceNumber reference,
e.id id,
@ -34,7 +35,7 @@ BEGIN
JOIN supplier s ON s.id = e.supplierFk
WHERE tr.landed >= '2001-01-01'

No poner números a pelo en el código, para ello:

AND s.id <> (SELECT supplierFk FROM inventoryConfig)
No poner números a pelo en el código, para ello: ``` AND s.id <> (SELECT supplierFk FROM inventoryConfig) ```
AND s.id <> 4
AND vWarehouse IN (tr.warehouseInFk, 0)
AND vWarehouseFk IN (tr.warehouseInFk, 0)
AND b.itemFk = vItemFk
AND NOT e.isExcludedFromAvailable
AND NOT e.isRaid
@ -52,7 +53,7 @@ BEGIN
JOIN travel tr ON tr.id = e.travelFk
JOIN supplier s ON s.id = e.supplierFk
WHERE tr.shipped >= '2001-01-01'
AND vWarehouse = tr.warehouseOutFk
AND vWarehouseFk = tr.warehouseOutFk
AND s.id <> 4
AND b.itemFk = vItemFk
AND NOT e.isExcludedFromAvailable
@ -61,7 +62,7 @@ BEGIN
SELECT t.shipped `date`,
NULL input,
m.quantity `output`,
(m.isPicked OR t.isLabeled OR t.refFk IS NOT NULL)
``` (m.isPicked OR t.isLabeled OR t.refFk IS NOT NULL) ```
(m.isPicked <> 0 OR t.isLabeled <> 0 OR t.refFk IS NOT NULL) ok,
(m.isPicked OR t.isLabeled OR t.refFk IS NOT NULL) ok,
t.nickname alias,
t.refFk reference,
t.id,
@ -71,11 +72,11 @@ BEGIN
JOIN client c ON c.id = t.clientFk
Review

'2001-01-01' repetido en el código, crear variable con DEFAULT '2001-01-01'

'2001-01-01' repetido en el código, crear variable con DEFAULT '2001-01-01'
WHERE t.shipped >= '2001-01-01'
AND m.itemFk = vItemFk
AND vWarehouse IN (t.warehouseFk , 0)
AND vWarehouseFk IN (t.warehouseFk , 0)
) t1
ORDER BY `date`, input DESC, ok DESC;

sum en mayuscula

sum en mayuscula
SELECT sum(input) - sum(`output`) INTO vCalculatedInventory
SELECT SUM(input) - SUM(`output`) INTO vCalculatedInventory
FROM tHistoricalPast
WHERE `date` < vDate;

View File

@ -29,16 +29,16 @@ BEGIN
c.quantity input,
NULL `output`,
IF(warehouseInFk = 44, 1, warehouseInFk) warehouse,
guillermo marked this conversation as resolved
Review

warehouseInFk warehouse

warehouseInFk warehouse
(tr.isReceived <> FALSE) ok,
tr.isReceived ok,

tr.isReceived

`tr.isReceived`
e.invoiceNumber reference,
e.id id
e.id

e.id

e.id
FROM buy c
JOIN `entry` e ON e.id = c.entryFk
JOIN travel tr ON tr.id = e.travelFk
WHERE tr.landed >= vDateInventory
AND c.itemFk = vItemFk
AND NOT e.isRaid
AND c.quantity <> 0
AND c.quantity

AND c.quantity

`AND c.quantity`
UNION ALL
SELECT tr.shipped `date`,
NULL input,
@ -46,20 +46,20 @@ BEGIN
tr.warehouseOutFk warehouse,
tr.isDelivered ok,
e.invoiceNumber reference,
e.id id
e.id

Quitar alias siempre a partir del segundo select cuando se haga un UNION

Quitar alias siempre a partir del segundo select cuando se haga un UNION
FROM buy c
JOIN `entry` e ON e.id = c.entryFk
JOIN travel tr ON tr.id = e.travelFk
WHERE tr.shipped >= vDateInventory
AND c.itemFk = vItemFk
AND NOT e.isRaid
AND c.quantity <> 0
AND c.quantity

c.quantity

`c.quantity`
UNION ALL
SELECT t.shipped `date`,
NULL input,
m.quantity `output`,
tr.warehouseInFk warehouse,
(m.isPicked <> 0 OR t.isLabeled <> 0 OR t.refFk IS NOT NULL) ok,
(m.isPicked OR t.isLabeled OR t.refFk IS NOT NULL) ok,
t.refFk reference,
t.id id
FROM sale m
@ -70,13 +70,8 @@ BEGIN
JOIN warehouse ON warehouse.id = history.warehouse
ORDER BY `date`, input DESC, ok DESC;
DROP TEMPORARY TABLE IF EXISTS tMultipleHistory2;
DROP TEMPORARY TABLE IF EXISTS tMultipleHistory3;
DROP TEMPORARY TABLE IF EXISTS tMultipleHistory4;
DROP TEMPORARY TABLE IF EXISTS tMultipleHistory5;
DROP TEMPORARY TABLE IF EXISTS tMultipleHistory6;
DROP TEMPORARY TABLE IF EXISTS tMultipleHistory7;
DROP TEMPORARY TABLE IF EXISTS tMultipleHistory8;
DROP TEMPORARY TABLE IF EXISTS tMultipleHistory2, tMultipleHistory3,

Poner todo en un solo drop

Poner todo en un solo drop
tMultipleHistory4, tMultipleHistory5, tMultipleHistory6, tMultipleHistory7, tMultipleHistory8;
CREATE TEMPORARY TABLE tMultipleHistory2 SELECT * FROM tMultipleHistory1 WHERE warehouse = 19;
CREATE TEMPORARY TABLE tMultipleHistory3 SELECT * FROM tMultipleHistory1 WHERE warehouse = 7;
CREATE TEMPORARY TABLE tMultipleHistory4 SELECT * FROM tMultipleHistory1 WHERE warehouse = 60;
@ -156,6 +151,7 @@ BEGIN
input, `output`, ok, reference, id
FROM tMultipleHistory8
) sub
ORDER BY `date`, BOGinput IS NULL, VNHinput IS NULL, ALGinput IS NULL, MADinput IS NULL, MCFinput IS NULL, VILinput IS NULL, BARinput IS NULL;
ORDER BY `date`, BOGinput IS NULL, VNHinput IS NULL, ALGinput IS NULL,
MADinput IS NULL, MCFinput IS NULL, VILinput IS NULL, BARinput IS NULL;
END$$
DELIMITER ;