<?php
require_once("class/class.bbdd.php");
$bbdd = new BBDD();

//Resposta per defecte (Negativa)
$response["success"] = "0"; 

$listCode = $bbdd->checkParameter('listCode',true);
$listTitl = $bbdd->checkParameter('listTitl');
$ingrName = $bbdd->checkParameter('ingrName');
$ingrQuan = $bbdd->checkParameter('ingrQuan');

//Valida que s'haguin rebut tots els paràmetres
if ($listCode !== 0 && $listTitl !== 0) {
	//Elimina els ingredients que no estan a la llista	
	//Selecciona els ingredients que estan en la llista i que no estan en una recepta
	$ingrList = $bbdd->select("inliIngredient as ingrIden","IngredientsLists","inliList = '".$listCode."' AND NOT inliIngredient IN (SELECT inreIngr FROM IngredientsRecipes)");

	//Elimina tots els ingredients eliminats de la llista que no estan en ninguna recepta
	if(mysqli_num_rows($ingrList)) {
		while($row = mysqli_fetch_object($ingrList)) {
			$ingrIden = $row->ingrIden;
			//Si l'element no esta al nou array d'ingredients passat, l'elimina
			if(!in_array($ingrIden,$_GET['ingrCode'])) $result = $bbdd->delete("Ingredients","ingrIden = '".$ingrIden."'");
		}
	}
	//Elimina la relació entre la llista i els ingredients borrats que es troben en una recepta
	$ingrList = $bbdd->select("inliIngredient as ingrIden","IngredientsLists","inliList = '".$listCode."'");
	if(mysqli_num_rows($ingrList)) {
		while($row = mysqli_fetch_object($ingrList)) {
			$ingrIden = $row->ingrIden;
			//Si l'element no esta al nou array d'ingredients passat, n'elimina la relació
			if(!in_array($ingrIden,$_GET['ingrCode'])) $result = $bbdd->delete("IngredientsLists","inliIngredient = '".$ingrIden."'");
		}
	}
	
	//Ingredients
	ksort($_GET['ingrCode']);
	ksort($_GET['ingrName']);
	ksort($_GET['ingrQuan']);
	foreach($_GET['ingrCode'] as $key => $ingr) {	
		if(!empty($ingr) != 0) {
			//Actualitza l'ingredient
			if(!empty($_GET['ingrName'][$key])) $result = $bbdd->update("Ingredients","ingrName = '".$_GET['ingrName'][$key]."'","ingrIden = '".$ingr."'");
			$result = $bbdd->update("IngredientsLists","inliQuantity = '".$_GET['ingrQuan'][$key]."'","inliIngredient = '".$ingr."'");
		} else {
			//Inserta un nou ingredient si el nom esta ompert
			if(!empty($_GET['ingrName'][$key])) {
				$ingrCode = $bbdd->insertID("Ingredients","ingrName","'".$_GET['ingrName'][$key]."'");
				$results = $bbdd->insert("IngredientsLists", "inliList,inliIngredient,inliQuantity", "'".$listCode."','".$ingrCode."','".$_GET['ingrQuan'][$key]."'");	
			}
		}
	}
	
	//Actualitza el títol de la llista
	$result = $bbdd->update("Lists","listTitle = '".$listTitl."'","listIden = '".$listCode."'");
	
	//Resposta: Positiva
	$response["success"] = "1"; 
	$response["message"] = "S'ha guardat la llista correctament.";	
		
} else {	
	//Resposta: Falten paràmetres 
	$response["message"] = "No s'han especificat tots els paràmetres.";	
}

//Retorna els resultats en Json 
echo json_encode($response,JSON_UNESCAPED_UNICODE);
?>