DELIMITER $$
CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`saleTracking_new`(	
										vSaleFK INT, 
										vIsChecked BOOLEAN, 
										vOriginalQuantity INT, 
										vWorkerFk INT, 
										vAction VARCHAR(50), 
										vState VARCHAR(50),
										vIsScanned BOOLEAN)
BEGIN
/**
 * Modifica registro de saleTracking
 *
 * @param vSaleFK Identificador del registro a modificar
 * @param vIsChecked Indica si la línea ha sido pulsada
 * @param vOriginalQuantity Cantidad original
 * @param vWorkerFk Identificador del trabajador
 * @param vAction Identificador de la acción realizada
 * @param vState Identificador del estado a modificar
 * @param vIsScanned Identificador si se ha escaneado automáticamente o manual
 */

	REPLACE vn.saleTracking(saleFk, 
							isChecked, 
							originalQuantity, 
							workerFk,  
							stateFk,
							isScanned) 
		SELECT 	vSaleFK,
				vIsChecked,
				vOriginalQuantity,
				IFNULL(vWorkerFk, vn.getUser()),
				s.id,
				vIsScanned
			FROM vn.state s
			WHERE s.code = vState COLLATE utf8_unicode_ci;
END$$
DELIMITER ;