<?php
include '../config.php';
include '../configuracao/conexao.php';

$date = date('d/m/y');
$datem = date('d/m/y/h/m/s');
$enumvai=$_GET['tabela'].$_SERVER["REMOTE_ADDR"]."-".$datem.time();
/*inicio apagar tabela */
if ($_GET['acao']=='apagatabela'){
	/* verificar tabelas fixas evitando alteração no programa base morfo inicio*/
	/* verificar tabelas fixas evitando alteração no programa base morfo inicio*/
	if (in_array($_GET['tabela'],$tabela_protegidas))
		{
		header("refresh:0;url=index.php?msg=Tabela '".$_GET['tabela']."' Protegida no Arquivo CONFIG PELO ADM");
		}
	else{
			/*verifica se tabela tem conteudo inicio*/
			$stmt = $mysqli->prepare("select count(*) from ".$_GET['tabela']);
						
			$stmt->execute(); // Executa a query preparada.
			$stmt->store_result();
			$stmt->bind_result($contagem);
			$stmt->fetch();
			/*verifica se tabela tem conteudo fim*/
			/*se tabela com conteudo nada faz */
			if ($contagem<>0)
			{
				header("refresh:0;url=index.php?msg=Tabela '".$_GET['tabela']."' Com Registros");
			}
			else
			{
				/* verificar tabelas fixas evitando alteração no programa base morfo fim*/
				$stmt = $mysqli->prepare(" delete from tabela where tabela_nome='".$_GET['tabela']."'");
				$stmt->execute();
				$stmt = $mysqli->prepare("DROP TABLE ".$_GET['tabela']);
				$stmt->execute();
				$stmt = $mysqli->prepare(" delete from campo where campo_tabela='".$_GET['tabela']."'");
		    	$stmt->execute();
	        	header("refresh:0;url=tabela.php?msg=Tabela Nome '".$_GET['tabela']."' Apagada");	
	        }
		}

}
/*fim apagar tabela */

/*inserir tabela inicio*/
if ($_GET['acao']=='inserirtabela')
{
   if (in_array($_GET['tabela'],$nomes_reservados))
		{
		header("refresh:0;url=index.php?msg=Tabela '".$_GET['tabela']."' nao criada nome usa palavra reservada do SQL,PHP,HTML");
		}
	else{
	    /*verifica se nome da nova tabela exista como campo inicio*/
	    $stmt = $mysqli->prepare("select count(*) from campo where campo_nome='".$_GET['tabela']."'");
	    $stmt->execute(); // Executa a query preparada.
	    $stmt->store_result();
	    $stmt->bind_result($contagem);
	    $stmt->fetch();
	    if ($contagem<>0)
	    /*verifica se nome nova tabela exista como campose verdadeiro nada faz retorna para tabela*/
	    {
		  header("refresh:0;url=index.php?msg=Nome Tabela '".$_GET['tabela']."' Em Uso Como Campo");
	    }
     	else
	       {
		$stmt = $mysqli->prepare("select count(*) from tabela where tabela_nome='".$_GET['tabela']."'");
		$stmt->execute(); // Executa a query preparada.
		$stmt->store_result();
		$stmt->bind_result($contagem);
		$stmt->fetch();
			if ($contagem<>0)
			{
				header("refresh:0;url=tabela.php?msg=Nome Tabela '".$_GET['tabela']."' Em Uso");
			}
			else
			{
            	/*inserir na tabela de tabelas*/
            	$stmt = $mysqli->prepare("INSERT INTO  tabela (ativo,enumsistema,data,tabela_nome,tabela_campo_1,tabela_campo_2,tabela_campo_3) values ('S','".bin2hex(random_bytes(254))."','2021-01-01','".$_GET['tabela']."','codigo',
				'ativo','enumsistema')");
				$stmt->execute();
				/*cria tabela criada na tabela de tabelas*/
				$stmt = $mysqli->prepare("CREATE TABLE ".$_GET['tabela']." (
				`codigo` int(11) NOT NULL,
				`ativo` char(1) COLLATE utf8_unicode_ci NOT NULL,
				`enumsistema` varchar(1024) COLLATE utf8_unicode_ci NOT NULL,
				`data` date NOT NULL
				) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;");
				$stmt->execute();
				$stmt = $mysqli->prepare("ALTER TABLE `".$_GET['tabela']."` ADD PRIMARY KEY (`codigo`)");
				$stmt->execute(); // Executa a query preparada.
				$stmt = $mysqli->prepare("ALTER TABLE `".$_GET['tabela']."` MODIFY `codigo` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=0;");
				$stmt->execute(); // Executa a query preparada.
				$stmt = $mysqli->prepare("INSERT INTO campo (ativo,enumsistema,data,campo_nome,campo_tabela,campo_tipo,campo_tipo_n,campo_parametros) values ('S','".bin2hex(random_bytes(254))."','2021-01-01','codigo','".$_GET['tabela']."','int(11)','1','codigo')");
				$stmt->execute();
				$stmt = $mysqli->prepare("INSERT INTO campo (ativo,enumsistema,data,campo_nome,campo_tabela,campo_tipo,campo_tipo_n,campo_parametros) values ('S','".bin2hex(random_bytes(254))."','2021-01-01','ativo','".$_GET['tabela']."','char(1)','0','ativo')");
				$stmt->execute();
				$stmt = $mysqli->prepare("INSERT INTO campo (ativo,enumsistema,data,campo_nome,campo_tabela,campo_tipo,campo_tipo_n,campo_parametros) values ('S','".bin2hex(random_bytes(254))."','2021-01-01','enumsistema','".$_GET['tabela']."','varchar(1024)','0','enumsistema')");
				$stmt->execute();
				$stmt = $mysqli->prepare("INSERT INTO campo (ativo,enumsistema,data,campo_nome,campo_tabela,campo_tipo,campo_tipo_n,campo_parametros) values ('S','".bin2hex(random_bytes(254))."','2021-01-01','data','".$_GET['tabela']."','date','2','data')");
				$stmt->execute();
				header("refresh:0;url=index.php?msg=Tabela '".$_GET['tabela']." 'Criada");
		 	}
			

		}
	}
}
if ($_GET['acao']=='adicionarcampo')
{
	 if (in_array($_GET['nomecampo'],$nomes_reservados))
		{
		header("refresh:0;url=campo.php?msg=Campo '".$_GET['nomecampo']."' nao criado nome usa palavra reservada do SQL,PHP,HTML&tabela=".$_GET['tabela']);
		}
	else{
		
		/*verifica se nome da nova tabela exista como campo inicio*/
		$stmt = $mysqli->prepare("select count(*) from campo where campo_nome='".$_GET['nomecampo']."'");
		$stmt->execute(); // Executa a query preparada.
		$stmt->store_result();
		$stmt->bind_result($contagem);
		$stmt->fetch();
			if ($contagem<>0)
			{
			header("refresh:0;url=campo.php?msg=Nome Campo '".$_GET['nomecampo']."' Em Uso Como Campo&tabela=".$_GET['tabela']);
			}
	        else
	        {
    		$stmt = $mysqli->prepare("select count(*) from tabela where tabela_nome='".$_GET['nomecampo']."'");
			$stmt->execute(); // Executa a query preparada.
			$stmt->store_result();
			$stmt->bind_result($contagem);
			$stmt->fetch();
			//echo "select count(*) from campo where nome_tabela='".$_GET['tabela']."' and nome='".$_GET['nomecampo']."'";
            if ($contagem<>0)
				{
				header("refresh:0;url=campo.php?msg=Nome Campo '".$_GET['nomecampo']."' Em Uso Como Tabela &tabela=".$_GET['tabela']);
				}
			else
			{
			$stmt = $mysqli->prepare("ALTER TABLE ".$_GET['tabela']." ADD ".$_GET['nomecampo']." ".substr($_GET['vlr_filtro'],2));
			$stmt->execute(); // Executa a query preparada.
			$stmt = $mysqli->prepare("INSERT INTO campo (ativo,enumsistema,data,campo_nome,campo_tabela,campo_tipo,campo_tipo_n) values ('S','".$enumvai.bin2hex(random_bytes(254))."','2021-01-01','".$_GET['nomecampo']."','".$_GET['tabela']."','".substr($_GET['vlr_filtro'],2)."','".substr($_GET['vlr_filtro'],0,1)."')");
			$stmt->execute();
			header( "refresh:0; url=campo.php?msg= Campo Nome '".$_GET['nomecampo']."' Criado&tabela=".$_GET['tabela'] );
			}
			}
	        }
	}
//incluir campo	

if ($_GET['acao']=='apagacampo')
{
		//verifica tabelas/campos que nao podem ser apagadas de jeito nehhum 
		if (in_array($_GET['nomecampo'],$campo_protegidos))
   		{	

			header("refresh:0;url=campo.php?msg=Campo '".$_GET['nomecampo']."' Protegido no Arquivo CONFIG PELO ADM&tabela=".$_GET['tabela']);

				   }
		else
		{
			$stmt = $mysqli->prepare("select count(	'".$_GET['nomecampo']."') from ".$_GET['tabela']."   where '".$_GET['nomecampo']."' <>null");
			$stmt->execute(); // Executa a query preparada.
			$stmt->store_result();
			$stmt->bind_result($contagem);
			$stmt->fetch();
				if ($contagem<>0)
				{
					header("refresh:0;url=campo.php?msg=Campo '".$_GET['nomecampo']."' com conteudo &tabela=".$_GET['tabela']);
				}
		        else
				{$stmt = $mysqli->prepare(" delete from campo where campo_tabela='".$_GET['tabela']."' and campo_nome='".$_GET['nomecampo']."'");
			     $stmt->execute();
			     $stmt = $mysqli->prepare("ALTER TABLE ".$_GET['tabela']." DROP COLUMN ".$_GET['nomecampo']);
			     $stmt->execute(); // Executa a query preparada.
			    header( "refresh:0; url=campo.php?msg=Campo Nome '".$_GET['nomecampo']."' Apagado &tabela=".$_GET['tabela'] );

        }
	}
}


if ($_GET['acao'] == "configurar_origem") {
    $stmt = $mysqli->prepare("UPDATE campo SET campo_parametros=?, campo_tabela_origem=?, campo_campo_origem=?, campo_largura=?, campo_descricao=?, campo_pula_linha=? WHERE campo_tabela=? AND campo_nome=?");
    $stmt->bind_param("ssssssss", $_GET['vlr_parametros'], $_GET['vlr_tab_origem'], $_GET['vlr_camp_origem'], $_GET['vlr_largura'], $_GET['vlr_descricao'], $_GET['vlr_pula_linha'], $_GET['tabela'], $_GET['nomecampo']);
    $stmt->execute();
    header("refresh:0;url=campo.php?msg=Configuracoes de Origem Atualizadas&tabela=" . $_GET['tabela']);
    // Redirecionamento...
}








// Adicione este bloco no executa.php
if ($_GET['acao'] == 'configurar_tabela') {
    // Sanitização básica para evitar problemas na query
    $tabela = $_GET['tabela'];
    $tc1 = $_GET['vlr_tc1'];
    $tc2 = $_GET['vlr_tc2'];
    $tc3 = $_GET['vlr_tc3'];

    $stmt = $mysqli->prepare("UPDATE tabela SET tabela_campo_1 = ?, tabela_campo_2 = ?, tabela_campo_3 = ? WHERE tabela_nome = ?");
    $stmt->bind_param("ssss", $tc1, $tc2, $tc3, $tabela);
    $stmt->execute();
    
    header("refresh:0;url=index.php?msg=Parametros da Tabela '$tabela' Atualizados com Sucesso!");
    exit();
}
 // Executa a query preparada.

?>
