<?php
class Gerar_DAO_excluir
{
	function montarArquivo($_tabela_bd, $nome_classe, $buscar_coluna_primary)
	{
		$buscar_coluna_primary = new Buscar_coluna_primary();
		//$coluna_primary = $buscar_coluna_primary->buscar($_tabela_bd)->getColuna();
		//$nome_coluna_pk = strtoupper(substr($coluna_primary,0,1)).substr($coluna_primary,1);
		$lista_coluna_primary = $buscar_coluna_primary->buscar($_tabela_bd);
		$vars_primaria_buscar = "";
		$where_buscar = "";
		$colunasApagar = "";
		foreach($lista_coluna_primary as $coluna)
		{
			$campoFinal = "";
			if ($coluna->getTipo()=="tabela")
			{
				$nome_coluna_pk_final = strtoupper(substr($coluna->getTipoColunaPrimaria()->getColuna(),0,1)).substr($coluna->getTipoColunaPrimaria()->getColuna(),1);
				$campoFinal = "->get".$nome_coluna_pk_final."()";
			}
			
			$vars_primaria_buscar .= "\$".$coluna->getColuna();
			$where_buscar .= $coluna->getColuna()." = "." :".$coluna->getColuna();
			$nome_coluna_pk = strtoupper(substr($coluna->getColuna(),0,1)).substr($coluna->getColuna(),1);
			$colunasApagar .= "			array_push(\$inputs, array('campo'=>':".$coluna->getColuna()."', 'valor'=>\$".$_tabela_bd->getTabela()."->get".$nome_coluna_pk."()".$campoFinal."));\n";
			if($coluna != $lista_coluna_primary[count($lista_coluna_primary)-1])
			{
				$vars_primaria_buscar .= ",";
				$where_buscar .= " and ";
			}
		}
		
		//$lista_coluna_primary = $buscar_coluna_primary->buscar($vars_primaria_buscar);
		$dao = "";
		$dao .= "	public function excluir(\$".$_tabela_bd->getTabela().")\n";
		$dao .= "	{\n";
		$dao .= "		try\n";
		$dao .= "		{\n";
		$dao .= "			\$sql = \"DELETE FROM ".$_tabela_bd->getTabela()."  WHERE ".$where_buscar." \";\n";
		$dao .= "			\$inputs = array();\n";
		//$dao .= "			array_push(\$inputs, array('campo'=>':".$coluna_primary."', 'valor'=>\$".$_tabela_bd->getTabela()."->get".$nome_coluna_pk."()));\n";			
		$dao .= $colunasApagar;
		$dao .= "			return \$this->_funcoes_bd->executarSql(\$sql,\$inputs);\n";
		$dao .= "		}\n";
		$dao .= "		catch (Exception \$e)\n";
		$dao .= "		{\n";
		$dao .= "			throw new Exception(\$e->getMessage());\n";
		$dao .= "		}\n";
		$dao .= "	}\n";
		return $dao;
		
	}	
}	