<?php
require_once("Buscar_coluna_primary.php");
class Gerar_view_formulario_arqDAO
{
		
	function montarArquivo($_tabela_bd, $nome_dir, $funcoes_data, $_lista_carga_tabela)
	{
		$buscar_coluna_primary = new Buscar_coluna_primary();
		///".$_tabela_bd->getTabela()->getId()." buscar o campo chave primária
		//abrirFormulario('src/view/atabelateste/Formulario.php?mod=form&id=42') javascript con colsole para testar
		//abrirFormulario('src/controller/AtabelatesteController.php?mod=form&id=1')
		$lista_coluna_primary = $coluna_primary = $buscar_coluna_primary->buscar($_tabela_bd);
		////$coluna_primary = $buscar_coluna_primary->buscar($_tabela_bd)->getColuna();
		////$nome_coluna_fk = strtoupper(substr($coluna_primary,0,1)).substr($coluna_primary,1);
		$if_excluir_formulario = "";
		$var_excluir = "";
		$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);
			
			$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."()";
			}
			
			//$if_excluir_formulario .= "\$".$_tabela_bd->getTabela()."->get".$nome_coluna_fk."()".$campoFinal." != \"\"";
			$var_excluir .= "&".$coluna->getColuna()."='.\$".$_tabela_bd->getTabela()."->get".$nome_coluna_fk."()".$campoFinal;
			
			if ($coluna != $lista_coluna_primary[count($lista_coluna_primary)-1])
			{
				//$if_excluir_formulario .= $operador;
				$var_excluir .= ".'";
			}
		}
		$formulario = "<div id=\"statusRequisicao\" ></div>\n"; 
		$formulario .="<div style='border-bottom: solid 1px #cccccc; width: 100%;'><b>".$_tabela_bd->getDescricao()."</b></div><br>";
		$formulario .= "<?php\n"; 
		$formulario.="\$ventoExcluir = \"disabled\";\n";
		$formulario.="\$mod = \"salvar\";\n";
		//$formulario.="if (\$".$_tabela_bd->getTabela()."->get".$nome_coluna_fk."() != \"\")\n";
		//$formulario.="if (".$if_excluir_formulario.")\n";
		$formulario.="if (isset(\$_GET['alterar']))\n";
		$formulario.="{\n";
		//$formulario.="	\$ventoExcluir = 'onclick=\"excluirDados(\'src/controller/".$nome_dir."Controller.php?mod=excluir&id='.\$".$_tabela_bd->getTabela()."->get".$nome_coluna_fk."().'\')\"'; \n";
		$formulario.="	\$ventoExcluir = 'onclick=\"excluirDados(\'src/controller/".$nome_dir."Controller.php?mod=excluir".$var_excluir.".'\')\"'; \n";
		$formulario.="  \$mod = \"alterar\";\n";
		$formulario.="}\n";
		$formulario.="\n";
		$formulario.="?>\n";
		/*$formulario.="<button class=\"btnSuccess btnXs btnNovo\" id=\"btnNovo\" onclick=\"javaScript:abrirFormulario('src/controller/".$nome_dir."Controller.php?mod=form<?php if (isset(\$campo_buscar)) {echo \$campo_buscar;}?>')\" >Novo</button>\n";
		*/
		$formulario.="<button class=\"btnSuccess  btnNovo abrir_modal\" abrir-modal=\"#modaleditar".$_tabela_bd->getTabela()."\" id=\"btnNovo\" onclick=\"atualizaSeletor('src/controller/".$nome_dir."Controller.php?carragar_formulario_seletor=<?php echo \$_GET['carragar_formulario_seletor'];?>&mod=form<?php if (isset(\$campo_buscar)) {echo str_replace(\"'\",\"\'\",\$campo_buscar);}?>','#<?php echo \$_GET['carragar_formulario_seletor'];?>')\" >Novo</button>\n";
		$formulario.="<button class=\"btnDanger  btnExcluir\" id=\"btnExcluir\" <?php echo \$ventoExcluir;?> >Excluir </button>\n";
		$formulario.="<button class=\"btnDanger  btnCancelar\" id=\"btnCancelar\" disabled>Cancelar </button>\n";
		$formulario.="<button class=\"btnSuccess  btnSalvar\" id=\"btnSalvar\" disabled onclick=\"salvarDados('formDados".$_tabela_bd->getTabela()."')\">Salvar </button>\n";
		$formulario.="<br><br>\n";
		$formulario.="<form action='src/controller/".$nome_dir."Controller.php?mod=<?php echo \$mod;?>' id=\"formDados".$_tabela_bd->getTabela()."\">\n";
		
		$colunas = $_tabela_bd->getLista_colunas();
		for ($i=0; $i <count($colunas); $i++)
		{
			if ($colunas[$i]->getColunaOrigem()->getId() == "")//empty($colunas[$i]->getColunaOrigem()->getId()))
			{	
				if ($colunas[$i]->getNovaLinha() == "1")
				{
					$formulario.="	<br> \n";	
				}
				$nome_coluna = strtoupper(substr($colunas[$i]->getColuna(),0,1)).substr($colunas[$i]->getColuna(),1);
				$class = "form";
				$coluna_form = "		<input ";
				$mascara = "";
				$mascaraReverse = "";
				$eventoClick = "";
				$valuesPadrao = 'value="<?php echo $'.$_tabela_bd->getTabela().'->get'.$nome_coluna.'();?>" valueDefault="<?php echo $'.$_tabela_bd->getTabela().'->get'.$nome_coluna.'();?>"';
				$phpValorPadrao = '$'.$_tabela_bd->getTabela().'->get'.$nome_coluna.'()';
				$htmlFinal = "";
				$fimTag = "/>";
				$ifSeTemRegNoValueInput = $phpValorPadrao." != ''"; 
				//if ($colunas[$i]->getIndice() == "PRIMARY")
				//{
					//$coluna_form .= 'type="hidden"';
					//$formulario .="	<div>\n";
				//}
				//else
				//{
					//fazer o aut increment ficar bloqueado
					$formulario .="	<div class='filtroForm' >\n";
					switch($colunas[$i]->getTipo())
					{
						case "BIGINT":
							$coluna_form .= 'type="text"';
							$colunas[$i]->setMascara('000000000000');
						break;
						case "int":
							$coluna_form .= 'type="text"';
							$colunas[$i]->setMascara('000000000000000000000000');
						break;
						case "varchar":
							$coluna_form .= 'type="text"';
						break;
						case "float":
							$coluna_form .= 'type="text"';
							$colunas[$i]->setMascara('000.000.000.000.000,00');
							$mascaraReverse = "data-mask-reverse=\"true\"";
						break;
						case "TINYINT":
							$coluna_form .= 'type="checkbox"';
							$class = "";
							$eventoClick = "onclick=\"checkboxForm(this);\"";
							$htmlFinal .= " <br>";
						break;
						case "md5":
							$coluna_form .= 'type="password"';
							$valuesPadrao = 'value="" valueDefault=""';
						break;
						case "data":
							if($colunas[$i]->getIndice() == "DATAATUAL" or $colunas[$i]->getIndice() == "DATACRIACAO")
							{
								$coluna_form .= 'type="text" readonly';
							}	
							$valuesPadrao = 'value="<?php if ($'.$_tabela_bd->getTabela().'->get'.$nome_coluna.'() instanceof DateTime) {echo $'.$_tabela_bd->getTabela().'->get'.$nome_coluna.'()->format(\''.$funcoes_data->converterDataMaskParaDataPHP($colunas[$i]->getMascara()).'\');}?>"'; 
							$valuesPadrao .= ' valueDefault="<?php if ($'.$_tabela_bd->getTabela().'->get'.$nome_coluna.'() instanceof DateTime) {echo $'.$_tabela_bd->getTabela().'->get'.$nome_coluna.'()->format(\''.$funcoes_data->converterDataMaskParaDataPHP($colunas[$i]->getMascara()).'\');}?>"';
						break;
						case "tabela":
							$nome_coluna_fk = strtoupper(substr($colunas[$i]->getTipoColuna()->getColuna(),0,1)).substr($colunas[$i]->getTipoColuna()->getColuna(),1);
							$nome_coluna_fk_ultimo_nivel = $this->buscaNomeColuna($colunas[$i]);
							$nome_tabela_fk = strtoupper(substr($colunas[$i]->getTipoTabela()->getTabela(),0,1)).substr($colunas[$i]->getTipoTabela()->getTabela(),1);
							$coluna_primary = $colunas[$i]->getTipoColunaPrimaria()->getColuna();//$buscar_coluna_primary->buscar($colunas[$i]->getTipoTabela())->getColuna();
							$nome_coluna_pk = strtoupper(substr($coluna_primary,0,1)).substr($coluna_primary,1);
							$nome_tabela_atual = strtoupper(substr($_tabela_bd->getTabela(),0,1)).substr($_tabela_bd->getTabela(),1);
							//$valueSelect = " $".$_tabela_bd->getTabela()."->get".$nome_coluna."()->get".$nome_coluna_fk_ultimo_nivel."()";
							
							$nome_coluna_fk_ultimo_nivel_primary = $this->buscaNomeColunaPrimaria($colunas[$i]);
							$valuePadrao = " $".$_tabela_bd->getTabela()."->get".$nome_coluna."()->get".$nome_coluna_fk_ultimo_nivel_primary."()";
							$ifSeTemRegNoValueInput = $valuePadrao." != ''"; 
							$ifSeTemRegNoValue = "";
							if ($colunas[$i]->getComposta() == "1") //se for composta o valor é um array
								{
									//$valueSelect = " '{'.";
									$valuePadrao =" '{'.";
									$ifSeTemRegNoValue = " if (";
									$ifSeTemRegNoValueInput = ""; 
									foreach($colunas[$i]->getListaColunaComposta() as $colunafkatual)
									{
										$colunaEsrangeiraatual = $colunafkatual->getColunaEstrangeira();
										$ColunaPrimariaAtual =  $colunafkatual->getColunaPrimaria();
										
										$nome_colunaComposta_pk = strtoupper(substr($ColunaPrimariaAtual->getColuna(),0,1)).substr($ColunaPrimariaAtual->getColuna(),1);
										$nome_colunaComposta_fk = strtoupper(substr($colunaEsrangeiraatual->getColuna(),0,1)).substr($colunaEsrangeiraatual->getColuna(),1);
										
										//$valueSelect .= "'\"".$ColunaPrimariaAtual->getColuna()."\":\"'.\$umRegistro".$nome_coluna_fk."->get".$nome_colunaComposta_pk."()";
										$valuePadrao .= "'\'".$ColunaPrimariaAtual->getColuna()."\':\''.\$".$_tabela_bd->getTabela()."->get".$nome_colunaComposta_fk."()";
										//$ifSeTemRegNoValue .= "! empty(\$".$_tabela_bd->getTabela()."->get".$nome_colunaComposta_fk."()";
										$ifSeTemRegNoValue .= " \$".$_tabela_bd->getTabela()."->get".$nome_colunaComposta_fk."()";
										$ifSeTemRegNoValueInput .= "\$".$_tabela_bd->getTabela()."->get".$nome_colunaComposta_fk."()";
										if ($ColunaPrimariaAtual->getTipo() == "tabela")
										{
											//$nome_colunaComposta_pk = strtoupper(substr($ColunaPrimariaAtual->getTipoColunaPrimaria()->getColuna(),0,1)).substr($ColunaPrimariaAtual->getTipoColunaPrimaria()->getColuna(),1);
											//$valuePadrao .= "->get".$nome_colunaComposta_pk."()";
										}
									    if ($colunaEsrangeiraatual->getTipo() == "tabela" and $colunaEsrangeiraatual->getColunaOrigem()->getId() == "")// empty($colunaEsrangeiraatual->getColunaOrigem()->getId()))
										{
											$nome_colunaComposta_fk = strtoupper(substr($colunaEsrangeiraatual->getTipoColunaPrimaria()->getColuna(),0,1)).substr($colunaEsrangeiraatual->getTipoColunaPrimaria()->getColuna(),1);
											$valuePadrao .= "->get".$nome_colunaComposta_fk."()";
											$ifSeTemRegNoValue .= "->get".$nome_colunaComposta_fk."()";
											$ifSeTemRegNoValueInput  .= "->get".$nome_colunaComposta_fk."()";
										}
										$ifSeTemRegNoValue .= ") != '' ";
										$ifSeTemRegNoValueInput .= " != '' ";
										if ($colunafkatual != $colunas[$i]->getListaColunaComposta()[count($colunas[$i]->getListaColunaComposta())-1])
										{
											//$valueSelect .= ". '\",'. ";
											$valuePadrao .= ". '\','. ";
											$ifSeTemRegNoValue .= " or ";
											$ifSeTemRegNoValueInput .= " or ";
										}
									}
									//$valueSelect .= ".'\"}' ";
									$valuePadrao .= ".'\'}' ";
									$ifSeTemRegNoValue .= ")";
									
								}
							if ($ifSeTemRegNoValue == "")//empty($ifSeTemRegNoValue))
							{
								$ifSeTemRegNoValue = "if (".$valuePadrao." != \"\") ";
							}
							if ($colunas[$i]->getMultiRegistros() == '1')
							{
								
								$nomeDaFuncaoBuscar = "buscar".$nome_tabela_fk."Por".$nome_coluna_fk;
								$diretorio_view = "src/controller/".$nome_tabela_atual."Controller.php?mod=".$nomeDaFuncaoBuscar;
								$phpValorPadrao = '$'.$_tabela_bd->getTabela().'->get'.$nome_coluna.'()->get'.$nome_coluna_pk.'()';
								$ifSeTemRegNoValueInput = $phpValorPadrao." != ''"; 
								$coluna_form .= 'type="hidden"';
								$valuesPadrao = "value=\"<?php  ".$ifSeTemRegNoValue."{echo ".$valuePadrao.";}?>\""; 
								$valuesPadrao .= " valueDefault=\"<?php  ".$ifSeTemRegNoValue."{echo ".$valuePadrao.";}?>\"";
								$fimTag .= "\n		<br>";
								$fimTag .= "\n		<div class='filtroForm formGroup'  >";
								$fimTag .= "\n			<input class=\"datalist ".$class."\" id=\"formdatalist".$colunas[$i]->getColuna()."\" list=\"datalist".$colunas[$i]->getColuna()."\" ".$colunas[$i]->getLeitura()." ".$colunas[$i]->getObrigatorio()."  placeholder=\"Pesquisa...\" valuePost=\"".$colunas[$i]->getColuna()."\" requisicao=\"".$diretorio_view."\"";
								$fimTag .= " valueDefault=\"<?php echo $".$_tabela_bd->getTabela()."->get".$nome_coluna."()->get".$nome_coluna_fk_ultimo_nivel."();?>\"";
								$fimTag .= " value=\"<?php echo $".$_tabela_bd->getTabela()."->get".$nome_coluna."()->get".$nome_coluna_fk_ultimo_nivel."();?>\" />";
								$fimTag .= "\n			<button type=\"button\" class=\"fa fa-search btnPrimary\" aria-hidden=\"true\" onclick=\"buscarListaValor('formdatalist".$colunas[$i]->getColuna()."', 'datalist".$colunas[$i]->getColuna()."', 'form')\"></button>";
								$fimTag .= "\n			<div id=\"datalist".$colunas[$i]->getColuna()."\" class=\"dataListCustom\"></div>";
								$fimTag .= "\n		</div> ";
							}
							else
							{	
								$valueSelect = " \$umRegistro".$nome_coluna_fk."->get".$nome_coluna_pk."()";
								$valuePadrao = ' $'.$_tabela_bd->getTabela().'->get'.$nome_coluna.'()->get'.$nome_coluna_pk.'()';
								if ($colunas[$i]->getComposta() == "1") //se for composta o valor é um array
								{
									$valueSelect = " '{'.";
									$valuePadrao =" '{'.";
									foreach($colunas[$i]->getListaColunaComposta() as $colunafkatual)
									{
										$colunaEsrangeiraatual = $colunafkatual->getColunaEstrangeira();
										$ColunaPrimariaAtual =  $colunafkatual->getColunaPrimaria();
										
										$nome_colunaComposta_pk = strtoupper(substr($ColunaPrimariaAtual->getColuna(),0,1)).substr($ColunaPrimariaAtual->getColuna(),1);
										$nome_colunaComposta_fk = strtoupper(substr($colunaEsrangeiraatual->getColuna(),0,1)).substr($colunaEsrangeiraatual->getColuna(),1);
										
										$valueSelect .= "'\"".$ColunaPrimariaAtual->getColuna()."\":\"'.\$umRegistro".$nome_coluna_fk."->get".$nome_colunaComposta_pk."()";
										$valuePadrao .= "'\"".$ColunaPrimariaAtual->getColuna()."\":\"'.\$".$_tabela_bd->getTabela()."->get".$nome_colunaComposta_fk."()";
										if ($ColunaPrimariaAtual->getTipo() == "tabela")
										{
											$nome_colunaComposta_pk = strtoupper(substr($ColunaPrimariaAtual->getTipoColunaPrimaria()->getColuna(),0,1)).substr($ColunaPrimariaAtual->getTipoColunaPrimaria()->getColuna(),1);
											//$nome_colunaComposta_fk = strtoupper(substr($ColunaPrimariaAtual->getTipoColunaPrimaria()->getColuna(),0,1)).substr($ColunaPrimariaAtual->getTipoColunaPrimaria()->getColuna(),1);
											$valueSelect .= "->get".$nome_colunaComposta_pk."()";
											//$valuePadrao .= "->get".$nome_colunaComposta_fk."()";
										}
									    if ($colunaEsrangeiraatual->getTipo() == "tabela" and $colunaEsrangeiraatual->getColunaOrigem()->getId() == "")//empty($colunaEsrangeiraatual->getColunaOrigem()->getId()))
										{
											$nome_colunaComposta_fk = strtoupper(substr($colunaEsrangeiraatual->getTipoColunaPrimaria()->getColuna(),0,1)).substr($colunaEsrangeiraatual->getTipoColunaPrimaria()->getColuna(),1);
											$valuePadrao .= "->get".$nome_colunaComposta_fk."()";
										}
										if ($colunafkatual != $colunas[$i]->getListaColunaComposta()[count($colunas[$i]->getListaColunaComposta())-1])
										{
											$valueSelect .= ". '\",'. ";
											$valuePadrao .= ". '\",'. ";
										}
									}
									$valueSelect .= ".'\"}' ";
									$valuePadrao .= ".'\"}' ";
								}
								
								$phpValorPadrao = '$'.$_tabela_bd->getTabela().'->get'.$nome_coluna.'()->get'.$nome_coluna_pk.'()';
								$coluna_form = "		<select ";
								$coluna_form .= '';	
								$valuesPadrao = 'value=\'<?php echo '.$valuePadrao.';?>\''; 
								$valuesPadrao .= ' valueDefault=\'<?php echo '.$valuePadrao.';?>\''; 
								$fimTag = ">\n";
								$fimTag .= "			<option value=\"\"></option>\n";
								$fimTag .= "			<?php foreach (\$lista".$nome_coluna."  as \$umRegistro".$nome_coluna_fk."){ ?>\n";
								$fimTag .= "					<option value='<?php echo $valueSelect; ?>'><?php echo \$umRegistro".$nome_coluna_fk."->get".$nome_coluna_fk."(); ?></option>\n";
								$fimTag .= "			<?php } ?>\n";
								
								$fimTag .= " 		</select>\n"
								;
							}	
						break;
					}
					if($colunas[$i]->getAutoIncrementar() == "1")
					{
						$coluna_form .= ' readonly ';
					}
					if ($colunas[$i]->getIndice() == "PRIMARY")
					{
						$coluna_form .= " <?php if (\$mod == \"alterar\" or ".$ifSeTemRegNoValueInput."){echo 'readonly=\"readonly\" tabindex=\"-1\" aria-disabled=\"true\" ';} ?>";
					}
				
					$campo_obiratorio = "";
					if ($colunas[$i]->getObrigatorio() != "")
					{	
						$campo_obiratorio = "<span class=\"form_obrigatorio\">*</span>";
					}
					$formulario.="		<label>".$campo_obiratorio.$colunas[$i]->getDescricao()."</label>\n";
					//cria label em compos normais
				//}	
					
				$placeholder = $colunas[$i]->getDescricao();
				if ($colunas[$i]->getMascara() != "")
				{
					$class .= " mask";
					$mascara = 'data-mask="'.$colunas[$i]->getMascara().'"';
					$placeholder = $colunas[$i]->getMascara();
				}	
				
				$coluna_form .= ' class="'.$class.'" name="'.$colunas[$i]->getColuna().'" placeholder="'.$placeholder.'" '.$mascara.' '.$mascaraReverse.' '.$colunas[$i]->getLeitura(). ' '.$colunas[$i]->getObrigatorio(). ' ';
				$coluna_form .= $valuesPadrao;
				$coluna_form .= ' '.$eventoClick.' '.$fimTag;
				$coluna_form .= $htmlFinal;
				$formulario.= $coluna_form."\n";
				$formulario.="	</div> \n";
			}
					
		}	
		
		//trabalhar com grid editavel carga de tabela
		foreach($_lista_carga_tabela as $_carga_tabela)
		{
			$nome_classe = strtoupper(substr($_carga_tabela->getTabelaCarregada()->getTabela(),0,1)).substr($_carga_tabela->getTabelaCarregada()->getTabela(),1);
			$listaColunasCarregada = $_carga_tabela->getTabelaCarregada()->getLista_colunas();
			$formulario .= "<div class=\"div_grid_editavel\" id=\"div_grid_editavel".$_carga_tabela->getTabelaCarregada()->getTabela()."\">\n ";
			$formulario .= "<b>".$_carga_tabela->getTabelaCarregada()->getDescricao()."</b>";
			$formulario .= "<table class=\"table table_grid_editavel\" id=\"listtable".$_carga_tabela->getTabelaCarregada()->getTabela()."\"  >\n";
			$colunas = $listaColunasCarregada;
			$formulario .= "	<thead>\n";
			$formulario .= "		<tr class=\"tableHead\">\n";
			//$formulario .= "			<td>Editar</td>\n";
			$formulario .= "			<td>Excluir</td>\n";
			if (count($_lista_carga_tabela) > 0) 
			{
				//$formulario .= "			<td></td>\n";
			}	
			for ($i=0; $i <count($colunas); $i++)
			{	
				if ($colunas[$i]->getTipo() != "md5" and $colunas[$i]->getNaoExibirTabela() != "1")
				{	
					$nome_coluna = strtoupper(substr($colunas[$i]->getColuna(),0,1)).substr($colunas[$i]->getColuna(),1);
					$formulario .= "			<td style='min-width: ".(strlen($colunas[$i]->getDescricao()) * 5)."px;'>".$colunas[$i]->getDescricao()."</td>\n";
				}	
			}
			//$coluna_primary = $buscar_coluna_primary->buscar($_tabela_bd)->getColuna();
			
			$formulario .= "		</tr>\n";
			$formulario .= "	</thead>\n";
			$formulario .= "	<tbody id=\"resultado$nome_classe\">\n";
			$formulario .= "	</tbody>\n";
			$formulario .= "</table>\n";
			$formulario .= "</div>";	
			$formulario .= "<?php\n";
			//$formulario .= "	$item = 0;";
			//$formulario .= "    foreach($listaItem_pedido as $item_pedido) {}";
			$formulario .= "?>\n";
			$formulario .= "<button type=\"button\" onclick=\"addItem$nome_classe()\" class=\"btnPrimary\">+ Adicionar item</button>\n";	
			$formulario .= "<input type=\"text\" name=\"qtd_linhas$nome_classe\" id=\"qtd_linhas$nome_classe\"  class='display_none' />\n";
			//style=\"display: none;\"
		}
		
		//fim grid
		
		$formulario .= "</form>\n";
		//trabalhar com grid editavel carga de tabela
		foreach($_lista_carga_tabela as $_carga_tabela)
		{
			$nome_classe = strtoupper(substr($_carga_tabela->getTabelaCarregada()->getTabela(),0,1)).substr($_carga_tabela->getTabelaCarregada()->getTabela(),1);
			/*$formulario .= "<?php $". strtolower($nome_dir)." = new $nome_dir(); ?>\n"; */
			
			$formulario .=  "<div id='colunas_grid_editavel_".strtolower($nome_classe)."' class='display_none'>  ";
			$lista_coluna_primary  = $buscar_coluna_primary->buscar($_carga_tabela->getTabelaCarregada());
			//$formulario .=  $this->montarArquivo_grid($_carga_tabela->getTabelaCarregada(), $nome_classe, $funcoes_data, array());
			/*$formulario .= "<?php \$_GET['mod'] = 'form'; \$_GET[\"pedido\"] =\$pedido->getCodigo(); require_once(\$config->diretorio_raiz().\"/src/controller/".$nome_classe."Controller.php\"); ?> \n";*/
			$formulario .=  "</div>  \n";
			$formulario .= "<script>\n";
			$formulario .= "	lista_item$nome_classe = <?php echo json_encode(\$lista_js_grid_editavel$nome_classe);?>;		\n";
			$formulario .= "    nome_contador$nome_classe = 'listtable".$_carga_tabela->getTabelaCarregada()->getTabela()."';	\n";
			$formulario .= "    tempNamespaceContadorLinhaGrid[nome_contador$nome_classe] = 0; \n";
			$link = "src/controller/".$nome_classe."Controller.php?mod=form";
			$formulario .= "    lista_campos_nao_obrigatorios$nome_classe = [];\n";
			$listaColunasCarregada = $_carga_tabela->getTabelaCarregada()->getLista_colunas();
			$colunas = $listaColunasCarregada;
			for ($i=0; $i <count($colunas); $i++)
			{
				if($colunas[$i]->getTipo() == "tabela" and $colunas[$i]->getTipoTabela()->getId() == $_tabela_bd->getId())
				{
					$formulario .= "    lista_campos_nao_obrigatorios$nome_classe.push('".$colunas[$i]->getColuna()."');\n";
				}
			}
			$formulario .= "    link_item$nome_classe = '".$link."'; \n";
			$formulario .= "    campo_chave$nome_classe= '".$lista_coluna_primary[0]->getColuna()."'; \n";
			$formulario .= "    seletor_contendo_colunas_item$nome_classe = 'colunas_grid_editavel_".strtolower($nome_classe)."'; \n";
			$formulario .= "    input_manter_qtd_linhas$nome_classe = 'qtd_linhas".$nome_classe."'; \n";
			$formulario .= "    table$nome_classe = '#listtable".strtolower($nome_classe)."'; \n";
			$formulario .= "    seletor$nome_classe = 'div_grid_editavel".strtolower($nome_classe)."'; \n";
			$formulario .= "    inicia_grid_editavel(seletor$nome_classe, table$nome_classe, lista_item$nome_classe, link_item$nome_classe, campo_chave$nome_classe, seletor_contendo_colunas_item$nome_classe, input_manter_qtd_linhas$nome_classe, nome_contador$nome_classe, lista_campos_nao_obrigatorios$nome_classe); \n";
			$formulario .= "    function addItem$nome_classe() \n";
			$formulario .= "    { \n";
			$formulario .= "    	add_item_grid_editavel(link_item$nome_classe, seletor_contendo_colunas_item$nome_classe, input_manter_qtd_linhas$nome_classe, table$nome_classe, nome_contador$nome_classe, lista_campos_nao_obrigatorios$nome_classe) ; \n";
			$formulario .= "    } \n";
			
			/*$formulario .= "<script>\n";
			$formulario .= "	inicia_grid_editavel(\"div_grid_editavel".$_carga_tabela->getTabelaCarregada()->getTabela()."\", '#listtable".$_carga_tabela->getTabelaCarregada()->getTabela()."');\n";
			/*$formulario .= "   item = <?php echo $item; ?>;";*/
			/*$formulario .= "    item = 0\n";
			$formulario .= "    function addItem$nome_classe() \n";
			$formulario .= "    {\n";
			$formulario .= "   		item += 1;\n";
			$formulario .= "   		$(\"#qtd_linhas$nome_classe\").val(item);\n";
			$formulario .= "   		htmlItem = \"<tr>\";\n";
			//$formulario .= "   		alert(\"a\")\n";
			//monta tabela
			$formulario .= "   		$(\"#formDados".strtolower($nome_classe)." .filtroForm\").each(function(i){\n";
			$formulario .= "   		    if($(this).parent().attr(\"class\") != \"filtroForm\") {htmlItem += \"<td>\"+$(this).html().replace('name=\"', 'name=\"'+item+'').replace('id=\"', 'id=\"'+item+'') +\"</td>\";}\n";
			$formulario .= "   		   //alert($(this).html())\n";
			$formulario .= "   		});\n";
			$formulario .= "   		 htmlItem += \"</tr>\";\n";
			$formulario .= "   		$(\"#listtable".strtolower($nome_classe)."\").append(htmlItem);\n";*/
			//bloqueia para não digitar no campo do vinculo
			
			for ($i=0; $i <count($colunas); $i++)
			{
				
				if($colunas[$i]->getTipo() == "tabela" and $colunas[$i]->getTipoTabela()->getId() == $_tabela_bd->getId())
				{
					//echo $colunas[$i]->getTabela()."  -";
					///////////$formulario .= "   		$('#'+item+'formdatalist".$colunas[$i]->getColuna()."').css('display','none');\n";
					///////////$formulario .= "   		$(\"#resultado$nome_classe\").find('input[name=\"'+item+'".$colunas[$i]->getColuna()."\"]').prop('required',false);\n";
					///////////$formulario .= "   		$('#'+item+'formdatalist".$colunas[$i]->getColuna()."').prop('required',false);\n";
					//$formulario .= "   		$(\"#formDados".strtolower($nome_classe)." input\").each(function(i){\n";
					//$formulario .= "   			$(this).attr('name', $(this).attr('name')+item);\n";
					//$formulario .= "   		});\n";
				}
			}
			
			//
			//$formulario .= "   }\n";
			$formulario .= "</script>\n";
		
		}
		
		/*$formulario.="<br>\n";
		$formulario.="<button class=\"btnSuccess  btnNovo\" id=\"btnNovo\" onclick=\"atualizaSeletor('src/controller/".$nome_dir."Controller.php?mod=form<?php if (isset(\$campo_buscar)) {echo \$campo_buscar;}?>','#conteudo')\" >Novo</button>\n";
		$formulario.="<button class=\"btnDanger  btnExcluir\" id=\"btnExcluir\" <?php echo \$ventoExcluir;?> >Excluir </button>\n";
		$formulario.="<button class=\"btnDanger  btnCancelar\" id=\"btnCancelar\" disabled>Cancelar </button>\n";
		$formulario.="<button class=\"btnSuccess  btnSalvar\" id=\"btnSalvar\" disabled onclick=\"salvarDados('formDados".$_tabela_bd->getTabela()."')\">Salvar </button>\n";*/
		$formulario .= "<script src=\"js/formulario.js\"></script>";
		return $formulario;
		
	}
	
	function montarArquivo_grid($_tabela_bd, $nome_dir, $funcoes_data, $_lista_carga_tabela)
	{
		$buscar_coluna_primary = new Buscar_coluna_primary();
		///".$_tabela_bd->getTabela()->getId()." buscar o campo chave primária
		//abrirFormulario('src/view/atabelateste/Formulario.php?mod=form&id=42') javascript con colsole para testar
		//abrirFormulario('src/controller/AtabelatesteController.php?mod=form&id=1')
		$lista_coluna_primary = $coluna_primary = $buscar_coluna_primary->buscar($_tabela_bd);
		////$coluna_primary = $buscar_coluna_primary->buscar($_tabela_bd)->getColuna();
		////$nome_coluna_fk = strtoupper(substr($coluna_primary,0,1)).substr($coluna_primary,1);
		$if_excluir_formulario = "";
		$var_excluir = "";
		$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);
			
			$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."()";
			}
			
			//$if_excluir_formulario .= "\$".$_tabela_bd->getTabela()."->get".$nome_coluna_fk."()".$campoFinal." != \"\"";
			$var_excluir .= "&".$coluna->getColuna()."='.\$".$_tabela_bd->getTabela()."->get".$nome_coluna_fk."()".$campoFinal;
			
			if ($coluna != $lista_coluna_primary[count($lista_coluna_primary)-1])
			{
				//$if_excluir_formulario .= $operador;
				$var_excluir .= ".'";
			}
		}
		$formulario = "";
		/*$formulario = "<div id=\"statusRequisicao\" ></div>\n"; 
		$formulario .="<div style='border-bottom: solid 1px #cccccc;'><b>".$_tabela_bd->getDescricao()."</b></div><br>";
		$formulario .= "<?php\n"; 
		$formulario.="\$ventoExcluir = \"disabled\";\n";
		$formulario.="\$mod = \"salvar\";\n";
		//$formulario.="if (\$".$_tabela_bd->getTabela()."->get".$nome_coluna_fk."() != \"\")\n";
		//$formulario.="if (".$if_excluir_formulario.")\n";
		$formulario.="if (isset(\$_GET['alterar']))\n";
		$formulario.="{\n";
		//$formulario.="	\$ventoExcluir = 'onclick=\"excluirDados(\'src/controller/".$nome_dir."Controller.php?mod=excluir&id='.\$".$_tabela_bd->getTabela()."->get".$nome_coluna_fk."().'\')\"'; \n";
		$formulario.="	\$ventoExcluir = 'onclick=\"excluirDados(\'src/controller/".$nome_dir."Controller.php?mod=excluir".$var_excluir.".'\')\"'; \n";
		$formulario.="  \$mod = \"alterar\";\n";
		$formulario.="}\n";
		$formulario.="\n";
		$formulario.="?>\n";
		/*$formulario.="<button class=\"btnSuccess btnXs btnNovo\" id=\"btnNovo\" onclick=\"javaScript:abrirFormulario('src/controller/".$nome_dir."Controller.php?mod=form<?php if (isset(\$campo_buscar)) {echo \$campo_buscar;}?>')\" >Novo</button>\n";
		*/
		/*
		$formulario.="<button class=\"btnSuccess  btnNovo abrir_modal\" abrir-modal=\"#modaleditar\" id=\"btnNovo\" onclick=\"atualizaSeletor('src/controller/".$nome_dir."Controller.php?carragar_formulario_seletor=<?php echo \$_GET['carragar_formulario_seletor'];?>&mod=form<?php if (isset(\$campo_buscar)) {echo str_replace(\"'\",\"\'\",\$campo_buscar);}?>','#<?php echo \$_GET['carragar_formulario_seletor'];?>')\" >Novo</button>\n";
		$formulario.="<button class=\"btnDanger  btnExcluir\" id=\"btnExcluir\" <?php echo \$ventoExcluir;?> >Excluir </button>\n";
		$formulario.="<button class=\"btnDanger  btnCancelar\" id=\"btnCancelar\" disabled>Cancelar </button>\n";
		$formulario.="<button class=\"btnSuccess  btnSalvar\" id=\"btnSalvar\" disabled onclick=\"salvarDados('formDados".$_tabela_bd->getTabela()."')\">Salvar </button>\n";
		$formulario.="<br><br>\n";
		$formulario.="<form action='src/controller/".$nome_dir."Controller.php?mod=<?php echo \$mod;?>' id=\"formDados".$_tabela_bd->getTabela()."\">\n";
		*/
		$formulario .= "<?php $". strtolower($nome_dir)." = new $nome_dir(); ?>\n"; 
		$colunas = $_tabela_bd->getLista_colunas();
		for ($i=0; $i <count($colunas); $i++)
		{
			if ($colunas[$i]->getColunaOrigem()->getId() == "")//empty($colunas[$i]->getColunaOrigem()->getId()))
			{	
				if ($colunas[$i]->getNovaLinha() == "1")
				{
					//$formulario.="	<br> \n";	
				}
				$nome_coluna = strtoupper(substr($colunas[$i]->getColuna(),0,1)).substr($colunas[$i]->getColuna(),1);
				$class = "form";
				$coluna_form = "		<input ";
				$mascara = "";
				$mascaraReverse = "";
				$eventoClick = "";
				$valuesPadrao = 'value="<?php echo $'.$_tabela_bd->getTabela().'->get'.$nome_coluna.'();?>" valueDefault="<?php echo $'.$_tabela_bd->getTabela().'->get'.$nome_coluna.'();?>"';
				$phpValorPadrao = '$'.$_tabela_bd->getTabela().'->get'.$nome_coluna.'()';
				$htmlFinal = "";
				$fimTag = "/>";
				$ifSeTemRegNoValueInput = $phpValorPadrao." != ''"; 
				//if ($colunas[$i]->getIndice() == "PRIMARY")
				//{
					//$coluna_form .= 'type="hidden"';
					//$formulario .="	<div>\n";
				//}
				//else
				//{
					//fazer o aut increment ficar bloqueado
					//$formulario .="  <td> \n";
					$formulario .="	<div class='filtroForm' >\n";
					switch($colunas[$i]->getTipo())
					{
						case "BIGINT":
							$coluna_form .= 'type="text"';
							$colunas[$i]->setMascara('000000000000');
						break;
						case "int":
							$coluna_form .= 'type="text"';
							$colunas[$i]->setMascara('000000000000000000000000');
						break;
						case "varchar":
							$coluna_form .= 'type="text"';
						break;
						case "float":
							$coluna_form .= 'type="text"';
							$colunas[$i]->setMascara('000.000.000.000.000,00');
							$mascaraReverse = "data-mask-reverse=\"true\"";
						break;
						case "TINYINT":
							$coluna_form .= 'type="checkbox"';
							$class = "";
							$eventoClick = "onclick=\"checkboxForm(this);\"";
							$htmlFinal .= " <br>";
						break;
						case "md5":
							$coluna_form .= 'type="password"';
							$valuesPadrao = 'value="" valueDefault=""';
						break;
						case "data":
							if($colunas[$i]->getIndice() == "DATAATUAL" or $colunas[$i]->getIndice() == "DATACRIACAO")
							{
								$coluna_form .= 'type="text" readonly';
							}	
							$valuesPadrao = 'value="<?php if ($'.$_tabela_bd->getTabela().'->get'.$nome_coluna.'() instanceof DateTime) {echo $'.$_tabela_bd->getTabela().'->get'.$nome_coluna.'()->format(\''.$funcoes_data->converterDataMaskParaDataPHP($colunas[$i]->getMascara()).'\');}?>"'; 
							$valuesPadrao .= ' valueDefault="<?php if ($'.$_tabela_bd->getTabela().'->get'.$nome_coluna.'() instanceof DateTime) {echo $'.$_tabela_bd->getTabela().'->get'.$nome_coluna.'()->format(\''.$funcoes_data->converterDataMaskParaDataPHP($colunas[$i]->getMascara()).'\');}?>"';
						break;
						case "tabela":
							$nome_coluna_fk = strtoupper(substr($colunas[$i]->getTipoColuna()->getColuna(),0,1)).substr($colunas[$i]->getTipoColuna()->getColuna(),1);
							$nome_coluna_fk_ultimo_nivel = $this->buscaNomeColuna($colunas[$i]);
							$nome_tabela_fk = strtoupper(substr($colunas[$i]->getTipoTabela()->getTabela(),0,1)).substr($colunas[$i]->getTipoTabela()->getTabela(),1);
							$coluna_primary = $colunas[$i]->getTipoColunaPrimaria()->getColuna();//$buscar_coluna_primary->buscar($colunas[$i]->getTipoTabela())->getColuna();
							$nome_coluna_pk = strtoupper(substr($coluna_primary,0,1)).substr($coluna_primary,1);
							$nome_tabela_atual = strtoupper(substr($_tabela_bd->getTabela(),0,1)).substr($_tabela_bd->getTabela(),1);
							//$valueSelect = " $".$_tabela_bd->getTabela()."->get".$nome_coluna."()->get".$nome_coluna_fk_ultimo_nivel."()";
							
							$nome_coluna_fk_ultimo_nivel_primary = $this->buscaNomeColunaPrimaria($colunas[$i]);
							$valuePadrao = " $".$_tabela_bd->getTabela()."->get".$nome_coluna."()->get".$nome_coluna_fk_ultimo_nivel_primary."()";
							$ifSeTemRegNoValueInput = $valuePadrao." != ''"; 
							$ifSeTemRegNoValue = "";
							if ($colunas[$i]->getComposta() == "1") //se for composta o valor é um array
								{
									//$valueSelect = " '{'.";
									$valuePadrao =" '{'.";
									$ifSeTemRegNoValue = " if (";
									$ifSeTemRegNoValueInput = ""; 
									foreach($colunas[$i]->getListaColunaComposta() as $colunafkatual)
									{
										$colunaEsrangeiraatual = $colunafkatual->getColunaEstrangeira();
										$ColunaPrimariaAtual =  $colunafkatual->getColunaPrimaria();
										
										$nome_colunaComposta_pk = strtoupper(substr($ColunaPrimariaAtual->getColuna(),0,1)).substr($ColunaPrimariaAtual->getColuna(),1);
										$nome_colunaComposta_fk = strtoupper(substr($colunaEsrangeiraatual->getColuna(),0,1)).substr($colunaEsrangeiraatual->getColuna(),1);
										
										//$valueSelect .= "'\"".$ColunaPrimariaAtual->getColuna()."\":\"'.\$umRegistro".$nome_coluna_fk."->get".$nome_colunaComposta_pk."()";
										$valuePadrao .= "'\'".$ColunaPrimariaAtual->getColuna()."\':\''.\$".$_tabela_bd->getTabela()."->get".$nome_colunaComposta_fk."()";
										//$ifSeTemRegNoValue .= "! empty(\$".$_tabela_bd->getTabela()."->get".$nome_colunaComposta_fk."()";
										$ifSeTemRegNoValue .= " \$".$_tabela_bd->getTabela()."->get".$nome_colunaComposta_fk."()";
										$ifSeTemRegNoValueInput .= "\$".$_tabela_bd->getTabela()."->get".$nome_colunaComposta_fk."()";
										if ($ColunaPrimariaAtual->getTipo() == "tabela")
										{
											//$nome_colunaComposta_pk = strtoupper(substr($ColunaPrimariaAtual->getTipoColunaPrimaria()->getColuna(),0,1)).substr($ColunaPrimariaAtual->getTipoColunaPrimaria()->getColuna(),1);
											//$valuePadrao .= "->get".$nome_colunaComposta_pk."()";
										}
									    if ($colunaEsrangeiraatual->getTipo() == "tabela" and $colunaEsrangeiraatual->getColunaOrigem()->getId() == "")// empty($colunaEsrangeiraatual->getColunaOrigem()->getId()))
										{
											$nome_colunaComposta_fk = strtoupper(substr($colunaEsrangeiraatual->getTipoColunaPrimaria()->getColuna(),0,1)).substr($colunaEsrangeiraatual->getTipoColunaPrimaria()->getColuna(),1);
											$valuePadrao .= "->get".$nome_colunaComposta_fk."()";
											$ifSeTemRegNoValue .= "->get".$nome_colunaComposta_fk."()";
											$ifSeTemRegNoValueInput  .= "->get".$nome_colunaComposta_fk."()";
										}
										$ifSeTemRegNoValue .= ") != '' ";
										$ifSeTemRegNoValueInput .= " != '' ";
										if ($colunafkatual != $colunas[$i]->getListaColunaComposta()[count($colunas[$i]->getListaColunaComposta())-1])
										{
											//$valueSelect .= ". '\",'. ";
											$valuePadrao .= ". '\','. ";
											$ifSeTemRegNoValue .= " or ";
											$ifSeTemRegNoValueInput .= " or ";
										}
									}
									//$valueSelect .= ".'\"}' ";
									$valuePadrao .= ".'\'}' ";
									$ifSeTemRegNoValue .= ")";
									
								}
							if ($ifSeTemRegNoValue == "")//empty($ifSeTemRegNoValue))
							{
								$ifSeTemRegNoValue = "if (".$valuePadrao." != \"\") ";
							}
							if ($colunas[$i]->getMultiRegistros() == '1')
							{
								
								$nomeDaFuncaoBuscar = "buscar".$nome_tabela_fk."Por".$nome_coluna_fk;
								$diretorio_view = "src/controller/".$nome_tabela_atual."Controller.php?mod=".$nomeDaFuncaoBuscar;
								$phpValorPadrao = '$'.$_tabela_bd->getTabela().'->get'.$nome_coluna.'()->get'.$nome_coluna_pk.'()';
								$ifSeTemRegNoValueInput = $phpValorPadrao." != ''"; 
								$coluna_form .= 'type="hidden"';
								$valuesPadrao = "value=\"<?php  ".$ifSeTemRegNoValue."{echo ".$valuePadrao.";}?>\""; 
								$valuesPadrao .= " valueDefault=\"<?php  ".$ifSeTemRegNoValue."{echo ".$valuePadrao.";}?>\"";
								$fimTag .= "\n		<br>";
								$fimTag .= "\n		<div class='filtroForm formGroup'  >";
								$fimTag .= "\n			<input class=\"datalist ".$class."\" id=\"formdatalist".$colunas[$i]->getColuna()."\" list=\"datalist".$colunas[$i]->getColuna()."\" ".$colunas[$i]->getLeitura()." ".$colunas[$i]->getObrigatorio()."  placeholder=\"Pesquisa...\" valuePost=\"".$colunas[$i]->getColuna()."\" requisicao=\"".$diretorio_view."\"";
								$fimTag .= " valueDefault=\"<?php echo $".$_tabela_bd->getTabela()."->get".$nome_coluna."()->get".$nome_coluna_fk_ultimo_nivel."();?>\"";
								$fimTag .= " value=\"<?php echo $".$_tabela_bd->getTabela()."->get".$nome_coluna."()->get".$nome_coluna_fk_ultimo_nivel."();?>\" />";
								$fimTag .= "\n			<button type=\"button\" class=\"fa fa-search btnPrimary\" aria-hidden=\"true\" onclick=\"buscarListaValor('formdatalist".$colunas[$i]->getColuna()."', 'datalist".$colunas[$i]->getColuna()."', 'form')\"></button>";
								$fimTag .= "\n			<div id=\"datalist".$colunas[$i]->getColuna()."\" class=\"dataListCustom\"></div>";
								$fimTag .= "\n		</div> ";
							}
							else
							{	
								$valueSelect = " \$umRegistro".$nome_coluna_fk."->get".$nome_coluna_pk."()";
								$valuePadrao = ' $'.$_tabela_bd->getTabela().'->get'.$nome_coluna.'()->get'.$nome_coluna_pk.'()';
								if ($colunas[$i]->getComposta() == "1") //se for composta o valor é um array
								{
									$valueSelect = " '{'.";
									$valuePadrao =" '{'.";
									foreach($colunas[$i]->getListaColunaComposta() as $colunafkatual)
									{
										$colunaEsrangeiraatual = $colunafkatual->getColunaEstrangeira();
										$ColunaPrimariaAtual =  $colunafkatual->getColunaPrimaria();
										
										$nome_colunaComposta_pk = strtoupper(substr($ColunaPrimariaAtual->getColuna(),0,1)).substr($ColunaPrimariaAtual->getColuna(),1);
										$nome_colunaComposta_fk = strtoupper(substr($colunaEsrangeiraatual->getColuna(),0,1)).substr($colunaEsrangeiraatual->getColuna(),1);
										
										$valueSelect .= "'\"".$ColunaPrimariaAtual->getColuna()."\":\"'.\$umRegistro".$nome_coluna_fk."->get".$nome_colunaComposta_pk."()";
										$valuePadrao .= "'\"".$ColunaPrimariaAtual->getColuna()."\":\"'.\$".$_tabela_bd->getTabela()."->get".$nome_colunaComposta_fk."()";
										if ($ColunaPrimariaAtual->getTipo() == "tabela")
										{
											$nome_colunaComposta_pk = strtoupper(substr($ColunaPrimariaAtual->getTipoColunaPrimaria()->getColuna(),0,1)).substr($ColunaPrimariaAtual->getTipoColunaPrimaria()->getColuna(),1);
											//$nome_colunaComposta_fk = strtoupper(substr($ColunaPrimariaAtual->getTipoColunaPrimaria()->getColuna(),0,1)).substr($ColunaPrimariaAtual->getTipoColunaPrimaria()->getColuna(),1);
											$valueSelect .= "->get".$nome_colunaComposta_pk."()";
											//$valuePadrao .= "->get".$nome_colunaComposta_fk."()";
										}
									    if ($colunaEsrangeiraatual->getTipo() == "tabela" and $colunaEsrangeiraatual->getColunaOrigem()->getId() == "")//empty($colunaEsrangeiraatual->getColunaOrigem()->getId()))
										{
											$nome_colunaComposta_fk = strtoupper(substr($colunaEsrangeiraatual->getTipoColunaPrimaria()->getColuna(),0,1)).substr($colunaEsrangeiraatual->getTipoColunaPrimaria()->getColuna(),1);
											$valuePadrao .= "->get".$nome_colunaComposta_fk."()";
										}
										if ($colunafkatual != $colunas[$i]->getListaColunaComposta()[count($colunas[$i]->getListaColunaComposta())-1])
										{
											$valueSelect .= ". '\",'. ";
											$valuePadrao .= ". '\",'. ";
										}
									}
									$valueSelect .= ".'\"}' ";
									$valuePadrao .= ".'\"}' ";
								}
								
								$phpValorPadrao = '$'.$_tabela_bd->getTabela().'->get'.$nome_coluna.'()->get'.$nome_coluna_pk.'()';
								$coluna_form = "		<select ";
								$coluna_form .= '';	
								$valuesPadrao = 'value=\'<?php echo '.$valuePadrao.';?>\''; 
								$valuesPadrao .= ' valueDefault=\'<?php echo '.$valuePadrao.';?>\''; 
								$fimTag = ">\n";
								$fimTag .= "			<option value=\"\"></option>\n";
								$fimTag .= "			<?php foreach (\$lista".$nome_coluna."  as \$umRegistro".$nome_coluna_fk."){ ?>\n";
								$fimTag .= "					<option value='<?php echo $valueSelect; ?>'><?php echo \$umRegistro".$nome_coluna_fk."->get".$nome_coluna_fk."(); ?></option>\n";
								$fimTag .= "			<?php } ?>\n";
								
								$fimTag .= " 		</select>\n"
								;
							}	
						break;
					}
					if($colunas[$i]->getAutoIncrementar() == "1")
					{
						$coluna_form .= ' readonly ';
					}
					if ($colunas[$i]->getIndice() == "PRIMARY")
					{
						$coluna_form .= " <?php if (\$mod == \"alterar\" or ".$ifSeTemRegNoValueInput."){echo 'readonly=\"readonly\" tabindex=\"-1\" aria-disabled=\"true\" ';} ?>";
					}
				
					$campo_obiratorio = "";
					/*if ($colunas[$i]->getObrigatorio() != "")
					{	
						$campo_obiratorio = "<span class=\"form_obrigatorio\">*</span>";
					}
					$formulario.="		<label>".$campo_obiratorio.$colunas[$i]->getDescricao()."</label>\n";*/
					//cria label em compos normais
				//}	
					
				$placeholder = $colunas[$i]->getDescricao();
				if ($colunas[$i]->getMascara() != "")
				{
					$class .= " mask";
					$mascara = 'data-mask="'.$colunas[$i]->getMascara().'"';
					$placeholder = $colunas[$i]->getMascara();
				}	
				
				$coluna_form .= ' class="'.$class.'" name="'.$colunas[$i]->getColuna().'" placeholder="'.$placeholder.'" '.$mascara.' '.$mascaraReverse.' '.$colunas[$i]->getLeitura(). ' '.$colunas[$i]->getObrigatorio(). ' ';
				$coluna_form .= $valuesPadrao;
				$coluna_form .= ' '.$eventoClick.' '.$fimTag;
				$coluna_form .= $htmlFinal;
				$formulario.= $coluna_form."\n";
				$formulario.="	</div> \n";
				//$formulario.="</td> \n";
			}
					
		}	
		
		
		//$formulario .= "</form>\n";
		/*$formulario.="<br>\n";
		$formulario.="<button class=\"btnSuccess  btnNovo\" id=\"btnNovo\" onclick=\"atualizaSeletor('src/controller/".$nome_dir."Controller.php?mod=form<?php if (isset(\$campo_buscar)) {echo \$campo_buscar;}?>','#conteudo')\" >Novo</button>\n";
		$formulario.="<button class=\"btnDanger  btnExcluir\" id=\"btnExcluir\" <?php echo \$ventoExcluir;?> >Excluir </button>\n";
		$formulario.="<button class=\"btnDanger  btnCancelar\" id=\"btnCancelar\" disabled>Cancelar </button>\n";
		$formulario.="<button class=\"btnSuccess  btnSalvar\" id=\"btnSalvar\" disabled onclick=\"salvarDados('formDados".$_tabela_bd->getTabela()."')\">Salvar </button>\n";*/
		//$formulario .= "<script src=\"js/formulario.js\"></script>";
		return $formulario;
		
	}
	
	function buscaNomeColuna($coluna)
	{
		$nomeColuna = "";
		
		if ($coluna->getTipoColuna()->getTipo() == "tabela")
		{	
	
			$primeiroNivel = strtoupper(substr($coluna->getTipoColuna()->getTipoTabela()->getTabela(),0,1)).substr($coluna->getTipoColuna()->getTipoTabela()->getTabela(),1);
			$ultimoNivel = strtoupper(substr($coluna->getTipoColuna()->getTipoColuna()->getColuna(),0,1)).substr($coluna->getTipoColuna()->getTipoColuna()->getColuna(),1);
			$nomeColuna =  $primeiroNivel . "()->get".$ultimoNivel;
		}
		else
		{		
			$nomeColuna = strtoupper(substr($coluna->getTipoColuna()->getColuna(),0,1)).substr($coluna->getTipoColuna()->getColuna(),1);
		}	
		return $nomeColuna;
	}
	function buscaNomeColunaPrimaria($coluna)
	{
		$nomeColuna = "";
		
		if ($coluna->getTipoColuna()->getTipo() == "tabela")
		{	
	
			$primeiroNivel = strtoupper(substr($coluna->getTipoColuna()->getTipoTabela()->getTabela(),0,1)).substr($coluna->getTipoColuna()->getTipoTabela()->getTabela(),1);
			$ultimoNivel = strtoupper(substr($coluna->getTipoColuna()->getTipoColunaPrimaria()->getColuna(),0,1)).substr($coluna->getTipoColuna()->getTipoColunaPrimaria()->getColuna(),1);
			$nomeColuna =  $primeiroNivel . "()->get".$ultimoNivel;
		}
		else
		{		
			$nomeColuna = strtoupper(substr($coluna->getTipoColunaPrimaria()->getColuna(),0,1)).substr($coluna->getTipoColunaPrimaria()->getColuna(),1);
		}	
		return $nomeColuna;
	}
}