<?php
include_once("connect.php");

$op = isset($_REQUEST['op']) ? $_REQUEST['op'] : '';
$id = isset($_REQUEST['id']) ? "'".$_REQUEST['id']."'" : '0';
$agencia = isset($_REQUEST['agencia']) ? "'".$_REQUEST['agencia']."'" : '0';
$usuario = isset($_REQUEST['usuario']) ? "'".$_REQUEST['usuario']."'" : '0';

switch($op)
{
	case 'cargadeptos':
		$query = "SELECT IdDepartamento, Nombre, Orden, Abrev, Responsable FROM departamentos ORDER BY IdDepartamento";
		$res=mysql_query($query);

		if (stristr($_SERVER["HTTP_ACCEPT"],"application/xhtml+xml"))
			header("Content-type: application/xhtml+xml");
		else
			header("Content-type: text/xml");
					
		print 	'<?xml version="1.0" encoding="iso-8859-1"?>'."\n".
		 	'<rows>'."\n";
		while($agencia=mysql_fetch_array($res))
		{
			print '<row id="'.$agencia['IdDepartamento'].'">'."\n". 
				'<cell>'.$agencia['IdDepartamento'].'</cell>'."\n".
				'<cell>'.$agencia['Nombre'].'</cell>'."\n".
				'<cell>'.$agencia['Abrev'].'</cell>'."\n".
				'<cell>'.$agencia['Orden'].'</cell>'."\n".
				'<cell>'.$agencia['Responsable'].'</cell>'."\n".
			      '</row>';
		}
		print	'</rows>';
		break;
	
	case 'cargaentes':
		$query = "SELECT IdEntidad, Nombre, Imagen FROM entidades WHERE IdDepartamento = $agencia ORDER BY IdEntidad";
		$res=mysql_query($query);

		if (stristr($_SERVER["HTTP_ACCEPT"],"application/xhtml+xml"))
			header("Content-type: application/xhtml+xml");
		else
			header("Content-type: text/xml");
					
		print 	'<?xml version="1.0" encoding="iso-8859-1"?>'."\n".
		 	'<rows>'."\n";
		while($ente=mysql_fetch_array($res))
		{
			print '<row id="'.$ente['IdEntidad'].'">'."\n". 
				'<cell>'.$ente['IdEntidad'].'</cell>'."\n".
				'<cell>'.$ente['Nombre'].'</cell>'."\n".
				'<cell>'.$ente['Imagen'].'</cell>'."\n".
			      '</row>';
		}
		print	'</rows>';
		break;

	case 'cargapermisos':
		$query = "SELECT D.Nombre Departamento, E.Nombre Entidad FROM departamentos D, entidades E, permisos P WHERE P.IdDepartamento = D.IdDepartamento AND P.IdDepartamento = E.IdDepartamento AND P.IdEntidad = E.IdEntidad AND P.IdUsuario = $usuario ORDER BY D.Nombre, E.Nombre";
		$res = mysql_query($query);

		if (stristr($_SERVER["HTTP_ACCEPT"],"application/xhtml+xml"))
			header("Content-type: application/xhtml+xml");
		else
			header("Content-type: text/xml");
					
		print 	'<?xml version="1.0" encoding="iso-8859-1"?>'."\n".
		 	'<rows>'."\n";
		$i = 1;
		while($usuario=mysql_fetch_array($res))
		{
			print '<row id="'.$i.'">'."\n".
				'<cell>'.$usuario['Departamento'].'</cell>'."\n".
				'<cell>'.$usuario['Entidad'].'</cell>'."\n".
			      '</row>';
			$i++;
		}
		print	'</rows>';
		break;

	case 'cargausers':
		$query = "SELECT uid, fullname, name, mail FROM users ORDER BY uid";
		$res = mysql_query($query);

		if (stristr($_SERVER["HTTP_ACCEPT"],"application/xhtml+xml"))
			header("Content-type: application/xhtml+xml");
		else
			header("Content-type: text/xml");
					
		print 	'<?xml version="1.0" encoding="iso-8859-1"?>'."\n".
		 	'<rows>'."\n";
		while($usuario=mysql_fetch_array($res))
		{
			print '<row id="'.$usuario['uid'].'">'."\n".
				'<cell>'.$usuario['fullname'].'</cell>'."\n".
				'<cell>'.$usuario['name'].'</cell>'."\n".
				'<cell>'.$usuario['mail'].'</cell>'."\n".
			      '</row>';
		}
		print	'</rows>';
		break;
		
	case "deptoadd":
		$v_codigo = isset($_POST['deptocodigo']) ? "'".$_POST['deptocodigo']."'" : '0'; 
		$v_nombre = isset($_POST['deptonombre']) ? "'".utf8_decode($_POST['deptonombre'])."'" : '0'; 
		$v_abrev = isset($_POST['deptoabrev']) ? "'".$_POST['deptoabrev']."'" : '0';
		$v_orden = isset($_POST['deptoorden']) ? "'". $_POST['deptoorden']."'" : '0'; 
		$v_responsable = isset($_POST['deptoresponsable']) ? "'".utf8_decode($_POST['deptoresponsable'])."'" : '0'; 
		
		$repetido = false;
		$query = "SELECT * FROM departamentos WHERE IdDepartamento = $v_codigo OR Nombre = $v_nombre OR Abrev = $v_abrev";
		$res = mysql_query($query);
		while($row=mysql_fetch_array($res))
		{
			if($v_codigo=="'".$row['IdDepartamento']."'")
			{
				$repetido = true;
				print("Ya existe un departamento con ese código");
				break;
			}
			if($v_nombre=="'".$row['Nombre']."'")
			{
				$repetido = true;
				print("Ya existe un departamento con ese nombre");
				break;
			}
			if($v_abrev=="'".$row['Abrev']."'")
			{
				$repetido = true;
				print("Ya existe una agencia con esa abreviatura");
				break;
			}
		}
		if(!$repetido)
		{
			$query = "INSERT INTO departamentos(IdDepartamento, Nombre, Orden, Abrev, Responsable) VALUES ($v_codigo, $v_nombre, $v_orden, $v_abrev, $v_responsable)";
			if(mysql_query($query))
			{
				print("Datos del departamento almacenados correctamente");
			}
			else
			{
				print("Error al almacenar departamento");
			}
		}		
		break;
	
	case "deptoedit":
		$v_codigo = isset($_POST['deptocodigo']) ? "'".$_POST['deptocodigo']."'" : '0'; 
		$v_nombre = isset($_POST['deptonombre']) ? "'".utf8_decode($_POST['deptonombre'])."'" : '0'; 
		$v_abrev = isset($_POST['deptoabrev']) ? "'".$_POST['deptoabrev']."'" : '0'; 
		$v_orden = isset($_POST['deptoorden']) ? "'". $_POST['deptoorden']."'" : '0'; 
		$v_responsable = isset($_POST['deptoresponsable']) ? "'".utf8_decode($_POST['deptoresponsable'])."'" : '0'; 
		$v_view = "'S'";
		
		$repetido = false;
		$query = "SELECT * from departamentos WHERE (Nombre = $v_nombre OR Abrev = $v_abrev) AND IdDepartamento <> $v_codigo";
		$res = mysql_query($query);
		while($row=mysql_fetch_array($res))
		{
			if($v_nombre=="'".$row['Nombre']."'")
			{
				$repetido = true;
				print("Ya existe un departamento con ese nombre");
				break;
			}
			if($v_abrev=="'".$row['Abrev']."'")
			{
				$repetido = true;
				print("Ya existe una agencia con esa abreviatura");
				break;
			}
		}
		if(!$repetido)
		{
			$query = "UPDATE departamentos SET Nombre = $v_nombre, Orden = $v_orden, Abrev = $v_abrev, Responsable = $v_responsable WHERE IdDepartamento = $v_codigo";
			if(mysql_query($query))
			{
				print("Datos del departamento almacenados correctamente");
			}
			else
			{
				print("Error al almacenar departamento");
			}
		}		
		break;

	case "deptodel":
		$query = "SELECT * FROM programas WHERE IdDepartamento = $id";
		$res = mysql_query($query);
		if(mysql_num_rows($res)>0)
			print("El departamento no puede ser eliminado porque tiene programas reportados");
		else
		{
			mysql_query("START TRANSACTION");
			$query = "DELETE FROM departamentos WHERE IdDepartamento = $id";
			if(mysql_query($query))
			{
				$query = "DELETE FROM entidades WHERE IdDepartamento = $id";
				if(mysql_query($query))
				{
					print("Departamento eliminado correctamente");
					mysql_query("COMMIT");
				}
				else
				{
					print("Error al eliminar departamento. No se pudieron eliminar los datos de las entidades");
					mysql_query("ROLLBACK");
				}
			}
			else
			{
				print("Error al eliminar departamento");
				mysql_query("ROLLBACK");
			}
		}
		break;

	case "enteadd":
		$v_codigo = isset($_POST['entecodigo']) ? "'".$_POST['entecodigo']."'" : '0'; 
		$v_nombre = isset($_POST['entenombre']) ? "'".utf8_decode($_POST['entenombre'])."'" : '0'; 
		$v_agencia = isset($_POST['cod']) ? "'".$_POST['cod']."'" : '0'; 
		
		$repetido = false;
		$query = "SELECT * FROM entidades WHERE (IdEntidad = $v_codigo OR Nombre = $v_nombre) AND IdDepartamento = $v_agencia";
		$res = mysql_query($query);
		while($row=mysql_fetch_array($res))
		{
			if($v_codigo=="'".$row['IdEntidad']."'")
			{
				$repetido = true;
				print("Ya existe una entidad con ese código en el departamento");
				break;
			}
			if($v_nombre=="'".$row['Nombre']."'")
			{
				$repetido = true;
				print("Ya existe una entidad con ese nombre en el departamento");
				break;
			}
		}
		if(!$repetido)
		{
			$query = "INSERT INTO entidades(IdDepartamento, IdEntidad, Nombre) VALUES ($v_agencia, $v_codigo, $v_nombre)";
			if(mysql_query($query))
				print("Datos de la entidad almacenados correctamente");
			else
				print("Error al almacenar entidad");
		}		
		break;

	case "enteedit":
		$v_codigo = isset($_POST['entecodigo']) ? "'".$_POST['entecodigo']."'" : '0'; 
		$v_nombre = isset($_POST['entenombre']) ? "'".utf8_decode($_POST['entenombre'])."'" : '0'; 
		$v_imagen = isset($_POST['enteimagen']) ? "'".$_POST['enteimagen']."'" : "'NULL'"; 
		$v_agencia = isset($_POST['cod']) ? "'".$_POST['cod']."'" : '0'; 
		
		$repetido = false;
		$query = "SELECT * from entidades WHERE Nombre = $v_nombre AND IdDepartamento = $v_agencia AND IdEntidad <> $v_codigo";
		$res = mysql_query($query);
		while($row=mysql_fetch_array($res))
		{
			if($v_nombre=="'".$row['Nombre']."'")
			{
				$repetido = true;
				print("Ya existe una entidad con ese nombre en el departamento");
				break;
			}
		}
		if(!$repetido)
		{
			$query = "UPDATE entidades SET Nombre = $v_nombre, Imagen = $v_imagen WHERE IdDepartamento = $v_agencia AND IdEntidad = $v_codigo";
			if(mysql_query($query))
				print("Datos de la entidad almacenados correctamente");
			else
				print("Error al almacenar entidad");
		}		
		break;

	case "entedel":
		$query = "SELECT * FROM programas WHERE IdDepartamento = $agencia AND IdEntidad = $id";
		$res = mysql_query($query);
		if(mysql_num_rows($res)>0)
			print("La entidad no puede ser eliminada porque tiene inversiones reportadas");
		else
		{
			$query = "DELETE FROM entidades WHERE IdDepartamento = $agencia AND IdEntidad = $id";
			if(mysql_query($query))
			{
				print("Entidad eliminada correctamente");
			}
			else
			{
				print("Error al eliminar entidad");
			}
		}
		break;

	case 'permisos':
		$query = "SELECT D.IdDepartamento, E.IdEntidad, D.Nombre Departamento, E.Nombre Entidad, P.IdDepartamento AS Permiso FROM departamentos D INNER JOIN entidades E ON D.IdDepartamento = E.IdDepartamento LEFT JOIN permisos P ON E.IdDepartamento = P.IdDepartamento AND E.IdEntidad = P.IdEntidad AND P.IdUsuario = $usuario ORDER BY D.Nombre, E.Nombre";
		$res = mysql_query($query);

		if (stristr($_SERVER["HTTP_ACCEPT"],"application/xhtml+xml"))
			header("Content-type: application/xhtml+xml");
		else
			header("Content-type: text/xml");
					
		print 	'<?xml version="1.0" encoding="iso-8859-1"?>'."\n".
		 	'<rows>'."\n";
		while($usuario=mysql_fetch_array($res))
		{
			print '<row id="'.$usuario['IdDepartamento'].'_'.$usuario['IdEntidad'].'">'."\n".
				'<cell>'.$usuario['Departamento'].'</cell>'."\n".
				'<cell>'.$usuario['Entidad'].'</cell>'."\n".
				'<cell>'.$usuario['Permiso'].'</cell>'."\n".
			      '</row>';
		}
		print	'</rows>';
		break;

	case "useradd":
		$v_completo = isset($_POST['usercompleto']) ? "'".utf8_decode($_POST['usercompleto'])."'" : '0'; 
		$v_nombre = isset($_POST['usernombre']) ? "'".$_POST['usernombre']."'" : '0'; 
		$v_mail = isset($_POST['usermail']) ? "'".$_POST['usermail']."'" : '0'; 
		$v_pass = isset($_POST['userpass']) ? "'".md5($_POST['userpass'])."'" : '0'; 
		$v_permisos = isset($_POST['userpermisosdeta']) ? $_POST['userpermisosdeta'] : ''; 
		$v_permisos = explode(',', $v_permisos);
		
		$repetido = false;
		$query = "SELECT * from users WHERE fullname = $v_completo OR name = $v_nombre OR mail = $v_mail";
		$res = mysql_query($query);
		while($row=mysql_fetch_array($res))
		{
			if($v_completo == "'".$row['fullname']."'")
			{
				$repetido = true;
				print("Ya existe un usuario con ese nombre");
				break;
			}
			if($v_nombre == "'".$row['name']."'")
			{
				$repetido = true;
				print utf8_encode("Ya existe un usuario con ese código de usuario");
				break;
			}
			if($v_mail == "'".$row['mail']."'")
			{
				$repetido = true;
				print("Ya existe un usuario con ese correo");
				break;
			}
		}
		
		$v_theme = "''";
		$v_signature = "''";
		$v_status = 1;
		$v_tzonen = "'Europe/Madrid'";
		$v_tzone = "7200";
		$v_lang = "''";
		$v_pic = "''";
		$v_init = "''";
		$v_data = "'a:0:{}'";
		
		if(!$repetido)
		{
			mysql_query("START TRANSACTION");
			$query = "INSERT INTO users(name, pass, mail, theme, signature, status, timezone, language, picture, init, data, timezone_name, fullname) VALUES ($v_nombre, $v_pass, $v_mail, $v_theme, $v_signature, $v_status, $v_tzone, $v_lang, $v_pic, $v_init, $v_data, $v_tzonen, $v_completo)";
			if(mysql_query($query))
			{
				$v_codigo = mysql_insert_id();
				$v_rol = 6;
				$query = "INSERT INTO users_roles(uid,rid) VALUES ($v_codigo, $v_rol)";
				if(mysql_query($query))
				{
					for($i=0;$i<count($v_permisos);$i++)
					{
						$cod = explode('_',$v_permisos[$i]);
						$sql .= '('.$cod[0].','.$cod[1].','.$v_codigo.'),';
					}
					if($sql)
					{
						$sql = substr($sql,0,strlen($sql)-1);
						//aqui van los permisos a las entidades
						$query = "INSERT INTO permisos VALUES $sql";
						if(mysql_query($query))
						{
							print("Datos del usuario almacenados correctamente");
							mysql_query("COMMIT");
						}
						else
						{
							print("Error al almacenar usuario #E01#");
							mysql_query("ROLLBACK");
						}	
					}
				}
				else
				{
					print("Error al almacenar usuario #E02#");
					mysql_query("ROLLBACK");
				}	
			}
			else
			{
				print("Error al almacenar usuario #E03#");
				mysql_query("ROLLBACK");
			}	
		}
		break;

	case "useredit":
		$v_codigo = isset($_POST['usercodigo']) ? "'".$_POST['usercodigo']."'" : '0'; 
		$v_completo = isset($_POST['usercompleto']) ? "'".utf8_decode($_POST['usercompleto'])."'" : '0'; 
		$v_nombre = isset($_POST['usernombre']) ? "'".$_POST['usernombre']."'" : '0'; 
		$v_mail = isset($_POST['usermail']) ? "'".$_POST['usermail']."'" : '0'; 
		if($_POST['userpass']!='')
		{
			$v_pass = "'".md5($_POST['userpass'])."'";
			$modifpass = ", pass = $v_pass ";
		}
		else
			$modifpass = '';
		
		$v_permisos = isset($_POST['userpermisosdeta']) ? $_POST['userpermisosdeta'] : ''; 
		$v_permisos = explode(',', $v_permisos);
		
		$repetido = false;
		$query = "SELECT * from users WHERE (fullname = $v_completo OR name = $v_nombre OR mail = $v_mail) and uid <> $v_codigo";
		$res = mysql_query($query);
		while($row=mysql_fetch_array($res))
		{
			if($v_completo == "'".$row['fullname']."'")
			{
				$repetido = true;
				print("Ya existe un usuario con ese nombre");
				break;
			}
			if($v_nombre == "'".$row['name']."'")
			{
				$repetido = true;
				print("Ya existe un usuario con ese código de usuario");
				break;
			}
			if($v_mail == "'".$row['mail']."'")
			{
				$repetido = true;
				print("Ya existe un usuario con ese correo");
				break;
			}
		}
		
		if(!$repetido)
		{
			mysql_query("START TRANSACTION");

			mysql_query("DELETE FROM permisos WHERE IdUsuario = $v_codigo");
			
			$query = "UPDATE users SET name = $v_nombre, mail = $v_mail, fullname = $v_completo $modifpass WHERE uid = $v_codigo";
			if(mysql_query($query))
			{
				for($i=0;$i<count($v_permisos);$i++)
				{
					$cod = explode('_',$v_permisos[$i]);
					$sql .= '('.$cod[0].','.$cod[1].','.$v_codigo.'),';
				}
				if($sql)
				{
					$sql = substr($sql,0,strlen($sql)-1);
					//aqui van los permisos a las entidades
					$query = "INSERT INTO permisos VALUES $sql";
					if(mysql_query($query))
					{
						print("Datos del usuario almacenados correctamente");
						mysql_query("COMMIT");
					}
					else
					{
						print("Error al almacenar usuario #E01#");
						mysql_query("ROLLBACK");
					}	
				}
			}
			else
			{
				print("Error al almacenar usuario #E03#");
				mysql_query("ROLLBACK");
			}	
		}
		break;

	case "userdel":
		$query = "SELECT name FROM users WHERE uid = $id";
		$res = mysql_query($query);
		$usr = mysql_fetch_array($res);
		$usu_nombre = "'".$usr['name']."'";
		
		mysql_query("START TRANSACTION");
		$query = "DELETE FROM users WHERE uid = $id";
		if(mysql_query($query))
		{
			$query = "DELETE FROM users_roles WHERE uid = $id";
			if(mysql_query($query))
			{
				$query = "DELETE FROM permisos WHERE IdUsuario = $id";
				if(mysql_query($query))
				{
					print("Usuario eliminado correctamente");
					mysql_query("COMMIT");
				}
				else
				{
					print("Error al eliminar usuario: No se pueden eliminar los permisos");
					mysql_query("ROLLBACK");
				}		
			}
			else
			{
				print("Error al eliminar usuario: No se pueden eliminar los roles");
				mysql_query("ROLLBACK");
			}		
		}
		else
		{
			print("Error al eliminar usuario");
			mysql_query("ROLLBACK");
		}
		break;
		
	case "files":
		$dir = '../logos/';
		$files = '';
		$i=1;
		if (stristr($_SERVER["HTTP_ACCEPT"],"application/xhtml+xml"))
			header("Content-type: application/xhtml+xml");
		else
			header("Content-type: text/xml");
					
		print 	'<?xml version="1.0" encoding="iso-8859-1"?>'."\n".
		 	'<data>'."\n";
		if($dh = opendir($dir)) 
		{
			while(false !== ($file = readdir($dh)))
			{
				if($file != "." && $file != "..")
				{
					$files .= '<item id="'.$file.'">'."\n".
							'<Image>'.'formularios/logos/'.$file.'</Image>'."\n".
					   	  '</item>'."\n";	
							
					$i++;
				}
			}
			print $files;
			closedir($dh);
		}
		print '</data>';
}
mysql_close();

?>