<?php
require_once("Buscar_coluna_primary.php");
class Gerar_view_listar_arqDAO
{
	function montarArquivo($_tabela_bd, $nome_classe, $funcoes_data, $_lista_carga_tabela)
	{
		$buscar_coluna_primary = new Buscar_coluna_primary();
		$lista_coluna_primary = $buscar_coluna_primary->buscar($_tabela_bd);
		$view = "";
		$view .= "		<?php foreach(\$lista".$nome_classe." as \$".$_tabela_bd->getTabela().") {?>\n";
		$view .= "		<tr class=\"formTab\" >\n";
		$viewsAposAchave = "";
		$vars_url_js = "";
		if (count($_lista_carga_tabela) > 0) 
		{
			$viewsAposAchave .= "			<td>\n";
			$viewsAposAchave .= "				<i class=\"fa fa-chevron-circle-down cargaTabela\" aria-hidden=\"true\">\n";
			$viewsAposAchave .= "				<div class=\"tableCargaTabela\" >\n";
			$viewsAposAchave .= "					<table class=\"table\">\n";
			foreach($_lista_carga_tabela as $_carga_tabela)
			{
				$colunaDaTabelaNpraNqueReferenciaEssa = "";
				$listaColunasCarregada = $_carga_tabela->getTabelaCarregada()->getLista_colunas();
				foreach ($listaColunasCarregada as $conula_n_pra_n)
				{
					if ($conula_n_pra_n->getTipo() == "tabela")
					{	
						//$colunaDaTabelaNpraNqueReferenciaEssa .= $conula_n_pra_n->getTipoTabela()->getId() ." ".$_tabela_bd->getId()." ->";
						if ($conula_n_pra_n->getTipoTabela()->getId() == $_tabela_bd->getId() )
						{
							$colunaDaTabelaNpraNqueReferenciaEssa = $conula_n_pra_n->getColuna();
							break;
						}
					}		
				}	
				$nome_tabela_carregada = strtoupper(substr($_carga_tabela->getTabelaCarregada()->getTabela(),0,1)).substr($_carga_tabela->getTabelaCarregada()->getTabela(),1);
				$vars_url_tr = "";
				$vars_url_js = "";
				$qtdChave = count($lista_coluna_primary);
				$listaChaves = "{";
				$conta =1;
				foreach($lista_coluna_primary as $colunaAtual)
				{
					//if ($colunaAtual->getT)
					$nome_coluna_pk = "get".strtoupper(substr($colunaAtual->getColuna(),0,1)).substr($colunaAtual->getColuna(),1)."()";
					if ($colunaAtual->getTipo() == "tabela")
					{
						$nome_coluna_pk2 = "get".strtoupper(substr($colunaAtual->getTipoColunaPrimaria()->getColuna(),0,1)).substr($colunaAtual->getTipoColunaPrimaria()->getColuna(),1)."()";
						$nome_coluna_pk .= "->".$nome_coluna_pk2;

					}
					$vars_url_tr .= "&".$_tabela_bd->getTabela()."=<?php echo \$".$_tabela_bd->getTabela()."->".$nome_coluna_pk.";?>&".$colunaDaTabelaNpraNqueReferenciaEssa."=<?php echo \$".$_tabela_bd->getTabela()."->".$nome_coluna_pk."?>";
					$vars_url_js .= "&".$colunaDaTabelaNpraNqueReferenciaEssa."=<?php echo \$".$_tabela_bd->getTabela()."->".$nome_coluna_pk."?>";
					$listaChaves .= "\'".$colunaAtual->getColuna()."\':\'<?php echo \$".$_tabela_bd->getTabela()."->".$nome_coluna_pk."?>\'";
					if ($conta < $qtdChave)
					{
						$listaChaves .= ",";
					}
					$conta ++;
				}
				$listaChaves .="}";
				$listaChaves = "&".$colunaDaTabelaNpraNqueReferenciaEssa."=".$listaChaves."" ;
				if ($qtdChave > 1)
				{
					$vars_url_js = $listaChaves;
					$vars_url_tr .= "&".$_tabela_bd->getTabela()."=".$listaChaves;
				}
				//$viewsAposAchave .= "						<tr class=\"formTab abrir_modal\" abrir-modal=\"#modalteste\" onclick=\"atualizaSeletor('src/controller/".$nome_tabela_carregada."Controller.php?mod=filtro".$vars_url_tr."&carragar_formulario_seletor=formulario_esquerda_carga','#formulario_direita_carga'); \n";
				//$viewsAposAchave .= "						atualizaSeletor('src/controller/".$nome_tabela_carregada."Controller.php?carragar_formulario_seletor=formulario_esquerda_carga&mod=form".$vars_url_js."','#formulario_esquerda_carga');\"><td>".$_carga_tabela->getDescricao()."</td></tr>\n";
				$viewsAposAchave .= "						<tr class=\"formTab abrir_modal\" abrir-modal=\"#modalteste".$_tabela_bd->getTabela()."\" onclick=\"atualizaSeletor('src/controller/".$nome_tabela_carregada."Controller.php?mod=filtro".$vars_url_tr."&carragar_formulario_seletor=modal_conteudo".$_carga_tabela->getTabelaCarregada()->getTabela()."','#conteudo_carga_tabela".$_tabela_bd->getTabela()."');\"><td>".$_carga_tabela->getDescricao()."</td></tr> \n";
				
			
			}	
			$viewsAposAchave .= "					</table>\n";
			$viewsAposAchave .= "				</div>\n";
			$viewsAposAchave .= "				</i>\n";
			$viewsAposAchave .= "			</td>\n";
		}
		$colunas = $_tabela_bd->getLista_colunas();
		
		for ($i=0; $i <count($colunas); $i++)
		{	
			if ($colunas[$i]->getNaoExibirTabela() != "1" and $colunas[$i]->getColunaOrigem()->getId() == "" )//empty($colunas[$i]->getColunaOrigem()->getId()))
			{	
				switch ($colunas[$i]->getTipo())
				{
					case "md5":
					
					break;
					case "data":
						$nome_coluna = strtoupper(substr($colunas[$i]->getColuna(),0,1)).substr($colunas[$i]->getColuna(),1);
						$viewsAposAchave .= "			<td><?php if(\$".$_tabela_bd->getTabela()."->get".$nome_coluna."() instanceof DateTime) {echo \$".$_tabela_bd->getTabela()."->get".$nome_coluna."()->format('".$funcoes_data->converterDataMaskParaDataPHP($colunas[$i]->getMascara())."');}?></td>\n";
					break;
					case "tabela":
							$nome_coluna_estrangeira = strtoupper(substr($colunas[$i]->getTipoColuna()->getColuna(),0,1)).substr($colunas[$i]->getTipoColuna()->getColuna(),1);
							$nome_coluna_fk_ultimo_nivel = $this->buscaNomeColuna($colunas[$i]);
							$nome_coluna = strtoupper(substr($colunas[$i]->getColuna(),0,1)).substr($colunas[$i]->getColuna(),1);
							$viewsAposAchave .= "			<td><?php echo \$".$_tabela_bd->getTabela()."->get".$nome_coluna."()->get".$nome_coluna_fk_ultimo_nivel."();?></td>\n";
						break;
					default:
						$nome_coluna = strtoupper(substr($colunas[$i]->getColuna(),0,1)).substr($colunas[$i]->getColuna(),1);
						$viewsAposAchave .= "			<td><?php echo \$".$_tabela_bd->getTabela()."->get".$nome_coluna."();?></td>\n";	
					
				}
			}	
				
		}
		$var_primarias = "";
		foreach($lista_coluna_primary as $colunaAtual)
		{
			$nome_coluna_pk = strtoupper(substr($colunaAtual->getColuna(),0,1)).substr($colunaAtual->getColuna(),1);
			$campoFinal = "";
			$listaChaves = "";
			if ($colunaAtual->getTipo()=="tabela")
			{
				$nome_coluna_pk_final = strtoupper(substr($colunaAtual->getTipoColunaPrimaria()->getColuna(),0,1)).substr($colunaAtual->getTipoColunaPrimaria()->getColuna(),1);
				$campoFinal = "->get".$nome_coluna_pk_final."()";
				$lista_coluna_primary_fk = $buscar_coluna_primary->buscar($colunaAtual->getTipoTabela());
				$qtdChave = count($lista_coluna_primary_fk);
				if ($qtdChave > 0 and $colunaAtual->getComposta() == '1')
				{	
					$listaChaves = "{";
					$conta =1;
					foreach($lista_coluna_primary_fk as $colunaAtualFk)
					{
						//if ($colunaAtual->getT)
						$nome_coluna_pk2 = "get".strtoupper(substr($colunaAtualFk->getColuna(),0,1)).substr($colunaAtualFk->getColuna(),1)."()";
						if ($colunaAtualFk->getTipo() == "tabela")
						{
							$nome_coluna_pk2 = "get".strtoupper(substr($colunaAtualFk->getTipoColunaPrimaria()->getColuna(),0,1)).substr($colunaAtualFk->getTipoColunaPrimaria()->getColuna(),1)."()";
							$nome_coluna_pk2 .= "->".$nome_coluna_pk2;

						}
						$listaChaves .= "\'".$colunaAtualFk->getColuna()."\':\'<?php echo \$".$_tabela_bd->getTabela()."->get".$nome_coluna_pk."()"."->".$nome_coluna_pk2."?>\'";
						if ($conta < $qtdChave)
						{
							$listaChaves .= ",";
						}
						$conta ++;
					}
					$listaChaves .="}";
				}	
				
			}
			
			if ($listaChaves == "")
			{
				$var_primarias .= "&".$colunaAtual->getColuna()."=<?php echo \$".$_tabela_bd->getTabela()."->get".$nome_coluna_pk."()".$campoFinal.";?>";
			}
			else
			{
				$var_primarias .= "&".$colunaAtual->getColuna()."=".$listaChaves;
			}
		}
		
		$view .= "			<td><a href=\"javaScript:void(0)\" class=\"cor_verde abrir_modal\" abrir-modal=\"#modaleditar".$_tabela_bd->getTabela()."\"  onclick=\"atualizaSeletor('src/controller/".$nome_classe."Controller.php?carragar_formulario_seletor=<?php echo \$_GET['carragar_formulario_seletor'];?>&alterar=1&mod=form".$var_primarias."<?php if (isset(\$campo_buscar)) {echo \$campo_buscar;}?>','#<?php echo \$_GET['carragar_formulario_seletor'];?>');\"><i class=\"fa fa-pencil\" aria-hidden=\"true\"></i></td>\n";
		$view .= "			<td><a href=\"javaScript:void(0)\" class=\"cor_verde\" onclick=\"excluirDados('src/controller/".$nome_classe."Controller.php?mod=excluir".$var_primarias."')\"><i class=\"fa fa-trash\" aria-hidden=\"true\"></i></td>\n";
		$view .=  $viewsAposAchave. "		</tr>\n";
		$view .= "		<?php }?>\n";
	
		$view .= "		<script>\n";
		$view .= "			monta_conteudo_tabulator(\"#iniciar_tabulator".$_tabela_bd->getTabela()."\", \"#listtable".$_tabela_bd->getTabela()."\")\n";
		$view .= "		</script>\n";

		return $view;
		
	}
	
	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;
	}
}