示例#1
0
function _F_usuario_acceder($usuario, $clave, $enlazar = true)
{
    global $tablausuarios;
    $usuario = db_codex(trim($usuario));
    $clave = db_codex(trim($clave));
    $c = "SELECT " . SQL_CAMPOS_USUARIO . " FROM {$tablausuarios} LEFT JOIN empresa USING (ID_empresa) WHERE LOWER(usuario)=LOWER('{$usuario}') AND clave=SHA1('{$clave}')";
    DEPURAR($c, 0);
    $resultado = db_consultar($c);
    if ($resultado) {
        $n_filas = mysql_num_rows($resultado);
        if ($n_filas == 1) {
            $_SESSION['autenticado'] = true;
            $_SESSION['cache_datos_usuario'] = db_fila_a_array($resultado);
            $c = "UPDATE {$tablausuarios} SET fecha_acceso=NOW() WHERE ID_usuario=" . usuario_cache('ID_usuario');
            $resultado = db_consultar($c);
            db_agregar_datos(db_prefijo . 'acceso', array('ID_empresa' => usuario_cache('ID_empresa'), 'ID_usuario' => usuario_cache('ID_usuario'), 'tiempo' => mysql_datetime()));
            return 1;
        }
    } else {
        unset($_SESSION['autenticado']);
        unset($_SESSION['cache_datos_usuario']);
        echo "Error general al autenticar!" . "<br />";
        return 0;
    }
}
示例#2
0
文件: __stubs.php 项目: vlad88sv/BCA
function protegerme($solo_salir = false, $niveles_adicionales = array())
{
    if (usuario_cache('nivel') == NIVEL_administrador) {
        return;
    }
    if (!in_array(usuario_cache('nivel'), $niveles_adicionales)) {
        if (!$solo_salir) {
            header('Location: ' . PROY_URL . 'inicio?ref=' . PROY_URL_ACTUAL_DINAMICA);
        }
        ob_end_clean();
        exit;
    }
}
<tr><th>Primer cargo laboral</th><td><input name="cargo" type="text" value="<?php 
echo @$_POST['cargo'];
?>
" /></td></tr>
<tr><th>Fecha de inicio de contratación</th><td><input class="datepicker" name="fecha_inicio" type="text" value="<?php 
echo @$_POST['fecha_inicio'];
?>
" /></td></tr>
<tr><th>Salario para este cargo</th><td><input name="salario" type="text" value="<?php 
echo @$_POST['salario'];
?>
" /></td></tr>
</table>

<?php 
if (usuario_cache('ui_rrhh_extendido') == 'si') {
    ?>
<h2>Datos opcionales para su uso interno</h2>
<table class="t100 tfija">
<tr><th>Fecha de nacimiento</th><td><input name="op_fecha_nacimiento" class="datepicker" type="text" value="<?php 
    echo @$_POST['op_fecha_nacimiento'];
    ?>
" /></td></tr>
<tr><th>Lugar de nacimiento</th><td><input name="op_lugar_nacimiento" type="text" value="<?php 
    echo @$_POST['op_lugar_nacimiento'];
    ?>
" /></td></tr>
<tr><th>Dirección</th><td><input name="op_direccion" type="text" value="<?php 
    echo @$_POST['op_direccion'];
    ?>
" /></td></tr>
            <?php 
if ($cese['comentario']) {
    ?>
            <?php 
    echo $cese['comentario'];
    ?>
            <?php 
} else {
    ?>
            No se especificó ningún comentario.
            <?php 
}
?>
    </td>
    <?php 
if (0 && $cese['ID_empresa'] == usuario_cache('ID_empresa')) {
    ?>
    <tr>
        <td colspan="2" style="text-align:justify;"><strong>Motivo interno especificado como causa real del cese laboral:</strong>
            <?php 
    if ($cese['motivo_interno']) {
        ?>
            <?php 
        echo $cese['motivo_interno'];
        ?>
            <?php 
    } else {
        ?>
            No se especificó ningún motivo interno/privado adicional como causa de despido.
            <?php 
    }
示例#5
0
文件: _portada.php 项目: vlad88sv/BCA
<?php

$c = sprintf('SELECT tipo, include, redireccion, ID_contenido, titulo_contenido, contenido, meta_descripcion FROM %s LEFT JOIN %s USING (ID_contenido) WHERE nivel="%s"', db_prefijo . 'inicio', db_prefijo . 'contenido', usuario_cache('nivel'));
$r = db_consultar($c);
if (!mysql_num_rows($r)) {
    echo sprintf('<h1>Error</h1><p>No ha definido pagina de inicio para el grupo de nivel %s</p>', usuario_cache('nivel'));
}
$f = mysql_fetch_assoc($r);
switch ($f['tipo']) {
    case 'contenido':
        echo '<h1>' . $f['titulo_contenido'] . '</h1>';
        eval('?>' . $f["contenido"] . '<?');
        break;
    case 'include':
        include_once $f['include'];
        break;
    case 'redireccion':
        header('Location: ' . $f['redireccion']);
        break;
}
示例#6
0
文件: +inicio.php 项目: vlad88sv/BCA
<?php

protegerme(false, array(NIVEL_administrador, NIVEL_empresa));
$c = sprintf('SELECT `ID_mensaje`, `ID_empresa`, `tipo`, `mensaje`, `leido` FROM `mensaje` WHERE ID_empresa=%s', usuario_cache('ID_empresa'));
$r = db_consultar($c);
$mensajes = '';
if (mysql_num_rows($r)) {
    while ($f = mysql_fetch_assoc($r)) {
        $mensajes .= sprintf('<p class="mensaje_%s">%s</p>', $f['tipo'], $f['mensaje']);
    }
} else {
    $mensajes = '<p class="destacado">Su empresa no tiene nuevos mensajes.</p>';
}
?>
<h1>Centro de mensajes y estadísticas | <?php 
echo usuario_cache('usuario');
?>
 | <?php 
echo usuario_cache('razon_social');
?>
</h1><h1>
<h2>Mensajes</h2>
<?php 
echo $mensajes;
示例#7
0
<?php

/* Construir menues*/
$c = sprintf('SELECT titulo_menu, descripcion_menu, enlace_menu, orden, GROUP_CONCAT(titulo_submenu ORDER BY orden_submenu ASC SEPARATOR "||") AS titulos_submenu, GROUP_CONCAT(enlace_submenu ORDER BY orden_submenu ASC SEPARATOR "||") AS enlaces_submenu FROM %s LEFT JOIN %s USING (ID_menu) WHERE grupo="%s" GROUP BY ID_menu ORDER BY orden ASC ', db_prefijo . 'menu', db_prefijo . 'submenu', usuario_cache('nivel'));
$r = db_consultar($c);
$arrconst = array('/{PROY_URL}/' => PROY_URL, '/{EMPRESA}/' => usuario_cache('razon_social'));
$primero = ' primero';
if (!mysql_num_rows($r)) {
    ?>
<div id="wrapper-menu">
<div id="menu_superior">
<center style="font-size:1.2em;color:#FFF;"><?php 
    echo PROY_NOMBRE;
    ?>
</center>
</div>
</div> <!-- wrapper menu !-->
<?php 
    return;
}
while ($f = mysql_fetch_assoc($r)) {
    $arr_submenu = array_combine(split('\\|\\|', $f['titulos_submenu']), split('\\|\\|', $f['enlaces_submenu']));
    $submenu = '';
    if (strlen($f['titulos_submenu']) > 0) {
        $subprimero = 'class="primero"';
        foreach ($arr_submenu as $titulo => $enlace) {
            $submenu .= '<li ' . $subprimero . '><a href="' . $enlace . '">' . $titulo . '</a></li>';
            $subprimero = '';
        }
        $submenu = '<ul>' . $submenu . '</ul>';
    }
示例#8
0
  This is useful for giving more meaning to column values. Multiple
  descriptions fields are also possible. Check documentation for this.
*/
$opts['triggers']['insert']['before'] = 'PHP/-contenido.trigger.inc';
$opts['triggers']['update']['before'] = 'PHP/-contenido.trigger.inc';
$opts['fdd']['ID_contenido'] = array('name' => 'ID contenido', 'select' => 'T', 'options' => 'AVCPDR', 'maxlen' => 10, 'default' => '0', 'sort' => true);
$opts['fdd']['enlace_seo'] = array('name' => 'URL', 'select' => 'T', 'maxlen' => 200, 'options' => 'LVPDR', 'sort' => true);
$opts['fdd']['enlace_pista'] = array('name' => 'SEO URL', 'select' => 'T', 'maxlen' => 200, 'options' => 'ACPD', 'sort' => true);
$opts['fdd']['comentario'] = array('name' => 'Comentario', 'select' => 'T', 'maxlen' => -1, 'textarea' => array('rows' => 2, 'cols' => 70), 'sort' => true);
$opts['fdd']['comentario']['trimlen'] = 10;
$opts['fdd']['titulo_contenido'] = array('name' => 'Titulo contenido', 'select' => 'T', 'maxlen' => 250, 'sort' => true);
$opts['fdd']['contenido'] = array('name' => 'Contenido', 'select' => 'T', 'maxlen' => -1, 'options' => 'ACPD', 'textarea' => array('rows' => 30, 'cols' => 70), 'sort' => true);
$opts['fdd']['contenido']['css'] = array('postfix' => 'tinymce');
$opts['fdd']['contenido']['trimlen'] = 50;
$opts['fdd']['ID_usuario'] = array('name' => 'ID usuario', 'select' => 'T', 'maxlen' => 10, 'sort' => true);
$opts['fdd']['ID_usuario']['values'] = array(usuario_cache('ID_usuario'));
$opts['fdd']['ID_usuario']['options'] = 'LV';
$opts['fdd']['fecha_creacion'] = array('name' => 'Fecha creacion', 'select' => 'T', 'maxlen' => 19, 'sort' => true);
$opts['fdd']['fecha_creacion']['sqlw'] = 'IF(fecha_creacion = "0000-00-00 00:00:00", now(), $val_qas)';
$opts['fdd']['fecha_modificacion'] = array('name' => 'Fecha modificacion', 'select' => 'T', 'maxlen' => 19, 'sort' => true);
$opts['fdd']['fecha_modificacion']['sqlw'] = 'now()';
$arrJS[] = 'tiny_mce/jquery.tinymce';
$arrHEAD[] = JS_onload('
$().ready(function() {
    $(".pme-input-0-tinymce").tinymce({
            // Location of TinyMCE script
            script_url : "JS/tiny_mce/tiny_mce.js",

            // General options
            theme : "advanced",
            plugins : "pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,advlist",
示例#9
0
文件: -su.php 项目: vlad88sv/BCA
<?php

if (!isset($_SESSION['cache_datos_usuario']['su'])) {
    protegerme();
}
if (isset($_POST['convertir'])) {
    if (usuario_cache('nivel') == NIVEL_administrador) {
        $ID_empresa = $_SESSION['cache_datos_usuario']['ID_empresa'];
    }
    if (isset($_SESSION['cache_datos_usuario']['su'])) {
        $ID_empresa = $_SESSION['cache_datos_usuario']['su'];
    }
    $ID_usuario = db_obtener('usuario', 'ID_usuario', 'ID_empresa=' . $_POST['ID_empresa'], 'ORDER BY RAND()');
    $_SESSION['cache_datos_usuario'] = _F_usuario_datos($ID_usuario, 'ID_usuario');
    $_SESSION['cache_datos_usuario']['nivel'] = NIVEL_empresa;
    // Por si cae en un no nivel empresa
    if (isset($ID_empresa)) {
        $_SESSION['cache_datos_usuario']['su'] = $ID_empresa;
    }
    header("Location: " . PROY_URL);
    exit;
}
if (isset($_POST['administrar'])) {
    $_SESSION['cache_datos_usuario']['ID_empresa'] = $_SESSION['cache_datos_usuario']['su'];
    $_SESSION['cache_datos_usuario']['nivel'] = NIVEL_administrador;
    unset($_SESSION['cache_datos_usuario']['su']);
    header("Location: " . PROY_URL);
}
?>
<h1>Ver sistema como empresa</h1>
Esta utilidad le permite cambiar temporalmente su nivel a empresa y su ID_empresa a la que Ud. desee.
示例#10
0
['values'] restricts user input to the specified constants,
           e.g. ['values'] = array('A','B','C') or ['values'] = range(1,99)
['values']['table'] and ['values']['column'] restricts user input
  to the values found in the specified column of another table
['values']['description'] = 'desc_column'
  The optional ['values']['description'] field allows the value(s) displayed
  to the user to be different to those in the ['values']['column'] field.
  This is useful for giving more meaning to column values. Multiple
  descriptions fields are also possible. Check documentation for this.
*/
$opts['fdd']['ID_empleado'] = array('name' => 'ID empleado', 'select' => 'T', 'options' => 'AVCPDR', 'maxlen' => 10, 'default' => '0', 'sort' => true);
$opts['fdd']['ID_empresa'] = array('name' => 'Empresa', 'select' => 'T', 'maxlen' => 10, 'sort' => true);
$opts['fdd']['ID_empresa']['values']['table'] = db_prefijo . 'empresa';
$opts['fdd']['ID_empresa']['values']['column'] = 'ID_empresa';
$opts['fdd']['ID_empresa']['values']['description'] = 'razon_social';
$opts['fdd']['ID_usuario'] = array('name' => 'ID usuario', 'select' => 'T', 'maxlen' => 10, 'sort' => true);
if (isset($_POST['PME_sys_operation']) && $_POST['PME_sys_operation'] == "Agregar") {
    $opts['fdd']['ID_usuario']['values'] = array(usuario_cache('ID_usuario'));
    $opts['fdd']['ID_usuario']['description'] = array(usuario_cache('usuario'));
} else {
    $opts['fdd']['ID_usuario']['values']['table'] = db_prefijo . 'usuario';
    $opts['fdd']['ID_usuario']['values']['column'] = 'ID_usuario';
    $opts['fdd']['ID_usuario']['values']['description'] = 'usuario';
}
$opts['fdd']['fecha_ingreso'] = array('name' => 'Fecha ingreso', 'select' => 'T', 'maxlen' => 10, 'sort' => true);
$opts['fdd']['DUI'] = array('name' => 'DUI', 'select' => 'T', 'maxlen' => 15, 'sort' => true);
$opts['fdd']['NIT'] = array('name' => 'NIT', 'select' => 'T', 'maxlen' => 15, 'sort' => true);
$opts['fdd']['nombres'] = array('name' => 'Nombres', 'select' => 'T', 'maxlen' => 100, 'sort' => true);
$opts['fdd']['apellidos'] = array('name' => 'Apellidos', 'select' => 'T', 'maxlen' => 100, 'sort' => true);
// Now important call to phpMyEdit
new phpMyEdit($opts);
示例#11
0
            echo '<p><input type="button" onclick="javascript:window.close()" value="Cerrar ventana"/></p>';
            echo '<hr class="consulta" />';
        } else {
            echo '<h1>Error</h1>';
            echo '<p class="error">Lo sentimos, sucedio un error desconocido y su solicitud no pudo ser procesada, puede intentarlo nuevamene si lo desea</p>';
        }
    }
}
$arrCSS[] = 'overcast/jquery-ui-1.8rc3.custom';
$arrJS[] = 'jquery-ui-1.8rc3.min';
$arrJS[] = 'jquery.ui.datepicker-es';
$strJSDatePicker = "\$('.calendario').datepicker({inline: true, maxDate: '+0', dateFormat: 'yy-mm-dd', changeMonth: true, changeYear: true});";
$strJSMaskTiempo = '$("#tiempo").mask("99:99");';
$strJSCambiarAnexo = '$("#categoria").change( function(){$("#control").toggle($("#categoria").val() != "");} );';
$arrHEAD[] = JS_onload($strJSDatePicker . $strJSMaskTiempo . $strJSCambiarAnexo);
$cargos = cargo_obtener_para(usuario_cache('ID_empresa'), $empleado['ID_empleado'], '', '', 'cargo_obtener_para__vista_cargo_amigable', 'ASC');
?>
<h1>Cargos laborales para este empleado</h1>
<?php 
echo $cargos;
?>
<h1>Agregar acción de personal para <?php 
echo $empleado['apellidos'] . ',' . $empleado['nombres'];
?>
</h1>
<p class="paso">Seleccione el tipo de acción de personal a agregar</p>
<form autocomplete="off" action ="<?php 
echo PROY_URL_ACTUAL_DINAMICA;
?>
" method="post">
<table class="tija">
示例#12
0
    } elseif (!in_array($_POST['paso6'], array('si', 'no'))) {
        echo '<p class="error">Error: intento de violacion al sistema #6</p>';
        $valido = false;
    }
    if (!isset($_POST['motivo_interno'])) {
        $_POST['motivo_interno'] = '';
    }
    if ($valido) {
        $mensaje[] = array('tipo' => 'info', 'mensaje' => 'El usuario <strong>' . usuario_cache('nombre') . '</strong>, añadió un cese laboral para el empleado <strong>' . $empleado['apellidos'] . ', ' . $empleado['nombres'] . '</strong>.');
        $mensaje[] = array('tipo' => 'info', 'mensaje' => '[<strong>SISTEMA-RRHH</strong>] El empleado <strong>' . $empleado['apellidos'] . ', ' . $empleado['nombres'] . '</strong> ya no es un empleado activo de su empresa.');
        mensaje(array(usuario_cache('ID_empresa')), $mensaje);
        empleado_difundir_actualizaciones($empleado['DUI'], $empleado['NIT'], 'ha cesado laborales en la empresa <strong>' . usuario_cache('razon_social') . '</strong>. Según su desempeño laboral, la empresa antes mencionada expresó que <strong>' . $_POST['paso2'] . '</strong>.');
        echo '<h1>Registro de cese laboral para  ' . $empleado['apellidos'] . ', ' . $empleado['nombres'] . ' @ ' . $empleado['razon_social'] . '; creado</h1>';
        echo '<p>El registro del cese laboral ha sido ingresado. Para editar este cese laboral deberá contactar con su ejecutivo de cuenta en ' . PROY_NOMBRE . '.</p>';
        $datos['ID_usuario'] = usuario_cache('ID_usuario');
        $datos['ID_empresa'] = usuario_cache('ID_empresa');
        $datos['ID_empleado'] = $empleado['ID_empleado'];
        $datos['fecha_ingreso'] = mysql_date();
        $datos['motivo'] = $_POST['paso1'];
        $datos['calificacion'] = $_POST['paso2'];
        $datos['fecha_cese'] = $_POST['paso3'];
        $datos['codigo_laboral'] = $_POST['paso1'] == 'Despido' ? $articulo_codigo_laboral : '';
        $datos['comentario'] = $_POST['paso5'];
        $datos['indemnizado'] = $_POST['paso6'];
        $datos['motivo_interno'] = $_POST['motivo_interno'];
        db_agregar_datos('cese', $datos);
        $editable = false;
    }
}
if (!$editable) {
    require_once "-empleado.amigable.cese.reporte.php";
示例#13
0
文件: -pago.php 项目: vlad88sv/BCA
<?php

protegerme();
$buffer = '';
if (isset($_POST['saldar']) && isset($_POST['ID_pago']) && is_numeric($_POST['ID_pago'])) {
    $datos['pendiente'] = 0;
    $datos['fecha_saldado'] = mysql_datetime();
    db_actualizar_datos(db_prefijo . 'empresa_pago', $datos, 'ID_pago=' . $_POST['ID_pago']);
    $buffer .= '<h2>Resultado</h2><p>El pago pendiente fue saldado.</p>';
}
if (isset($_POST['grabar']) && is_array($_POST['ID_empresa'])) {
    foreach ($_POST['ID_empresa'] as $ID_empresa) {
        unset($datos);
        $datos['ID_empresa'] = $ID_empresa;
        $datos['ID_usuario'] = usuario_cache('ID_usuario');
        $datos['fecha_registro'] = mysql_datetime();
        $_POST['pendiente'] = (int) @$_POST['pendiente'];
        if ($_POST['pendiente'] == 0) {
            $datos['fecha_saldado'] = mysql_datetime();
        }
        if (empty($_POST['cantidad_dias']) && empty($_POST['fecha_fin'])) {
            $errores[] = 'No especifico duracion en dias ni fecha limite';
        }
        if (!empty($_POST['cantidad_dias']) && is_numeric($_POST['cantidad_dias'])) {
            $_POST['fecha_fin'] = mysql_date($_POST['fecha_inicio'] . ' +' . $_POST['cantidad_dias'] . ' day');
        }
        if (!preg_match('/\\d{4}-\\d{2}-\\d{2}/', $_POST['fecha_inicio'])) {
            $errores[] = 'La fecha de inicio no es válida';
        }
        if (!preg_match('/\\d{4}-\\d{2}-\\d{2}/', $_POST['fecha_fin'])) {
            $errores[] = 'La fecha de fin no es válida';
示例#14
0
function empleado_difundir_actualizaciones($DUI, $NIT, $mensaje)
{
    $c = "SELECT `ID_empresa`, `nombres`, `apellidos` FROM `empleado` WHERE ID_empresa <> " . usuario_cache('ID_empresa') . " AND `DUI` = '{$DUI}' AND `NIT` = '{$NIT}' AND (SELECT COUNT(*) FROM cese WHERE cese.ID_empleado=empleado.ID_empleado AND cese.fecha_cese > ALL(SELECT fecha_inicio FROM historial WHERE historial.ID_empleado=empleado.ID_empleado)) = 0";
    $r = db_consultar($c);
    if (!mysql_num_rows($r)) {
        return false;
    }
    while ($f = mysql_fetch_assoc($r)) {
        $arrID_empresa[] = $f['ID_empresa'];
        $arrMensaje[] = array('tipo' => 'info', 'mensaje' => 'Se le informa que su empleado <strong>' . $f['apellidos'] . ', ' . $f['nombres'] . '</strong> ' . $mensaje);
        mensaje($arrID_empresa, $arrMensaje);
        unset($arrID_empresa, $arrMensaje);
    }
}