<?php 
	
	// Archivo de conexión a la base de datos
	require_once "conexion.php";
	class ModeloUsario extends ModeloConexion {
		
		/*=================================================================================
		CONSULTA PERFIES
		==================================================================================*/
		protected function mdlCosultaPerfiles(){

			$query = "SELECT * FROM sie_perfiles WHERE estado = 1 ORDER BY descripcion";

		    $sql = ModeloConexion::conectardb()->prepare($query);

		    $sql->execute();

		    return $sql;	

		}

		/*=================================================================================
		CONSULTA PROCESOS
		==================================================================================*/
		protected function mdlConsultaProcesos(){

			$query = "SELECT * FROM sie_procesos WHERE proceso_sie = 1 ORDER BY descripcion ASC";

		    $sql = ModeloConexion::conectardb()->prepare($query);

		    $sql->execute();

		    return $sql;	

		} 

		/*=================================================================================
		REGISTRA USUARIO
		==================================================================================*/
		protected function mdlRegistraUsuario($datos){

			$contrasena = md5($datos['clave']);

			$query = "INSERT INTO sie_usuarios(correo, contrasena, nombres, apellidos, celular, direccion, estado, id_proceso, id_perfil, id_usuario_crea, id_usuario_inactiva, fecha_creacion, imagen, cargo)VALUES(:correo_, :contrasena_, :nombres_, :apellidos_, :celular_, :direccion_, :estado_, :id_proceso_, :id_perfil_, :id_usuario_crea_, :id_usuario_inactiva_, :fecha_creacion_, :imagen_, :cargo_)";

		    $sql = ModeloConexion::conectardb()->prepare($query);


		    $sql->bindParam(':correo_', $datos['correo']);
		    $sql->bindParam(':contrasena_', $contrasena);
		    $sql->bindParam(':nombres_', $datos['nombre']);
		    $sql->bindParam(':apellidos_', $datos['apellido']);
		    $sql->bindParam(':celular_', $datos['celular']);
		    $sql->bindParam(':direccion_', $datos['direccion']);
		    $sql->bindParam(':estado_', $datos['customSwitusuario']);
		    $sql->bindParam(':id_proceso_', $datos['proceso']);
		    $sql->bindParam(':id_perfil_', $datos['perfil']);
		    $sql->bindParam(':id_usuario_crea_', $datos['id_usuario']);
		    $sql->bindParam(':id_usuario_inactiva_', $datos['id_usuario']);
		    $sql->bindParam(':fecha_creacion_', $datos['fecha']);
		    $sql->bindParam(':imagen_', $datos['foto']);
		    $sql->bindParam(':cargo_', $datos['cargo']);

		    $sql->execute();

		    return $sql;

		}

		/*=================================================================================
		CONSULTA USUARIO MEDIANTE EL CORREO ELECTRONICO
		==================================================================================*/
		protected function mdlConsultaUsuarioCorreo($correo){

			$query = "SELECT * FROM sie_usuarios WHERE correo = :correo_";

		    $sql = ModeloConexion::conectardb()->prepare($query);

		    $sql->bindParam(':correo_', $correo);

		    $sql->execute();

		    return $sql;	

		}

		/*=================================================================================
		CONSULTA USUARIO
		==================================================================================*/
		protected function mdlConsultaUsuario($nombre){

			$query = "SELECT * FROM sie_usuarios WHERE nombres LIKE '%$nombre%'";

		    $sql = ModeloConexion::conectardb()->prepare($query);

		    $sql->execute();

		    return $sql;	

		}


		protected function mdlActualizaUsuario($datos){

			// Si el elemento con key clave_nueva es diferente de vacío la consulta sql que se ejecutará actualizará la contraseña, de lo contrario no la actualizara. 
			if($datos['clave_nueva'] != "" ){

				// Si el elemento con key foto es diferente de vacío la consulta sql que se ejecutará actualizará la foto, de lo contrario no la actualizara. 
				if($datos['foto'] != ""){

					// De a cuerdo a las validaciones anteriores esta consulta también actualizará clave y foto de usuario.
					$query = "UPDATE sie_usuarios SET contrasena = :contrasena_, nombres = :nombres_, apellidos = :apellidos_, celular = :celular_, direccion = :direccion_, estado = :estado_, id_proceso = :id_proceso_, id_perfil = :id_perfil_, id_usuario_crea = :id_usuario_crea_, id_usuario_inactiva = :id_usuario_inactiva_, imagen = :imagen_, cargo = :cargo_ WHERE correo = :correo_";

					$sql = ModeloConexion::conectardb()->prepare($query);
		    		$sql->bindParam(':imagen_', $datos['foto']);

				}else{
					// De a cuerdo a las validaciones anteriores esta consulta también actualizará clave de usuario.
					$query = "UPDATE sie_usuarios SET contrasena = :contrasena_, nombres = :nombres_, apellidos = :apellidos_, celular = :celular_, direccion = :direccion_, estado = :estado_, id_proceso = :id_proceso_, id_perfil = :id_perfil_, id_usuario_crea = :id_usuario_crea_, id_usuario_inactiva = :id_usuario_inactiva_, cargo = :cargo_ WHERE correo = :correo_";

					$sql = ModeloConexion::conectardb()->prepare($query);

				}
				
		    	$sql->bindParam(':contrasena_', $datos['clave_nueva']);				
			
			}else{

				if($datos['foto'] != ""){

					// De a cuerdo a las validaciones anteriores esta consulta también actualizará foto de usuario.
					$query = "UPDATE sie_usuarios SET nombres = :nombres_, apellidos = :apellidos_, celular = :celular_, direccion = :direccion_, estado = :estado_, id_proceso = :id_proceso_, id_perfil = :id_perfil_, id_usuario_crea = :id_usuario_crea_, id_usuario_inactiva = :id_usuario_inactiva_, imagen = :imagen_, cargo = :cargo_ WHERE correo = :correo_";

					$sql = ModeloConexion::conectardb()->prepare($query);
		    		$sql->bindParam(':imagen_', $datos['foto']);

				}else{

					// De a cuerdo a las validaciones anteriores esta consulta no actualizará foto de usuario.
					$query = "UPDATE sie_usuarios SET nombres = :nombres_, apellidos = :apellidos_, celular = :celular_, direccion = :direccion_, estado = :estado_, id_proceso = :id_proceso_, id_perfil = :id_perfil_, id_usuario_crea = :id_usuario_crea_, id_usuario_inactiva = :id_usuario_inactiva_, cargo = :cargo_ WHERE correo = :correo_";

					$sql = ModeloConexion::conectardb()->prepare($query);

				}

			}

		    $sql->bindParam(':correo_', $datos['correo']);
		    $sql->bindParam(':nombres_', $datos['nombre']);
		    $sql->bindParam(':apellidos_', $datos['apellido']);
		    $sql->bindParam(':celular_', $datos['celular']);
		    $sql->bindParam(':direccion_', $datos['direccion']);
		    $sql->bindParam(':estado_', $datos['customSwitusuario']);
		    $sql->bindParam(':id_proceso_', $datos['proceso']);
		    $sql->bindParam(':id_perfil_', $datos['perfil']);
		    $sql->bindParam(':id_usuario_crea_', $datos['id_usuario']);
		    $sql->bindParam(':id_usuario_inactiva_', $datos['id_usuario']);
		    $sql->bindParam(':cargo_', $datos['cargo']);

		    $sql->execute();

		    return $sql;

		}


	}	
 ?>