salix/db/routines/vn/procedures/salePreparingList.sql

47 lines
1.5 KiB
SQL

DELIMITER $$
CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`salePreparingList`(IN vTicketFk BIGINT)
BEGIN
/**
* Devuelve un listado con las lineas de vn.sale y los distintos estados de prepacion
*
* @param vTicketFk Identificador de vn.ticket
*/
CALL cache.last_buy_refresh(FALSE);
SELECT t.clientFk,
t.shipped,
a.nickname,
s.ticketFk,
s.itemFk,
s.quantity,
s.concept,
s.reserved,
s.id saleFk,
i.size,
i.inkFk,
i.stems,
i.image,
i.subName,
b.`grouping`,
IF(stPrevious.saleFk,TRUE,FALSE) as isPreviousSelected,
stPrevious.isChecked as isPrevious,
stPrepared.isChecked as isPrepared,
stControled.isChecked as isControled,
ib.code as barcode,
(MAX(sgd.id) IS NOT NULL) AS hasSaleGroupDetail
FROM vn.ticket t
JOIN vn.address a ON a.id = t.addressFk
JOIN vn.sale s ON s.ticketFk = t.id
JOIN vn.item i ON i.id = s.itemFk
LEFT JOIN cache.last_buy lb ON lb.item_id = i.id AND lb.warehouse_id = t.warehouseFk
LEFT JOIN vn.buy b ON b.id = lb.buy_id
LEFT JOIN vn.saleTracking stPrevious ON stPrevious.saleFk = s.id AND stPrevious.stateFk = 26
LEFT JOIN vn.saleTracking stPrepared ON stPrepared.saleFk = s.id AND stPrepared.stateFk = 14
LEFT JOIN vn.saleTracking stControled ON stControled.saleFk = s.id AND stControled.stateFk = 8
LEFT JOIN vn.itemBarcode ib ON ib.itemFk = i.id
LEFT JOIN vn.saleGroupDetail sgd ON sgd.saleFk = s.id
WHERE t.id = vTicketFk
GROUP BY s.id;
END$$
DELIMITER ;