<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<title>Calculadora do Ecossistema TOTVS Agro Bioenergia</title>
<style>
body {
font-family: 'Segoe UI', Arial, sans-serif;
margin: 40px;
background: #f4f8fb;
color: #080808;
}
h1 {
color: #080808;
background: #e3f2fd;
padding: 16px;
border-radius: 8px;
margin-bottom: 30px;
box-shadow: 0 2px 8px #f4f4f51a;
}
label {
color: #0a0a0a;
font-weight: bold;
margin-right: 10px;
}
select {
padding: 6px 12px;
border: 1px solid #90caf9;
border-radius: 6px;
background: #e3f2fd;
color: #0d0d0e;
margin-bottom: 20px;
margin-right: 20px;
font-size: 1em;
}
h2 {
background: #bbdefb;
color: #0a0a0a;
padding: 10px;
border-radius: 6px;
margin-top: 30px;
margin-bottom: 10px;
}
table {
border-collapse: collapse;
width: 100%;
margin-bottom: 40px;
background: #e3f2fd;
border-radius: 8px;
overflow: hidden;
box-shadow: 0 2px 8px #1565c01a;
}
th, td {
border: 1px solid #90caf9;
padding: 10px;
text-align: left;
}
th {
background: #0c0c0c;
color: #fff;
font-weight: bold;
}
tr:nth-child(even) td {
background: #f4f8fb;
}
tr:hover td {
background: #bbdefb;
}
.produto {
font-weight: bold;
background: #030303;
}
@media (max-width: 700px) {
body { margin: 10px; }
table, th, td { font-size: 0.95em; }
h1 { font-size: 1.3em; }
}
</style>
</head>
<body>
<br><br>
<label for="produtoFiltroSelect">Produto:</label>
<select id="produtoFiltroSelect"></select>
<label for="userTotalSelect">Usuários (total):</label>
<select id="userTotalSelect"></select>
<br><br>
<div id="tables"></div>
<script>
const csvData = `
Produto,UsuariosTotal,UsuariosConcorrentes,Requisito,Descricao,Valor
Bioenergia,250-600,200,Servidor aplicação,Processador,8 VCPU - 2 processadores Intel(R) Xeon(R) Gold 6248R CPU @ 3.00GHz / GenuineIntel / Speed 3.00 GHz / Cores 4 / Theads 4 / Model 63 / Stepping 0
Bioenergia,1000-1500,500,Servidor aplicação,SO,Windows Server 2019
Bioenergia,1000-1500,500,Servidor aplicação,Memória,16 GB
Bioenergia,1000-1500,500,Servidor aplicação,Disco,300 GB
Bioenergia,1000-1500,500,Servidor aplicação,Servidores,1
Bioenergia,1000-1500,500,Servidor Go Global,Servidores,50
Bioenergia,1000-1500,500,Banco de Dados,Versão,Oracle Server 19c
Bioenergia,1000-1500,500,Banco de Dados,Processador,"Intel Xeon Gold 6248R (3.00 GHz, 24 núcleos/48 threads, 35.75MB Cache, TDP 205W) ou superior"
Bioenergia,1000-1500,500,Banco de Dados,Memória,32 GB
Bioenergia,1000-1500,500,Banco de Dados,Disco,2 TB
Bioenergia,1000-1500,500,Banco de Dados,Servidores,1
Pesagem Offline,1000-1500,500,Servidor aplicação,Processador,12 VCPU – 2 processadores Intel(R) Xeon(R) Gold 6248R CPU @ 3.00GHz / GenuineIntel / Speed 3.00 GHz / Cores 6 / Theads 6 / Model 63 / Stepping 0
Pesagem Offline,1000-1500,500,Servidor aplicação,SO,Windows Server 2019
Pesagem Offline,1000-1500,500,Servidor aplicação,Memória,32GB RAM
Pesagem Offline,1000-1500,500,Servidor aplicação,Disco,300GB Disco
Pesagem Offline,1000-1500,500,Servidor aplicação,Servidores,1
PIMS Server,1000-1500,500,Servidor aplicação,Processador,16 VCPU – 2 processadores Intel(R) Xeon(R) Gold 6248R CPU @ 3.00GHz / GenuineIntel / Speed 3.00 GHz / Cores 6 / Theads 6 / Model 63 / Stepping 0
PIMS Server,1000-1500,500,Servidor aplicação,SO,Windows Server 2019
PIMS Server,1000-1500,500,Servidor aplicação,Memória,48GB RAM
PIMS Server,1000-1500,500,Servidor aplicação,Disco,500GB Disco
PIMS Server,1000-1500,500,Servidor aplicação,Servidores,1
Pesagem Offline (Cliente),1000-1500,500,Estacão Cliente,Processador,4 VCPU –
Pesagem Offline (Cliente),1000-1500,500,Estacão Cliente,SO,Windows 11
Pesagem Offline (Cliente),1000-1500,500,Estacão Cliente,Memória,12 GB RAM
Pesagem Offline (Cliente),1000-1500,500,Estacão Cliente,Disco,200GB Disco
Pesagem Offline (Cliente),1000-1500,500,Estacão Cliente,Quantidade Estações,De acordo com a quantidade de balança
Pesagem Offline (Cliente),1000-1500,500,Estacão Cliente,Banco de Dados,PostgreSQL 14
Bioenergia,600-1000,400,Servidor aplicação,Processador,8 VCPU
Bioenergia,600-1000,400,Servidor aplicação,SO,Windows Server 2019
Bioenergia,600-1000,400,Servidor aplicação,Memória,16 GB
Bioenergia,600-1000,400,Servidor aplicação,Disco,300 GB
Bioenergia,600-1000,400,Servidor aplicação,Servidores,1
Bioenergia,600-1000,400,Servidor Go Global,Servidores,35
Bioenergia,600-1000,400,Banco de Dados,Versão,Oracle Server 19c
Bioenergia,600-1000,400,Banco de Dados,Processador,"Intel Xeon Gold 6248R (3.00 GHz, 24 núcleos/48 threads, 35.75MB Cache, TDP 205W) ou superior"
Bioenergia,600-1000,400,Banco de Dados,Memória,32 GB
Bioenergia,600-1000,400,Banco de Dados,Disco,"1,5 TB"
Bioenergia,600-1000,400,Banco de Dados,Servidores,1
Pesagem Offline,600-1000,400,Servidor aplicação,Processador,10 VCPU
Pesagem Offline,600-1000,400,Servidor aplicação,SO,Windows Server 2019
Pesagem Offline,600-1000,400,Servidor aplicação,Memória,24 GB RAM
Pesagem Offline,600-1000,400,Servidor aplicação,Disco,300GB Disco
Pesagem Offline,600-1000,400,Servidor aplicação,Servidores,1
PIMS Server,600-1000,400,Servidor aplicação,Processador,12 VCPU
PIMS Server,600-1000,400,Servidor aplicação,SO,Windows Server 2019
PIMS Server,600-1000,400,Servidor aplicação,Memória,36 GB RAM
PIMS Server,600-1000,400,Servidor aplicação,Disco,500GB Disco
PIMS Server,600-1000,400,Servidor aplicação,Servidores,1
Pesagem Offline (Cliente),600-1000,400,Estacão Cliente,Processador,4 VCPU –
Pesagem Offline (Cliente),600-1000,400,Estacão Cliente,SO,Windows 11
Pesagem Offline (Cliente),600-1000,400,Estacão Cliente,Memória,12 GB RAM
Pesagem Offline (Cliente),600-1000,400,Estacão Cliente,Disco,200GB Disco
Pesagem Offline (Cliente),600-1000,400,Estacão Cliente,Quantidade Estações,De acordo com a quantidade de balança
Pesagem Offline (Cliente),600-1000,400,Estacão Cliente,Banco de Dados,PostgreSQL 14
Bioenergia,250-600,200,Servidor aplicação,Processador,8 VCPU
Bioenergia,250-600,200,Servidor aplicação,SO,Windows Server 2019
Bioenergia,250-600,200,Servidor aplicação,Memória,16 GB
Bioenergia,250-600,200,Servidor aplicação,Disco,300 GB
Bioenergia,250-600,200,Servidor aplicação,Servidores,1
Bioenergia,250-600,200,Servidor Go Global,Servidores,20
Bioenergia,250-600,200,Banco de Dados,Versão,Oracle Server 19c
Bioenergia,250-600,200,Banco de Dados,Processador,"Intel Xeon Gold 6248R (3.00 GHz, 24 núcleos/48 threads, 35.75MB Cache, TDP 205W) ou superior"
Bioenergia,250-600,200,Banco de Dados,Memória,24 GB
Bioenergia,250-600,200,Banco de Dados,Disco,1 TB
Bioenergia,250-600,200,Banco de Dados,Servidores,1
Pesagem Offline,250-600,200,Servidor aplicação,Processador,8 VCPU
Pesagem Offline,250-600,200,Servidor aplicação,SO,Windows Server 2019
Pesagem Offline,250-600,200,Servidor aplicação,Memória,16GB RAM
Pesagem Offline,250-600,200,Servidor aplicação,Disco,300GB Disco
Pesagem Offline,250-600,200,Servidor aplicação,Servidores,1
PIMS Server,250-600,200,Servidor aplicação,Processador,10 VCPU
PIMS Server,250-600,200,Servidor aplicação,SO,Windows Server 2019
PIMS Server,250-600,200,Servidor aplicação,Memória,24 GB RAM
PIMS Server,250-600,200,Servidor aplicação,Disco,500GB Disco
PIMS Server,250-600,200,Servidor aplicação,Servidores,1
Pesagem Offline (Cliente),250-600,200,Estacão Cliente,Processador,4 VCPU –
Pesagem Offline (Cliente),250-600,200,Estacão Cliente,SO,Windows 11
Pesagem Offline (Cliente),250-600,200,Estacão Cliente,Memória,12 GB RAM
Pesagem Offline (Cliente),250-600,200,Estacão Cliente,Disco,200GB Disco
Pesagem Offline (Cliente),250-600,200,Estacão Cliente,Quantidade Estações,De acordo com a quantidade de balança
Pesagem Offline (Cliente),250-600,200,Estacão Cliente,Banco de Dados,PostgreSQL 14
Bioenergia,1-250,50,Servidor aplicação,Processador,6 VCPU
Bioenergia,1-250,50,Servidor aplicação,SO,Windows Server 2019
Bioenergia,1-250,50,Servidor aplicação,Memória,16 GB
Bioenergia,1-250,50,Servidor aplicação,Disco,300 GB
Bioenergia,1-250,50,Servidor aplicação,Servidores,1
Bioenergia,1-250,50,Servidor Go Global,Servidores,10
Bioenergia,1-250,50,Banco de Dados,Versão,Oracle Server 19c
Bioenergia,1-250,50,Banco de Dados,Processador,"Intel Xeon Gold 6248R (3.00 GHz, 24 núcleos/48 threads, 35.75MB Cache, TDP 205W) ou superior"
Bioenergia,1-250,50,Banco de Dados,Memória,16 GB
Bioenergia,1-250,50,Banco de Dados,Disco,500 GB
Bioenergia,1-250,50,Banco de Dados,Servidores,1
Pesagem Offline,1-250,50,Servidor aplicação,Processador,06 VCPU
Pesagem Offline,1-250,50,Servidor aplicação,SO,Windows Server 2019
Pesagem Offline,1-250,50,Servidor aplicação,Memória,08 GB RAM
Pesagem Offline,1-250,50,Servidor aplicação,Disco,300GB Disco
Pesagem Offline,1-250,50,Servidor aplicação,Servidores,1
PIMS Server,1-250,50,Servidor aplicação,Processador,08 VCPU
PIMS Server,1-250,50,Servidor aplicação,SO,Windows Server 2019
PIMS Server,1-250,50,Servidor aplicação,Memória,16GB RAM
PIMS Server,1-250,50,Servidor aplicação,Disco,300GB Disco
PIMS Server,1-250,50,Servidor aplicação,Servidores,1
Pesagem Offline (Cliente),1-250,50,Estacão Cliente,Processador,4 VCPU –
Pesagem Offline (Cliente),1-250,50,Estacão Cliente,SO,Windows 11
Pesagem Offline (Cliente),1-250,50,Estacão Cliente,Memória,12 GB RAM
Pesagem Offline (Cliente),1-250,50,Estacão Cliente,Disco,200GB Disco
Pesagem Offline (Cliente),1-250,50,Estacão Cliente,Quantidade Estações,De acordo com a quantidade de balança
Pesagem Offline (Cliente),1-250,50,Estacão Cliente,Banco de Dados,PostgreSQL 14
Indústria,1-250,50,Servidor aplicação,Processador,6 VCPU
Indústria,1-250,50,Servidor aplicação,SO,Windows Server 2019
Indústria,1-250,50,Servidor aplicação,Memória,12 GB
Indústria,1-250,50,Servidor aplicação,Disco,300 GB
Indústria,1-250,50,Servidor aplicação,Servidores,1
Indústria,1-250,50,Servidor Go Global,Servidores,10
Indústria,250-600,200,Servidor aplicação,Processador,8 VCPU
Indústria,250-600,200,Servidor aplicação,SO,Windows Server 2019
Indústria,250-600,200,Servidor aplicação,Memória,16 GB
Indústria,250-600,200,Servidor aplicação,Disco,300 GB
Indústria,250-600,200,Servidor aplicação,Servidores,1
Indústria,250-600,200,Servidor Go Global,Servidores,20
Indústria,600-1000,400,Servidor aplicação,Processador,8 VCPU
Indústria,600-1000,400,Servidor aplicação,SO,Windows Server 2019
Indústria,600-1000,400,Servidor aplicação,Memória,16 GB
Indústria,600-1000,400,Servidor aplicação,Disco,300 GB
Indústria,600-1000,400,Servidor aplicação,Servidores,1
Indústria,600-1000,400,Servidor Go Global,Servidores,35
Indústria,1000-1500,500,Servidor aplicação,Processador,8 VCPU - 2 processadores Intel(R) Xeon(R) Gold 6248R CPU @ 3.00GHz / GenuineIntel / Speed 3.00 GHz / Cores 4 / Theads 4 / Model 63 / Stepping 0
Indústria,1000-1500,500,Servidor aplicação,SO,Windows Server 2019
Indústria,1000-1500,500,Servidor aplicação,Memória,16 GB
Indústria,1000-1500,500,Servidor aplicação,Disco,300 GB
Indústria,1000-1500,500,Servidor aplicação,Servidores,1
Indústria,1000-1500,500,Servidor Go Global,Servidores,50
TOTVS Agro LGPD,-,Sem Variação,Servidor aplicação,Processador,"4 VCPU - Intel® Xeon® Gold 5415+ Processor (22.5M Cache, 2.90 GHz)"
TOTVS Agro LGPD,-,Sem Variação,Servidor aplicação,SO,Windows Server 2019 & Red Hat 8 ou Superior
TOTVS Agro LGPD,-,Sem Variação,Servidor aplicação,Memória,8 GB
TOTVS Agro LGPD,-,Sem Variação,Servidor aplicação,Disco,20 GB
TOTVS Agro LGPD,-,Sem Variação,Banco de Dados,Versão,PostgreSQL 14 & Oracle 19c
TOTVS Agro LGPD,-,Sem Variação,Banco de Dados,Servidores,1
TOTVS Agro Conector Client,-,Sem Variação,Servidor aplicação,Processador,"4 VCPU - Intel® Xeon® Gold 5415+ Processor (22.5M Cache, 2.90 GHz)"
TOTVS Agro Conector Client,-,Sem Variação,Servidor aplicação,SO,Windows Server 2019 & Red Hat 8 ou Superior
TOTVS Agro Conector Client,-,Sem Variação,Servidor aplicação,Memória,8 GB
TOTVS Agro Conector Client,-,Sem Variação,Servidor aplicação,Disco,20 GB
TOTVS Agro Conector Client,-,Sem Variação,Banco de Dados,Versão,PostgreSQL 14 & Oracle 19c
TOTVS Agro Conector Client,-,Sem Variação,Banco de Dados,Servidores,1
TOTVS Agro Connecta Dados ,-,Sem Variação,Servidor aplicação,Processador,"4 VCPU - Intel® Xeon® Gold 5415+ Processor (22.5M Cache, 2.90 GHz)"
TOTVS Agro Connecta Dados ,-,Sem Variação,Servidor aplicação,SO,Windows Server 2019 & Red Hat 8 ou Superior
TOTVS Agro Connecta Dados ,-,Sem Variação,Servidor aplicação,Memória,8 GB
TOTVS Agro Connecta Dados ,-,Sem Variação,Servidor aplicação,Disco,40 GB
TOTVS Agro Connecta Dados ,-,Sem Variação,Banco de Dados,Versão,PostgreSQL 14 & Oracle 19c
TOTVS Agro Connecta Dados ,-,Sem Variação,Banco de Dados,Servidores,1
TOTVS Agro TProvider,-,Sem Variação,Servidor aplicação,Processador,"4 VCPU - Intel® Xeon® Gold 5415+ Processor (22.5M Cache, 2.90 GHz)"
TOTVS Agro TProvider,-,Sem Variação,Servidor aplicação,SO,Windows Server 2019 & Red Hat 8 ou Superior
TOTVS Agro TProvider,-,Sem Variação,Servidor aplicação,Memória,4 GB
TOTVS Agro TProvider,-,Sem Variação,Servidor aplicação,Disco,20 GB
TOTVS Agro TProvider,-,Sem Variação,Banco de Dados,Versão,Oracle 19c
TOTVS Agro TProvider,-,Sem Variação,Banco de Dados,Servidores,
TOTVS Agro API Minha Borracharia,-,Sem Variação,Servidor aplicação,Processador,"4 VCPU - Intel® Xeon® Gold 5415+ Processor (22.5M Cache, 2.90 GHz)"
TOTVS Agro API Minha Borracharia,-,Sem Variação,Servidor aplicação,SO,Windows Server 2019 & Red Hat 8 ou Superior
TOTVS Agro API Minha Borracharia,-,Sem Variação,Servidor aplicação,Memória,6 GB
TOTVS Agro API Minha Borracharia,-,Sem Variação,Servidor aplicação,Disco,20 GB
TOTVS Agro API Minha Borracharia,-,Sem Variação,Banco de Dados,Versão,PostgreSQL 14 , Oracle 19c , Microsoft SQL Server 2019
TOTVS Agro API Minha Borracharia,-,Sem Variação,Banco de Dados,Servidores,
TOTVS Agro API HUB,-,Sem Variação,Servidor aplicação,Processador,"CPU Intel® Xeon® Gold 5415+ Processor (22.5M Cache, 2.90 GHz) / 4 vCPU"
TOTVS Agro API HUB,-,Sem Variação,Servidor aplicação,SO,Windows Server 2019 & Red Hat 8 ou Superior
TOTVS Agro API HUB,-,Sem Variação,Servidor aplicação,Memória,12 GB
TOTVS Agro API HUB,-,Sem Variação,Servidor aplicação,Disco,30 GB
TOTVS Agro API HUB,-,Sem Variação,Banco de Dados,Versão,PostgreSQL 14 & Oracle 19c`.trim();
function getProdutoOptions(data) {
const set = new Set();
data.forEach(row => set.add(row['Produto']));
return Array.from(set).filter(v => v && v !== '').sort();
}
function parseCSV(text) {
const lines = text.split(/\r?\n/).filter(l => l.trim());
const header = lines[0].split(',');
return lines.slice(1).map(line => {
const regex = /(".*?"|[^",]+)(?=\s*,|\s*$)/g;
const matches = line.match(regex) || [];
return header.reduce((obj, key, i) => {
obj[key.trim()] = (matches[i] || '').replace(/^"|"$/g, '').replace(/""/g, '"');
return obj;
}, {});
});
}
function groupByUserTotal(data, produtoFiltro) {
const groups = {};
data.forEach(row => {
if (produtoFiltro && row['Produto'] !== produtoFiltro) return;
const userTotal = row['UsuariosTotal'] || '-';
if (!groups[userTotal]) groups[userTotal] = [];
groups[userTotal].push(row);
});
return groups;
}
function getUserTotalOptions(data, produtoFiltro) {
const set = new Set();
data.forEach(row => {
if (produtoFiltro && row['Produto'] !== produtoFiltro) return;
set.add(row['UsuariosTotal'] || '-');
});
// Remova o filtro para incluir o "-"
return Array.from(set)
.sort((a, b) => {
// '-' sempre vai para o final
if (a === '-') return 1;
if (b === '-') return -1;
const getMin = str => {
const match = str.match(/(\d+)/);
return match ? parseInt(match[1], 10) : Number.MAX_SAFE_INTEGER;
};
return getMin(a) - getMin(b);
});
}
function renderTables(groups, selectedUserTotal, produtoFiltro) {
const container = document.getElementById('tables');
container.innerHTML = '';
const group = groups[selectedUserTotal];
if (!group) {
container.innerHTML = '<p>Nenhum dado para este grupo.</p>';
return;
}
const h2 = document.createElement('h2');
h2.innerHTML = `<div style="margin-bottom:16px;">
<strong>Produto:</strong> ${produtoFiltro}
<strong>Usuários (total):</strong> ${selectedUserTotal}
</div>`;container.appendChild(h2);
const table = document.createElement('table');
const thead = document.createElement('thead');
thead.innerHTML = `<tr>
<th>Produto</th>
<th></th>
<th>Usuários (concorrentes)</th>
<th></th>
<th>Requisito</th>
<th></th>
<th>Descrição</th>
<th></th>
<th>Valor</th>
</tr>`;
table.appendChild(thead);
const tbody = document.createElement('tbody');
group.forEach(row => {
const tr = document.createElement('tr');
tr.innerHTML = `
<td>${row['Produto']}</td>
<td></td>
<td style="text-align:center;">${row['UsuariosConcorrentes']}</td>
<td></td>
<td>${row['Requisito']}</td>
<td></td>
<td>${row['Descricao']}</td>
<td></td>
<td>${row['Valor']}</td>
`;
tbody.appendChild(tr);
});
table.appendChild(tbody);
container.appendChild(table);
}
// Executa ao carregar
const data = parseCSV(csvData);
const produtoOptions = getProdutoOptions(data);
const produtoSelect = document.getElementById('produtoFiltroSelect');
produtoOptions.forEach(opt => {
const option = document.createElement('option');
option.value = opt;
option.textContent = opt;
produtoSelect.appendChild(option);
});
let produtoFiltro = produtoSelect.value;
function updateUserTotalSelect() {
const userTotalOptions = getUserTotalOptions(data, produtoFiltro);
const select = document.getElementById('userTotalSelect');
select.innerHTML = '';
userTotalOptions.forEach(opt => {
const option = document.createElement('option');
option.value = opt;
option.textContent = opt;
select.appendChild(option);
});
}
function updateTable() {
const userTotal = document.getElementById('userTotalSelect').value;
const groups = groupByUserTotal(data, produtoFiltro);
renderTables(groups, userTotal, produtoFiltro);
}
produtoSelect.addEventListener('change', function() {
produtoFiltro = produtoSelect.value;
updateUserTotalSelect();
updateTable();
});
document.getElementById('userTotalSelect').addEventListener('change', function() {
updateTable();
});
updateUserTotalSelect();
updateTable();
</script>
<br><br> <br><br>
</body>
</html>
|