REGISTRAR() - Wrapper para agregar registros semi-automaticos en TBL_REGISTRY
[ecomupi.git] / contenido / mupis+ubicaciones+dinamico.php
blobd94899077ef02ee8b4577c1db9e0217065dabdaa
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) && !$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 $arte = mysql_result($result,$i,"arte");
111 $tipo_pantalla = mysql_result($result,$i,"tipo_pantalla");
112 $foto_real = mysql_result($result,$i,"foto_real");
113 // si es par es vehicular
114 if ( ($tipo_pantalla % 2) == 0 ) {
115 $tipoPantalla = 'vehicular';
116 }else{
117 $tipoPantalla = 'peatonal';
120 if ($session->isAdmin() || $session->userlevel == SALESMAN_LEVEL) {
121 // Si es administrador o Vendedor.
122 $datosDiv .= "<center><strong>Imagen actual de su campaña ".$tipoPantalla.":</strong></center>";
123 $datosDiv .= "<center>" . '<img src="include/ver.php?id='.$foto_real.'" />' . "</center>";
124 $datosDiv .= "<center><strong>Arte digital de su campaña:</center>";
125 $datosDiv .= "<center>" . '<img src="include/ver.php?id='.$arte.'" />' . "</strong></center>";
126 $datos .= '<script>$("#botones_arte").append("<a onclick=\'LINK_'.$tipoPantalla.'()\'>Ver imagenes de cara '.$tipoPantalla.'</a><br />");</script>';
127 } else {
128 // Si es cliente o usuario.
129 $datosDiv .= '<a onclick=\'$.unblockUI()\'>Cerrar</a><hr />';
130 if ( time() > $catorcena ) {
131 //Si la catorcena NO es futura.
132 $datosDiv .= "<center><strong>Imagen actual de su campaña ".$tipoPantalla.":</strong></center>";
133 $datosDiv .= "<center>" . '<img src="include/ver.php?id='.$foto_real.'" />' . "</center>";
134 $datosDiv .= "<center><strong>Arte digital de su campaña:</center>";
135 $datosDiv .= "<center>" . '<img src="include/ver.php?id='.$arte.'" />' . "</strong></center>";
136 } else {
137 //Si la catorcena NO es futura.
138 $datosDiv .= "<center><strong>Imagen actual de su campaña ".$tipoPantalla.":</strong></center>";
139 $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>";
140 $datosDiv .= "<center><strong>Arte digital de su campaña:</strong></center>";
141 $datosDiv .= "<center>Viendo catorcena campaña, Arte no disponible</center>";
143 if (!$PosponerBlockUI)
144 $PosponerBlockUI .= '
145 function PBUI () {
146 $.blockUI({
147 message: $(\'div#div_'.$tipoPantalla.'\'),
148 css: {
149 top: ($(window).height() - 500) /2 + \'px\',
150 left: ($(window).width() - 600) /2 + \'px\',
151 width: \'600px\'
155 setTimeout(PBUI, 500);
158 $datos .= SCRIPT('$("#div_'.$tipoPantalla.'").html("'.addslashes($datosDiv).'");');
160 // Esto tiene que ser disparado un poco despues de que se dispare el evento Stop de Ajax
161 // para evitar que cierre automaticamente la cajita de la imagen.
162 if ($PosponerBlockUI) {
163 $datos .= SCRIPT($PosponerBlockUI);
165 retornar($datos);
168 function Mostrar_Mapa($catorcena, $calle, $usuario){
169 global $session, $map, $database;
170 $NivelesPermitidos = array(ADMIN_LEVEL, SALESMAN_LEVEL);
171 // setup database for geocode caching
172 $map->setDSN('mysql://'.DB_USER.':'.DB_PASS.'@'.DB_SERVER.'/'.DB_NAME);
173 //Google Map Key
174 $map->setAPIKey(GOOGLE_MAP_KEY);
175 // proporción de la ventana que tomará el mapa.
176 $map->setWidth('100%');
177 $map->referencias = false;
178 // Desactivar los controles que solo Admin puede tener.
179 if ( !$session->isAdmin() ) {
180 $map->map_controls = false;
181 $map->disable_map_drag = true;
182 $map->disable_drag = true;
184 // Desactivar los controles que solo Admin y Vendedor pueden tener.
185 if ( !in_array($session->userlevel,array(ADMIN_LEVEL, SALESMAN_LEVEL)) ) {
186 $map->disableInfoWindow();
188 // Cargar puntos mupis.
189 $WHERE_USER = "";
190 if ( $calle == "::T::") {
191 $grupo_calle = "";
192 $t_grupo_calle = "";
193 $map->disable_map_drag = false;
194 } else {
195 if ( strpos($calle, "G:") !== false ) {
196 $Explotado = @end(explode(":",$calle));
197 $grupo_calle = "codigo_calle IN (SELECT codigo_calle FROM ".TBL_STREETS." WHERE grupo_calle='".$Explotado."')";
198 $map->disable_map_drag = false;
199 } else {
200 $grupo_calle = "codigo_calle='$calle'";
204 if ( isset($_GET['sin_presencia']) ) {
205 // Ver por Mupis
206 if ($grupo_calle) $t_grupo_calle = " where $grupo_calle";
207 $q = "select id_mupi, codigo_mupi, direccion, foto_generica, lon, lat, codigo_evento, codigo_calle FROM emupi_mupis AS a$t_grupo_calle;";
208 } else {
209 // Por Presencia y sin usuario
210 if ( ($session->isAdmin() || $session->userlevel == SALESMAN_LEVEL) && !$usuario ) {
211 // Siendo Admin o Vendedor
212 if ($grupo_calle) $t_grupo_calle = " and $grupo_calle";
213 $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;";
214 } else {
215 // Siendo cualquier otro nivel o con usuario
216 if ($grupo_calle) $t_grupo_calle = "$grupo_calle and ";
217 $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'));";
220 DEPURAR($q,0);
221 $result = $database->query($q);
222 $num_rows = mysql_numrows($result);
223 if(!$result || ($num_rows < 0)){
224 exit ( "Error mostrando la información<br />");
227 if($num_rows == 0){
228 exit ("¡No hay "._NOMBRE_." ingresados!<br />");
230 //Imagen de los marcadores
231 //Removido por petición. 06/02/09
232 //if ( !$session->isAdmin() || $usuario ) $map->setMarkerIcon('http://'.$_SERVER['SERVER_ADDR'].'/mupi/include/ver.php?id='.mysql_result($result,0,"logotipo"),'',0,0,0,0);
234 for($i=0; $i<$num_rows; $i++){
235 $id_mupi = mysql_result($result,$i,"id_mupi");
236 $codigo_mupi = mysql_result($result,$i,"codigo_calle") . "." .mysql_result($result,$i,"codigo_mupi");
237 $direccion = truncate(mysql_result($result,$i,"direccion"));
238 $foto_generica = mysql_result($result,$i,"foto_generica");
239 $lon = mysql_result($result,$i,"lon");
240 $lat = mysql_result($result,$i,"lat");
241 $codigo_evento = mysql_result($result,$i,"codigo_evento");
242 if ( ($session->isAdmin() || $session->userlevel == SALESMAN_LEVEL) ) {
243 $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")."));";
244 //echo $q."<br>";
245 $result2 = $database->query($q);
246 $num_rows2 = mysql_numrows($result2);
247 $logotipo = "<br />";
249 if($num_rows2 > 0){
250 for($ii=0; $ii<$num_rows2; $ii++){
251 $logotipo .= CargarImagenDesdeBD(mysql_result($result2,$ii,"logotipo"), "50px");
254 } else {
255 $logotipo = ''; //"<br />".CargarImagenDesdeBD(mysql_result($result,$i,"logotipo"), "50px");
257 $logotipo = '<div style="width:400px; height:150px">'.$logotipo.'</div>';
258 $html = "<b>Dirección: </b>".$direccion."<br /><center>".$logotipo."</center>";
260 if ($session->userlevel == ADMIN_LEVEL) {
262 $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'".";";
263 //echo $q."<br>";
264 $result2 = $database->query($q);
265 $num_rows2 = mysql_numrows($result2);
266 $logotipo = "<br />";
267 $Valor_Peatonal = $Valor_Vehicular = $Pantalla_Vehicular = $Pantalla_Peatonal = NULL;
268 $Valor_Vehicular_Desc = $Valor_Peatonal_Desc = 'Ninguno';
270 $Boton_Vehicular = "<a href='./?"._ACC_."=gestionar+pantallas&crear=1&catorcena=$catorcena&tipo=0&id_mupi=$id_mupi' target='blank'>Crear esta cara...</a><br />";
271 $Boton_Peatonal = "<a href='./?"._ACC_."=gestionar+pantallas&crear=1&catorcena=$catorcena&tipo=1&id_mupi=$id_mupi' target='blank'>Crear esta cara...</a><br />";
272 if($num_rows2 > 0){
273 for($ii=0; $ii<$num_rows2; $ii++){
274 if ( (mysql_result($result2,$ii,"tipo_pantalla") % 2) == 0 ) {
275 $Pantalla_Vehicular = mysql_result($result2,$ii,"id_pantalla");
276 $Valor_Vehicular = mysql_result($result2,$ii,"codigo_pedido");
277 $Valor_Vehicular_Desc = mysql_result($result2,$ii,"descripcion");
278 $Boton_Vehicular = "<a href='./?"._ACC_."=gestionar+pantallas&actualizar=1&id=$Pantalla_Vehicular&catorcena=$catorcena' target='blank'>Editar esta cara...</a><br />";
279 } else {
280 $Pantalla_Peatonal = mysql_result($result2,$ii,"id_pantalla");
281 $Valor_Peatonal = mysql_result($result2,$ii,"codigo_pedido");
282 $Valor_Peatonal_Desc = mysql_result($result2,$ii,"descripcion");
283 $Boton_Peatonal = "<a href='./?"._ACC_."=gestionar+pantallas&actualizar=1&id=$Pantalla_Peatonal&catorcena=$catorcena' target='blank'>Editar esta cara...</a><br />";
289 $Contenido_maximizado =
290 "<b>Catorcena a editar:</b> " . AnularFechaNula($catorcena). " - " . AnularFechaNula( Fin_de_catorcena($catorcena) ).
291 "<br /><b>Mupi a Editar:</b> $codigo_mupi -> Id. $id_mupi" .
292 "<hr />".
293 "<table>".
294 "<tr>".
295 "<th>Cara vehicular</th><th>Cara peatonal</th>".
296 "</tr>".
297 "<tr>".
298 "<td width='50%' valign='top'>". // VEHICULAR
299 "<b>ID. Pantalla:</b> ".EnNulidad($Pantalla_Vehicular,"Ninguna")."<br />".
300 "<b>Código de pedido Actual:</b> $Valor_Vehicular | $Valor_Vehicular_Desc<br />".
301 $Boton_Vehicular.
302 "</td>".
303 "<td width='50%' valign='top'>". // PEATONAL
304 "<b>ID. Pantalla:</b> ". EnNulidad($Pantalla_Peatonal,"Ninguna")."<br />".
305 "<b>Código de pedido Actual:</b> $Valor_Peatonal | $Valor_Peatonal_Desc<br />".
306 $Boton_Peatonal.
307 "</td>".
308 "</tr>".
309 "</table>"
312 } else {
313 $Contenido_maximizado = "";
314 $map->Mostrar_Contenido_Maximizado = false;
316 $map->addMarkerByCoords($lon, $lat, $codigo_mupi . ' | ' . $direccion, $html, $codigo_mupi, $id_mupi . "|" . $catorcena . "|" . $usuario, $Contenido_maximizado);
317 $map->addMarkerIcon(public_base_directory().'/punto.gif','',12,12,0,0);
320 // Mostrar referencias. 10/02/09
321 if ($grupo_calle) $t_grupo_calle = " where $grupo_calle";
322 $q = "SELECT * FROM emupi_referencias".$t_grupo_calle.";";
323 DEPURAR($q,0);
324 $result = $database->query($q);
325 $num_rows = mysql_numrows($result);
326 $map->referencias = true;
327 for($i=0; $i<$num_rows; $i++){
328 $lon = mysql_result($result,$i,"lon");
329 $lat = mysql_result($result,$i,"lat");
330 $logotipo = "<br />".CargarImagenDesdeBD(mysql_result($result,$i,"imagen_referencia"), "200px");
331 $map->addMarkerByCoords($lon, $lat, "Referencia" , "Este es un punto de referencia<br />".$logotipo, '', "REF|$catorcena|".mysql_result($result,$i,"id_referencia"),"");
332 $map->addMarkerIcon(public_base_directory(). '/include/ver.php?id='.mysql_result($result,$i,"imagen_referencia"),'',0,0,50,50);
337 //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
338 $datos = '';
339 $datos .= $map->getMapJS();
340 //$datos .= $map->getMap();
341 $datos .= $map->getSidebar();
342 $datos .= SCRIPT('onLoad();');
343 return $datos;
346 function actualizarCoords ($id, $lat, $lng) {
347 global $database;
348 $q = "UPDATE ".TBL_MUPI." SET lat='$lat', lon='$lng' WHERE id_mupi='$id';";
349 $result = $database->query($q);
350 $database->REGISTRAR ("pantallas_mover", "Se movió el Eco Mupis '$id' a ($lat,$lng)","SQL: $q");
353 function actualizarReferencia ($id, $lat, $lng) {
354 global $database;
355 $q = "UPDATE ".TBL_REFS." SET lat='$lat', lon='$lng' WHERE id_referencia='$id';";
356 $result = $database->query($q);
357 $database->REGISTRAR ("referencias_mover", "Se movió la referencia '$id' a ($lat,$lng)","SQL: $q");