<?php 
	require_once "conexion.php";
	class ModeloGestionDocumental extends ModeloConexion{


		/*=============================================================================
		CONSUTA OPCIONES DE PROCESO
		==============================================================================*/
		protected function mdlConsultaOpcionesProceso($id_proceso){

			$query = "SELECT * FROM sie_opciones_procesos WHERE estado = 1 AND id_proceso = '$id_proceso' ORDER BY descripcion ASC";

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

			$sql->execute();

			return $sql;

		}

		/*=============================================================================
		CONSUTA TIPOS DE DOCUMENTOS
		==============================================================================*/
		protected function mdlConsultaTipoDocumento($descripcion){

			if($descripcion != ""){

				$query = "SELECT * FROM sie_tipo_documentos WHERE descripcion = '$descripcion'";

			}else{

				$query = "SELECT * FROM sie_tipo_documentos WHERE estado = 1 ORDER BY descripcion ASC";
			
			}

			$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;

		}

		/*====================================================================
		CONSULTA ESTADO DE DOCUMENTOS
		=====================================================================*/
		protected function mdlConsultaEstadoDocumentos(){

			$query = "SELECT * FROM sie_estado_documentos ORDER BY descripcion ASC";

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

			$sql->execute();

			return $sql;

		}

		

		/*====================================================================
		REGISTRA DOCUMENTOS
		=====================================================================*/
		protected function mdlRegistraDocumentos($datos){

			$query = "INSERT INTO sie_documentos (id_tipo, nombre, descripcion, acceso_global, id_proceso, id_usuario_crea, fecha_creacion, id_estado, ruta)VALUES(:id_tipo, :nombre, :descripcion, :acceso_global, :id_proceso, :id_usuario_crea, :fecha_creacion, :id_estado, :ruta)";

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

			$sql->bindParam(':id_tipo', $datos['tipodocumento']);
			$sql->bindParam(':nombre', $datos['nombredocumento']);
			$sql->bindParam(':descripcion', $datos['descripciondocumento']);
			$sql->bindParam(':acceso_global', $datos['acceso']);
			$sql->bindParam(':id_proceso', $datos['proceso_']);
			$sql->bindParam(':id_usuario_crea', $datos['usuario']);
			$sql->bindParam(':fecha_creacion', $datos['fecha']);
			$sql->bindParam(':id_estado', $datos['estado']);
			$sql->bindParam(':ruta', $datos['documentoadjunto']);
			
			$sql->execute();

			return $sql;

		}

		/*====================================================================
		REGISTRA DOCUMENTOS
		=====================================================================*/
		protected function mdlActuaalizaDocumentos($datos){

			$query = "UPDATE sie_documentos SET  nombre = :descripcion, id_tipo = :id_tipo, id_proceso = :id_proceso, id_estado = :id_estado, acceso_global = :acceso, id_usuario_crea = :id_usuario_crea WHERE id = :id_documento";  
			// (id_tipo, nombre, descripcion, acceso_global, id_proceso, id_usuario_crea, fecha_creacion, id_estado, ruta)";  mdlActuaalizaDocumentos

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

			$sql->bindParam(':id_documento', $datos['id_documento']);
			$sql->bindParam(':descripcion', $datos['desc_documento']);
			$sql->bindParam(':id_tipo', $datos['tipo_documento']);
			$sql->bindParam(':descripcion', $datos['desc_documento']);
			$sql->bindParam(':id_proceso', $datos['proceso']);
			$sql->bindParam(':id_estado', $datos['estado']);
			$sql->bindParam(':acceso', $datos['acceso']);
			$sql->bindParam(':id_usuario_crea', $datos['id_usuario']);
			
			$sql->execute();

			return $sql;

		}

		/*====================================================================
		CONSULTA DOCUMENTOS
		=====================================================================*/
		protected function mdlConsultaDocumentos($nombre){

			if($nombre != ""){

				$query = "SELECT * FROM sie_documentos WHERE nombre = '$nombre'";
			
			}else{

				$query = "SELECT * FROM sie_documentos ORDER BY nombre ASC";

			}

			

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

			return $sql;

		}


		/*====================================================================
		CONSULTA DOCUMENTOS E INFORMACIÓN RELACIONADA
		=====================================================================*/
		protected function mdlConsultaDocumentos_($nombre, $tipo_documento, $creador, $id_proceso, $id_perfil){

			if(trim($id_perfil) == 16 && $nombre != '' && $tipo_documento != 0 && $creador != ''){

				$query = "SELECT d.id, d.nombre, d.descripcion, td.descripcion AS desc_tipo_documento, d.acceso_global, d.id_estado, u.nombres, u.apellidos, d.fecha_creacion, d.ruta, td.id, d.id_usuario_crea FROM sie_documentos d LEFT JOIN sie_procesos p ON p.id = d.id_proceso LEFT JOIN sie_usuarios u ON u.id = d.id_usuario_crea LEFT JOIN sie_estado_documentos ed ON ed.id = d.id_estado LEFT JOIN sie_tipo_documentos td ON td.id = d.id_tipo WHERE d.nombre LIKE '%$nombre%' AND td.id = '$tipo_documento' AND d.id_usuario_crea = '$creador' AND (d.id_proceso = '$id_proceso' OR d.acceso_global = 1)  AND d.id_estado = 1";

			}else if(trim($id_perfil) == 16 && $nombre != '' && $tipo_documento != 0){

				$query = "SELECT d.id, d.nombre, d.descripcion, td.descripcion AS desc_tipo_documento, d.acceso_global, d.id_estado, u.nombres, u.apellidos, d.fecha_creacion, d.ruta, td.id, d.id_usuario_crea FROM sie_documentos d LEFT JOIN sie_procesos p ON p.id = d.id_proceso LEFT JOIN sie_usuarios u ON u.id = d.id_usuario_crea LEFT JOIN sie_estado_documentos ed ON ed.id = d.id_estado LEFT JOIN sie_tipo_documentos td ON td.id = d.id_tipo WHERE d.nombre LIKE '%$nombre%' AND td.id = '$tipo_documento' AND (d.id_proceso = '$id_proceso' OR d.acceso_global = 1)  AND d.id_estado = 1";

			}else if(trim($id_perfil) == 16 && $nombre != '' && $creador != ''){

				$query = "SELECT d.id, d.nombre, d.descripcion, td.descripcion AS desc_tipo_documento, d.acceso_global, d.id_estado, u.nombres, u.apellidos, d.fecha_creacion, d.ruta, td.id, d.id_usuario_crea FROM sie_documentos d LEFT JOIN sie_procesos p ON p.id = d.id_proceso LEFT JOIN sie_usuarios u ON u.id = d.id_usuario_crea LEFT JOIN sie_estado_documentos ed ON ed.id = d.id_estado LEFT JOIN sie_tipo_documentos td ON td.id = d.id_tipo WHERE d.nombre LIKE '%$nombre%' AND d.id_usuario_crea = '$creador'  AND (d.id_proceso = '$id_proceso' OR d.acceso_global = 1)  AND d.id_estado = 1";

			}else if(trim($id_perfil) == 16 && $tipo_documento != 0 && $creador != ''){

				$query = "SELECT d.id, d.nombre, d.descripcion, td.descripcion AS desc_tipo_documento, d.acceso_global, d.id_estado, u.nombres, u.apellidos, d.fecha_creacion, d.ruta, td.id, d.id_usuario_crea FROM sie_documentos d LEFT JOIN sie_procesos p ON p.id = d.id_proceso LEFT JOIN sie_usuarios u ON u.id = d.id_usuario_crea LEFT JOIN sie_estado_documentos ed ON ed.id = d.id_estado LEFT JOIN sie_tipo_documentos td ON td.id = d.id_tipo WHERE td.id = '$tipo_documento' AND d.id_usuario_crea = '$creador' AND (d.id_proceso = '$id_proceso' OR d.acceso_global = 1)  AND d.id_estado = 1";

			}else if(trim($id_perfil) == 16 && $nombre != ''){

				$query = "SELECT d.id, d.nombre, d.descripcion, td.descripcion AS desc_tipo_documento, d.acceso_global, d.id_estado, u.nombres, u.apellidos, d.fecha_creacion, d.ruta, td.id, d.id_usuario_crea FROM sie_documentos d LEFT JOIN sie_procesos p ON p.id = d.id_proceso LEFT JOIN sie_usuarios u ON u.id = d.id_usuario_crea LEFT JOIN sie_estado_documentos ed ON ed.id = d.id_estado LEFT JOIN sie_tipo_documentos td ON td.id = d.id_tipo WHERE d.nombre LIKE '%$nombre%' AND (d.id_proceso = '$id_proceso' OR d.acceso_global = 1)  AND d.id_estado = 1";

			}else if(trim($id_perfil) == 16 && $tipo_documento != 0){

				$query = "SELECT d.id, d.nombre, d.descripcion, td.descripcion AS desc_tipo_documento, d.acceso_global, d.id_estado, u.nombres, u.apellidos, d.fecha_creacion, d.ruta, td.id, d.id_usuario_crea FROM sie_documentos d LEFT JOIN sie_procesos p ON p.id = d.id_proceso LEFT JOIN sie_usuarios u ON u.id = d.id_usuario_crea LEFT JOIN sie_estado_documentos ed ON ed.id = d.id_estado LEFT JOIN sie_tipo_documentos td ON td.id = d.id_tipo WHERE td.id = '$tipo_documento' AND (d.id_proceso = '$id_proceso' OR d.acceso_global = 1)  AND d.id_estado = 1";

			}else if(trim($id_perfil) == 16 && $creador != ''){

					$query = "SELECT d.id, d.nombre, d.descripcion, td.descripcion AS desc_tipo_documento, d.acceso_global, d.id_estado, u.nombres, u.apellidos, d.fecha_creacion, d.ruta, td.id, d.id_usuario_crea FROM sie_documentos d LEFT JOIN sie_procesos p ON p.id = d.id_proceso LEFT JOIN sie_usuarios u ON u.id = d.id_usuario_crea LEFT JOIN sie_estado_documentos ed ON ed.id = d.id_estado LEFT JOIN sie_tipo_documentos td ON td.id = d.id_tipo WHERE d.id_usuario_crea = '$creador' AND (d.id_proceso = '$id_proceso' OR d.acceso_global = 1)  AND d.id_estado = 1";

			}else if(trim($id_perfil) == 16){

				$query = "SELECT d.id, d.nombre, d.descripcion, td.descripcion AS desc_tipo_documento, d.acceso_global, d.id_estado, u.nombres, u.apellidos, d.fecha_creacion, d.ruta, td.id, d.id_usuario_crea FROM sie_documentos d LEFT JOIN sie_procesos p ON p.id = d.id_proceso LEFT JOIN sie_usuarios u ON u.id = d.id_usuario_crea LEFT JOIN sie_estado_documentos ed ON ed.id = d.id_estado LEFT JOIN sie_tipo_documentos td ON td.id = d.id_tipo WHERE d.id_estado = 1 AND (d.id_proceso = '$id_proceso' OR d.acceso_global = 1)";

			}else if($nombre != '' && $tipo_documento != 0 && $creador != ''){

				$query = "SELECT d.id, d.nombre, d.descripcion, td.descripcion AS desc_tipo_documento, d.acceso_global, d.id_estado, u.nombres, u.apellidos, d.fecha_creacion, d.ruta, td.id, d.id_usuario_crea FROM sie_documentos d LEFT JOIN sie_procesos p ON p.id = d.id_proceso LEFT JOIN sie_usuarios u ON u.id = d.id_usuario_crea LEFT JOIN sie_estado_documentos ed ON ed.id = d.id_estado LEFT JOIN sie_tipo_documentos td ON td.id = d.id_tipo WHERE d.id_proceso = '$id_proceso' AND d.nombre LIKE '%$nombre%' AND td.id = '$tipo_documento' AND d.id_usuario_crea = '$creador' AND d.id_estado = 1";

			}else if($nombre != '' && $tipo_documento != 0){

				$query = "SELECT d.id, d.nombre, d.descripcion, td.descripcion AS desc_tipo_documento, d.acceso_global, d.id_estado, u.nombres, u.apellidos, d.fecha_creacion, d.ruta, td.id, d.id_usuario_crea FROM sie_documentos d LEFT JOIN sie_procesos p ON p.id = d.id_proceso LEFT JOIN sie_usuarios u ON u.id = d.id_usuario_crea LEFT JOIN sie_estado_documentos ed ON ed.id = d.id_estado LEFT JOIN sie_tipo_documentos td ON td.id = d.id_tipo WHERE d.id_proceso = '$id_proceso' AND d.nombre LIKE '%$nombre%' AND td.id = '$tipo_documento' AND d.id_proceso = '$id_proceso' AND d.id_estado = 1";

			}else if($nombre != '' && $creador != ''){

				$query = "SELECT d.id, d.nombre, d.descripcion, td.descripcion AS desc_tipo_documento, d.acceso_global, d.id_estado, u.nombres, u.apellidos, d.fecha_creacion, d.ruta, td.id, d.id_usuario_crea FROM sie_documentos d LEFT JOIN sie_procesos p ON p.id = d.id_proceso LEFT JOIN sie_usuarios u ON u.id = d.id_usuario_crea LEFT JOIN sie_estado_documentos ed ON ed.id = d.id_estado LEFT JOIN sie_tipo_documentos td ON td.id = d.id_tipo WHERE d.nombre LIKE '%$nombre%' AND d.id_usuario_crea = '$creador' AND d.id_proceso = '$id_proceso' AND d.id_estado = 1";

			}else if($tipo_documento != 0 && $creador != ''){

				$query = "SELECT d.id, d.nombre, d.descripcion, td.descripcion AS desc_tipo_documento, d.acceso_global, d.id_estado, u.nombres, u.apellidos, d.fecha_creacion, d.ruta, td.id, d.id_usuario_crea FROM sie_documentos d LEFT JOIN sie_procesos p ON p.id = d.id_proceso LEFT JOIN sie_usuarios u ON u.id = d.id_usuario_crea LEFT JOIN sie_estado_documentos ed ON ed.id = d.id_estado LEFT JOIN sie_tipo_documentos td ON td.id = d.id_tipo WHERE td.id = '$tipo_documento' AND d.id_usuario_crea = '$creador' AND d.id_proceso = '$id_proceso' AND d.id_estado = 1";

			}else if($nombre != ''){

				$query = "SELECT d.id, d.nombre, d.descripcion, td.descripcion AS desc_tipo_documento, d.acceso_global, d.id_estado, u.nombres, u.apellidos, d.fecha_creacion, d.ruta, td.id, d.id_usuario_crea FROM sie_documentos d LEFT JOIN sie_procesos p ON p.id = d.id_proceso LEFT JOIN sie_usuarios u ON u.id = d.id_usuario_crea LEFT JOIN sie_estado_documentos ed ON ed.id = d.id_estado LEFT JOIN sie_tipo_documentos td ON td.id = d.id_tipo WHERE d.id_proceso = '$id_proceso' AND d.nombre LIKE '%$nombre%' AND d.id_proceso = '$id_proceso' AND d.id_estado = 1";

			}else if($tipo_documento != 0){

				$query = "SELECT d.id, d.nombre, d.descripcion, td.descripcion AS desc_tipo_documento, d.acceso_global, d.id_estado, u.nombres, u.apellidos, d.fecha_creacion, d.ruta, td.id, d.id_usuario_crea FROM sie_documentos d LEFT JOIN sie_procesos p ON p.id = d.id_proceso LEFT JOIN sie_usuarios u ON u.id = d.id_usuario_crea LEFT JOIN sie_estado_documentos ed ON ed.id = d.id_estado LEFT JOIN sie_tipo_documentos td ON td.id = d.id_tipo WHERE td.id = '$tipo_documento' AND d.id_proceso = '$id_proceso' AND d.id_estado = 1";

			}else if($creador != ''){

					$query = "SELECT d.id, d.nombre, d.descripcion, td.descripcion AS desc_tipo_documento, d.acceso_global, d.id_estado, u.nombres, u.apellidos, d.fecha_creacion, d.ruta, td.id, d.id_usuario_crea FROM sie_documentos d LEFT JOIN sie_procesos p ON p.id = d.id_proceso LEFT JOIN sie_usuarios u ON u.id = d.id_usuario_crea LEFT JOIN sie_estado_documentos ed ON ed.id = d.id_estado LEFT JOIN sie_tipo_documentos td ON td.id = d.id_tipo WHERE d.id_usuario_crea = '$creador' AND d.id_proceso = '$id_proceso' AND d.id_estado = 1";

			}else{

				$query = "SELECT d.id, d.nombre, d.descripcion, td.descripcion AS desc_tipo_documento, d.acceso_global, d.id_estado, u.nombres, u.apellidos, d.fecha_creacion, d.ruta, td.id, d.id_usuario_crea, d.id_proceso FROM sie_documentos d LEFT JOIN sie_procesos p ON p.id = d.id_proceso LEFT JOIN sie_usuarios u ON u.id = d.id_usuario_crea LEFT JOIN sie_estado_documentos ed ON ed.id = d.id_estado LEFT JOIN sie_tipo_documentos td ON td.id = d.id_tipo WHERE d.id_proceso = '$id_proceso' AND d.id_estado = 1";

			}


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

			return $sql;

		}
		


		/*====================================================================
		CONSULTA USUARIOS
		=====================================================================*/
		protected function mdlConsultaUsuarios(){

			$query = "SELECT * FROM sie_usuarios WHERE estado = 1 ORDER BY nombres ASC";

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

			return $sql;

		}

		/*====================================================================
		REGISTRA TIPO DE DOCUMENTO
		=====================================================================*/
		protected function mdlRegistraTipoDocumento($datos){

			$query = "INSERT INTO sie_tipo_documentos (descripcion)VALUES(:descripcion)";

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

			$sql->execute();

			return $sql;

		}

		/*====================================================================
		ACTUALIZA TIPO DE DOCUMENTO
		=====================================================================*/
		protected function mdlActualizaTipoDocumento($datos){

			$query = "UPDATE sie_tipo_documentos SET descripcion = :descripcion, estado = :estado WHERE id = :id_tipo_documento";

			$sql = ModeloConexion::conectardb()->prepare($query);
			
			$sql->bindParam(':id_tipo_documento', $datos['id_tipo_documento']);
			$sql->bindParam(':descripcion', $datos['desc_tipo_documento']);
			$sql->bindParam(':estado', $datos['estado']);

			$sql->execute();

			return $sql;

		}

					
				

	}

 ?>