Reposicionar mupis con Drag & Drop
[ecomupi.git] / contenido / mupis+ubicaciones+dinamico.php
blob12f5ee9c02b35916581976dfc96ab4d74055850f
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;
11 if ( isset( $_GET['accion'] ) ) {
12 switch ( $_GET['accion'] ) {
14 case "drag":
15 if ( isset( $_GET['id'] ) && isset( $_GET['lat'] ) && isset( $_GET['lng'] )) {
17 $parte = explode ('|',$_GET['id'] );
18 if ( count($parte) == 3 ) {
19 //retornar ("Mupi: " . $parte[0]. ", Catorcena: ". $parte[1]. ", Usuario:".$parte[2]);
20 retornar ( actualizarCoords ($parte[0], $_GET['lat'], $_GET['lng']));
22 } else {
23 retornar ( "Ud. esta utilizando incorrectamente este script de soporte. [DRAG]" );
26 break;
28 case "mupi":
29 if ( isset( $_GET['MUPI'] ) ) {
31 $parte = explode ('|',$_GET['MUPI'] );
32 if ( count($parte) == 3 ) {
33 //retornar ("Mupi: " . $parte[0]. ", Catorcena: ". $parte[1]. ", Usuario:".$parte[2]);
34 retornar ( Buscar ($parte[0], $parte[1], $parte[2] ) );
36 } else {
37 retornar ( "Ud. esta utilizando incorrectamente este script de soporte. 1" );
39 break;
40 case "calles":
41 if ( isset( $_GET['catorcena'] ) && isset ( $_GET['usuario'] ) ) {
42 $script = SCRIPT('
43 $("#grafico_mapa").load("contenido/mupis+ubicaciones+dinamico.php?accion=mapas&usuario='.$_GET['usuario'].'&catorcena="+document.getElementsByName(\'combo_catorcenas\')[0].value+"&calle="+document.getElementsByName(\'combo_calles\')[0].value);
44 $("#combo_calles").change(function (){$("#grafico_mapa").load("contenido/mupis+ubicaciones+dinamico.php?accion=mapas&usuario='.$_GET['usuario'].'&catorcena="+document.getElementsByName(\'combo_catorcenas\')[0].value+"&calle="+document.getElementsByName(\'combo_calles\')[0].value);});
45 ').'<br />';
46 retornar ('<b>Ver Calle:</b><br />' . $database->Combobox_CallesConPresencia("combo_calles",$_GET['usuario'],$_GET['catorcena']).$script);
47 } else {
48 retornar ( "Ud. esta utilizando incorrectamente este script de soporte. 2" );
50 break;
51 case "mapas":
52 if ( isset( $_GET['catorcena'] ) && isset( $_GET['calle'] ) && isset ( $_GET['usuario'] ) ) {
53 retornar (Mostrar_Mapa($_GET['catorcena'], $_GET['calle'], $_GET['usuario']));
54 } else {
55 retornar ( "Ud. esta utilizando incorrectamente este script de soporte. 3" );
57 break;
59 } else {
60 retornar ( "Ud. esta utilizando incorrectamente este script de soporte. 0" );
63 function retornar($texto) {
64 exit ('<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />' . $texto . '<br />');
67 function Buscar ($codigo_mupi, $catorcena, $usuario) {
68 global $session;
69 /* 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 */
70 $datos ="";
71 $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>');
72 mysql_select_db(DB_NAME, $link) or die('!->La base de datos seleccionada "'.$DB_base.'" no existe');
73 if ( $session->isAdmin() || $session->userlevel == SALESMAN_LEVEL) {
74 $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);";
75 } else {
76 $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_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);";
78 //echo $q.'<br />';
79 $result = @mysql_query($q, $link) or retornar ('!->Ocurrió un error mientras se revisaba la disponibilidad del MUPI.');
80 /* Error occurred, return given name by default */
81 $num_rows = mysql_numrows($result);
82 if(!$result || ($num_rows < 0)){
83 retornar("Error mostrando la información");
86 if($num_rows == 0){
87 retornar (Mensaje("¡No hay datos para ese código ($codigo_mupi)!",_M_ERROR));
89 $datos .= '<h2>Datos del MUPI seleccionado</h2>';
90 $datos .= '<table>';
91 $tipoPantalla = ''; //Par
92 for($i=0; $i<$num_rows; $i++){
93 $arte = mysql_result($result,$i,"arte");
94 $tipo_pantalla = mysql_result($result,$i,"tipo_pantalla");
95 $foto_real = mysql_result($result,$i,"foto_real");
96 // si es par es vehicular
97 if ( ($tipo_pantalla % 2) == 0 ) {
98 $tipoPantalla = 'vehicular';
100 }else{
101 $tipoPantalla = 'peatonal';
104 $datos .= "<tr><th><center>Imagen actual de su pantalla ".$tipoPantalla.":</center></th></tr>";
105 $datos .= "<tr><td><center>" . CargarImagenDesdeBD($foto_real," 300px","300px") . "</center></td>";
106 $datos .= "<tr><th><center>Arte digital de su pantalla:</center></th></tr>";
107 $datos .= "<tr><td><center>" . CargarImagenDesdeBD($arte,"300px","300px") . "</center></td></tr>";
109 $datos .= '</table>';
110 retornar($datos);
113 function Mostrar_Mapa($catorcena, $calle, $usuario){
114 global $session, $map, $database;
115 // setup database for geocode caching
116 $map->setDSN('mysql://'.DB_USER.':'.DB_PASS.'@'.DB_SERVER.'/'.DB_NAME);
117 //Google Map Key
118 $map->setAPIKey(GOOGLE_MAP_KEY);
119 // proporción de la ventana que tomará el mapa.
120 $map->setWidth('100%');
121 $map->referencias = false;
122 // Desactivar controles de Zoom y movimiento para cliente.
123 if ( !$session->isAdmin() && $session->userlevel != SALESMAN_LEVEL ) {
124 $map->map_controls = false;
125 $map->disable_drag = true;
127 // Cargar puntos mupis.
128 $WHERE_USER = "";
129 if ( ($session->isAdmin() && !$usuario) || $session->userlevel == SALESMAN_LEVEL ) {
130 $q = "select id_mupi, codigo_mupi, direccion, foto_generica, lon, lat, codigo_evento, codigo_calle from emupi_mupis AS a where codigo_calle='$calle' and id_mupi IN (select codigo_mupi FROM emupi_mupis_caras WHERE catorcena=$catorcena);";
131 } else {
132 $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 codigo_calle='$calle' and 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'));";
134 //DEPURAR($q,1);
135 $result = $database->query($q);
136 $num_rows = mysql_numrows($result);
137 if(!$result || ($num_rows < 0)){
138 exit ( "Error mostrando la información<br />");
141 if($num_rows == 0){
142 exit ("¡No hay "._NOMBRE_." ingresados!<br />");
144 //Imagen de los marcadores
145 //Removido por petición. 06/02/09
146 //if ( !$session->isAdmin() || $usuario ) $map->setMarkerIcon('http://'.$_SERVER['SERVER_ADDR'].'/mupi/include/ver.php?id='.mysql_result($result,0,"logotipo"),'',0,0,0,0);
148 for($i=0; $i<$num_rows; $i++){
149 $id_mupi = mysql_result($result,$i,"id_mupi");
150 $codigo_mupi = mysql_result($result,$i,"codigo_calle") . "." .mysql_result($result,$i,"codigo_mupi");
151 $direccion = truncate(mysql_result($result,$i,"direccion"));
152 $foto_generica = mysql_result($result,$i,"foto_generica");
153 $lon = mysql_result($result,$i,"lon");
154 $lat = mysql_result($result,$i,"lat");
155 $codigo_evento = mysql_result($result,$i,"codigo_evento");
156 if ( ($session->isAdmin() && !$usuario) || $session->userlevel == SALESMAN_LEVEL ) {
157 $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")."));";
158 //echo $q."<br>";
159 $result2 = $database->query($q);
160 $num_rows2 = mysql_numrows($result2);
161 $logotipo = "<br />";
163 if($num_rows > 0){
164 for($ii=0; $ii<$num_rows2; $ii++){
165 $logotipo .= '<img style="max-width:200px;max-height:200px;" src="include/ver.php?id='.mysql_result($result2,$ii,"logotipo").'" />';
168 } else {
169 $logotipo = "<br />".CargarImagenDesdeBD(mysql_result($result,$i,"logotipo"), "200px","200px");
172 $html = "<b>Dirección: </b>".$direccion."<br /><center>".$logotipo."</center>";
173 $map->addMarkerByCoords($lon, $lat, $codigo_mupi . ' | ' . $direccion, $html, $codigo_mupi, $id_mupi . "|" . $catorcena . "|" . $usuario);
174 $map->addMarkerIcon(public_base_directory().'/punto.gif','',12,12,0,0);
177 // Mostrar referencias. 10/02/09
178 $q = "SELECT * FROM emupi_referencias WHERE codigo_calle='$calle'".";";
179 $result = $database->query($q);
180 $num_rows = mysql_numrows($result);
181 $map->referencias = true;
182 for($i=0; $i<$num_rows; $i++){
183 $lon = mysql_result($result,$i,"lon");
184 $lat = mysql_result($result,$i,"lat");
185 $logotipo = "<br />".CargarImagenDesdeBD(mysql_result($result,$i,"imagen_referencia"), "200px","200px");
186 $map->addMarkerByCoords($lon, $lat, "Referencia" , "Este es un punto de referencia<br />".$logotipo, '', 'REF');
187 $map->addMarkerIcon(public_base_directory(). '/include/ver.php?id='.mysql_result($result,$i,"imagen_referencia"),'',0,0,50,50);
192 //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
193 $datos = '';
194 $datos .= $map->getMapJS();
195 $datos .= $map->getMap();
196 $datos .= $map->getSidebar();
197 $datos .= SCRIPT('onLoad();');
198 return $datos;
201 function public_base_directory()
203 $url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 'https://' : 'http://';
204 $url .= $_SERVER['HTTP_HOST'];
205 //get public directory structure eg "/top/second/third"
206 $public_directory = dirname($_SERVER['PHP_SELF']);
207 //place each directory into array
208 $directory_array = explode('/', $public_directory);
209 //get highest or top level in array of directory strings
210 $public_base = max($directory_array);
212 return $url."/".$public_base;
215 function actualizarCoords ($id, $lat, $lng) {
216 global $database;
217 $q = "UPDATE ".TBL_MUPI." SET lat='$lat', lon='$lng' WHERE id_mupi='$id';";
218 $result = $database->query($q);