function mostrar_detalles_objeto($obj, $permisos, $formato, $nombres, $titulo, $extra, $counter = false, $display = "none"){
$class_tabla = "tabla_listado";
$class_td1 = "td_titulo_listado";
$class_tr1 = "tr_datos_listado";
$class_td2 = "";
$ancho1 = "160";
$ancho2 = "";
$nombre_clase = get_class($obj);
if (!$obj){
$tabla_detalle = "
";
return $tabla_detalle;
}
$arr = obj2array($obj);
if ($extra)
$colspan = 4;
else
$colspan = 3;
$cont = 0;
$tabla_detalle = "
$titulo |
";
$show_first = 0;
foreach ($arr as $atributo => $valor) {
if ($valor == null) $valor = " "; //Si no hay valor asigna un espacio en blanco para desplegar en la tabla
$mostrar_atributo = substr($permisos, $cont, 1); //Revisa los permisos externos para mostrar o no la variable
$aplicar_formato = substr($formato, $cont, 1); //aplicar formatos preestablecidos a la variable
$atributo = format_nombre_atributo($atributo,$nombres);
$valor = format_valor_atributo($valor, $aplicar_formato, $atributo);
$mostrar_atributo = format_auto_ocultar_atributos($atributo, $mostrar_atributo);
$text = "";
$numero = $cont+1;
if ($counter) $text = "$numero | ";
if ($mostrar_atributo == '2' && $valor != " "){
if ($show_first == 0){
$popup = popup_php("Ver más",20);
$link_show = "
";
$show_first++;
}
else
$link_show = "";
if ($extra){
$tabla_detalle .= "$text$atributo | $valor | $extra | $link_show |
";
}
else
$tabla_detalle .= "$text$atributo | $valor | $link_show |
";
}
$cont++;
}
$tabla_detalle .="
";
$cont = 0;
$tabla_detalle .= "";
$tabla_detalle .= "
";
foreach ($arr as $atributo => $valor) {
$mostrar_atributo = substr($permisos, $cont, 1); //Revisa los permisos externos para mostrar o no la variable
$aplicar_formato = substr($formato, $cont, 1); //aplicar formatos preestablecidos a la variable
$atributo = format_nombre_atributo($atributo,$nombres);
$valor = format_valor_atributo($valor, $aplicar_formato, $atributo);
$mostrar_atributo = format_auto_ocultar_atributos($atributo, $mostrar_atributo);
$text = "";
$numero = $cont+1;
if ($counter) $text = "$numero | ";
if (($mostrar_atributo !== '0') and ($mostrar_atributo !== '2')){
$tabla_detalle .= "$text$atributo | $valor |
";
}
$cont++;
}
$tabla_detalle .= "
";
return $tabla_detalle;
}
function format_auto_ocultar_atributos($atributo, $mostrar_atributo){
if ((strlen($atributo)<5) and (strcmp(substr($atributo, 0, 2),"Ex") == 0)) return '0';
else return $mostrar_atributo;
}
function format_valor_atributo($valor, $formato, $atributo){
switch ($formato) {
case 'F': $valor = convertirFechaBD_fecha($valor); break;
case 'H': $valor = convertirHoraBD_Hora($valor); break;
case 'M': $valor = "$" . format_money($valor); break;
case 'R': $valor = format_rut($valor); break;
case 'N': $valor = sprintf("%08s", $valor); break;
case '1': $valor = sprintf("%01s", $valor); break;
case '2': $valor = sprintf("%02s", $valor); break;
case '3': $valor = sprintf("%03s", $valor); break;
case '4': $valor = sprintf("%04s", $valor); break;
case '5': $valor = sprintf("%05s", $valor); break;
case '6': $valor = sprintf("%06s", $valor); break;
case '7': $valor = sprintf("%07s", $valor); break;
case '8': $valor = sprintf("%08s", $valor); break;
case 'U': $valor = strtoupper($valor); break;
default:
//Formateo automatico de variables
if (substr($atributo, 0, 3) == "id_") $valor = sprintf("%08s", $valor);
if (substr($atributo, 0, 5) == "fecha") $valor = convertirFechaBD_fecha($valor);
if (substr($atributo, 0, 2) == "fecha") $valor = convertirFechaBD_fecha($valor);
break;
}
return $valor;
}
function format_nombre_atributo($atributo,$nombres){
if ($nombres["$atributo"] != "")
$atributo = $nombres["$atributo"];
else{
$atributo = str_replace("id_", "Nro ", $atributo);
$atributo = str_replace("_", " ", $atributo);
$atributo = ucwords(strtolower($atributo));
}
return $atributo;
}
function obj2array ( &$Instance ) {
$clone = (array) $Instance;
$rtn = array ();
//$rtn['___SOURCE_KEYS_'] = $clone;
while ( list ($key, $value) = each ($clone) ) {
$aux = explode ("\0", $key);
$newkey = $aux[count($aux)-1];
$rtn[$newkey] = $clone[$key];
}
return $rtn;
}
?>