Reduccion de textbox a 99% para evitar el BoxModel entre Firefox y IE.
[ecomupi.git] / contenido / mupis+ubicaciones+dinamico.php
blob708368fd76cb28b5fd213abe700f3e8e55ac6176
1 <?php
2 error_reporting(E_STRICT | E_ALL);
3 ob_start("ob_gzhandler");
4 date_default_timezone_set ('America/El_Salvador');
5 require_once('../include/const.php');
6 require_once('../include/sesion.php');
7 require_once('../include/fecha.php');
8 require_once('sub.php');
9 require_once('../include/maps/GoogleMapAPI.class.php');
10 $map = new GoogleMapAPI;
12 if ( isset( $_GET['accion'] ) ) {
13 switch ( $_GET['accion'] ) {
15 case "drag":
16 if ( isset( $_GET['id'] ) && isset( $_GET['lat'] ) && isset( $_GET['lng'] )) {
18 $parte = explode ('|',$_GET['id'] );
19 if ( count($parte) == 3 ) {
21 if ( $parte[0] == "REF" ) {
22 //retornar ("Referencia?: " . "REF". ", Catorcena: ". $parte[1]. ", id_referencia:".$parte[2]);
23 retornar ( actualizarReferencia ($parte[2], $_GET['lat'], $_GET['lng']));
24 } else {
25 //retornar ("Mupi: " . $parte[0]. ", Catorcena: ". $parte[1]. ", Usuario:".$parte[2]);
26 retornar ( actualizarCoords ($parte[0], $_GET['lat'], $_GET['lng']));
29 } else {
30 retornar ( "Ud. esta utilizando incorrectamente este script de soporte. [DRAG]" );
33 break;
35 case "mupi":
36 if ( isset( $_GET['MUPI'] ) ) {
38 $parte = explode ('|',$_GET['MUPI'] );
39 if ( $parte[0] == "REF" ) { retornar("Se ha seleccionado la referencia " .CREAR_LINK_GET("gestionar+referencias&referencia=". $parte[2], $parte[2], "Abre el dialogo de gestión para la referencia seleccionada")); }
40 if ( count($parte) == 3 ) {
41 //retornar ("Mupi: " . $parte[0]. ", Catorcena: ". $parte[1]. ", Usuario:".$parte[2]);
42 retornar ( Buscar ($parte[0], $parte[1], $parte[2] ) );
44 } else {
45 retornar ( "Ud. esta utilizando incorrectamente este script de soporte. 1" );
47 break;
48 case "calles":
49 if ( isset( $_GET['catorcena'] ) && isset ( $_GET['usuario'] ) ) {
51 $script = SCRIPT('
52 // $("#combo_calles").change(funcion_combo_calles());
53 ');
55 $Boton_combo_calles = '<input type="button" OnClick="funcion_combo_calles()" value="Mostrar Mapa">';;
56 retornar ('<b>Ver Calle:</b><br />' . $database->Combobox_CallesConPresencia("combo_calles",$_GET['usuario'],$_GET['catorcena']).$Boton_combo_calles);
57 } else {
58 retornar ( "Ud. esta utilizando incorrectamente este script de soporte. 2" );
60 break;
61 case "mapas":
62 if ( isset( $_GET['catorcena'] ) && isset( $_GET['calle'] ) && isset ( $_GET['usuario'] ) ) {
63 retornar (Mostrar_Mapa($_GET['catorcena'], $_GET['calle'], $_GET['usuario']));
64 } else {
65 retornar ( "Ud. esta utilizando incorrectamente este script de soporte. 3" );
67 break;
68 case "mupis":
69 if ( isset( $_GET['catorcena'] ) && isset( $_GET['calle'] ) ) {
70 retornar (Mostrar_Mapa($_GET['catorcena'], $_GET['calle'], ""));
71 } else {
72 retornar ( "Ud. esta utilizando incorrectamente este script de soporte. 3" );
75 } else {
76 retornar ( "Ud. esta utilizando incorrectamente este script de soporte. 0" );
79 function retornar($texto) {
80 exit ('<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />' . $texto . '<br />');
83 function Buscar ($codigo_mupi, $catorcena, $usuario) {
84 global $session;
85 /* La logica aqui es que si el usuario que solicitó la búsqueda es administrador, entonces se le muestran todos los MUPIS, si no solo se le muestran los suyos */
86 $link = @mysql_connect(DB_SERVER, DB_USER, DB_PASS) or die('Por favor revise sus datos, puesto que se produjo el siguiente error:<br /><pre>' . mysql_error() . '</pre>');
87 mysql_select_db(DB_NAME, $link) or die('!->La base de datos seleccionada "'.$DB_base.'" no existe');
88 if ( time() > $catorcena ) { $tCatorcena=$catorcena; } else { $tCatorcena=Obtener_catorcena_anterior($catorcena); }
89 if ( ($session->isAdmin() || $session->userlevel == SALESMAN_LEVEL || $session->userlevel == DEMO_LEVEL ) && !$usuario) {
90 $q = "select tipo_pantalla, foto_real, (SELECT foto_pantalla FROM emupi_mupis_pedidos as b where a.codigo_pedido=b.codigo_pedido) AS arte from emupi_mupis_caras as a where catorcena=$catorcena AND codigo_mupi = (SELECT id_mupi FROM emupi_mupis WHERE id_mupi=$codigo_mupi);";
91 } else {
92 $q = "select tipo_pantalla, foto_real, (SELECT foto_pantalla FROM emupi_mupis_pedidos as b where a.codigo_pedido=b.codigo_pedido) AS arte from emupi_mupis_caras as a where catorcena=$tCatorcena AND codigo_pedido IN (SELECT codigo_pedido FROM emupi_mupis_pedidos where codigo='$usuario') AND codigo_mupi = (SELECT id_mupi FROM emupi_mupis WHERE id_mupi=$codigo_mupi);";
94 //echo $q.'<br />';
95 $result = @mysql_query($q, $link) or retornar ('!->Ocurrió un error mientras se revisaba la disponibilidad del MUPI.');
96 /* Error occurred, return given name by default */
97 $num_rows = mysql_numrows($result);
98 if(!$result || ($num_rows < 0)){
99 retornar("Error mostrando la información");
102 if($num_rows == 0){
103 retornar (Mensaje("¡No hay datos para ese código ($codigo_mupi)!",_M_ERROR));
106 $tipoPantalla = $datos = $PosponerBlockUI = '';
107 $datos .= SCRIPT('$("#botones_arte").html("");');
108 for($i=0; $i<$num_rows; $i++){
109 $datosDiv = "";
110 $datosDiv .= '<a onclick=\'$.unblockUI()\'>Cerrar</a><hr />';
111 $arte = mysql_result($result,$i,"arte");
112 $tipo_pantalla = mysql_result($result,$i,"tipo_pantalla");
113 $foto_real = mysql_result($result,$i,"foto_real");
114 // si es par es vehicular
115 if ( ($tipo_pantalla % 2) == 0 ) {
116 $tipoPantalla = 'vehicular';
117 }else{
118 $tipoPantalla = 'peatonal';
121 $NivelesPermitidos = array(ADMIN_LEVEL, SALESMAN_LEVEL, DEMO_LEVEL);
122 if (in_array($session->userlevel, $NivelesPermitidos)) {
123 // Si es administrador, Vendedor o Demo.
124 $datosDiv .= "<center><strong>Imagen actual de cara ".$tipoPantalla.":</strong></center>";
125 $datosDiv .= "<center>" . '<img src="include/ver.php?id='.$foto_real.'" />' . "</center>";
126 $datosDiv .= "<center><strong>Arte digital de cara:</center>";
127 $datosDiv .= "<center>" . '<img src="include/ver.php?id='.$arte.'" />' . "</strong></center>";
128 $datos .= '<script>$("#botones_arte").append("<a onclick=\'LINK_'.$tipoPantalla.'()\'>Ver imagenes de cara '.$tipoPantalla.'</a><br />");</script>';
129 } else {
130 // Si es cliente o usuario.
131 if ( time() > $catorcena ) {
132 //Si la catorcena NO es futura.
133 $datosDiv .= "<center><strong>Imagen actual de cara ".$tipoPantalla.":</strong></center>";
134 $datosDiv .= "<center>" . '<img src="include/ver.php?id='.$foto_real.'" />' . "</center>";
135 $datosDiv .= "<center><strong>Arte digital de cara:</center>";
136 $datosDiv .= "<center>" . '<img src="include/ver.php?id='.$arte.'" />' . "</strong></center>";
137 } else {
138 //Si la catorcena NO es futura.
139 $datosDiv .= "<center><strong>Imagen actual de cara ".$tipoPantalla.":</strong></center>";
140 $datosDiv .= "<center>Viendo catorcena futura, la fotografía mostrada es ilustrativa y corresponde al mupi seleccionado en la catorcena presente.<br /><br />" . '<img src="include/ver.php?id='.$foto_real.'" />' . "</center>";
141 $datosDiv .= "<center><strong>Arte digital cara:</strong></center>";
142 $datosDiv .= "<center>Viendo catorcena futura, Arte no disponible</center>";
144 if (!$PosponerBlockUI)
145 $PosponerBlockUI .= '
146 function PBUI () {
147 $.blockUI({
148 message: $(\'div#div_'.$tipoPantalla.'\'),
149 css: {
150 top: ($(window).height() - 600) /2 + \'px\',
151 left: ($(window).width() - 600) /2 + \'px\',
152 width: \'600px\'
156 setTimeout(PBUI, 500);
159 $datos .= SCRIPT('$("#div_'.$tipoPantalla.'").html("'.addslashes($datosDiv).'");');
161 // Esto tiene que ser disparado un poco despues de que se dispare el evento Stop de Ajax
162 // para evitar que cierre automaticamente la cajita de la imagen.
163 if ($PosponerBlockUI) {
164 $datos .= SCRIPT($PosponerBlockUI);
166 retornar($datos);
169 function Mostrar_Mapa($catorcena, $calle, $usuario){
170 global $session, $map, $database;
171 $NivelesPermitidos = array(ADMIN_LEVEL, SALESMAN_LEVEL);
172 // setup database for geocode caching
173 $map->setDSN('mysql://'.DB_USER.':'.DB_PASS.'@'.DB_SERVER.'/'.DB_NAME);
174 //Google Map Key
175 $map->setAPIKey(GOOGLE_MAP_KEY);
176 // proporción de la ventana que tomará el mapa.
177 $map->setWidth('100%');
178 $map->referencias = false;
179 // Desactivar los controles que solo Admin puede tener.
180 if ( !$session->isAdmin() ) {
181 $map->map_controls = false;
182 $map->disable_map_drag = true;
183 $map->disable_drag = true;
185 // Desactivar los controles que solo Admin y Vendedor pueden tener.
186 if ( !in_array($session->userlevel,array(ADMIN_LEVEL, SALESMAN_LEVEL)) ) {
187 $map->disableInfoWindow();
189 // Cargar puntos mupis.
190 $WHERE_USER = "";
191 if ( $calle == "::T::") {
192 $grupo_calle = "";
193 $t_grupo_calle = "";
194 $map->disable_map_drag = false;
195 } else {
196 if ( strpos($calle, "G:") !== false ) {
197 $Explotado = @end(explode(":",$calle));
198 $grupo_calle = "codigo_calle IN (SELECT codigo_calle FROM ".TBL_STREETS." WHERE grupo_calle='".$Explotado."')";
199 $map->disable_map_drag = false;
200 } else {
201 $grupo_calle = "codigo_calle='$calle'";
205 if ( isset($_GET['sin_presencia']) ) {
206 // Ver por Mupis
207 if ($grupo_calle) $t_grupo_calle = " where $grupo_calle";
208 $q = "select id_mupi, codigo_mupi, direccion, foto_generica, lon, lat, codigo_evento, codigo_calle FROM emupi_mupis AS a$t_grupo_calle;";
209 } else {
210 // Por Presencia y sin usuario
211 if ( (($session->isAdmin() || $session->userlevel == SALESMAN_LEVEL) && !$usuario) || $session->userlevel == DEMO_LEVEL) {
212 // Siendo Admin, Vendedor o Demo
213 if ($grupo_calle) $t_grupo_calle = " and $grupo_calle";
214 $q = "select id_mupi, codigo_mupi, direccion, foto_generica, lon, lat, codigo_evento, codigo_calle FROM emupi_mupis AS a WHERE id_mupi IN (select codigo_mupi FROM emupi_mupis_caras WHERE catorcena=$catorcena)$t_grupo_calle;";
215 } else {
216 // Siendo cualquier otro nivel o con usuario
217 if ($grupo_calle) $t_grupo_calle = "$grupo_calle and ";
218 $q = "select id_mupi, codigo_mupi, direccion, foto_generica, lon, lat, codigo_evento, codigo_calle, (SELECT logotipo from emupi_usuarios where codigo='$usuario') as logotipo from emupi_mupis where $t_grupo_calle id_mupi IN (select codigo_mupi FROM emupi_mupis_caras WHERE catorcena=$catorcena AND codigo_pedido IN (SELECT codigo_pedido FROM emupi_mupis_pedidos WHERE codigo='$usuario'));";
221 DEPURAR($q,0);
222 $result = $database->query($q);
223 $n_mupis = $num_rows = mysql_numrows($result);
224 if(!$result || ($num_rows < 0)){
225 exit ( "Error mostrando la información<br />");
228 if($num_rows == 0){
229 exit ("¡No hay "._NOMBRE_." ingresados!<br />");
231 //Imagen de los marcadores
232 //Removido por petición. 06/02/09
233 //if ( !$session->isAdmin() || $usuario ) $map->setMarkerIcon('http://'.$_SERVER['SERVER_ADDR'].'/mupi/include/ver.php?id='.mysql_result($result,0,"logotipo"),'',0,0,0,0);
235 for($i=0; $i<$num_rows; $i++){
236 $id_mupi = mysql_result($result,$i,"id_mupi");
237 $codigo_mupi = mysql_result($result,$i,"codigo_calle") . "." .mysql_result($result,$i,"codigo_mupi");
238 $direccion = truncate(mysql_result($result,$i,"direccion"));
239 $foto_generica = mysql_result($result,$i,"foto_generica");
240 $lon = mysql_result($result,$i,"lon");
241 $lat = mysql_result($result,$i,"lat");
242 $codigo_evento = mysql_result($result,$i,"codigo_evento");
243 if ( ($session->isAdmin() || $session->userlevel == SALESMAN_LEVEL) ) {
244 $q = "SELECT DISTINCT logotipo FROM emupi_usuarios where codigo IN (SELECT codigo from emupi_mupis_pedidos where codigo_pedido IN (SELECT codigo_pedido FROM emupi_mupis_caras as b WHERE catorcena=$catorcena AND b.codigo_mupi=".mysql_result($result,$i,"id_mupi")."));";
245 //echo $q."<br>";
246 $result2 = $database->query($q);
247 $num_rows2 = mysql_numrows($result2);
248 $logotipo = "<br />";
250 if($num_rows2 > 0){
251 for($ii=0; $ii<$num_rows2; $ii++){
252 $logotipo .= CargarImagenDesdeBD(mysql_result($result2,$ii,"logotipo"), "50px");
255 } else {
256 $logotipo = ''; //"<br />".CargarImagenDesdeBD(mysql_result($result,$i,"logotipo"), "50px");
258 $logotipo = '<div style="width:400px; height:150px">'.$logotipo.'</div>';
259 //$html = "<b>Dirección: </b>".$direccion."<br /><center>".$logotipo."</center>";
260 $html = "<center><b>Cliente(s) actual(es)</b><hr />".$logotipo."</center>";
262 if ($session->userlevel == ADMIN_LEVEL) {
264 $q = "SELECT id_pantalla, tipo_pantalla, codigo_pedido, (SELECT descripcion FROM ".TBL_MUPI_ORDERS." AS b WHERE b.codigo_pedido=a.codigo_pedido) AS descripcion FROM emupi_mupis_caras AS a WHERE codigo_mupi='$id_mupi' and catorcena='$catorcena'".";";
265 //echo $q."<br>";
266 $result2 = $database->query($q);
267 $num_rows2 = mysql_numrows($result2);
268 $logotipo = "<br />";
269 $Valor_Peatonal = $Valor_Vehicular = $Pantalla_Vehicular = $Pantalla_Peatonal = NULL;
270 $Valor_Vehicular_Desc = $Valor_Peatonal_Desc = 'Ninguno';
272 $Boton_Vehicular = "<a href='./?"._ACC_."=gestionar+pantallas&crear=1&catorcena=$catorcena&tipo=0&id_mupi=$id_mupi' target='blank'>Crear esta cara...</a><br />";
273 $Boton_Peatonal = "<a href='./?"._ACC_."=gestionar+pantallas&crear=1&catorcena=$catorcena&tipo=1&id_mupi=$id_mupi' target='blank'>Crear esta cara...</a><br />";
274 if($num_rows2 > 0){
275 for($ii=0; $ii<$num_rows2; $ii++){
276 if ( (mysql_result($result2,$ii,"tipo_pantalla") % 2) == 0 ) {
277 $Pantalla_Vehicular = mysql_result($result2,$ii,"id_pantalla");
278 $Valor_Vehicular = mysql_result($result2,$ii,"codigo_pedido");
279 $Valor_Vehicular_Desc = mysql_result($result2,$ii,"descripcion");
280 $Boton_Vehicular = "<a href='./?"._ACC_."=gestionar+pantallas&actualizar=1&id=$Pantalla_Vehicular&catorcena=$catorcena' target='blank'>Editar esta cara...</a><br />";
281 } else {
282 $Pantalla_Peatonal = mysql_result($result2,$ii,"id_pantalla");
283 $Valor_Peatonal = mysql_result($result2,$ii,"codigo_pedido");
284 $Valor_Peatonal_Desc = mysql_result($result2,$ii,"descripcion");
285 $Boton_Peatonal = "<a href='./?"._ACC_."=gestionar+pantallas&actualizar=1&id=$Pantalla_Peatonal&catorcena=$catorcena' target='blank'>Editar esta cara...</a><br />";
291 $Contenido_maximizado =
292 "<b>Catorcena a editar:</b> " . AnularFechaNula($catorcena). " - " . AnularFechaNula( Fin_de_catorcena($catorcena) ).
293 "<br /><b>Mupi a Editar:</b> $codigo_mupi -> Id. $id_mupi" .
294 "<hr />".
295 "<table>".
296 "<tr>".
297 "<th>Cara vehicular</th><th>Cara peatonal</th>".
298 "</tr>".
299 "<tr>".
300 "<td width='50%' valign='top'>". // VEHICULAR
301 "<b>ID. Pantalla:</b> ".EnNulidad($Pantalla_Vehicular,"Ninguna")."<br />".
302 "<b>Código de pedido Actual:</b> $Valor_Vehicular | $Valor_Vehicular_Desc<br />".
303 $Boton_Vehicular.
304 "</td>".
305 "<td width='50%' valign='top'>". // PEATONAL
306 "<b>ID. Pantalla:</b> ". EnNulidad($Pantalla_Peatonal,"Ninguna")."<br />".
307 "<b>Código de pedido Actual:</b> $Valor_Peatonal | $Valor_Peatonal_Desc<br />".
308 $Boton_Peatonal.
309 "</td>".
310 "</tr>".
311 "</table>"
314 } else {
315 $Contenido_maximizado = "";
316 $map->Mostrar_Contenido_Maximizado = false;
318 $map->addMarkerByCoords($lon, $lat, $codigo_mupi . ' | ' . $direccion, $html, $codigo_mupi, $id_mupi . "|" . $catorcena . "|" . $usuario, $Contenido_maximizado);
319 $map->addMarkerIcon(public_base_directory().'/punto.gif','',12,12,0,0);
322 // Mostrar referencias. 10/02/09
323 if ($grupo_calle) $t_grupo_calle = " where $grupo_calle";
324 $q = "SELECT * FROM emupi_referencias".$t_grupo_calle.";";
325 DEPURAR($q,0);
326 $result = $database->query($q);
327 $num_rows = mysql_numrows($result);
328 $map->referencias = true;
329 for($i=0; $i<$num_rows; $i++){
330 $lon = mysql_result($result,$i,"lon");
331 $lat = mysql_result($result,$i,"lat");
332 $logotipo = "<br />".CargarImagenDesdeBD(mysql_result($result,$i,"imagen_referencia"), "200px");
333 $map->addMarkerByCoords($lon, $lat, "Referencia" , "Este es un punto de referencia<br />".$logotipo, '', "REF|$catorcena|".mysql_result($result,$i,"id_referencia"),"");
334 $map->addMarkerIcon(public_base_directory(). '/include/ver.php?id='.mysql_result($result,$i,"imagen_referencia"),'',0,0,50,50);
339 //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
340 $datos = '';
341 $datos .= $map->getMapJS();
342 //$datos .= $map->getMap();
343 //$datos .= $map->getSidebar();
344 $datos .= "<hr /><b>Mupis totales: $n_mupis</b>";
345 $datos .= SCRIPT('onLoad();');
346 return $datos;
349 function actualizarCoords ($id, $lat, $lng) {
350 global $database;
351 $q = "UPDATE ".TBL_MUPI." SET lat='$lat', lon='$lng' WHERE id_mupi='$id';";
352 $result = $database->query($q);
353 $database->REGISTRAR ("pantallas_mover", "Se movió el Eco Mupis '$id' a ($lat,$lng)","SQL: $q");
356 function actualizarReferencia ($id, $lat, $lng) {
357 global $database;
358 $q = "UPDATE ".TBL_REFS." SET lat='$lat', lon='$lng' WHERE id_referencia='$id';";
359 $result = $database->query($q);
360 $database->REGISTRAR ("referencias_mover", "Se movió la referencia '$id' a ($lat,$lng)","SQL: $q");