DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `spaltamodfjlaboratorios`(IN `imanufacturer` VARCHAR(100))
    NO SQL
begin

declare ExisteLaboratorio  int;
declare Resultado int;

set ExisteLaboratorio = (select idfjlaboratorios from fjlaboratorios where manufacturer = ucase(trim(imanufacturer)));

if (ExisteLaboratorio > 0) then

	set Resultado = (ExisteLaboratorio);

else 

	INSERT INTO fjlaboratorios 

			(manufacturer)

	values

			(ucase(trim(imanufacturer)));

	set ExisteLaboratorio=(select last_insert_id());
	set Resultado = (ExisteLaboratorio);

end if; 


select Resultado;



END$$
DELIMITER ;

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `spfjlanzamientossetpostid`(IN `idlanzamiento` INT, IN `idpost` INT)
    NO SQL
begin
	update fjlanzamientos 
	set postid =idpost  
	where id = idlanzamiento;

END$$
DELIMITER ;

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `spfjinsertarimagen`(IN `inombre` VARCHAR(255), IN `iidentificador` VARCHAR(250), IN `ipath` VARCHAR(200), IN `iposicion` VARCHAR(100), IN `itipo` VARCHAR(100), IN `iorden` INT, IN `ifecha_alt` DATE)
    NO SQL
BEGIN
	declare Resultado int;
	INSERT INTO fjimagenes
(nombre, identificador, `path`, posicion, tipo, orden, fecha_alt)
VALUES(inombre, iidentificador, ipath, iposicion, itipo, iorden, ifecha_alt);

set Resultado=(select last_insert_id());
select Resultado;
END$$
DELIMITER ;

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `spfjaltalanzamientos`(IN `ititulo` VARCHAR(255), IN `icategorias` VARCHAR(100), IN `icodigo` VARCHAR(255), IN `ibajada` TEXT, IN `idescripcion` TEXT, IN `ivideo` TEXT, IN `ilink` VARCHAR(255), IN `itags` TEXT, IN `inotas_viejas` VARCHAR(50), IN `iidentificador` VARCHAR(100), IN `iestado` VARCHAR(100), IN `ifecha` DATE)
    NO SQL
begin
declare Alta int;
declare ExisteLanzamiento  int;
declare Resultado int;
declare IdentificadortoSet bigint;
declare Existeiden bigint;

set ExisteLanzamiento = (select id from fjlanzamientos where codigo = icodigo);
set Alta = 0;
if (ExisteLanzamiento > 0) then
	set Resultado = (ExisteLanzamiento);
set IdentificadortoSet = 0;
else 
	set Existeiden = 1;
	WHILE (Existeiden >0) DO
		set IdentificadortoSet = (SELECT CAST((RAND()*(9999999999-1135687452+1)+1135687452) as UNSIGNED));
		set Existeiden =(select count(*) from fjlanzamientos where fjlanzamientos.identificador = IdentificadortoSet);	
	
	END WHILE;
	
	INSERT INTO fjlanzamientos
	            (titulo, categorias, codigo, bajada, descripcion, video, link, tags, notas_viejas, identificador, estado, fecha)
	VALUES
	            (ititulo, icategorias, icodigo, ibajada, idescripcion, ivideo, ilink, itags, inotas_viejas, IdentificadortoSet, iestado, ifecha);
		set ExisteLanzamiento=(select last_insert_id());
		set Resultado = (ExisteLanzamiento);
		set Alta = 1;
end if; 
select Resultado, IdentificadortoSet, Alta;
END$$
DELIMITER ;

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `spfjchecklabymarca`(IN `ilaboratario` VARCHAR(255), IN `imarca` VARCHAR(255))
    NO SQL
BEGIN
	declare ExisteLabToImport int;
declare Importar bool;
declare TieneMarcasDefinidas int;
declare MarcaDefinida int;

set Importar = false;
set ExisteLabToImport = (select f2.idfjlaboratorios from fjlaboratoriostoimport f inner join fjlaboratorios f2 on f.idffjlaboratorios = f2.idfjlaboratorios and f2.manufacturer = ilaboratario);


if (ExisteLabToImport is null) then 
	set Importar = FALSE  ;
else 
	
	SET TieneMarcasDefinidas = (select count(*) from fjmarcastoimport f inner  join fjmarcas f2 on f2.idjfmarcas = f.idfjmarcas and f2.idlaboratorio = ExisteLabToImport); 
	IF (TieneMarcasDefinidas = 0) then 
		set Importar = TRUE ;
	else 
		SET MarcaDefinida = (select count(*)  from fjmarcastoimport f inner join fjmarcas f2 on f2.idjfmarcas = f.idfjmarcas and f2.idlaboratorio = ExisteLabToImport and f2.brand = imarca);
		IF (MarcaDefinida >= 1) THEN 
			set Importar = TRUE ;
		ELSE
			set Importar = FALSE  ;
		END IF;
	end if; 
	
end if;

select Importar;
END$$
DELIMITER ;

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `spaltamodjfcategorias`(IN `iid` INT, IN `iparent` VARCHAR(255), IN `icode` VARCHAR(255), IN `iname` VARCHAR(255), IN `ipath` VARCHAR(255))
    NO SQL
begin
declare ExisteCategoria  int;
declare Resultado int; 
set ExisteCategoria = (select idfjcategorias from fjcategorias where id  = iid);
if (ExisteCategoria  > 0) then
	UPDATE fjcategorias
		SET 
      parent  = iparent, 
      code = icode, 
      catname = iname, 
      catpath = ipath 
	  WHERE idfjcategorias=ExisteCategoria;
else
	INSERT INTO fjcategorias 
		(id, parent, code, catname, catpath)
	VALUES
    (iid, iparent,icode, iname,ipath);
	set ExisteCategoria = (select last_insert_id());
end if; 
set Resultado = ExisteCategoria;
select Resultado;
end$$
DELIMITER ;

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `spaltamodfjmarcas`(IN `iid` INT, IN `ibrand` VARCHAR(255), IN `ilogo` VARCHAR(255), IN `icode` VARCHAR(255), IN `ilaboratorio` INT)
    NO SQL
begin
declare ExisteMarca  int;
set ExisteMarca = (select idjfmarcas from fjmarcas where id  = iid);
if (ExisteMarca  > 0) then
	UPDATE fjmarcas
		SET 
		brand = ibrand,
		logo = ilogo,
		code = icode,
		idlaboratorio = ilaboratorio 
	WHERE idjfmarcas=ExisteMarca;
else
	INSERT INTO fjmarcas 
		(id, brand, logo, code, idlaboratorio)
	VALUES(iid, ibrand,ilogo, icode,idlaboratorio);
	set ExisteMarca = (select last_insert_id());
end if; 
select ExisteMarca;
end$$
DELIMITER ;