salix/db/routines/vn2008/procedures/embalajes_stocks_detalle.sql

80 lines
2.1 KiB
SQL

DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`embalajes_stocks_detalle`(IN idPEOPLE INT, IN idARTICLE INT, IN bolCLIENT BOOLEAN)
BEGIN
IF bolCLIENT THEN
SELECT m.Id_Article
, Article
, IF(Cantidad < 0, - Cantidad, NULL) Entrada
, IF(Cantidad < 0, NULL, Cantidad) Salida
, 'T' Tabla
, t.id Registro
, t.shipped Fecha
, w.name Almacen
, cast(Preu as Decimal(5,2)) Precio
, c.Cliente Proveedor
, abbreviation Empresa
FROM Movimientos m
JOIN Articles a using(Id_Article)
JOIN vn.ticket t ON t.id = m.Id_Ticket
JOIN empresa e ON e.id = t.companyFk
JOIN vn.warehouse w ON w.id = t.warehouseFk
JOIN Consignatarios cs ON cs.Id_Consigna = t.addressFk
JOIN Clientes c ON c.Id_Cliente = cs.Id_Cliente
WHERE cs.Id_Cliente = idPEOPLE
AND m.Id_Article = idARTICLE
AND t.shipped > '2010-01-01';
ELSE
SELECT Id_Article,
Tabla,
Registro,
Fecha,
Article,
w.name Almacen,
Entrada,
Salida,
Proveedor,
cast(Precio as Decimal(5,2)) Precio
FROM
(SELECT Id_Article
, IF(Cantidad > 0, Cantidad, NULL) Entrada
, IF(Cantidad > 0, NULL,- Cantidad) Salida
, 'E' Tabla
, Id_Entrada Registro
, landing Fecha
, tr.warehouse_id
, Costefijo Precio
FROM Compres c
JOIN Entradas e using(Id_Entrada)
JOIN travel tr ON tr.id = travel_id
WHERE Id_Proveedor = idPEOPLE
AND Id_Article = idARTICLE
AND landing >= '2010-01-01'
union all
SELECT Id_Article
, IF(Cantidad < 0, - Cantidad, NULL) Entrada
, IF(Cantidad < 0, NULL, Cantidad) Salida
, 'T'
, Id_Ticket
, Fecha
, t.warehouseFk warehouse_id
, Preu
FROM Movimientos m
JOIN vn.ticket t ON t.id = m.Id_Ticket
JOIN Consignatarios cs ON cs.Id_Consigna = t.addressFk
JOIN proveedores_clientes pc ON pc.Id_Cliente = cs.Id_Cliente
WHERE Id_Proveedor = idPEOPLE
AND Id_Article = idARTICLE
AND t.shipped > '2010-01-01') mov
JOIN Articles a using(Id_Article)
JOIN Proveedores p ON Id_Proveedor = idPEOPLE
JOIN warehouse w ON w.id = mov.warehouse_id;
END IF;
END$$
DELIMITER ;