92 lines
2.4 KiB
MySQL
92 lines
2.4 KiB
MySQL
|
DELIMITER $$
|
||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`historico_absoluto`(IN idART INT, IN wh INT, IN datfecha DATETIME)
|
||
|
BEGIN
|
||
|
|
||
|
DECLARE inv_calculado INT;
|
||
|
DECLARE inv INT;
|
||
|
DECLARE today DATETIME;
|
||
|
DECLARE fecha_inv DATETIME;
|
||
|
|
||
|
SET today = util.VN_CURDATE();
|
||
|
|
||
|
CREATE OR REPLACE TEMPORARY TABLE historico_pasado
|
||
|
SELECT *
|
||
|
FROM (
|
||
|
SELECT TR.landing Fecha,
|
||
|
C.Cantidad Entrada,
|
||
|
NULL Salida,
|
||
|
(TR.received != FALSE) OK,
|
||
|
P.Proveedor Alias,
|
||
|
E.Referencia Referencia,
|
||
|
E.Id_Entrada id,
|
||
|
TR.delivered F5
|
||
|
FROM Compres C -- mirar perque no entra en received
|
||
|
INNER JOIN Entradas E USING (Id_Entrada)
|
||
|
INNER JOIN travel TR ON TR.id = E.travel_id
|
||
|
INNER JOIN Proveedores P USING (Id_Proveedor)
|
||
|
WHERE TR.landing >= '2001-01-01'
|
||
|
AND Id_proveedor <> 4
|
||
|
AND wh IN (TR.warehouse_id , 0)
|
||
|
AND C.Id_Article = idART
|
||
|
AND E.Inventario = 0
|
||
|
AND E.Redada = 0
|
||
|
UNION ALL
|
||
|
SELECT TR.shipment Fecha,
|
||
|
NULL Entrada,
|
||
|
C.Cantidad Salida,
|
||
|
TR.delivered OK,
|
||
|
P.Proveedor Alias,
|
||
|
E.Referencia Referencia,
|
||
|
E.Id_Entrada id,
|
||
|
TR.delivered F5
|
||
|
FROM Compres C
|
||
|
INNER JOIN Entradas E USING (Id_Entrada)
|
||
|
INNER JOIN travel TR ON TR.id = E.travel_id
|
||
|
INNER JOIN Proveedores P USING (Id_Proveedor)
|
||
|
WHERE TR.shipment >= '2001-01-01'
|
||
|
AND wh = TR.warehouse_id_out
|
||
|
AND Id_Proveedor <> 4
|
||
|
AND C.Id_Article = idART
|
||
|
AND E.Inventario = 0
|
||
|
AND E.Redada = 0
|
||
|
UNION ALL
|
||
|
SELECT T.Fecha Fecha,
|
||
|
NULL Entrada,
|
||
|
M.Cantidad Salida,
|
||
|
(M.OK <> 0 OR T.Etiquetasemitidas <> 0 OR T.Factura IS NOT NULL) OK,
|
||
|
T.Alias Alias,
|
||
|
T.Factura Referencia,
|
||
|
T.Id_Ticket,
|
||
|
T.PedidoImpreso
|
||
|
FROM Movimientos M
|
||
|
INNER JOIN Tickets T USING (Id_Ticket)
|
||
|
JOIN Clientes C ON C.Id_Cliente = T.Id_Cliente
|
||
|
WHERE T.Fecha >= '2001-01-01'
|
||
|
AND M.Id_Article = idART
|
||
|
AND wh IN (T.warehouse_id , 0)
|
||
|
) t1
|
||
|
ORDER BY Fecha, Entrada DESC, OK DESC;
|
||
|
|
||
|
SELECT sum(Entrada) - sum(Salida) INTO inv_calculado
|
||
|
FROM historico_pasado
|
||
|
WHERE Fecha < datfecha;
|
||
|
|
||
|
SELECT p1.*, NULL v_virtual
|
||
|
FROM(
|
||
|
SELECT datfecha Fecha,
|
||
|
inv_calculado Entrada,
|
||
|
NULL Salida,
|
||
|
1 OK,
|
||
|
'Inventario calculado' Alias,
|
||
|
'' Referencia, 0 id,
|
||
|
1 F5
|
||
|
UNION ALL
|
||
|
SELECT *
|
||
|
FROM historico_pasado
|
||
|
WHERE Fecha >= datfecha
|
||
|
) p1;
|
||
|
|
||
|
DROP TEMPORARY TABLE historico_pasado;
|
||
|
END$$
|
||
|
DELIMITER ;
|