<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
* Description of Permisos
*
* @author Desarrollo
*/
class Permisos {
const PENDIENTE = 'PENDIENTE';
const CANCELADO = 'CANCELADO';
const AUTORIZADO = 'AUTORIZADO';
const NOAUTORIZADO = 'NO AUTORIZADO';
const CERRADO = 'CERRADO';
const NOUSADO = 'NO USADO';
public static function autorizacionUsuario($accion = NULL, $username, $vista = NULL) {
$sqlQuery = 'SELECT * FROM Usuarios '
. 'INNER JOIN ControlPersonasAccesos ON (Usuarios.usuarioID=ControlPersonasAccesos.usuarioID) '
. 'INNER JOIN ControlAccesos ON (ControlPersonasAccesos.controlAccesoID=ControlAccesos.accesosID) '
. 'INNER JOIN ControlAcciones ON (ControlAccesos.controlAccionesID=ControlAcciones.accionesID) '
. 'LEFT JOIN ControlVistas ON (ControlAccesos.controlVistaID=ControlVistas.vistaID) '
. 'WHERE (ControlAcciones.accionesTITULO=? OR ControlVistas.vistaTITULO=?) AND Usuarios.usuarioNOMBRE=?;';
return SicamDB::selectUnaFila($sqlQuery,
array($accion, $vista, $username));
}
public static function autorizacionIp($userID, $ipAddress) {
$sqlQuery = "SELECT * FROM CamaraApi WHERE usuarioID = ? AND apiIP = ?";
return SicamDB::selectUnaFila($sqlQuery, array($userID, $ipAddress));
}
public static function registrarPermiso($colaboradorID, $motivo, $fechaInicio, $justificacion) {
$sqlQuery = "INSERT INTO ColaboradoresPermisos"
. "(colaboradorID, permisoMotivoID, permisoFCHPERMISO, permisoJUSTIFICACION)"
. "VALUES (?, ?, ?, ?)";
return SicamDB::insertFila($sqlQuery,
array(
$colaboradorID, $motivo, $fechaInicio, $justificacion
));
}
public static function datos($permisoID) {
$sqlQuery = " SELECT * FROM ColaboradoresPermisos WHERE ColaboradoresPermisos.permisoID = ? ";
return SicamDB::selectUnaFila($sqlQuery, array($permisoID));
}
static $sqlDatosCompletos = <<<sql
SELECT
`ColaboradoresPermisos`.*
, `Personas`.`personaID`
, `Personas`.`personaIDENTIFICACION`
, `Personas`.`personaNOMBRES`
, `Personas`.`personaAPELLIDOS`
, `CamaraColaboradores`.`colaboradorEMAIL`
, `CamaraColaboradores`.`colaboradorJEFEINMEDIATO`
, `JefeInmediato`.`colaboradorEMAIL` AS `jefeInmediatoColaboradorEMAIL`
, `DatosJefeInmediato`.`personaID` AS jefeInmediatoPersonaID
, `DatosJefeInmediato`.`personaIDENTIFICACION` AS jefeInmediatoPersonaID
, `DatosJefeInmediato`.`personaNOMBRES` AS jefeInmediatoPersonaNOMBRES
, `DatosJefeInmediato`.`personaAPELLIDOS` AS jefeInmediatoPersonaAPELLIDOS
, `ColaboradoresPermisosMotivos`.`permisoMotivoCODIGO`
, `ColaboradoresPermisosMotivos`.`permisoMotivoTITULO`
, `Autorizo`.`colaboradorID` AS autorizoColaboradorID
, `Autorizo`.`colaboradorEMAIL` AS autorizoColaboradorEMAIL
, `DatosAutorizo`.`personaID` AS autorizoPersonaID
, `DatosAutorizo`.`personaIDENTIFICACION` AS autorizoPersonaIDENTIFICACION
, `DatosAutorizo`.`personaNOMBRES` AS autorizoPersonaNOMBRES
, `DatosAutorizo`.`personaAPELLIDOS` AS autorizoPersonaAPELLIDOS
FROM
`ColaboradoresPermisos`
INNER JOIN `CamaraColaboradores`
ON (`ColaboradoresPermisos`.`colaboradorID` = `CamaraColaboradores`.`colaboradorID`)
INNER JOIN `ColaboradoresPermisosMotivos`
ON (`ColaboradoresPermisos`.`permisoMotivoID` = `ColaboradoresPermisosMotivos`.`permisoMotivoID`)
LEFT JOIN `CamaraColaboradores` AS `Autorizo`
ON (`ColaboradoresPermisos`.`colaboradorAUTORIZA` = `Autorizo`.`colaboradorID`)
INNER JOIN `Personas`
ON (`CamaraColaboradores`.`personaID` = `Personas`.`personaID`)
INNER JOIN `CamaraColaboradores` AS `JefeInmediato`
ON (`CamaraColaboradores`.`colaboradorJEFEINMEDIATO` = `JefeInmediato`.`colaboradorID`)
INNER JOIN `Personas` AS `DatosJefeInmediato`
ON (`JefeInmediato`.`personaID` = `DatosJefeInmediato`.`personaID`)
LEFT JOIN `Personas` AS `DatosAutorizo`
ON (`Autorizo`.`personaID` = `DatosAutorizo`.`personaID`)
sql;
public static function datosCompletos($permisoID) {
$sqlQuery = self::$sqlDatosCompletos . " WHERE ColaboradoresPermisos.permisoID = ? ";
return SicamDB::selectUnaFila($sqlQuery, array($permisoID));
}
public static function delColaborador($colaboradorID, $permisoESTADO = self::AUTORIZADO) {
$sqlQuery = self::$sqlDatosCompletos . " WHERE ColaboradoresPermisos.colaboradorID = ? "
. "and ColaboradoresPermisos.permisoESTADO = ? ";
return SicamDB::selectVariasFilas($sqlQuery,
array($colaboradorID, $permisoESTADO));
}
public static function autorizacion($colaborador, $permisoID, $permisoESTADO = self::AUTORIZADO) {
$sqlQuery = "UPDATE ColaboradoresPermisos "
. "SET ColaboradoresPermisos.permisoESTADO = ?, "
. "permisoFCHAUTORIZACION = CURRENT_TIMESTAMP, "
. "colaboradorAUTORIZA = ? "
. "WHERE ColaboradoresPermisos.permisoID = ?";
return SicamDB::actualizarFila($sqlQuery,
array($permisoESTADO, $colaborador, $permisoID));
}
public static function cancelacion($permisoID) {
$sqlQuery = "UPDATE ColaboradoresPermisos "
. "SET ColaboradoresPermisos.permisoESTADO = ?, "
. "permisoFCHCANCELADO = CURRENT_TIMESTAMP "
. "WHERE ColaboradoresPermisos.permisoID = ?";
return SicamDB::actualizarFila($sqlQuery,
array(self::CANCELADO, $permisoID));
}
public static function nousar($permisoID, $justificacion) {
$sqlQuery = "UPDATE ColaboradoresPermisos "
. "SET ColaboradoresPermisos.permisoESTADO = ?, "
. "permisoFCHCERRADO = CURRENT_TIMESTAMP, "
. "permisoPORQUENOUSO = ?"
. "WHERE ColaboradoresPermisos.permisoID = ?";
return SicamDB::actualizarFila($sqlQuery,
array(self::NOUSADO, $justificacion, $permisoID));
}
public static function cerrar($permisoID) {
$sqlQuery = "UPDATE ColaboradoresPermisos "
. "SET ColaboradoresPermisos.permisoESTADO = ?, "
. "permisoFCHCERRADO = CURRENT_TIMESTAMP "
. "WHERE ColaboradoresPermisos.permisoID = ?";
return SicamDB::actualizarFila($sqlQuery,
array(self::CERRADO, $permisoID));
}
public static function correoAutorizacion($OBJPermiso, $idAutoriza, $emailAutoriza, $nombreAutoriza) {
$variables = array('%%LOGOCCSM%%');
$datos = array(Parametros::valor('LOGOCCSM'));
$htmlContenido = file_get_contents(DIR_TMPLCORREOS . 'cabeza-correos.html');
$htmlMensaje = str_replace(
$variables, $datos, $htmlContenido
);
$variables = array(
'%%LOGOCCSM%%', '%%NOMBRECOLABORADOR%%', '%%APELLIDOCOLABORADOR%%',
'%%FECHAPERMISO%%', '%%MOTIVOPERMISO%%', '%%JUSTIFICACIONPERMISO%%',
'%%FECHAENVIOCORREO%%', '%%EMAILCOLABORADORENVIO%%', '%%NOMBRECOLABORADORENVIO%%',
'%%URLAUTORIZAR%%', '%%URLNOAUTORIZAR%%'
);
$datos = array(
Parametros::valor('LOGOCCSM'), htmlspecialchars($OBJPermiso->personaNOMBRES),
htmlspecialchars($OBJPermiso->personaAPELLIDOS), $OBJPermiso->permisoFCHPERMISO,
htmlspecialchars($OBJPermiso->permisoMotivoTITULO), htmlspecialchars($OBJPermiso->permisoJUSTIFICACION),
date('Y-m-d h:i:s'), $emailAutoriza, $nombreAutoriza,
Parametros::valor('URLAUTORIZARPERMISO') . $idAutoriza . WS . $OBJPermiso->permisoID,
Parametros::valor('URLNOAUTORIZARPERMISO') . $idAutoriza . WS . $OBJPermiso->permisoID
);
$htmlContenido = file_get_contents(DIR_TMPLCORREOS . 'permisos/autorizacion.html');
$htmlMensaje .= str_replace(
$variables, $datos, $htmlContenido
);
$variables = array('%%URLAUTORIZAR%%', '%%URLNOAUTORIZAR%%');
$datos = array(
Parametros::valor('URLAUTORIZARPERMISO') . $idAutoriza . WS . $OBJPermiso->permisoID,
Parametros::valor('URLNOAUTORIZARPERMISO') . $idAutoriza . WS . $OBJPermiso->permisoID
);
$htmlContenido = file_get_contents(DIR_TMPLCORREOS . 'permisos/btn-autorizacion.html');
$htmlMensaje .= str_replace(
$variables, $datos, $htmlContenido
);
$variables = array(
'%%FECHAENVIOCORREO%%', '%%EMAILCOLABORADORENVIO%%', '%%NOMBRECOLABORADORENVIO%%'
);
$datos = array(
date('Y-m-d h:i:s'), $emailAutoriza, $nombreAutoriza);
$htmlContenido = file_get_contents(DIR_TMPLCORREOS . 'pie-correos.html');
$htmlMensaje .= str_replace(
$variables, $datos, $htmlContenido
);
return $htmlMensaje;
}
public static function correoSolicitud($OBJPermiso) {
$variables = array('%%LOGOCCSM%%');
$datos = array(Parametros::valor('LOGOCCSM'));
$htmlContenido = file_get_contents(DIR_TMPLCORREOS . 'cabeza-correos.html');
$htmlMensaje = str_replace(
$variables, $datos, $htmlContenido
);
$variables = array(
'%%LOGOCCSM%%', '%%FECHASOLICITUD%%', '%%NOMBRECOLABORADOR%%', '%%APELLIDOCOLABORADOR%%',
'%%FECHAPERMISO%%', '%%MOTIVOPERMISO%%', '%%JUSTIFICACIONPERMISO%%',
'%%FECHAENVIOCORREO%%', '%%EMAILCOLABORADORENVIO%%', '%%NOMBRECOLABORADORENVIO%%',
'%%URLCANCELARPERMISO%%'
);
$datos = array(
Parametros::valor('LOGOCCSM'), $OBJPermiso->permisoFCHPERMISO,
htmlspecialchars($OBJPermiso->personaNOMBRES), htmlspecialchars($OBJPermiso->personaAPELLIDOS),
$OBJPermiso->permisoFCHPERMISO, htmlspecialchars($OBJPermiso->permisoMotivoTITULO),
htmlspecialchars($OBJPermiso->permisoJUSTIFICACION),
date('Y-m-d h:i:s'), $OBJPermiso->colaboradorEMAIL, $OBJPermiso->personaNOMBRES . " " . $OBJPermiso->personaAPELLIDOS,
Parametros::valor('URLCANCELARPERMISO') . $OBJPermiso->permisoID
);
//$htmlContenido = Archivos::leer_archivo("correos" . DIRECTORY_SEPARATOR . "autorizacion.html.php");
$htmlContenido = file_get_contents(DIR_TMPLCORREOS . 'permisos/solicitud.html');
$htmlMensaje .= str_replace(
$variables, $datos, $htmlContenido
);
$variables = array('%%URLCANCELARPERMISO%%');
$datos = array(
Parametros::valor('URLCANCELARPERMISO') . $OBJPermiso->permisoID
);
$htmlContenido = file_get_contents(DIR_TMPLCORREOS . 'permisos/btn-solicitud.html');
$htmlMensaje .= str_replace(
$variables, $datos, $htmlContenido
);
$variables = array(
'%%FECHAENVIOCORREO%%', '%%EMAILCOLABORADORENVIO%%', '%%NOMBRECOLABORADORENVIO%%'
);
$datos = array(
date('Y-m-d h:i:s'), $OBJPermiso->colaboradorEMAIL, $OBJPermiso->personaNOMBRES . " " . $OBJPermiso->personaAPELLIDOS,
);
$htmlContenido = file_get_contents(DIR_TMPLCORREOS . 'pie-correos.html');
$htmlMensaje .= str_replace(
$variables, $datos, $htmlContenido
);
return $htmlMensaje;
}
public static function correoRespuestaAutorizacion($OBJPermiso) {
$variables = array('%%LOGOCCSM%%');
$datos = array(Parametros::valor('LOGOCCSM'));
$htmlContenido = file_get_contents(DIR_TMPLCORREOS . 'cabeza-correos.html');
$htmlMensaje = str_replace(
$variables, $datos, $htmlContenido
);
$variables = array(
'%%LOGOCCSM%%', '%%FECHASOLICITUD%%', '%%NOMBRECOLABORADOR%%', '%%APELLIDOCOLABORADOR%%',
'%%FECHAPERMISO%%', '%%MOTIVOPERMISO%%', '%%JUSTIFICACIONPERMISO%%',
'%%FECHAENVIOCORREO%%', '%%EMAILCOLABORADORENVIO%%', '%%NOMBRECOLABORADORENVIO%%',
'%%URLCANCELARPERMISO%%', '%%URLCERRARPERMISO%%', '%%ESTADOPERMISO%%'
);
$datos = array(
Parametros::valor('LOGOCCSM'), $OBJPermiso->permisoFCHPERMISO,
htmlspecialchars($OBJPermiso->personaNOMBRES), htmlspecialchars($OBJPermiso->personaAPELLIDOS),
$OBJPermiso->permisoFCHPERMISO, htmlspecialchars($OBJPermiso->permisoMotivoTITULO),
htmlspecialchars($OBJPermiso->permisoJUSTIFICACION),
date('Y-m-d h:i:s'), $OBJPermiso->colaboradorEMAIL, $OBJPermiso->personaNOMBRES . " " . $OBJPermiso->personaAPELLIDOS,
Parametros::valor('URLCANCELARPERMISO') . $OBJPermiso->permisoID,
Parametros::valor('URLCERRARPERMISO') . $OBJPermiso->permisoID,
$OBJPermiso->permisoESTADO
);
//$htmlContenido = Archivos::leer_archivo("correos" . DIRECTORY_SEPARATOR . "autorizacion.html.php");
$htmlContenido = file_get_contents(DIR_TMPLCORREOS . 'permisos/respuesta-autorizacion.html');
$htmlMensaje .= str_replace(
$variables, $datos, $htmlContenido
);
if ($OBJPermiso->permisoESTADO == Permisos::AUTORIZADO) {
$variables = array('%%URLCANCELARPERMISO%%', '%%URLCERRARPERMISO%%');
$datos = array(
Parametros::valor('URLCANCELARPERMISO') . $OBJPermiso->permisoID,
Parametros::valor('URLCERRARPERMISO') . $OBJPermiso->permisoID
);
$htmlContenido = file_get_contents(DIR_TMPLCORREOS . 'permisos/btn-respuesta-autorizacion.html');
$htmlMensaje .= str_replace(
$variables, $datos, $htmlContenido
);
}
$variables = array(
'%%FECHAENVIOCORREO%%', '%%EMAILCOLABORADORENVIO%%', '%%NOMBRECOLABORADORENVIO%%'
);
$datos = array(
date('Y-m-d h:i:s'), $OBJPermiso->colaboradorEMAIL, $OBJPermiso->personaNOMBRES . " " . $OBJPermiso->personaAPELLIDOS
);
$htmlContenido = file_get_contents(DIR_TMPLCORREOS . 'pie-correos.html');
$htmlMensaje .= str_replace(
$variables, $datos, $htmlContenido
);
return $htmlMensaje;
}
public static function correoCerrado($OBJPermiso, $idAutoriza, $emailAutoriza, $nombreAutoriza) {
$variables = array('%%LOGOCCSM%%');
$datos = array(Parametros::valor('LOGOCCSM'));
$htmlContenido = file_get_contents(DIR_TMPLCORREOS . 'cabeza-correos.html');
$htmlMensaje = str_replace(
$variables, $datos, $htmlContenido
);
$variables = array(
'%%LOGOCCSM%%', '%%FECHASOLICITUD%%', '%%NOMBRECOLABORADOR%%', '%%APELLIDOCOLABORADOR%%',
'%%FECHAPERMISO%%', '%%MOTIVOPERMISO%%', '%%JUSTIFICACIONPERMISO%%',
'%%FECHAENVIOCORREO%%', '%%EMAILCOLABORADORENVIO%%', '%%NOMBRECOLABORADORENVIO%%',
'%%URLCANCELARPERMISO%%', '%%URLCERRARPERMISO%%', '%%ESTADOPERMISO%%'
);
$datos = array(
Parametros::valor('LOGOCCSM'), $OBJPermiso->permisoFCHPERMISO,
htmlspecialchars($OBJPermiso->personaNOMBRES), htmlspecialchars($OBJPermiso->personaAPELLIDOS),
$OBJPermiso->permisoFCHPERMISO, htmlspecialchars($OBJPermiso->permisoMotivoTITULO),
htmlspecialchars($OBJPermiso->permisoJUSTIFICACION),
date('Y-m-d h:i:s'), $emailAutoriza, $nombreAutoriza,
Parametros::valor('URLCANCELARPERMISO') . $OBJPermiso->permisoID,
Parametros::valor('URLCERRARPERMISO') . $OBJPermiso->permisoID,
$OBJPermiso->permisoESTADO
);
//$htmlContenido = Archivos::leer_archivo("correos" . DIRECTORY_SEPARATOR . "autorizacion.html.php");
$htmlContenido = file_get_contents(DIR_TMPLCORREOS . '/permisos/respuesta-cerrado.html');
$htmlMensaje .= str_replace(
$variables, $datos, $htmlContenido
);
$variables = array(
'%%FECHAENVIOCORREO%%', '%%EMAILCOLABORADORENVIO%%', '%%NOMBRECOLABORADORENVIO%%'
);
$datos = array(
date('Y-m-d h:i:s'), $emailAutoriza, $nombreAutoriza);
$htmlContenido = file_get_contents(DIR_TMPLCORREOS . 'pie-correos.html');
$htmlMensaje .= str_replace(
$variables, $datos, $htmlContenido
);
return $htmlMensaje;
}
}