7863-devToTest_2434 #2852
|
@ -123,14 +123,14 @@ BEGIN
|
|||
LEAVE lDates;
|
||||
END IF;
|
||||
|
||||
-- Busca un ticket existente que coincida con los parametros
|
||||
-- Busca un ticket libre disponible
|
||||
WITH tPrevia AS (
|
||||
SELECT DISTINCT s.ticketFk
|
||||
FROM vn.sale s
|
||||
JOIN vn.saleGroupDetail sgd ON sgd.saleFk = s.id
|
||||
JOIN vn.ticket t ON t.id = s.ticketFk
|
||||
WHERE t.shipped BETWEEN vShipment AND util.dayend(vShipment)
|
||||
)
|
||||
),
|
||||
SELECT t.id INTO vTicketFk
|
||||
FROM vn.ticket t
|
||||
JOIN vn.alertLevel al ON al.code = 'FREE'
|
||||
|
@ -146,6 +146,37 @@ BEGIN
|
|||
AND (tls.alertLevel IS NULL OR tls.alertLevel = al.id)
|
||||
LIMIT 1;
|
||||
|
||||
-- Comprobamos si hay un ticket de previa disponible
|
||||
IF vTicketFk IS NULL THEN
|
||||
WITH tItemPackingTypeOrder AS (
|
||||
SELECT GROUP_CONCAT(DISTINCT i.itemPackingTypeFk) distinctItemPackingTypes,
|
||||
o.address_id
|
||||
FROM vn.item i
|
||||
JOIN orderRow oro ON oro.itemFk = i.id
|
||||
JOIN `order` o ON o.id = oro.orderFk
|
||||
WHERE oro.orderFk = vSelf
|
||||
),
|
||||
tItemPackingTypeTicket AS (
|
||||
SELECT t.id,
|
||||
GROUP_CONCAT(DISTINCT i.itemPackingTypeFk) distinctItemPackingTypes
|
||||
FROM vn.ticket t
|
||||
JOIN vn.alertLevel al ON al.code = 'ON_PREVIOUS'
|
||||
JOIN vn.sale s ON s.ticketFk = t.id
|
||||
JOIN vn.item i ON i.id = s.itemFk
|
||||
JOIN tItemPackingTypeOrder ipto
|
||||
WHERE t.refFk IS NULL
|
||||
AND DATE(t.shipped) = vShipment
|
||||
AND t.warehouseFk = vWarehouseFk
|
||||
AND t.addressFk = ipto.address_id
|
||||
GROUP BY t.id
|
||||
)
|
||||
SELECT iptt.id INTO vTicketFk
|
||||
FROM tItemPackingTypeTicket iptt
|
||||
JOIN tItemPackingTypeOrder ipto
|
||||
WHERE INSTR(iptt.distinctItemPackingTypes, ipto.distinctItemPackingTypes)
|
||||
LIMIT 1
|
||||
END IF;
|
||||
|
||||
-- Crea el ticket en el caso de no existir uno adecuado
|
||||
IF vTicketFk IS NULL THEN
|
||||
SET vShipment = IFNULL(vShipment, util.VN_CURDATE());
|
||||
|
|
Loading…
Reference in New Issue