<?php
	
	// Archivo de conexión a la base de datos
	require_once "conexion.php";
	class ModeloProceso extends ModeloConexion {
		
		/*====================================================================
		CONSULTA MACRO PROCESOS (Orden ascendentes)
		=====================================================================*/
		protected function mdlConsultaMacroProcesos(){

			$query = "SELECT * FROM sie_macroprocesos ORDER BY orden ASC";

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

			$sql->execute();

			return $sql;

		}

		/*====================================================================
		CONSULTA MACRO PROCESOS DESCRIPCION ASCENDENTE
		=====================================================================*/
		protected function mdlConsultaMacroProcesosDescAscendente(){

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

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

			$sql->execute();

			return $sql;

		}



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

			$query = "SELECT * FROM sie_procesos WHERE id_macro_proceso = '$id_macro_p' ORDER BY descripcion ASC";

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

			$sql->execute();

			return $sql;

		}


		/*====================================================================
		CONSULTA PROCESOS MENÚ
		=====================================================================*/
		protected function mdlConsultaProcesosMenu($id_macro_p, $id_perfil){

			$query = "SELECT * FROM sie_procesos pro LEFT JOIN sie_permisos per ON per.id_proceso = pro.id WHERE id_macro_proceso = '$id_macro_p' AND per.id_perfil = '$id_perfil' AND pro.estado = 1 AND per.activo = 1 ORDER BY descripcion ASC";

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

			$sql->execute();

			return $sql;

		}

		/*====================================================================
		CONSULTA PERMISOS
		=====================================================================*/
		protected function mdlConsultaPermisos($id_perfil, $id_proceso){

			$query = "SELECT * FROM sie_permisos perm LEFT JOIN sie_perfiles perf ON perf.id = perm.id_perfil WHERE perm.id_perfil = '$id_perfil' AND perm.id_proceso = '$id_proceso'";

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

			$sql->execute();

			return $sql;

		}

		/*====================================================================
		CONSULTA PERFIL
		=====================================================================*/
		protected function mdlConsultaPerfil($id_perfil){

			$query = "SELECT * FROM sie_perfiles WHERE id = '$id_perfil'";

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

			$sql->execute();

			return $sql;

		}


		/*====================================================================
		ACTUALIZAR PROCESO
		=====================================================================*/
		protected function mdlActualizaProceso($datos){
			// sie_permisos

			if($datos['estado'] == 0){

				// $query = "UPDATE sie_procesos SET estado = :estado, id_usuario_inactiva = :id_usuario, fecha_inactivacion = :fecha WHERE id = :id_proceso";

				$query = "UPDATE sie_permisos SET activo = :estado, fecha_denegado = :fecha, id_usuario_deniega = :id_usuario WHERE id_proceso = :id_proceso AND id_perfil = :id_perfil";	
				
				$sql = ModeloConexion::conectardb()->prepare($query);

				$sql->bindParam(':id_perfil', $datos['id_perfil']);
				$sql->bindParam(':id_proceso', $datos['id_proceso']);
				$sql->bindParam(':estado', $datos['estado']);
				$sql->bindParam(':fecha', $datos['fecha']);
				$sql->bindParam(':id_usuario', $datos['id_usuario']);

			}else{

				// $query = "UPDATE sie_procesos SET estado = :estado WHERE id = :id_proceso";	
				$query = "UPDATE sie_permisos SET activo = :estado, fecha_concedido = :fecha, id_usuario_concede = :id_usuario WHERE id_proceso = :id_proceso AND id_perfil = :id_perfil";	
				
				$sql = ModeloConexion::conectardb()->prepare($query);

				$sql->bindParam(':id_perfil', $datos['id_perfil']);
				$sql->bindParam(':id_proceso', $datos['id_proceso']);
				$sql->bindParam(':estado', $datos['estado']);
				$sql->bindParam(':fecha', $datos['fecha']);
				$sql->bindParam(':id_usuario', $datos['id_usuario']);
			
			}

			$sql->execute();

			return $sql;

		}	

	}
 ?>