7658-devToTest_2428 #2663
|
@ -19,9 +19,9 @@ BEGIN
|
||||||
|
|
||||||
WITH observation AS (
|
WITH observation AS (
|
||||||
SELECT tob.ticketFk, tob.description
|
SELECT tob.ticketFk, tob.description
|
||||||
FROM vn.ticketObservation tob
|
FROM ticketObservation tob
|
||||||
JOIN vn.ticketCollection tc ON tc.ticketFk = tob.ticketFk
|
JOIN ticketCollection tc ON tc.ticketFk = tob.ticketFk
|
||||||
LEFT JOIN vn.observationType ot ON ot.id = tob.observationTypeFk
|
LEFT JOIN observationType ot ON ot.id = tob.observationTypeFk
|
||||||
WHERE ot.`code` = 'itemPicker'
|
WHERE ot.`code` = 'itemPicker'
|
||||||
AND tc.collectionFk = vParamFk
|
AND tc.collectionFk = vParamFk
|
||||||
)
|
)
|
||||||
|
@ -32,17 +32,17 @@ BEGIN
|
||||||
w.id salesPersonFk,
|
w.id salesPersonFk,
|
||||||
IFNULL(ob.description,'') observation,
|
IFNULL(ob.description,'') observation,
|
||||||
cc.rgb
|
cc.rgb
|
||||||
FROM vn.ticket t
|
FROM ticket t
|
||||||
LEFT JOIN vn.ticketCollection tc ON t.id = tc.ticketFk
|
LEFT JOIN ticketCollection tc ON t.id = tc.ticketFk
|
||||||
LEFT JOIN vn.collection c2 ON c2.id = tc.collectionFk
|
LEFT JOIN collection c2 ON c2.id = tc.collectionFk
|
||||||
LEFT JOIN vn.collectionColors cc
|
LEFT JOIN collectionColors cc
|
||||||
ON cc.wagon = tc.wagon
|
ON cc.wagon = tc.wagon
|
||||||
AND cc.shelve = tc.`level`
|
AND cc.shelve = tc.`level`
|
||||||
AND cc.trainFk = c2.trainFk
|
AND cc.trainFk = c2.trainFk
|
||||||
LEFT JOIN vn.zone z ON z.id = t.zoneFk
|
LEFT JOIN zone z ON z.id = t.zoneFk
|
||||||
LEFT JOIN vn.agencyMode am ON am.id = z.agencyModeFk
|
LEFT JOIN agencyMode am ON am.id = z.agencyModeFk
|
||||||
LEFT JOIN vn.client c ON c.id = t.clientFk
|
LEFT JOIN client c ON c.id = t.clientFk
|
||||||
LEFT JOIN vn.worker w ON w.id = c.salesPersonFk
|
LEFT JOIN worker w ON w.id = c.salesPersonFk
|
||||||
LEFT JOIN observation ob ON ob.ticketFk = t.id
|
LEFT JOIN observation ob ON ob.ticketFk = t.id
|
||||||
WHERE t.id = vParamFk
|
WHERE t.id = vParamFk
|
||||||
AND t.shipped >= vDated
|
AND t.shipped >= vDated
|
||||||
|
@ -54,17 +54,17 @@ BEGIN
|
||||||
w.id salesPersonFk,
|
w.id salesPersonFk,
|
||||||
ob.description,
|
ob.description,
|
||||||
IF(NOT (vItemPackingTypeFk <=> 'V'), cc.rgb, NULL) `rgb`
|
IF(NOT (vItemPackingTypeFk <=> 'V'), cc.rgb, NULL) `rgb`
|
||||||
FROM vn.ticket t
|
FROM ticket t
|
||||||
JOIN vn.ticketCollection tc ON t.id = tc.ticketFk
|
JOIN ticketCollection tc ON t.id = tc.ticketFk
|
||||||
LEFT JOIN vn.collection c2 ON c2.id = tc.collectionFk
|
LEFT JOIN collection c2 ON c2.id = tc.collectionFk
|
||||||
LEFT JOIN vn.collectionColors cc
|
LEFT JOIN collectionColors cc
|
||||||
ON cc.wagon = tc.wagon
|
ON cc.wagon = tc.wagon
|
||||||
AND cc.shelve = tc.`level`
|
AND cc.shelve = tc.`level`
|
||||||
AND cc.trainFk = c2.trainFk
|
AND cc.trainFk = c2.trainFk
|
||||||
LEFT JOIN vn.zone z ON z.id = t.zoneFk
|
LEFT JOIN zone z ON z.id = t.zoneFk
|
||||||
LEFT JOIN vn.agencyMode am ON am.id = z.agencyModeFk
|
LEFT JOIN agencyMode am ON am.id = z.agencyModeFk
|
||||||
LEFT JOIN vn.client c ON c.id = t.clientFk
|
LEFT JOIN client c ON c.id = t.clientFk
|
||||||
LEFT JOIN vn.worker w ON w.id = c.salesPersonFk
|
LEFT JOIN worker w ON w.id = c.salesPersonFk
|
||||||
LEFT JOIN observation ob ON ob.ticketFk = t.id
|
LEFT JOIN observation ob ON ob.ticketFk = t.id
|
||||||
WHERE tc.collectionFk = vParamFk
|
WHERE tc.collectionFk = vParamFk
|
||||||
UNION ALL
|
UNION ALL
|
||||||
|
@ -75,14 +75,14 @@ BEGIN
|
||||||
c.salesPersonFk,
|
c.salesPersonFk,
|
||||||
ob.description,
|
ob.description,
|
||||||
NULL `rgb`
|
NULL `rgb`
|
||||||
FROM vn.sectorCollection sc
|
FROM sectorCollection sc
|
||||||
JOIN vn.sectorCollectionSaleGroup ss ON ss.sectorCollectionFk = sc.id
|
JOIN sectorCollectionSaleGroup ss ON ss.sectorCollectionFk = sc.id
|
||||||
JOIN vn.saleGroup sg ON sg.id = ss.saleGroupFk
|
JOIN saleGroup sg ON sg.id = ss.saleGroupFk
|
||||||
JOIN vn.ticket t ON t.id = sg.ticketFk
|
JOIN ticket t ON t.id = sg.ticketFk
|
||||||
LEFT JOIN vn.zone z ON z.id = t.zoneFk
|
LEFT JOIN zone z ON z.id = t.zoneFk
|
||||||
LEFT JOIN vn.agencyMode am ON am.id = z.agencyModeFk
|
LEFT JOIN agencyMode am ON am.id = z.agencyModeFk
|
||||||
LEFT JOIN observation ob ON ob.ticketFk = t.id
|
LEFT JOIN observation ob ON ob.ticketFk = t.id
|
||||||
LEFT JOIN vn.client c ON c.id = t.clientFk
|
LEFT JOIN client c ON c.id = t.clientFk
|
||||||
WHERE sc.id = vParamFk
|
WHERE sc.id = vParamFk
|
||||||
AND t.shipped >= vDated;
|
AND t.shipped >= vDated;
|
||||||
END$$
|
END$$
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE
|
||||||
`vn`.`itemShelvingSale_reserveBySectorCollection`(vSectorCollectionFk INT(11))
|
`vn`.`itemShelvingSale_addBySectorCollection`(vSectorCollectionFk INT(11))
|
||||||
BEGIN
|
BEGIN
|
||||||
/**
|
/**
|
||||||
* Reserva cantidades con ubicaciones para el contenido de una preparación previa
|
* Reserva cantidades con ubicaciones para el contenido de una preparación previa
|
||||||
|
@ -8,12 +8,10 @@ BEGIN
|
||||||
*
|
*
|
||||||
* @param vSectorCollectionFk Identificador de sectorCollection
|
* @param vSectorCollectionFk Identificador de sectorCollection
|
||||||
*/
|
*/
|
||||||
DECLARE vHasSales BOOL;
|
DECLARE vDone BOOL DEFAULT FALSE;
|
||||||
|
DECLARE vSaleFk INT;
|
||||||
CREATE OR REPLACE TEMPORARY TABLE tmp.sale
|
DECLARE vSales CURSOR FOR
|
||||||
(INDEX(saleFk))
|
SELECT s.id
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT s.id saleFk, str.workerFk userFK
|
|
||||||
FROM sectorCollectionSaleGroup sc
|
FROM sectorCollectionSaleGroup sc
|
||||||
JOIN saleGroupDetail sg ON sg.saleGroupFk = sc.saleGroupFk
|
JOIN saleGroupDetail sg ON sg.saleGroupFk = sc.saleGroupFk
|
||||||
JOIN sale s ON sg.saleFk = s.id
|
JOIN sale s ON sg.saleFk = s.id
|
||||||
|
@ -25,13 +23,19 @@ BEGIN
|
||||||
AND str.workerFk = account.myUser_getId()
|
AND str.workerFk = account.myUser_getId()
|
||||||
AND iss.id IS NULL;
|
AND iss.id IS NULL;
|
||||||
|
|
||||||
SELECT COUNT(*)INTO vHasSales
|
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
|
||||||
FROM tmp.sale;
|
|
||||||
|
|
||||||
IF vHasSales THEN
|
OPEN vSales;
|
||||||
CALL itemShelvingSale_reserve();
|
l: LOOP
|
||||||
ELSE
|
SET vDone = FALSE;
|
||||||
CALL util.throw ('There are not sales to reserve');
|
FETCH vSales INTO vSaleFk;
|
||||||
END IF;
|
|
||||||
|
IF vDone THEN
|
||||||
|
LEAVE l;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CALL itemShelvingSale_addBySale(vSaleFk);
|
||||||
|
END LOOP;
|
||||||
|
CLOSE vSales;
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
|
@ -1,94 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`itemShelvingSale_reserve`()
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Reserva cantidades con ubicaciones para un conjunto de sales del mismo
|
|
||||||
* almacen.
|
|
||||||
*
|
|
||||||
* @table tmp.sale(saleFk, userFk)
|
|
||||||
*/
|
|
||||||
DECLARE vCalcFk INT;
|
|
||||||
DECLARE vWarehouseFk INT;
|
|
||||||
DECLARE vCurrentYear INT DEFAULT YEAR(util.VN_NOW());
|
|
||||||
DECLARE vLastPickingOrder INT;
|
|
||||||
|
|
||||||
SELECT t.warehouseFk, MAX(p.pickingOrder)
|
|
||||||
INTO vWarehouseFk, vLastPickingOrder
|
|
||||||
FROM ticket t
|
|
||||||
JOIN sale s ON s.ticketFk = t.id
|
|
||||||
JOIN tmp.sale ts ON ts.saleFk = s.id
|
|
||||||
LEFT JOIN itemShelvingSale iss ON iss.saleFk = ts.saleFk
|
|
||||||
LEFT JOIN itemShelving ish ON ish.id = iss.itemShelvingFk
|
|
||||||
LEFT JOIN shelving sh ON sh.code = ish.shelvingFk
|
|
||||||
LEFT JOIN parking p ON p.id = sh.parkingFk
|
|
||||||
WHERE t.warehouseFk IS NOT NULL;
|
|
||||||
|
|
||||||
IF vWarehouseFk IS NULL THEN
|
|
||||||
CALL util.throw('Warehouse not set');
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL cache.visible_refresh(vCalcFk, FALSE, vWarehouseFk);
|
|
||||||
|
|
||||||
SET @outstanding = 0;
|
|
||||||
SET @oldsaleFk = 0;
|
|
||||||
|
|
||||||
CREATE OR REPLACE TEMPORARY TABLE tSalePlacementQuantity
|
|
||||||
(INDEX(saleFk))
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT saleFk, userFk, quantityToReserve, itemShelvingFk
|
|
||||||
FROM( SELECT saleFk,
|
|
||||||
sub.userFk,
|
|
||||||
itemShelvingFk ,
|
|
||||||
IF(saleFk <> @oldsaleFk, @outstanding := quantity, @outstanding),
|
|
||||||
@qtr := LEAST(@outstanding, available) quantityToReserve,
|
|
||||||
@outStanding := @outStanding - @qtr,
|
|
||||||
@oldsaleFk := saleFk
|
|
||||||
FROM(
|
|
||||||
SELECT ts.saleFk,
|
|
||||||
ts.userFk,
|
|
||||||
s.quantity,
|
|
||||||
ish.id itemShelvingFk,
|
|
||||||
ish.visible - IFNULL(ishr.reservedQuantity, 0) available
|
|
||||||
FROM tmp.sale ts
|
|
||||||
JOIN sale s ON s.id = ts.saleFk
|
|
||||||
JOIN itemShelving ish ON ish.itemFk = s.itemFk
|
|
||||||
LEFT JOIN itemShelvingSale iss ON iss.saleFk = s.id
|
|
||||||
LEFT JOIN (
|
|
||||||
SELECT itemShelvingFk, SUM(quantity) reservedQuantity
|
|
||||||
FROM itemShelvingSale
|
|
||||||
WHERE NOT isPicked
|
|
||||||
GROUP BY itemShelvingFk) ishr ON ishr.itemShelvingFk = ish.id
|
|
||||||
JOIN shelving sh ON sh.code = ish.shelvingFk
|
|
||||||
JOIN parking p ON p.id = sh.parkingFk
|
|
||||||
JOIN sector sc ON sc.id = p.sectorFk
|
|
||||||
JOIN warehouse w ON w.id = sc.warehouseFk
|
|
||||||
JOIN productionConfig pc
|
|
||||||
WHERE w.id = vWarehouseFk
|
|
||||||
AND NOT sc.isHideForPickers
|
|
||||||
AND iss.id IS NULL
|
|
||||||
ORDER BY
|
|
||||||
s.id,
|
|
||||||
p.pickingOrder >= vLastPickingOrder,
|
|
||||||
sh.priority DESC,
|
|
||||||
ish.visible >= s.quantity DESC,
|
|
||||||
s.quantity MOD ish.grouping = 0 DESC,
|
|
||||||
ish.grouping DESC,
|
|
||||||
IF(pc.orderMode = 'Location', p.pickingOrder, ish.created)
|
|
||||||
)sub
|
|
||||||
)sub2
|
|
||||||
WHERE quantityToReserve > 0;
|
|
||||||
|
|
||||||
INSERT INTO itemShelvingSale(
|
|
||||||
itemShelvingFk,
|
|
||||||
saleFk,
|
|
||||||
quantity,
|
|
||||||
userFk)
|
|
||||||
SELECT itemShelvingFk,
|
|
||||||
saleFk,
|
|
||||||
quantityToReserve,
|
|
||||||
IFNULL(userFk, getUser())
|
|
||||||
FROM tSalePlacementQuantity spl;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE tmp.sale;
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,29 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`itemShelvingSale_reserveByCollection`(
|
|
||||||
vCollectionFk INT(11)
|
|
||||||
)
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Reserva cantidades con ubicaciones para el contenido de una colección
|
|
||||||
*
|
|
||||||
* @param vCollectionFk Identificador de collection
|
|
||||||
*/
|
|
||||||
CREATE OR REPLACE TEMPORARY TABLE tmp.sale
|
|
||||||
(INDEX(saleFk))
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT s.id saleFk, NULL userFk
|
|
||||||
FROM ticketCollection tc
|
|
||||||
JOIN sale s ON s.ticketFk = tc.ticketFk
|
|
||||||
LEFT JOIN (
|
|
||||||
SELECT DISTINCT saleFk
|
|
||||||
FROM saleTracking st
|
|
||||||
JOIN state s ON s.id = st.stateFk
|
|
||||||
WHERE st.isChecked
|
|
||||||
AND s.semaphore = 1)st ON st.saleFk = s.id
|
|
||||||
WHERE tc.collectionFk = vCollectionFk
|
|
||||||
AND st.saleFk IS NULL
|
|
||||||
AND NOT s.isPicked;
|
|
||||||
|
|
||||||
CALL itemShelvingSale_reserve();
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,21 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`itemShelvingSale_reserveBySale`(
|
|
||||||
vSelf INT ,
|
|
||||||
vQuantity INT,
|
|
||||||
vUserFk INT
|
|
||||||
)
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Reserva cantida y ubicación para una saleFk
|
|
||||||
*
|
|
||||||
* @param vSelf Identificador de la venta
|
|
||||||
* @param vQuantity Cantidad a reservar
|
|
||||||
* @param vUserFk Id de usuario que realiza la reserva
|
|
||||||
*/
|
|
||||||
CREATE OR REPLACE TEMPORARY TABLE tmp.sale
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT vSelf saleFk, vUserFk userFk;
|
|
||||||
|
|
||||||
CALL itemShelvingSale_reserve();
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
Loading…
Reference in New Issue