DROP PROCEDURE aliadasc_web2019.spaltamodfjlaboratorios;

DROP PROCEDURE aliadasc_web2019.spaltamodfjmarcas;

DROP PROCEDURE aliadasc_web2019.spaltamodjfcategorias;

DROP PROCEDURE aliadasc_web2019.spfjaltalanzamientos;

DROP PROCEDURE aliadasc_web2019.spfjcheckcataliadas;

DROP PROCEDURE aliadasc_web2019.spfjchecklabymarca;

DROP PROCEDURE aliadasc_web2019.spfjinsertarimagen;


CREATE DEFINER=`aliadasc_am19`@`localhost` PROCEDURE `aliadasc_web2019`.`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;

CREATE DEFINER=`aliadasc_am19`@`localhost` PROCEDURE `aliadasc_web2019`.`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;

CREATE DEFINER=`aliadasc_am19`@`localhost` PROCEDURE `aliadasc_web2019`.`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;

CREATE DEFINER=`aliadasc_am19`@`localhost` PROCEDURE `aliadasc_web2019`.`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 contenidos_lanzamientos 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 contenidos_lanzamientos where contenidos_lanzamientos.identificador = IdentificadortoSet);	
	
	END WHILE;
	
	INSERT INTO contenidos_lanzamientos
	            (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;

CREATE DEFINER=`aliadasc_am19`@`localhost` PROCEDURE `aliadasc_web2019`.`spfjcheckcataliadas`(
in idcatfj int)
    NO SQL
BEGIN
	declare Resultado int;
set Resultado = (select cc.id  from fjcategorias 
		inner join contenidos_categorias cc on fjcategorias.idcataliadas = cc.id
			where fjcategorias.id = idcatfj);
if isnull(Resultado) then 
	set Resultado = 0;
end if;
select Resultado;

END;

CREATE DEFINER=`aliadasc_am19`@`localhost` PROCEDURE `aliadasc_web2019`.`spfjchecklabymarca`(
in ilaboratario varchar(255),
in imarca varchar(255),
in icategoria varchar(255)
)
    NO SQL
BEGIN
	declare ExisteLabToImport int;
declare Importar bool;
declare TieneMarcasDefinidas int;
declare MarcaDefinida int;
declare Tienecategoria int;

set Importar = false;
#aca validamos si el laboratorio existe para importar
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 #si no trae nada, el laboratorio se ignora y todo lo demas. 
	set Importar = FALSE  ;
else 
#aca buscamos si el laboratorio encontrado tiene marcas puntuales. 
	SET TieneMarcasDefinidas = (select count(*) from fjmarcastoimport f inner  join fjmarcas f2 on f2.idjfmarcas = f.idfjmarcas and f2.idlaboratorio = ExisteLabToImport); 
	IF (TieneMarcasDefinidas = 0) then #si no tiene marcas definidas para el laboratorio, listo, se importa. 
		set Importar = TRUE ;
	else 
	#tiene marcas definidas para el laboratorio.
		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 #encontro la marca para el laboraotrio, ergo, insertamos
		set Importar = true; 
		ELSE #la marca no esta en la lista del laboratorio, por lo que no se importa
			set Importar = FALSE  ;
		END IF;
		
	end if; 
end if;

if (Importar = true) then #si cumple lo anterior, buscamos si hay alguan restriccion de categoria
#aca buscamos para la combinacion lab/mar y categoria 
	set Tienecategoria = (select count(*)  from fjcategoriaslabmarcatoimport f 
		inner join fjlaboratorios f2 on f2.idfjlaboratorios = f.idlaboratorio  and f2.idfjlaboratorios  = ExisteLabToImport	);
	if (Tienecategoria > 0) then ##o sea que encontro laboratorio en las restricciones de lab/marc/cate  
		set Tienecategoria = (select count(*)  from fjcategoriaslabmarcatoimport f 
			inner join fjlaboratorios f2 on f2.idfjlaboratorios = f.idlaboratorio  and f2.idfjlaboratorios  = ExisteLabToImport
			inner join fjmarcas f4 on f.idmarca = f4.idjfmarcas and f4.brand = imarca);
		if (Tienecategoria > 0) then ##o sea que encontro laboratorio y marca en las restricciones de lab/marc/cate
			set Tienecategoria = (select count(*)  from fjcategoriaslabmarcatoimport f 
				inner join fjlaboratorios f2 on f2.idfjlaboratorios = f.idlaboratorio  and f2.idfjlaboratorios  = ExisteLabToImport
				inner join fjmarcas f4 on f.idmarca = f4.idjfmarcas and f4.brand = imarca
				inner join fjcategorias f3 on f3.idfjcategorias =  f.idcategoria 
				where 
					f3.catname =icategoria);
				if (Tienecategoria = 0) then ##o sea que encontro laboratorio y marca y cat en las restricciones de lab/marc/cate
					set Tienecategoria = (select count(*) from fjcategoriaslabmarcatoimport f 
							inner join fjlaboratorios f2  on f.idlaboratorio =f2.idfjlaboratorios
							inner join fjcategorias f4 on f.idcategoria = f4.idfjcategorias 
							where f2.idfjlaboratorios  = ExisteLabToImport
							and f4.catname =icategoria
							and ISNULL(f.idmarca));
					if (Tienecategoria = 0) then 
						set Importar = False;
					end if;
				end if;
		end if;
	end if;

end if;


select Importar;
END;

CREATE DEFINER=`aliadasc_am19`@`localhost` PROCEDURE `aliadasc_web2019`.`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 contenidos_imagenes
(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;
