58 lines
1.6 KiB
SQL
58 lines
1.6 KiB
SQL
DELIMITER $$
|
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`sectorCollectionSaleGroup_add`(vSaleGroupFk INT, vSectorCollectionFk INT)
|
|
BEGIN
|
|
/**
|
|
* Inserta un nuevo registro en vn.sectorCollectionSaleGroup
|
|
* Actualiza el usuario en vn.saleGroup y reemplaza los registros de vn.saleTracking
|
|
*
|
|
* @param vSaleGroupFk Identificador de vn.saleGroup
|
|
* @param vSectorCollectionFk Identificador de vn.sectorCollection
|
|
*/
|
|
DECLARE vHasSaleGroup INT;
|
|
DECLARE vHasSectorCollection INT;
|
|
|
|
SELECT COUNT(id) INTO vHasSaleGroup
|
|
FROM saleGroup
|
|
WHERE id = vSaleGroupFk;
|
|
|
|
IF !vHasSaleGroup THEN
|
|
CALL util.throw ("invalid saleGroup");
|
|
END IF;
|
|
|
|
SELECT COUNT(id) INTO vHasSectorCollection
|
|
FROM sectorCollection
|
|
WHERE id = vSectorCollectionFk;
|
|
|
|
IF !vHasSectorCollection THEN
|
|
CALL util.throw ("invalid sectorCollection");
|
|
END IF;
|
|
|
|
REPLACE sectorCollectionSaleGroup
|
|
SET sectorCollectionFk = vSectorCollectionFk,
|
|
saleGroupFk = vSaleGroupFk;
|
|
|
|
UPDATE saleGroup sg
|
|
JOIN sectorCollectionSaleGroup scsg ON scsg.saleGroupFk = sg.id
|
|
JOIN sectorCollection sc ON sc.id = scsg.sectorCollectionFk
|
|
SET sg.userFk = sc.userFk
|
|
WHERE sg.id = vSaleGroupFk;
|
|
|
|
INSERT IGNORE saleTracking(
|
|
saleFk,
|
|
isChecked,
|
|
workerFk,
|
|
stateFk
|
|
)
|
|
SELECT sgd.saleFk ,
|
|
FALSE,
|
|
sc.userFk,
|
|
s.id
|
|
FROM saleGroupDetail sgd
|
|
JOIN sectorCollectionSaleGroup scsg
|
|
ON scsg.saleGroupFk = sgd.saleGroupFk
|
|
JOIN sectorCollection sc ON sc.id = scsg.sectorCollectionFk
|
|
JOIN state s ON s.code = 'PREVIOUS_PREPARATION'
|
|
WHERE sgd.saleGroupFk = vSaleGroupFk;
|
|
END$$
|
|
DELIMITER ;
|