<?php 

	if (Session::get("tipo_usuario") != "6"){ show_403();}
	if ($_SERVER["REQUEST_METHOD"] == "POST") {
		import_file(DIR_MODELS."Model.class.php");

		$nome = filter_input(INPUT_POST, "nome_produto", FILTER_SANITIZE_STRING);
		$valor = str_replace(",", ".", str_replace(".", "", filter_input(INPUT_POST, "valor_produto", FILTER_SANITIZE_STRING)));
		$desc_empresa = filter_input(INPUT_POST, "desc_empresa_produto", FILTER_SANITIZE_STRING);
		$quantidade_produto = (int) filter_input(INPUT_POST, "quantidade_produto", FILTER_SANITIZE_NUMBER_INT);
		$id_categoria = (int) filter_input(INPUT_POST, "id_categoria", FILTER_SANITIZE_NUMBER_INT);
		$id_subcategoria = (int) filter_input(INPUT_POST, "id_subcategoria", FILTER_SANITIZE_NUMBER_INT);

		$imagens_velhas = filter_var_array($_POST["imagem_velha"], FILTER_SANITIZE_STRING);

		$descricao_produto = filter_input(INPUT_POST, "descricao_produto", FILTER_DEFAULT);
		$observacao_produto = filter_input(INPUT_POST, "observacao_produto", FILTER_DEFAULT);
		$id_produto = encrypt_decode(filter_input(INPUT_POST, "id_produto", FILTER_SANITIZE_STRING));

		$model = new Model();

		if (!empty($nome) and !empty($valor) and !empty($desc_empresa)) {
			if ($_FILES["imagem_produto"]["error"] != UPLOAD_ERR_OK and !is_array($_FILES["imagem_produto"]["error"])) { // Verifica se ouve alteração da imagem do produto
				echo "<script>window.location.href='".show_link("/produtos/?editar=false")."'</script>";
				exit();
			}

			// Faz o upload das imagens do produto
			$imagens = upload_file($_FILES["imagem_produto"], "images/produto/", IMAGE_FILES);

			$nova_imagens = [];
			$c1 = 0;

			for ($i=0; $i < count($imagens_velhas); $i++) {
				if ($imagens_velhas[$i] == "0") {
					$nova_imagens[] = $imagens[$c1];
					$c1++;
				}
				else{
					$nova_imagens[] = $imagens_velhas[$i];
				}
			}

			for ($i = $c1; $i < count($imagens); $i++) {
				$nova_imagens[] = $imagens[$i];
			}

			// Edita o produto 
			$result = $model->update("produto", [
				"nome_produto" => $nome,
				"valor_produto" => $valor,
				"porcentagem_desc_empresa" => $desc_empresa,
				"quantidade_produto" => $quantidade_produto,
				"id_categoria" => $id_categoria,
				"id_subcategoria" => $id_subcategoria,
				"id_estado" => Session::get("id_estado"),
				"id_cidade" => Session::get("id_cidade"),
				"descricao_produto" => $descricao_produto,
				"observacao_produto" => $observacao_produto,
				"imagem_produto" => $nova_imagens[0],
				"status_produto" => "E"
			], [
				"id_produto" => $id_produto
			]);
		
			if ($result > 0) {	
				// Gera o histórico do editar produto
				$last_query = $model->lastQuery();
				$model->insert("historico", [
					"comando_sql" => $last_query,
					"datahora_acao" => date("Y-m-d H:i:s"),
					"id_usuario" => Session::get("id_usuario")
				]);

				$model->delete("imagem_produto", ["id_produto" => $id_produto]);

				for ($i=0; $i < count($nova_imagens); $i++) {
					$result = $model->insert("imagem_produto", [
						"id_produto" => $id_produto,
						"diretorio_imagem_produto" => $nova_imagens[$i]
					]);

					if ($result > 0) {
						$last_query = $model->lastQuery();
						$model->insert("historico", [
							"comando_sql" => $last_query,
							"datahora_acao" => date("Y-m-d H:i:s"),
							"id_usuario" => Session::get("id_usuario")
						]);
					}
					else{
						$model->rollback();
						echo "<script>window.location.href='".show_link("/cadastro-produto/?cadastro=false")."'</script>";
						exit();
					}
				}

				$model->commit();
				echo "<script>window.location.href='".show_link("/produtos/?editar=true")."'</script>";
			}
			else{
				$model->rollback();
				echo "<script>window.location.href='".show_link("/produtos/?editar=false")."'</script>";
			}
		}
		else{
			echo "<script>window.location.href='".show_link("/produtos/?editar=false")."'</script>";
			exit();
		}
	}
	else{
		show_403();
	}

?>