<?php
include "ver_sessao.php";
include "conecta.php";


function exclui_observacao(){
	
	remover('observacao',$_POST[id]);
	
	index();
	exit;
}


function modifica_observacao(){
global $a_mod;

	$a_mod = carregar('observacao',$_POST[id]);

	layout_observacao();
	exit;	
}


function cadastra_observacao(){


	$posicao=1;
	$string_categoria='';

	while ( isset($_POST['categoria'.$posicao]) ) {
		
		$id_categoria = $_POST['categoria'.$posicao];

		if ($id_categoria>0) {
			$string_categoria .= "($id_categoria);";
		}

		$posicao++;
	}
	// REMOVE O ÚLTIMO ;
	if ($string_categoria!='')
		$string_categoria = substr($string_categoria, 0,-1);


	
	$campos = array(obse_tx_nome,obse_tx_categorias,obse_tx_exibicao,obse_tx_status);
	$valores= array($_POST[nome],$string_categoria,$_POST[exibicao],'ativo');
	
	if( !$_POST[id] )
		inserir('observacao',$campos,$valores);
	else
		atualizar('observacao',$campos,$valores,$_POST[id]);
		
	index();
	exit;
	
}


function layout_observacao(){
global $a_mod;
	
	if ( $a_mod[obse_nb_categoria]>0 ) {
		$a_cate = carregar('categoria',$a_mod[obse_nb_categoria]);
	}

	
	cabecalho('Cadastro de Observações',2);
	
	//CAMPOS
	$nome = cactux::campo('Observação:','nome',$a_mod[obse_tx_nome],8);
	$exibicao  = cactux::combo('Exibição:','exibicao',array('GERAL','DELIVERY'),$a_mod[obse_tx_exibicao],2);


	if ( trim($a_mod[obse_tx_categorias])!='' ) {
		// REALIZA O TRATAMENTO NECESSÁRIO PARA UTILIZAR OS IDS COMO SQL
		$string_ids = str_replace(array('(',')'), '', $a_mod[obse_tx_categorias]);
		$string_ids = str_replace(';', ',', $string_ids);

		$sql_cate = selecionar('categoria','cate_tx_status',"!inativo"," AND cate_nb_id IN ($string_ids) ORDER BY cate_tx_nome ASC ");
		$qtde_cate = num_linhas($sql_cate);

		for($i=0; $i<$qtde_cate; $i++) {

			$posicao = $i+1;

			$a_cate[$i] = carrega_array($sql_cate);

			$campo_cate = 'categoria'.$posicao;
			
			campo_hidden('id_categoria'.$posicao,$a_cate[$i][cate_nb_id]);
			$v_cate[] = cactux::combo_bd('!Categoria:',$campo_cate,$a_cate[$i][cate_nb_id],$a_cate[$i][cate_tx_nome],5,'categoria'," id='$campo_cate' ");
			

			if ($a_cate[$i][cate_nb_id]>0)
				$add[] = cactux::texto('',"<a href=javascript:onclick=remove_veiculo($posicao);><img src='cactus/imagens/excluir.png' width=15px></a>");
			else
				$add[] = cactux::texto('',"<a href=javascript:onclick=abre_proximo('div_cate_',$posicao);><img src='cactus/imagens/adicionar.png' width=20px></a>");
		}
	}


	// ADICIONA SEMPRE 5 CAMPOS EXTRAS
	for ($i=$qtde_cate; $i<($qtde_cate+5); $i++) {

		$posicao = $i+1;

		$a_cate[$i] = carrega_array($qtde_cate);

		$campo_cate = 'categoria'.$posicao;
		
		campo_hidden('id_categoria'.$posicao,0);// CRIA COM O ID ZERO PARA PERMITIR INSERIR NOVOS REGISTROS
		$v_cate[] = cactux::combo_bd('!Categoria:',$campo_cate,'','',5,'categoria'," id='$campo_cate' ");		

		$add[] = cactux::texto('',"<a href=javascript:onclick=abre_proximo('div_cate_',$posicao);><img src='cactus/imagens/adicionar.png' width=20px></a>");
	}




	
	//BOTOES
	$gravar = cactux::botao_submit('Gravar',2,'cadastra_observacao','id',$_POST[id]);
	$voltar = cactux::botao('Voltar',2,'voltar');
	$status = cactux::msg_status();
	//-----------

	cactux::abre_form();
	cactux::abre_fieldset('Cadastro de Observações');
	cactux::linha_fieldset($nome,$exibicao);
	cactux::fecha_fieldset();

	cactux::abre_fieldset('Categorias');
	for($i=0; $i<($qtde_cate+5); $i++) {
		if( $i==0 || $a_cate[($i-1)][cate_nb_id]!='' )	$display='block';	else	$display='none';
		echo "<div id=div_cate_".$i." style='display:$display'>";
		cactux::linha_fieldset($v_cate[$i],$add[$i]);
		echo "</div>";
	}
	cactux::fecha_fieldset();
	cactux::linha_fieldset($voltar,$gravar,$status);
	cactux::fecha_form();
	
	cactux::acao_botao('voltar','index');


	javascript("

		function abre_proximo(nome,id_proximo) {
			document.getElementById(nome+id_proximo).style.display='block';
		}

		function remove_veiculo(campo) {
			document.getElementById('categoria'+campo).value = '';
		}

	");

	rodape();
}




function layout_imprimir(){
	
	cabecaRelatorio('Cadastro de Observações',2);

	if($_POST[busca_cod]!='')
		$extra .= " AND obse_nb_id = '$_POST[busca_cod]'";
	if($_POST[busca_observacao]!='')
		$extra .= " AND obse_tx_nome LIKE '%$_POST[busca_observacao]%'";

	cactux::abre_form('');
	
	$c[]=cactux::texto('Código:',$_POST['busca_cod'],1);
	$c[]=cactux::texto('Nome:',$_POST['busca_observacao'],5);
	
	cactux::abre_fieldset('Filtro de Busca');
	cactux::linha_fieldset($c[0],$c[1],$c[2],$c[3]);
	cactux::fecha_fieldset();
	cactux::fecha_form();
	
	echo"<br>";
	
	$sql = selecionar('observacao','obse_tx_status',"!inativo"," $extra ORDER BY obse_tx_nome");
	
	$cabecalho[] = array('CÓDIGO','NOME');
	$cabecalho[] = 'c,e';
	$cabecalho[] = '8%,';
	
	while( $a = carrega_array($sql) ){
		$valores[] = array($a[obse_nb_id],$a[obse_tx_nome]);
	}
	
	grid::gerar($cabecalho,$valores);
	
	rodape();
	
}


function index(){
	
	if($_POST[busca_cod]!='')
		$extra .= " AND obse_nb_id = '$_POST[busca_cod]'";
	if($_POST[busca_observacao]!='')
		$extra .= " AND obse_tx_nome LIKE '%$_POST[busca_observacao]%'";
	
	$sql = selecionar('observacao','obse_tx_status',"!inativo"," $extra ORDER BY obse_tx_nome",1);
	$BUSCA = grid::gerar_paginacao($sql);

	cabecalho('Cadastro de Observações',2);
	
	//CAMPOS
	$cod = cactux::campo('Código:','busca_cod',$_POST[busca_cod],2);
	$nome = cactux::campo('Nome:','busca_observacao',$_POST[busca_observacao],8);
	//------------
	
	//BOTOES
	$buscar = cactux::botao_submit_busca('Buscar',2,'index');
	$inserir = cactux::botao('Inserir',2,'inserir');
	$imprimir = cactux::botao('Imprimir',2,'imprimir');
	
	//-----------
	
	cactux::abre_form();
	cactux::abre_fieldset('Cadastro de Observações');
	cactux::linha_fieldset($cod,$nome);
	cactux::linha_fieldset($buscar,$inserir,$imprimir);
	cactux::fecha_fieldset();
	cactux::fecha_form();
	
	cactux::acao_botao('inserir','layout_observacao');
	cactux::acao_botao('imprimir','layout_imprimir','','','','',' target=_blank');
	
	$cabecalho[] = array('CÓD.','NOME','EXIBIÇÃO','','');
	$cabecalho[] = 'c,e,e';
	$cabecalho[] = '6%,,15%,2%,2%';
	
	while( $a = carrega_array($BUSCA[0]) ){

		$modifica= ".icone_modificar($a[0],modifica_observacao)";
		$exclui  = ".icone_excluir($a[0],exclui_observacao)";
		
		$valores[] = array($a[obse_nb_id],$a[obse_tx_nome],$a[obse_tx_exibicao],$modifica,$exclui);
	}
	
	grid::gerar($cabecalho,$valores);
	grid::paginar($BUSCA);
	
	rodape();
	
}

controle();
?>