diff --git a/db/routines/vn/procedures/entry_transfer.sql b/db/routines/vn/procedures/entry_transfer.sql index 98ddf3ef5f..c368e1e55f 100644 --- a/db/routines/vn/procedures/entry_transfer.sql +++ b/db/routines/vn/procedures/entry_transfer.sql @@ -18,7 +18,7 @@ BEGIN DECLARE vRef INT; DECLARE vIsReceived INT; DECLARE vAgencyModeFk INT; - DECLARE vNewTravelFk INT; + DECLARE vTomorrow DATETIME DEFAULT util.tomorrow(); DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN @@ -32,24 +32,23 @@ BEGIN START TRANSACTION; -- Hay que crear un nuevo travel, con salida hoy y llegada maƱana y asignar la entrada nueva al nuevo travel. - SELECT warehouseInFk,warehouseOutFk,`ref`,isReceived ,agencyModeFk - INTO vWarehouseInFk,vWarehouseOutFk, vRef,vIsReceived, vAgencyModeFk + SELECT t.warehouseInFk, t.warehouseOutFk, t.`ref`, t.isReceived, t.agencyModeFk + INTO vWarehouseInFk, vWarehouseOutFk, vRef, vIsReceived, vAgencyModeFk FROM travel t JOIN entry e ON e.travelFk = t.id WHERE e.id = vOriginalEntry; - SELECT t.id INTO vNewTravelFk + SELECT id INTO vTravelFk FROM travel t - JOIN entry e ON e.travelFk = t.id - WHERE t.shipped = util.VN_CURDATE() - AND t.landed = util.VN_CURDATE() + INTERVAL 1 DAY + WHERE shipped = util.VN_CURDATE() + AND landed = vTomorrow AND warehouseInFk = vWarehouseInFk AND warehouseOutFk = vWarehouseOutFk AND `ref` = vRef AND isReceived =vIsReceived AND agencyModeFk = vAgencyModeFk; - IF vNewTravelFk IS NULL THEN + IF vTravelFk IS NULL THEN INSERT INTO travel( shipped, landed, @@ -59,7 +58,7 @@ BEGIN isReceived, agencyModeFk) SELECT util.VN_CURDATE(), - util.VN_CURDATE() + INTERVAL 1 DAY, + vTomorrow, t.warehouseInFk, t.warehouseOutFk, t.`ref`, @@ -70,8 +69,6 @@ BEGIN WHERE e.id = vOriginalEntry; SET vTravelFk = LAST_INSERT_ID(); - ELSE - SET vTravelFk = vNewTravelFk; END IF; UPDATE entry @@ -115,6 +112,7 @@ BEGIN JOIN vn.sector s ON s.id = p.sectorFk JOIN vn.buy b ON b.id = ish.buyFk JOIN vn.entry e ON e.id = b.entryFk + JOIN tBuy t ON t.itemFk = ish.itemFk WHERE s.warehouseFk = vWarehouseFk AND sh.parked >= util.VN_CURDATE() GROUP BY ish.itemFk @@ -126,6 +124,7 @@ BEGIN JOIN vn.itemShelvingSale iss ON iss.saleFk = s.id JOIN vn.itemShelving is2 ON is2.id = iss.itemShelvingFk JOIN vn.shelving s2 ON s2.id = is2.shelvingFk + JOIN tBuy t ON t.itemFk = s.itemFk WHERE t.shipped BETWEEN util.VN_CURDATE() AND util.dayend(util.VN_CURDATE()) AND s2.parked >= util.VN_CURDATE() GROUP BY s.itemFk