<?php
require_once("Buscar_coluna_primary.php");
class Gerar_controller_arqDAO
{
	function montarArquivo($_tabela_bd, $nome_classe, $funcoes_data, $_lista_carga_tabela)
	{
		$buscar_coluna_primary = new Buscar_coluna_primary();
		//$coluna_primary = $buscar_coluna_primary->buscar($_tabela_bd)->getColuna();
		//$nome_coluna_fk = strtoupper(substr($coluna_primary,0,1)).substr($coluna_primary,1);
		$controller = "<?php\n";
		$controller .= "require_once(\"../../config/config_dir_raiz.php\");\n\$config = new Config();\n";
		$controller .= "require_once(\$config->diretorio_raiz().\"/src/model/bd/".$nome_classe."DAO.php\");\n";
		$controller .= "\$".$_tabela_bd->getTabela()."DAO = new ".$nome_classe."DAO();\n";
		///verificar se possuí um chave estrangeira para incluir o DAO
			$colunas = $_tabela_bd->getLista_colunas();
			$lista_de_classes_incluidas_para_nao_duplicar = array();
			for ($i=0; $i <count($colunas); $i++)
			{	
				$nome_classe_dao = strtoupper(substr($colunas[$i]->getTipoTabela()->getTabela(),0,1)).substr($colunas[$i]->getTipoTabela()->getTabela(),1);
				if ($colunas[$i]->getTipo() == "tabela")
				{
					if (!in_array($nome_classe_dao, $lista_de_classes_incluidas_para_nao_duplicar))
					{	
						$controller .= "require_once(\$config->diretorio_raiz().\"/src/model/bd/".$nome_classe_dao."DAO.php\");\n";
						$controller .= "\$".$colunas[$i]->getTipoTabela()->getTabela()."DAO = new ".$nome_classe_dao."DAO(); \n";
						array_push($lista_de_classes_incluidas_para_nao_duplicar, $nome_classe_dao);
					}	
				}	
			}
			foreach($_lista_carga_tabela as $_carga_tabela)
			{
				$nome_classe_carga = strtoupper(substr($_carga_tabela->getTabelaCarregada()->getTabela(),0,1)).substr($_carga_tabela->getTabelaCarregada()->getTabela(),1);
				$controller .= "require_once(\$config->diretorio_raiz().\"/src/model/bd/".$nome_classe_carga."DAO.php\");\n";
				$controller .= "\$".strtolower($nome_classe_carga)."DAO = new ".$nome_classe_carga."DAO(); \n";
			}
			////
		$lista_coluna_primary = $buscar_coluna_primary->buscar($_tabela_bd);
		$montaIfForm = "";
		$montaGetPrimarias = "";
		$operador = " or ";
		$tabelaDaoDB = new Tabela_bdDAO();
		if ($tabelaDaoDB->verificaSeEstaCarregadoNaTabela($_tabela_bd->getId()) == "1" ) 
		{
			$operador = " and ";
		}
			
		foreach($lista_coluna_primary as $coluna)
		{
			$nome_coluna_fk = strtoupper(substr($coluna->getColuna(),0,1)).substr($coluna->getColuna(),1);
			$nome_coluna_fk_grid = strtoupper(substr($coluna->getColuna(),0,1)).substr($coluna->getColuna(),1);
			$montaIfForm .= " (isset(\$_GET[\"".$coluna->getColuna()."\"]) and \$_GET[\"".$coluna->getColuna()."\"] != \"\")  ";
			$montaGetPrimarias .= "\$_GET[\"".$coluna->getColuna()."\"]";
			if ($coluna != $lista_coluna_primary[count($lista_coluna_primary)-1])
			{
				$montaIfForm .= $operador;
				$montaGetPrimarias .= ",";
			}
		}	
		$controller .= "\$retorno = array();\n";
		$controller .= "if (isset(\$_GET[\"mod\"]) && \$_GET[\"mod\"] == \"form\")\n";
		$controller .= "{\n";
		//$controller .= "	if (isset(\$_GET[\"".$coluna_primary."\"]) and \$_GET[\"".$coluna_primary."\"] != \"\")\n";
		$controller .= "	if (".$montaIfForm.")\n";
		$controller .= "	{\n";
		//$controller .= "		\$".$_tabela_bd->getTabela()." = \$".$_tabela_bd->getTabela()."DAO->buscar".$nome_classe."(\$_GET[\"".$coluna_primary."\"]);\n";
		$controller .= "		\$".$_tabela_bd->getTabela()." = \$".$_tabela_bd->getTabela()."DAO->buscar".$nome_classe."(".$montaGetPrimarias.");\n";
		$controller .= "	}else{\n";
		$controller .= "		\$".$_tabela_bd->getTabela()." = new ".$nome_classe."();\n";
		
		///verificar se possuí um chave estrangeira iniciar objeto
			$colunas = $_tabela_bd->getLista_colunas();
			$lista_de_classes_incluidas_para_nao_duplicar = array();
			for ($i=0; $i <count($colunas); $i++)
			{	
				$nome_classe_dao = strtoupper(substr($colunas[$i]->getTipoTabela()->getTabela(),0,1)).substr($colunas[$i]->getTipoTabela()->getTabela(),1);
				$nome_coluna = strtoupper(substr($colunas[$i]->getColuna(),0,1)).substr($colunas[$i]->getColuna(),1);
				if ($colunas[$i]->getTipo() == "tabela" and $colunas[$i]->getColunaOrigem()->getId() == "")//empty($colunas[$i]->getColunaOrigem()->getId()))
				{	
						$controller .= "		\$".$_tabela_bd->getTabela()."->set".$nome_coluna."(new ".$nome_classe_dao."());\n";	
				}	
			}
			////
		
		$controller .= "	}\n";
		
		///verificar monta lista para conbobox
			$colunas = $_tabela_bd->getLista_colunas();
			$lista_de_classes_incluidas_para_nao_duplicar = array();
			for ($i=0; $i <count($colunas); $i++)
			{	
				$nome_classe_dao = strtoupper(substr($colunas[$i]->getTipoTabela()->getTabela(),0,1)).substr($colunas[$i]->getTipoTabela()->getTabela(),1);
				$nome_coluna = strtoupper(substr($colunas[$i]->getColuna(),0,1)).substr($colunas[$i]->getColuna(),1);
				$nome_coluna_fk = strtoupper(substr($colunas[$i]->getTipoColuna()->getColuna(),0,1)).substr($colunas[$i]->getTipoColuna()->getColuna(),1);
				$nome_tabela_fk = strtoupper(substr($colunas[$i]->getTipoTabela()->getTabela(),0,1)).substr($colunas[$i]->getTipoTabela()->getTabela(),1);
				if ($colunas[$i]->getTipo() == "tabela" and $colunas[$i]->getColunaOrigem()->getId() == "")//empty($colunas[$i]->getColunaOrigem()->getId()) )
				{	
						//$controller .= "	\$".$colunas[$i]->getTipoTabela()->getTabela()." = new ".$nome_tabela_fk."DAO(); \n";
						//echo $colunas[$i]->getMultiRegistros()."<br>";
						if($colunas[$i]->getMultiRegistros() == "0")
						{	
							$controller .= "	\$lista".$nome_coluna." = \$".$colunas[$i]->getTipoTabela()->getTabela()."DAO->listarTodosRegistros(); \n";
						}
						else
						{
							$controller .= "	\$lista".$nome_coluna." = array(); \n";
						}
				}	
			}
			foreach($_lista_carga_tabela as $_carga_tabela)
			{
				$listaColunasCarregada = $_carga_tabela->getTabelaCarregada()->getLista_colunas();
				$colunas = $listaColunasCarregada;
				$lista_coluna_primary_carga  = $buscar_coluna_primary->buscar($_carga_tabela->getTabelaCarregada());
				for ($i=0; $i <count($colunas); $i++)
				{
					$nome_coluna = strtoupper(substr($colunas[$i]->getColuna(),0,1)).substr($colunas[$i]->getColuna(),1);
					if($colunas[$i]->getTipo() == "tabela" and $colunas[$i]->getTipoTabela()->getId() == $_tabela_bd->getId())
					{
						$nome_classe_dao = strtoupper(substr($colunas[$i]->getTipoTabela()->getTabela(),0,1)).substr($colunas[$i]->getTipoTabela()->getTabela(),1);
						$tabela_bdDAO = new Tabela_bdDAO();
						$tabela_estrangeira = $tabela_bdDAO->listarTabela($colunas[$i]->getTabela());
						$nome_classe_tab_estrangeira = strtoupper(substr($tabela_estrangeira->getTabela(),0,1)).substr($tabela_estrangeira->getTabela(),1);
						$controller .= "	\$lista".$_carga_tabela->getTabelaCarregada()->getTabela()." = \$".$_carga_tabela->getTabelaCarregada()->getTabela()."DAO->buscarFiltro(\" where ".$colunas[$i]->getColuna()." = '\".$".$_tabela_bd->getTabela()."->get".$nome_coluna_fk_grid."().\"'\"); \n";
						$funcao_colunas_primaria_carga = strtoupper(substr($lista_coluna_primary_carga[0]->getColuna(),0,1)).substr($lista_coluna_primary_carga[0]->getColuna(),1);
						$controller .= "	\$lista_js_grid_editavel$nome_classe_tab_estrangeira = array();								\n";
						$controller .= "	foreach(\$lista".$_carga_tabela->getTabelaCarregada()->getTabela()." as \$item)			    \n";
						$controller .= "	{													\n";
						$controller .= "		array_push(\$lista_js_grid_editavel$nome_classe_tab_estrangeira, \$item->get".$funcao_colunas_primaria_carga."());	\n";
						$controller .= "	}													\n";
					}
				}	
			}	
			////
			///preenche campos caso informado
				$colunas = $_tabela_bd->getLista_colunas();
				$lista_de_classes_incluidas_para_nao_duplicar = array();
				for ($i=0; $i <count($colunas); $i++)
				{	
					if ($colunas[$i]->getColunaOrigem()->getId() == "")//empty($colunas[$i]->getColunaOrigem()->getId()))
					{	
						$nome_classe_dao = strtoupper(substr($colunas[$i]->getTipoTabela()->getTabela(),0,1)).substr($colunas[$i]->getTipoTabela()->getTabela(),1);
						$nome_coluna = strtoupper(substr($colunas[$i]->getColuna(),0,1)).substr($colunas[$i]->getColuna(),1);
						if ($colunas[$i]->getTipo() == "tabela"  )
						{	$controller .= "	if (isset(\$_GET[\"".$colunas[$i]->getColuna()."\"]) and \$_GET[\"".$colunas[$i]->getColuna()."\"] != \"\")\n";
							$controller .= "	{\n";
							if ($colunas[$i]->getComposta() == "1" and ! $colunas[$i]->getColunaOrigem() instanceof Coluna_db ) //ultimaalteração and $colunas[$i]->getIndice() != "PRIMARY"
							{
								$controller .= "		\$objJson = json_decode(str_replace(\"'\",'\"',\$_GET['".$colunas[$i]->getColuna()."']));\n";
								$enviarFuncao = "";
								foreach($colunas[$i]->getListaColunaComposta() as $colunafkatual)
								{
									$colunaEsrangeiraatual = $colunafkatual->getColunaEstrangeira();
									$ColunaPrimariaAtual =  $colunafkatual->getColunaPrimaria();
									//$nome_coluna = strtoupper(substr($colunaEsrangeiraatual->getColuna(),0,1)).substr($colunaEsrangeiraatual->getColuna(),1);
									$controller .= "		\$".$colunaEsrangeiraatual->getColuna()." = \$objJson->".$ColunaPrimariaAtual->getColuna().";\n";
									$enviarFuncao .= "\$".$colunaEsrangeiraatual->getColuna();
									if ($colunafkatual !=  $colunas[$i]->getListaColunaComposta()[count($colunas[$i]->getListaColunaComposta())-1])
									{
										$enviarFuncao .= ",";
									}
									$nome_coluna_atual = strtoupper(substr($colunaEsrangeiraatual->getColuna(),0,1)).substr($colunaEsrangeiraatual->getColuna(),1);
									$controller .= "		\$".$_tabela_bd->getTabela()."->set".$nome_coluna_atual."(\$".$colunaEsrangeiraatual->getColuna().");\n";
								}
								$controller .= "		\$".$_tabela_bd->getTabela()."->set".$nome_coluna."(\$".$colunas[$i]->getTipoTabela()->getTabela()."DAO->buscar".$nome_classe_dao."(".$enviarFuncao."));\n";
								$controller .= "		\$campo_buscar = \"&".$colunas[$i]->getColuna()."=\".\$_GET[\"".$colunas[$i]->getColuna()."\"]; \n"	;					
								$controller .= "	}\n";
							}
							else
							{	
								$controller .= "		\$".$_tabela_bd->getTabela()."->set".$nome_coluna."(\$".$colunas[$i]->getTipoTabela()->getTabela()."DAO->buscar".$nome_classe_dao."(\$_GET[\"".$colunas[$i]->getColuna()."\"]));\n";
								$controller .= "		\$campo_buscar = \"&".$colunas[$i]->getColuna()."=\".\$_GET[\"".$colunas[$i]->getColuna()."\"]; \n"	;					
								$controller .= "	}\n";	
							}	
						}
					}
					else
					{
						if ($colunas[$i]->getColunaOrigem()->getId() == "" )//empty($colunas[$i]->getColunaOrigem()->getId()))
						{
							$controller .= "	if (isset(\$_GET[\"".$colunas[$i]->getColuna()."\"]) and \$_GET[\"".$colunas[$i]->getColuna()."\"] != \"\")\n";
							$controller .= "	{\n";
							$controller .= "		\$".$_tabela_bd->getTabela()."->set".$nome_coluna."(\$_GET[\"".$colunas[$i]->getColuna()."\"]);\n";
							$controller .= "		\$campo_buscar = \"&".$colunas[$i]->getColuna()."=\".\$_GET[\"".$colunas[$i]->getColuna()."\"]; \n"	;
							$controller .= "	}\n";	
						}
							
							
					}
				}
			////
		$controller .= "	include_once(\$config->diretorio_raiz().\"/src/view/".$_tabela_bd->getTabela()."/Formulario.php\");\n";
		$controller .= "}\n"; 

		$controller .= "elseif (isset(\$_GET[\"mod\"]) && (\$_GET[\"mod\"] == \"salvar\" or \$_GET[\"mod\"] == \"alterar\"))\n";
		$controller .= "{\n";
		$controller .= "	\$".$_tabela_bd->getTabela()." = new ".$nome_classe."();\n";
		$colunas = $_tabela_bd->getLista_colunas();
		
		for ($i=0; $i <count($colunas); $i++)
		{	
			$nome_coluna = strtoupper(substr($colunas[$i]->getColuna(),0,1)).substr($colunas[$i]->getColuna(),1);
			//echo $colunas[$i]->getColunaOrigem();
			if ( $colunas[$i]->getColunaOrigem()->getId() == "")//empty($colunas[$i]->getColunaOrigem()->getId()))
			{	
				switch ($colunas[$i]->getTipo())
				{
					case "TINYINT":
						$controller .= "	if (isset(\$_POST['".$colunas[$i]->getColuna()."']))\n";
						$controller .= "	{\n";
						$controller .= "		\$".$_tabela_bd->getTabela()."->set".$nome_coluna."(\$_POST['".$colunas[$i]->getColuna()."']);\n";
						$controller .= "	}\n";
						$controller .= "	else\n";
						$controller .= "	{\n";
						$controller .= "		\$".$_tabela_bd->getTabela()."->set".$nome_coluna."(\"0\");\n";
						$controller .= "	}\n";
					break;
					case "data":
						
						switch ($colunas[$i]->getIndice())
						{
							case "DATAATUAL":
								$controller .= "	\$date".$nome_coluna." = new DateTime;\n";
								$controller .= "	\$".$_tabela_bd->getTabela()."->set".$nome_coluna."(\$date".$nome_coluna.");\n";
							break;
							case "DATACRIACAO":
								$controller .= "	\$date".$nome_coluna." = new DateTime;\n";
								$controller .= "	\$".$_tabela_bd->getTabela()."->set".$nome_coluna."(\$date".$nome_coluna.");\n";
							break;
							default:
								$controller .= "	if (\$_POST['".$colunas[$i]->getColuna()."'] != \"\")\n";
								$controller .= "	{\n";
								$controller .= "		\$date".$nome_coluna." = DateTime::createFromFormat('".$funcoes_data->converterDataMaskParaDataPHP($colunas[$i]->getMascara())."', \$_POST['".$colunas[$i]->getColuna()."']);\n";
								$controller .= "		\$".$_tabela_bd->getTabela()."->set".$nome_coluna."(\$date".$nome_coluna.");\n";
								$controller .= "	}\n";
						}
						
						
						
					break;
					default:	
						if ($colunas[$i]->getComposta() == "1")
						{
							$controller .= "	\$objJson = json_decode(str_replace(\"'\",'\"',\$_POST['".$colunas[$i]->getColuna()."']));\n";
							foreach($colunas[$i]->getListaColunaComposta() as $colunafkatual)
							{
								$colunaEsrangeiraatual = $colunafkatual->getColunaEstrangeira();
								$ColunaPrimariaAtual =  $colunafkatual->getColunaPrimaria();
								$nome_coluna = strtoupper(substr($colunaEsrangeiraatual->getColuna(),0,1)).substr($colunaEsrangeiraatual->getColuna(),1);
								$controller .= "	\$".$_tabela_bd->getTabela()."->set".$nome_coluna."(\$objJson->".$ColunaPrimariaAtual->getColuna().");\n";
							}
						}
						else
						{	
							$controller .= "	\$".$_tabela_bd->getTabela()."->set".$nome_coluna."(\$_POST['".$colunas[$i]->getColuna()."']);\n";	
						}	
				}
			}		
		}
		
		//$coluna_primary = $buscar_coluna_primary->buscar($_tabela_bd)->getColuna();
		//$nome_coluna_fk = strtoupper(substr($coluna_primary,0,1)).substr($coluna_primary,1);
		$controller .= "	\$codigo = \"\";\n";
		$controller .= "	if (\$_GET[\"mod\"] == \"alterar\")\n";
		$controller .= "	{\n";
		$lista_coluna_primary = $buscar_coluna_primary->buscar($_tabela_bd);
		foreach($lista_coluna_primary as $coluna)
		{
			$nome_coluna_fk = strtoupper(substr($coluna->getColuna(),0,1)).substr($coluna->getColuna(),1);
			$controller .= "		\$".$_tabela_bd->getTabela()."->set".$nome_coluna_fk."(\$_POST['".$coluna->getColuna()."']);\n";
			$controller .= "		\$codigo = \$".$_tabela_bd->getTabela()."->get".$nome_coluna_fk."();\n";
			//$controller .= "		\$".$_tabela_bd->getTabela()."->set".$nome_coluna_fk."(\$_POST['".$coluna_primary."']);\n";
		}
		$controller .= "		try\n";
		$controller .= "		{\n";
		$controller .= "			\$retorno[\"mensagem\"] = \"Alterado com sucesso!\";\n";
		$controller .= "			\$retorno[\"status\"] = true;\n";
		$controller .= "			\$".$_tabela_bd->getTabela()."DAO->atualizar(\$".$_tabela_bd->getTabela().");\n";
		$controller .= "		}\n";
		$controller .= "		catch (Exception  \$e)\n";
		$controller .= "		{\n";
		$controller .= "			\$retorno[\"mensagem\"] = \$e->getMessage();\n";
		$controller .= "			\$retorno[\"status\"] = false;\n";
		$controller .= "		}\n";
		$controller .= "	}\n";
		$controller .= "	else\n";
		$controller .= "	{\n";
		$controller .= "		try\n";
		$controller .= "		{\n";
		$controller .= "			\$retorno[\"mensagem\"] = \"Inserido com sucesso!\";\n";
		$controller .= "			\$retorno[\"status\"] = true;\n";
		$controller .= "			\$codigo = \$".$_tabela_bd->getTabela()."DAO->salvar(\$".$_tabela_bd->getTabela().");\n";
		$controller .= "		}\n";
		$controller .= "		catch (Exception  \$e)\n";
		$controller .= "		{\n";
		$controller .= "			\$retorno[\"mensagem\"] = \$e->getMessage();\n";
		$controller .= "			\$retorno[\"status\"] = false;\n";
		$controller .= "		}\n";
		$controller .= "	}\n";
		
		
		//grava item
		foreach($_lista_carga_tabela as $_carga_tabela)
		{
			$lista_coluna_primary_carga = $buscar_coluna_primary->buscar($_carga_tabela->getTabelaCarregada());
			$listaColunasCarregada = $_carga_tabela->getTabelaCarregada()->getLista_colunas();
			$colunas = $listaColunasCarregada;
			$nome_classe_carga = strtoupper(substr($_carga_tabela->getTabelaCarregada()->getTabela(),0,1)).substr($_carga_tabela->getTabelaCarregada()->getTabela(),1);
			$controller .= "	if(isset(\$_POST['qtd_linhas$nome_classe_carga']))\n";
			$controller .= "	{\n";
			$controller .= "	 	for(\$linha =0; \$linha <= intval(\$_POST['qtd_linhas$nome_classe_carga']); \$linha ++)\n";
			$controller .= "		{\n";
			/*for ($i=0; $i <count($colunas); $i++)
			{
				$controller .= "			if(isset(\$_POST[\$linha.'".$colunas[$i]->getColuna()."']))\n";
				$controller .= "			{\n";
				
				$controller .= "			}\n";
				
			}*/
			$controller .= "			if(isset(\$_POST['listtable".$_carga_tabela->getTabelaCarregada()->getTabela()."'.\$linha.'".$lista_coluna_primary_carga[0]->getColuna()."']))\n";
			$controller .= "			{\n";
			$controller .= "				\$a_codigo = explode('excluir_', \$_POST['listtable".$_carga_tabela->getTabelaCarregada()->getTabela()."'.\$linha.'".$lista_coluna_primary_carga[0]->getColuna()."']);\n";
			$controller .= "				if(count(\$a_codigo) == 1)\n";
			$controller .= "				{\n";
			$controller .= 						$this->criar_colunas_controller_salvar_grid($_carga_tabela->getTabelaCarregada(), $_tabela_bd, $funcoes_data);
			$controller .= "				}\n";
			$controller .= "				elseif(count(\$a_codigo) > 1)\n";
			$controller .= "				{\n";
			$nome_classe_carga = strtoupper(substr($_carga_tabela->getTabelaCarregada()->getTabela(),0,1)).substr($_carga_tabela->getTabelaCarregada()->getTabela(),1);
			////$controller .= "					\$".$_carga_tabela->getTabelaCarregada()->getTabela()."DAO->excluir(\$a_codigo[1]);\n";
			$controller .= "					\$".$_carga_tabela->getTabelaCarregada()->getTabela()."DAO->excluir(\$".$_carga_tabela->getTabelaCarregada()->getTabela()."DAO->buscar".$nome_classe_carga."(\$a_codigo[1]));\n";
			$controller .= "				}\n";
			$controller .= "			}\n";
			$controller .= "		}\n";
			$controller .= "	}\n";
		}
		
		$controller .= "	echo json_encode(\$retorno);\n";
		//fim item
		
		$controller .= "}\n";	
		$controller .= "elseif (isset(\$_GET[\"mod\"]) && \$_GET[\"mod\"] == \"excluir\")\n";
		$controller .= "{\n";
		$controller .= "	try\n"; 
		$controller .= "	{\n";
		//$controller .= "		\$".$_tabela_bd->getTabela()." = \$".$_tabela_bd->getTabela()."DAO->buscar".$nome_classe."(\$_GET[\"id\"]);\n";
		$controller .= "		\$".$_tabela_bd->getTabela()." = \$".$_tabela_bd->getTabela()."DAO->buscar".$nome_classe."(".$montaGetPrimarias.");\n";
		
		$controller .= "		\$".$_tabela_bd->getTabela()."DAO->excluir(\$".$_tabela_bd->getTabela().");\n";
		$controller .= "		\$retorno[\"mensagem\"] = utf8_decode(\"Excluido com sucesso!\");\n";
		$controller .= "		\$retorno[\"status\"] = true;\n";
		$controller .= "	}\n";
		$controller .= "	catch (Exception  \$e)\n";
		$controller .= "	{\n";
		$controller .= "		\$retorno[\"mensagem\"] = \$e->getMessage();\n";
		$controller .= "		\$retorno[\"status\"] = false;\n";			
		$controller .= "	}\n";
		$controller .= "	echo json_encode(\$retorno);\n";
		$controller .= "}\n";
		
		$controller .= "elseif (isset(\$_GET[\"mod\"]) && \$_GET[\"mod\"] == \"listar\")\n";
		$controller .= "{\n";
		///preenche campos caso informado
				$colunas = $_tabela_bd->getLista_colunas();
				$lista_de_classes_incluidas_para_nao_duplicar = array();
				for ($i=0; $i <count($colunas); $i++)
				{	
					$nome_classe_dao = strtoupper(substr($colunas[$i]->getTipoTabela()->getTabela(),0,1)).substr($colunas[$i]->getTipoTabela()->getTabela(),1);
					$nome_coluna = strtoupper(substr($colunas[$i]->getColuna(),0,1)).substr($colunas[$i]->getColuna(),1);
					if ($colunas[$i]->getTipo() == "tabela")
					{	$controller .= "	if (isset(\$_GET[\"".$colunas[$i]->getColuna()."\"]) and \$_GET[\"".$colunas[$i]->getColuna()."\"] != \"\")\n";
						$controller .= "	{\n";
						//$controller .= "		\$".$_tabela_bd->getTabela()."->set".$nome_coluna."(\$".$colunas[$i]->getTipoTabela()->getTabela()."DAO->buscar".$nome_classe_dao."(\$_GET[\"".$colunas[$i]->getColuna()."\"]));\n";
						$controller .= "		\$campo_buscar = \"&".$colunas[$i]->getColuna()."=\".\$_GET[\"".$colunas[$i]->getColuna()."\"]; \n"	;					
						$controller .= "	}\n";		
					}	
				}
			////	
									
	    $controller .= "	\$lista".$nome_classe." = \$".$_tabela_bd->getTabela()."DAO->listarTodosRegistros();\n";	
		
		$controller .= "	include_once(\$config->diretorio_raiz().\"/src/view/".$_tabela_bd->getTabela()."/Listar_todos_registros.php\");\n";	
		$controller .= "}\n";
		
		$controller .= "elseif (isset(\$_GET[\"mod\"]) && \$_GET[\"mod\"] == \"filtro\")\n";
		$controller .= "{\n";
		$controller .= "	if (".$montaIfForm.")\n";
		$controller .= "	{\n";
		$controller .= "		\$".$_tabela_bd->getTabela()." = \$".$_tabela_bd->getTabela()."DAO->buscar".$nome_classe."(".$montaGetPrimarias.");\n";
		$controller .= "	}else{\n";
		$controller .= "		\$".$_tabela_bd->getTabela()." = new ".$nome_classe."();\n";
		
		///verificar se possuí um chave estrangeira iniciar objeto
			$colunas = $_tabela_bd->getLista_colunas();
			$lista_de_classes_incluidas_para_nao_duplicar = array();
			for ($i=0; $i <count($colunas); $i++)
			{	
				$nome_classe_dao = strtoupper(substr($colunas[$i]->getTipoTabela()->getTabela(),0,1)).substr($colunas[$i]->getTipoTabela()->getTabela(),1);
				$nome_coluna = strtoupper(substr($colunas[$i]->getColuna(),0,1)).substr($colunas[$i]->getColuna(),1);
				if ($colunas[$i]->getTipo() == "tabela" and $colunas[$i]->getColunaOrigem()->getId() == "")//empty($colunas[$i]->getColunaOrigem()->getId()))
				{	
						$controller .= "		\$".$_tabela_bd->getTabela()."->set".$nome_coluna."(new ".$nome_classe_dao."());\n";	
				}	
			}
			////
		
		$controller .= "	}\n";
		
		///verificar monta lista para conbobox
			$colunas = $_tabela_bd->getLista_colunas();
			$lista_de_classes_incluidas_para_nao_duplicar = array();
			for ($i=0; $i <count($colunas); $i++)
			{	
				$nome_classe_dao = strtoupper(substr($colunas[$i]->getTipoTabela()->getTabela(),0,1)).substr($colunas[$i]->getTipoTabela()->getTabela(),1);
				$nome_coluna = strtoupper(substr($colunas[$i]->getColuna(),0,1)).substr($colunas[$i]->getColuna(),1);
				$nome_coluna_fk = strtoupper(substr($colunas[$i]->getTipoColuna()->getColuna(),0,1)).substr($colunas[$i]->getTipoColuna()->getColuna(),1);
				$nome_tabela_fk = strtoupper(substr($colunas[$i]->getTipoTabela()->getTabela(),0,1)).substr($colunas[$i]->getTipoTabela()->getTabela(),1);
				if ($colunas[$i]->getTipo() == "tabela" and  $colunas[$i]->getColunaOrigem()->getId() == "")//empty($colunas[$i]->getColunaOrigem()->getId()))
				{	
						//$controller .= "	\$".$colunas[$i]->getTipoTabela()->getTabela()." = new ".$nome_tabela_fk."DAO(); \n";
						if($colunas[$i]->getMultiRegistros() == "0")
						{
							$controller .= "	\$lista".$nome_coluna." = \$".$colunas[$i]->getTipoTabela()->getTabela()."DAO->listarTodosRegistros(); \n";
						}
						else
						{
							$controller .= "	\$lista".$nome_coluna." = array(); \n";
						}
				}	
			}
			////
			///preenche campos caso informado
			///preenche campos caso informado
				$colunas = $_tabela_bd->getLista_colunas();
				$lista_de_classes_incluidas_para_nao_duplicar = array();
				for ($i=0; $i <count($colunas); $i++)
				{	
					if ($colunas[$i]->getColunaOrigem()->getId() == "")//empty($colunas[$i]->getColunaOrigem()->getId()))
					{	
						$nome_classe_dao = strtoupper(substr($colunas[$i]->getTipoTabela()->getTabela(),0,1)).substr($colunas[$i]->getTipoTabela()->getTabela(),1);
						$nome_coluna = strtoupper(substr($colunas[$i]->getColuna(),0,1)).substr($colunas[$i]->getColuna(),1);
						if ($colunas[$i]->getTipo() == "tabela" )
						{	$controller .= "	if (isset(\$_GET[\"".$colunas[$i]->getColuna()."\"]) and \$_GET[\"".$colunas[$i]->getColuna()."\"] != \"\")\n";
							$controller .= "	{\n";
							if ($colunas[$i]->getComposta() == "1" and ! $colunas[$i]->getColunaOrigem() instanceof Coluna_db ) //ultimaalteração and $colunas[$i]->getIndice() != "PRIMARY"
							{
								$controller .= "		\$objJson = json_decode(str_replace(\"'\",'\"',\$_GET['".$colunas[$i]->getColuna()."']));\n";
								$enviarFuncao = "";
								foreach($colunas[$i]->getListaColunaComposta() as $colunafkatual)
								{
									$colunaEsrangeiraatual = $colunafkatual->getColunaEstrangeira();
									$ColunaPrimariaAtual =  $colunafkatual->getColunaPrimaria();
									//$nome_coluna = strtoupper(substr($colunaEsrangeiraatual->getColuna(),0,1)).substr($colunaEsrangeiraatual->getColuna(),1);
									$controller .= "		\$".$colunaEsrangeiraatual->getColuna()." = \$objJson->".$ColunaPrimariaAtual->getColuna().";\n";
									$enviarFuncao .= "\$".$colunaEsrangeiraatual->getColuna();
									if ($colunafkatual !=  $colunas[$i]->getListaColunaComposta()[count($colunas[$i]->getListaColunaComposta())-1])
									{
										$enviarFuncao .= ",";
									}
									$nome_coluna_atual = strtoupper(substr($colunaEsrangeiraatual->getColuna(),0,1)).substr($colunaEsrangeiraatual->getColuna(),1);
									$controller .= "		\$".$_tabela_bd->getTabela()."->set".$nome_coluna_atual."(\$".$colunaEsrangeiraatual->getColuna().");\n";
								}
								$controller .= "		\$".$_tabela_bd->getTabela()."->set".$nome_coluna."(\$".$colunas[$i]->getTipoTabela()->getTabela()."DAO->buscar".$nome_classe_dao."(".$enviarFuncao."));\n";
								$controller .= "		\$campo_buscar = \"&".$colunas[$i]->getColuna()."=\".\$_GET[\"".$colunas[$i]->getColuna()."\"]; \n"	;					
								$controller .= "	}\n";
							}
							else
							{	
								$controller .= "		\$".$_tabela_bd->getTabela()."->set".$nome_coluna."(\$".$colunas[$i]->getTipoTabela()->getTabela()."DAO->buscar".$nome_classe_dao."(\$_GET[\"".$colunas[$i]->getColuna()."\"]));\n";
								$controller .= "		\$campo_buscar = \"&".$colunas[$i]->getColuna()."=\".\$_GET[\"".$colunas[$i]->getColuna()."\"]; \n"	;					
								$controller .= "	}\n";	
							}	
						}
					}
					else
					{
						$controller .= "	if (isset(\$_GET[\"".$colunas[$i]->getColuna()."\"]) and \$_GET[\"".$colunas[$i]->getColuna()."\"] != \"\")\n";
						$controller .= "	{\n";
						$controller .= "		\$".$_tabela_bd->getTabela()."->set".$nome_coluna."(\$_GET[\"".$colunas[$i]->getColuna()."\"]);\n";
						$controller .= "		\$campo_buscar = \"&".$colunas[$i]->getColuna()."=\".\$_GET[\"".$colunas[$i]->getColuna()."\"]; \n"	;
						$controller .= "	}\n";						
							
					}
				}
			////
			////
			
			
		$controller .= "	include_once(\$config->diretorio_raiz().\"/src/view/".$_tabela_bd->getTabela()."/Filtro_lista_registros.php\");\n";	
		$controller .= "}\n";
		
		///criar os controladores da busca mult registro
		$colunas = $_tabela_bd->getLista_colunas();
		$array_funcoes_para_nao_repetir = array();
		foreach($colunas as $colunaAtual)
		{	
			$nome_coluna = strtoupper(substr($colunaAtual->getColuna(),0,1)).substr($colunaAtual->getColuna(),1);
			if ($colunaAtual->getMultiRegistros() == '1')
			{
				$nome_classe_fk = strtoupper(substr($colunaAtual->getTipoTabela()->getTabela(),0,1)).substr($colunaAtual->getTipoTabela()->getTabela(),1);
				$nome_coluna_fk = strtoupper(substr($colunaAtual->getTipoColuna()->getColuna(),0,1)).substr($colunaAtual->getTipoColuna()->getColuna(),1);
				$nomeDaFuncaoBuscar = "buscar".$nome_classe_fk."Por".$nome_coluna_fk;
				$nomeDaPaginaBuscar = strtoupper(substr($nomeDaFuncaoBuscar,0,1)).substr($nomeDaFuncaoBuscar,1);
				if (! in_array($nomeDaFuncaoBuscar, $array_funcoes_para_nao_repetir))
				{	
					array_push($array_funcoes_para_nao_repetir, $nomeDaFuncaoBuscar);
					$controller .= "elseif (isset(\$_GET[\"mod\"]) && \$_GET[\"mod\"] == \"".$nomeDaFuncaoBuscar."\")\n";
					$controller .= "{\n";		
					//$controller .= "	\$lista".$nome_classe_fk." = \$".$colunaAtual->getTipoTabela()->getTabela()."DAO->".$nomeDaFuncaoBuscar."(\$_GET['".$colunaAtual->getColuna()."']);\n";	
					$controller .= "	\$lista".$nome_classe_fk." = \$".$colunaAtual->getTipoTabela()->getTabela()."DAO->".$nomeDaFuncaoBuscar."(\$_GET['valor']);\n";	
					$controller .= "	include_once(\$config->diretorio_raiz().\"/src/view/".$_tabela_bd->getTabela()."/".$nomeDaPaginaBuscar.".php\");\n";	
					$controller .= "}\n";
				}	
				
			}	
		}
		
		//busca por campo
		$controller .= "elseif (isset(\$_GET[\"mod\"]) && \$_GET[\"mod\"] == \"busca_por_campo_filtro\")\n";
		$controller .= "{\n";
		$controller .= "	\$entrouEmAlgumFiltro = false;\n";
		$colunas = $_tabela_bd->getLista_colunas();
		
		$listaIncludeNaoDuplicar = array();
		$includes="";
		$controller .= " 	\$where = \" where 1=1\";\n";
		foreach ($colunas as $colunaAtual)
		{
			if (   $colunaAtual->getColunaOrigem()->getId() == "" )//empty($colunaAtual->getColunaOrigem()->getId()))
			{
				$nome_coluna_atual = strtoupper(substr($colunaAtual->getColuna(),0,1)).substr($colunaAtual->getColuna(),1);
				
				switch ($colunaAtual->getTipo())
				{ 
					case "tabela":
						if ($colunaAtual->getComposta() == "1"  )
						{
							//$controllerComposto = "	\$objJson = json_decode(str_replace(\"'\",'\"',\$_GET['".$colunaAtual->getColuna()."']));\n";
							$controllerComposto = "		\$where .= \"  ";
							$buscaCampo = "		\$campo_buscar = \"";   
							foreach($colunaAtual->getListaColunaComposta() as $colunafkatual)
							{

								$colunaEsrangeiraatual = $colunafkatual->getColunaEstrangeira();
								$ColunaPrimariaAtual =  $colunafkatual->getColunaPrimaria();
								//$nome_coluna = strtoupper(substr($colunaEsrangeiraatual->getColuna(),0,1)).substr($colunaEsrangeiraatual->getColuna(),1);
								//$controller .= "		\$".$colunaEsrangeiraatual->getColuna()." = \$objJson->".$ColunaPrimariaAtual->getColuna().";\n";
								$controllerComposto .= "and " .$colunaEsrangeiraatual->getColuna() ." = '\".\$objJson->".$ColunaPrimariaAtual->getColuna().".\"' ";
								if ($colunaEsrangeiraatual->getComposta() == "1")
								{
									$buscaCampo .= "&".$colunaEsrangeiraatual->getColuna()."={";
									$qtdComp = count($colunaEsrangeiraatual->getListaColunaComposta());
									$i =0;
									foreach($colunaEsrangeiraatual->getListaColunaComposta() as $colunafkatualdafkcomposta)
									{
										$colunaEsrangeiraatual = $colunafkatualdafkcomposta->getColunaEstrangeira();
										$ColunaPrimariaAtual =  $colunafkatualdafkcomposta->getColunaPrimaria();
										$buscaCampo .= "\'".$ColunaPrimariaAtual->getColuna()."\':\'\".\$objJson->".$ColunaPrimariaAtual->getColuna().".\"\'";
										$i ++;
										if ($i < $qtdComp)
										{
											$buscaCampo .= ",";
										}
										
									}
									$buscaCampo .= "}";
								}
								else
								{
									$buscaCampo .= "&".$colunaEsrangeiraatual->getColuna()."=\".\$objJson->".$ColunaPrimariaAtual->getColuna().".\"";
								}
								
							}
							$controllerComposto .= " \"; \n";
							$buscaCampo .= "\"";
							$controllerComposto .= $buscaCampo."; \n";
							
							$controller .= "	if(isset(\$_GET['".$colunaAtual->getColuna()."']) and \$_GET['".$colunaAtual->getColuna()."'] != \"\")\n";
							$controller .= "	{\n";
							//$controller .= "		\$lista".$nome_classe." = \$".$_tabela_bd->getTabela()."DAO->buscar".$nome_classe."Por".$nome_coluna_atual."(\$_GET['".$colunaAtual->getColuna()."']);\n";
							$controller .= "		\$objJson = json_decode(str_replace(\"'\",'\"',\$_GET['".$colunaAtual->getColuna()."']));\n";
							$controller .= 			$controllerComposto;//"		\$where .= \" and ".$colunaAtual->getColuna()." = \". \$_GET['".$colunaAtual->getColuna()."'];\n";
							$controller .= "		\$entrouEmAlgumFiltro = true;\n";
							//$controller .= "		\$campo_buscar = \"&".$colunaAtual->getColuna()."=\".\$_GET[\"".$colunaAtual->getColuna()."\"]; \n"	;		
							$controller .= "	}\n";
							$controller .= "	if(isset(\$_POST['".$colunaAtual->getColuna()."']) and \$_POST['".$colunaAtual->getColuna()."'] != \"\")\n";
							$controller .= "	{\n";
							//$controller .= "		\$lista".$nome_classe." = \$".$_tabela_bd->getTabela()."DAO->buscar".$nome_classe."Por".$nome_coluna_atual."(\$_POST['".$colunaAtual->getColuna()."']);\n";
							$controller .= "		\$objJson = json_decode(str_replace(\"'\",'\"',\$_POST['".$colunaAtual->getColuna()."']));\n";
							$controller .= 			$controllerComposto;//"		\$where .= \" and ".$colunaAtual->getColuna()." = \". \$_POST['".$colunaAtual->getColuna()."'];\n";
							$controller .= "		\$entrouEmAlgumFiltro = true;\n";
							//$controller .= "		\$campo_buscar = \"&".$colunaAtual->getColuna()."=\".\$_POST[\"".$colunaAtual->getColuna()."\"]; \n"	;		
							$controller .= "	}\n";
							
						}
						else
						{	
							$controller .= "	if(isset(\$_GET['".$colunaAtual->getColuna()."']) and \$_GET['".$colunaAtual->getColuna()."'] != \"\")\n";
							$controller .= "	{\n";
							//$controller .= "		\$lista".$nome_classe." = \$".$_tabela_bd->getTabela()."DAO->buscar".$nome_classe."Por".$nome_coluna_atual."(\$_GET['".$colunaAtual->getColuna()."']);\n";
							$controller .= "		\$where .= \" and ".$colunaAtual->getColuna()." = \". \$_GET['".$colunaAtual->getColuna()."'];\n";
							$controller .= "		\$entrouEmAlgumFiltro = true;\n";
							$controller .= "		\$campo_buscar = \"&".$colunaAtual->getColuna()."=\".\$_GET[\"".$colunaAtual->getColuna()."\"]; \n"	;		
							$controller .= "	}\n";
							$controller .= "	if(isset(\$_POST['".$colunaAtual->getColuna()."']) and \$_POST['".$colunaAtual->getColuna()."'] != \"\")\n";
							$controller .= "	{\n";
							//$controller .= "		\$lista".$nome_classe." = \$".$_tabela_bd->getTabela()."DAO->buscar".$nome_classe."Por".$nome_coluna_atual."(\$_POST['".$colunaAtual->getColuna()."']);\n";
							$controller .= "		\$where .= \" and ".$colunaAtual->getColuna()." = \". \$_POST['".$colunaAtual->getColuna()."'];\n";
							$controller .= "		\$entrouEmAlgumFiltro = true;\n";
							$controller .= "		\$campo_buscar = \"&".$colunaAtual->getColuna()."=\".\$_POST[\"".$colunaAtual->getColuna()."\"]; \n"	;		
							$controller .= "	}\n";
						}	
						
					break;
					case "data":
						$maskDat = $funcoes_data->converterDataMaskParaDataBD($colunaAtual->getMascara());
						$controller .= "	if(isset(\$_GET['".$colunaAtual->getColuna()."Ini']) and \$_GET['".$colunaAtual->getColuna()."Ini'] != \"\" and \$_GET['".$colunaAtual->getColuna()."Fim'] != \"\")\n";
						$controller .= "	{\n";
						$controller .= "		\$dateIni = DateTime::createFromFormat('".$funcoes_data->converterDataMaskParaDataPHP($colunaAtual->getMascara())."', \$_GET['".$colunaAtual->getColuna()."Ini']);\n";
						$controller .= "		\$dateFim = DateTime::createFromFormat('".$funcoes_data->converterDataMaskParaDataPHP($colunaAtual->getMascara())."', \$_GET['".$colunaAtual->getColuna()."Fim']);\n";
						
						//$controller .= "		\$lista".$nome_classe." = \$".$_tabela_bd->getTabela()."DAO->buscar".$nome_classe."Por".$nome_coluna_atual."(\$_GET['".$colunaAtual->getColuna()."']);\n";
						$controller .= "		\$where .= \" and ".$colunaAtual->getColuna()." >= '\".\$dateIni->format('".$maskDat."').'".$this->maskDatFiltro($maskDat, '00:00:00')."'.\"'\";\n";
						$controller .= "		\$where .= \" and ".$colunaAtual->getColuna()." <= '\".\$dateFim->format('".$maskDat."').'".$this->maskDatFiltro($maskDat, '23:59:59')."'.\"'\";\n";
						$controller .= "		\$entrouEmAlgumFiltro = true;\n";
						//$controller .= "		\$campo_buscar = \"&".$colunaAtual->getColuna()."=\".\$_GET[\"".$colunaAtual->getColuna()."\"]; \n"	;		
						$controller .= "	}\n";
						$controller .= "	if(isset(\$_POST['".$colunaAtual->getColuna()."Ini']) and \$_POST['".$colunaAtual->getColuna()."Ini'] != \"\" and \$_POST['".$colunaAtual->getColuna()."Fim'] != \"\")\n";
						$controller .= "	{\n";
						$controller .= "		\$dateIni = DateTime::createFromFormat('".$funcoes_data->converterDataMaskParaDataPHP($colunaAtual->getMascara())."', \$_POST['".$colunaAtual->getColuna()."Ini']);\n";
						$controller .= "		\$dateFim = DateTime::createFromFormat('".$funcoes_data->converterDataMaskParaDataPHP($colunaAtual->getMascara())."', \$_POST['".$colunaAtual->getColuna()."Fim']);\n";
						//$controller .= "		\$lista".$nome_classe." = \$".$_tabela_bd->getTabela()."DAO->buscar".$nome_classe."Por".$nome_coluna_atual."(\$_POST['".$colunaAtual->getColuna()."']);\n";
						$controller .= "		\$where .= \" and ".$colunaAtual->getColuna()." >= '\".\$dateIni->format('".$maskDat."').'".$this->maskDatFiltro($maskDat, '00:00:00')."'.\"'\";\n";
						$controller .= "		\$where .= \" and ".$colunaAtual->getColuna()." <= '\".\$dateFim->format('".$maskDat."').'".$this->maskDatFiltro($maskDat, '23:59:59')."'.\"'\";\n";
						$controller .= "		\$entrouEmAlgumFiltro = true;\n";
						//$controller .= "		\$campo_buscar = \"&".$colunaAtual->getColuna()."=\".\$_POST[\"".$colunaAtual->getColuna()."\"]; \n"	;		
						$controller .= "	}\n";
						
					break;
					default:
						$controller .= "	if(isset(\$_GET['".$colunaAtual->getColuna()."']) and \$_GET[\"".$colunaAtual->getColuna()."\"] != \"\" )\n";
						$controller .= "	{\n";
						//$controller .= "		\$lista".$nome_classe." = \$".$_tabela_bd->getTabela()."DAO->buscar".$nome_classe."Por".$nome_coluna_atual."(\$_GET['".$colunaAtual->getColuna()."']);\n";
						$controller .= "		\$where .= \" and UPPER(".$colunaAtual->getColuna().") like '%\".strtoupper(\$_GET['".$colunaAtual->getColuna()."']).\"%'\";\n";
						$controller .= "		\$entrouEmAlgumFiltro = true;\n";
						$controller .= "		\$campo_buscar = \"&".$colunaAtual->getColuna()."=\".\$_GET[\"".$colunaAtual->getColuna()."\"]; \n"	;		
						$controller .= "	}\n";	
						$controller .= "	if(isset(\$_POST['".$colunaAtual->getColuna()."']) and \$_POST[\"".$colunaAtual->getColuna()."\"] != \"\" )\n";
						$controller .= "	{\n";
						//$controller .= "		\$lista".$nome_classe." = \$".$_tabela_bd->getTabela()."DAO->buscar".$nome_classe."Por".$nome_coluna_atual."(\$_POST['".$colunaAtual->getColuna()."']);\n";
						$controller .= "		\$where .= \" and UPPER(".$colunaAtual->getColuna().") like '%\".strtoupper(\$_POST['".$colunaAtual->getColuna()."']).\"%'\";\n";
						$controller .= "		\$entrouEmAlgumFiltro = true;\n";
						$controller .= "		\$campo_buscar = \"&".$colunaAtual->getColuna()."=\".\$_POST[\"".$colunaAtual->getColuna()."\"]; \n"	;		
						$controller .= "	}\n";						
				}
					
				if (! in_array($_tabela_bd->getTabela(), $listaIncludeNaoDuplicar))
				{	
					/*$controller .= "	if(! \$entrouEmAlgumFiltro )\n";
					$controller .= "	{\n";
					$controller .= "		\$lista".$nome_classe." = \$".$_tabela_bd->getTabela()."DAO->listarTodosRegistros();\n";	
					$controller .= "	}\n";*/
					
				}		
				array_push($listaIncludeNaoDuplicar, $_tabela_bd->getTabela());
			}	
		}	
		$controller .= "	\$lista".$nome_classe." = \$".$_tabela_bd->getTabela()."DAO->buscarFiltro(\$where);\n";
		$includes .="	include_once(\$config->diretorio_raiz().\"/src/view/".$_tabela_bd->getTabela()."/Listar_todos_registros.php\");\n";
		$controller .= $includes;	
		
		$controller .= "}\n";
		

		
		return $controller;
	}	
	
	function criar_colunas_controller_salvar_grid($_tabela_bd, $_tabela_bd_origem, $funcoes_data)
	{
		//$controller .= "elseif (isset(\$_GET[\"mod\"]) && (\$_GET[\"mod\"] == \"salvar\" or \$_GET[\"mod\"] == \"alterar\"))\n";
		//$controller .= "{\n";
		$nome_classe = strtoupper(substr($_tabela_bd->getTabela(),0,1)).substr($_tabela_bd->getTabela(),1);
		$controller = "";
		$controller .= "					\$".$_tabela_bd->getTabela()." = new ".$nome_classe."();\n";
		$colunas = $_tabela_bd->getLista_colunas();
		
		for ($i=0; $i <count($colunas); $i++)
		{	
			$nome_coluna = strtoupper(substr($colunas[$i]->getColuna(),0,1)).substr($colunas[$i]->getColuna(),1);
			//echo $colunas[$i]->getColunaOrigem();
			if ( $colunas[$i]->getColunaOrigem()->getId() == "")//empty($colunas[$i]->getColunaOrigem()->getId()))
			{	
				switch ($colunas[$i]->getTipo())
				{
					case "TINYINT":
						$controller .= "					if (isset(\$_POST['listtable".$_tabela_bd->getTabela()."'.\$linha.'".$colunas[$i]->getColuna()."']))\n";
						$controller .= "					{\n";
						$controller .= "						\$".$_tabela_bd->getTabela()."->set".$nome_coluna."(\$_POST['listtable".$_tabela_bd->getTabela()."'.\$linha.'".$colunas[$i]->getColuna()."']);\n";
						$controller .= "					}\n";
						$controller .= "					else\n";
						$controller .= "					{\n";
						$controller .= "						\$".$_tabela_bd->getTabela()."->set".$nome_coluna."(\"0\");\n";
						$controller .= "					}\n";
					break;
					case "data":
						
						switch ($colunas[$i]->getIndice())
						{
							case "DATAATUAL":
								$controller .= "					\$date".$nome_coluna." = new DateTime;\n";
								$controller .= "					\$".$_tabela_bd->getTabela()."->set".$nome_coluna."(\$date".$nome_coluna.");\n";
							break;
							case "DATACRIACAO":
								$controller .= "					\$date".$nome_coluna." = new DateTime;\n";
								$controller .= "					\$".$_tabela_bd->getTabela()."->set".$nome_coluna."(\$date".$nome_coluna.");\n";
							break;
							default:
								$controller .= "					if ('listtable".$_tabela_bd->getTabela()."'.\$linha.\$_POST['".$colunas[$i]->getColuna()."'] != \"\")\n";
								$controller .= "					{\n";
								$controller .= "						\$date".$nome_coluna." = DateTime::createFromFormat('".$funcoes_data->converterDataMaskParaDataPHP($colunas[$i]->getMascara())."', \$_POST['listtable".$_tabela_bd->getTabela()."'.\$linha.'".$colunas[$i]->getColuna()."']);\n";
								$controller .= "						\$".$_tabela_bd->getTabela()."->set".$nome_coluna."(\$date".$nome_coluna.");\n";
								$controller .= "					}\n";
						}
						
						
						
					break;
					default:	
						if ($colunas[$i]->getComposta() == "1")
						{
							$controller .= "					\$objJson = json_decode(str_replace(\"'\",'\"',\$_POST['listtable".$_tabela_bd->getTabela()."'.\$linha.'".$colunas[$i]->getColuna()."']));\n";
							foreach($colunas[$i]->getListaColunaComposta() as $colunafkatual)
							{
								$colunaEsrangeiraatual = $colunafkatual->getColunaEstrangeira();
								$ColunaPrimariaAtual =  $colunafkatual->getColunaPrimaria();
								$nome_coluna = strtoupper(substr($colunaEsrangeiraatual->getColuna(),0,1)).substr($colunaEsrangeiraatual->getColuna(),1);
								$controller .= "					\$".$_tabela_bd->getTabela()."->set".$nome_coluna."(\$objJson->".$ColunaPrimariaAtual->getColuna().");\n";
							}
						}
						else
						{	
							if($colunas[$i]->getTipo() == "tabela" and $colunas[$i]->getTipoTabela()->getId() == $_tabela_bd_origem->getId())
							{
								$controller .= "					\$".$_tabela_bd->getTabela()."->set".$nome_coluna."(\$codigo); \n";
							}
							else
							{	
								$controller .= "					\$".$_tabela_bd->getTabela()."->set".$nome_coluna."(\$_POST['listtable".$_tabela_bd->getTabela()."'.\$linha.'".$colunas[$i]->getColuna()."']);\n";
							}
						}	
				}
			}
			
		}
		$buscar_coluna_primary = new Buscar_coluna_primary();
		$lista_coluna_primary = $buscar_coluna_primary->buscar($_tabela_bd);
		$montaIfForm = "";
		foreach($lista_coluna_primary as $coluna)
		{
			$nome_coluna_fk = strtoupper(substr($coluna->getColuna(),0,1)).substr($coluna->getColuna(),1);
			$montaIfForm .= " (isset(\$_POST['listtable".$_tabela_bd->getTabela()."'.\$linha.\"".$coluna->getColuna()."\"]) and \$_POST['listtable".$_tabela_bd->getTabela()."'.\$linha.\"".$coluna->getColuna()."\"] != \"\")  ";
			//$montaGetPrimarias .= "\$_GET[\"".$coluna->getColuna()."\"]";
			if ($coluna != $lista_coluna_primary[count($lista_coluna_primary)-1])
			{
				$montaIfForm .= " or ";
				//$montaGetPrimarias .= ",";
			}
		}	
		
					
		$controller .= "					if (".$montaIfForm.")\n";
		$controller .= "					{\n";
		$controller .= "						try\n";
		$controller .= "						{\n";
		//$controller .= "						\$retorno[\"mensagem\"] = \"Alterado com sucesso!\";\n";
		$controller .= "							\$retorno[\"status\"] = true;\n";
		$controller .= "							\$".$_tabela_bd->getTabela()."DAO->atualizar(\$".$_tabela_bd->getTabela().");\n";
		$controller .= "						}\n";
		$controller .= "						catch (Exception  \$e)\n";
		$controller .= "						{\n";
		$controller .= "							\$retorno[\"mensagem\"] = \$e->getMessage();\n";
		$controller .= "							\$retorno[\"status\"] = false;\n";
		$controller .= "						}\n";
		$controller .= "					}\n";
		$controller .= "					else\n";
		$controller .= "					{\n";
		$controller .= "						try\n";
		$controller .= "						{\n";
		//$controller .= "							\$retorno[\"mensagem\"] = \"Inserido com sucesso!\";\n";
		$controller .= "							\$retorno[\"status\"] = true;\n";
		$controller .= "							\$".$_tabela_bd->getTabela()."DAO->salvar(\$".$_tabela_bd->getTabela().");\n";
		$controller .= "						}\n";
		$controller .= "						catch (Exception  \$e)\n";
		$controller .= "						{\n";
		$controller .= "							\$retorno[\"mensagem\"] = 'Erro na linha '.\$linha.' '.\$e->getMessage();\n";
		$controller .= "							\$retorno[\"status\"] = false;\n";
		$controller .= "						}\n";
		$controller .= "					}\n";	
		return $controller;
	}
	
	function maskDatFiltro($mask, $hora)
	{
		$tamanho = strlen($mask);
		//echo $mask;
		if ($tamanho == 5)
		{
			return " ".$hora;
		}
		
	}
	
}