<!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>
<label for="produtoFiltroSelect">Produto:</label>
<select id="produtoFiltroSelect"></select>
<label for="userTotalSelect">Usuários (total):</label>
<select id="userTotalSelect"></select>
<br>
<div id="tables"></div>
<script>
const csvData = `
Produto,UsuariosTotal,UsuariosConcorrentes,Requisito,Descricao,Valor
Bioenergia,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
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
CCT 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
CCT Offline,1000-1500,500,Servidor aplicação,SO,Windows Server 2019
CCT Offline,1000-1500,500,Servidor aplicação,Memória,32GB RAM
CCT Offline,1000-1500,500,Servidor aplicação,Disco,300GB Disco
CCT 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
Portal Mobile,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
Portal Mobile,1000-1500,500,Servidor aplicação,SO,Windows Server 2019
Portal Mobile,1000-1500,500,Servidor aplicação,Memória,32GB RAM
Portal Mobile,1000-1500,500,Servidor aplicação,Disco,300GB Disco
Portal Mobile,1000-1500,500,Servidor aplicação,Servidores,1
Portal Mobile,1000-1500,500,Banco de Dados,Versão,SQL Server Enterprise 2019
Portal Mobile,1000-1500,500,Banco de Dados,Servidores,1
Portal Mobile,1000-1500,500,Banco de Dados,Disco,50GB Disco
TOTVS Pesagem (Convergência),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
TOTVS Pesagem (Convergência),1000-1500,500,Servidor aplicação,SO,Windows Server 2019
TOTVS Pesagem (Convergência),1000-1500,500,Servidor aplicação,Memória,32GB RAM
TOTVS Pesagem (Convergência),1000-1500,500,Servidor aplicação,Disco,300GB Disco
TOTVS Pesagem (Convergência),1000-1500,500,Servidor aplicação,Servidores,1
TOTVS Pesagem (Convergência),1000-1500,500,Banco de Dados,Versão,PostgreSQL 14
TOTVS Pesagem (Convergência),1000-1500,500,Banco de Dados,Servidores,1
TOTVS Pesagem (Cliente),1000-1500,500,Estação Cliente,Processador,4 VCPU
TOTVS Pesagem (Cliente),1000-1500,500,Estação Cliente,SO,Windows 11
TOTVS Pesagem (Cliente),1000-1500,500,Estação Cliente,Memória,12 GB RAM
TOTVS Pesagem (Cliente),1000-1500,500,Estação Cliente,Disco,200GB Disco
TOTVS Pesagem (Cliente),1000-1500,500,Estação Cliente,Quantidade Estações,De acordo com a quantidade de balança
TOTVS Pesagem (Cliente),1000-1500,500,Estação Cliente,Banco de Dados,PostgreSQL 14
PIMS Connector,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 6 / Theads 6 / Model 63 / Stepping 0
PIMS Connector,1000-1500,500,Servidor aplicação,SO,Windows Server 2019
PIMS Connector,1000-1500,500,Servidor aplicação,Memória,16 GB RAM
PIMS Connector,1000-1500,500,Servidor aplicação,Disco,300GB Disco
PIMS Connector,1000-1500,500,Servidor aplicação,Servidores,1
PIMS Connector,1000-1500,500,Banco de Dados,Versão,Oracle Server 19c / SQL Server Enterprise 2019
PIMS Connector,1000-1500,500,Banco de Dados,Servidores,1
Portal Agrícola,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
Portal Agrícola,1000-1500,500,Servidor aplicação,SO,Windows Server 2019
Portal Agrícola,1000-1500,500,Servidor aplicação,Memória,32GB RAM
Portal Agrícola,1000-1500,500,Servidor aplicação,Disco,300GB Disco
Portal Agrícola,1000-1500,500,Servidor aplicação,Servidores,1
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
CCT Offline,600-1000,400,Servidor aplicação,Processador,10 VCPU
CCT Offline,600-1000,400,Servidor aplicação,SO,Windows Server 2019
CCT Offline,600-1000,400,Servidor aplicação,Memória,24 GB RAM
CCT Offline,600-1000,400,Servidor aplicação,Disco,300GB Disco
CCT 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
Portal Mobile,600-1000,400,Servidor aplicação,Processador,10 VCPU
Portal Mobile,600-1000,400,Servidor aplicação,SO,Windows Server 2019
Portal Mobile,600-1000,400,Servidor aplicação,Memória,24GB RAM
Portal Mobile,600-1000,400,Servidor aplicação,Disco,300GB Disco
Portal Mobile,600-1000,400,Servidor aplicação,Servidores,1
Portal Mobile,600-1000,400,Banco de Dados,Versão,SQL Server Enterprise 2019
Portal Mobile,600-1000,400,Banco de Dados,Servidores,1
Portal Mobile,600-1000,400,Banco de Dados,Disco,50GB Disco
TOTVS Pesagem (Convergência),600-1000,400,Servidor aplicação,Processador,10 VCPU
TOTVS Pesagem (Convergência),600-1000,400,Servidor aplicação,SO,Windows Server 2019
TOTVS Pesagem (Convergência),600-1000,400,Servidor aplicação,Memória,24GB RAM
TOTVS Pesagem (Convergência),600-1000,400,Servidor aplicação,Disco,300GB Disco
TOTVS Pesagem (Convergência),600-1000,400,Servidor aplicação,Servidores,1
TOTVS Pesagem (Convergência),600-1000,400,Banco de Dados,Versão,PostgreSQL 14
TOTVS Pesagem (Convergência),600-1000,400,Banco de Dados,Servidores,1
TOTVS Pesagem (Cliente),600-1000,400,Estação Cliente,Processador,4 VCPU
TOTVS Pesagem (Cliente),600-1000,400,Estação Cliente,SO,Windows 11
TOTVS Pesagem (Cliente),600-1000,400,Estação Cliente,Memória,12 GB RAM
TOTVS Pesagem (Cliente),600-1000,400,Estação Cliente,Disco,200GB Disco
TOTVS Pesagem (Cliente),600-1000,400,Estação Cliente,Quantidade Estações,De acordo com a quantidade de balança
TOTVS Pesagem (Cliente),600-1000,400,Estação Cliente,Banco de Dados,PostgreSQL 14
PIMS Connector,600-1000,400,Servidor aplicação,Processador,8 VCPU
PIMS Connector,600-1000,400,Servidor aplicação,SO,Windows Server 2019
PIMS Connector,600-1000,400,Servidor aplicação,Memória,16 GB RAM
PIMS Connector,600-1000,400,Servidor aplicação,Disco,300GB Disco
PIMS Connector,600-1000,400,Servidor aplicação,Servidores,1
PIMS Connector,600-1000,400,Banco de Dados,Versão,Oracle Server 19c / SQL Server Enterprise 2019
PIMS Connector,600-1000,400,Banco de Dados,Servidores,1
Portal Agrícola,600-1000,400,Servidor aplicação,Processador,10 VCPU
Portal Agrícola,600-1000,400,Servidor aplicação,SO,Windows Server 2019
Portal Agrícola,600-1000,400,Servidor aplicação,Memória,24GB RAM
Portal Agrícola,600-1000,400,Servidor aplicação,Disco,300GB Disco
Portal Agrícola,600-1000,400,Servidor aplicação,Servidores,1
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
CCT Offline,250-600,200,Servidor aplicação,Processador,8 VCPU
CCT Offline,250-600,200,Servidor aplicação,SO,Windows Server 2019
CCT Offline,250-600,200,Servidor aplicação,Memória,16GB RAM
CCT Offline,250-600,200,Servidor aplicação,Disco,300GB Disco
CCT 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
Portal Mobile,250-600,200,Servidor aplicação,Processador,8 VCPU
Portal Mobile,250-600,200,Servidor aplicação,SO,Windows Server 2019
Portal Mobile,250-600,200,Servidor aplicação,Memória,16GB RAM
Portal Mobile,250-600,200,Servidor aplicação,Disco,300GB Disco
Portal Mobile,250-600,200,Servidor aplicação,Servidores,1
Portal Mobile,250-600,200,Banco de Dados,Versão,SQL Server Enterprise 2019
Portal Mobile,250-600,200,Banco de Dados,Servidores,1
Portal Mobile,250-600,200,Banco de Dados,Disco,50GB Disco
TOTVS Pesagem (Convergência),250-600,200,Servidor aplicação,Processador,8 VCPU
TOTVS Pesagem (Convergência),250-600,200,Servidor aplicação,SO,Windows Server 2019
TOTVS Pesagem (Convergência),250-600,200,Servidor aplicação,Memória,16GB RAM
TOTVS Pesagem (Convergência),250-600,200,Servidor aplicação,Disco,300GB Disco
TOTVS Pesagem (Convergência),250-600,200,Servidor aplicação,Servidores,1
TOTVS Pesagem (Convergência),250-600,200,Banco de Dados,Versão,PostgreSQL 14
TOTVS Pesagem (Convergência),250-600,200,Banco de Dados,Servidores,1
TOTVS Pesagem (Cliente),250-600,200,Estação Cliente,Processador,4 VCPU
TOTVS Pesagem (Cliente),250-600,200,Estação Cliente,SO,Windows 11
TOTVS Pesagem (Cliente),250-600,200,Estação Cliente,Memória,12 GB RAM
TOTVS Pesagem (Cliente),250-600,200,Estação Cliente,Disco,200GB Disco
TOTVS Pesagem (Cliente),250-600,200,Estação Cliente,Quantidade Estações,De acordo com a quantidade de balança
TOTVS Pesagem (Cliente),250-600,200,Estação Cliente,Banco de Dados,PostgreSQL 14
PIMS Connector,250-600,200,Servidor aplicação,Processador,6 VCPU
PIMS Connector,250-600,200,Servidor aplicação,SO,Windows Server 2019
PIMS Connector,250-600,200,Servidor aplicação,Memória,12 GB RAM
PIMS Connector,250-600,200,Servidor aplicação,Disco,300GB Disco
PIMS Connector,250-600,200,Servidor aplicação,Servidores,1
PIMS Connector,250-600,200,Banco de Dados,Versão,Oracle Server 19c / SQL Server Enterprise 2019
PIMS Connector,250-600,200,Banco de Dados,Servidores,1
Portal Agrícola,250-600,200,Servidor aplicação,Processador,8 VCPU
Portal Agrícola,250-600,200,Servidor aplicação,SO,Windows Server 2019
Portal Agrícola,250-600,200,Servidor aplicação,Memória,16GB RAM
Portal Agrícola,250-600,200,Servidor aplicação,Disco,300GB Disco
Portal Agrícola,250-600,200,Servidor aplicação,Servidores,1
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
CCT Offline,1-250,50,Servidor aplicação,Processador,6 VCPU
CCT Offline,1-250,50,Servidor aplicação,SO,Windows Server 2019
CCT Offline,1-250,50,Servidor aplicação,Memória,8 GB RAM
CCT Offline,1-250,50,Servidor aplicação,Disco,300GB Disco
CCT Offline,1-250,50,Servidor aplicação,Servidores,1
PIMS Server,1-250,50,Servidor aplicação,Processador,8 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
Portal Mobile,1-250,50,Servidor aplicação,Processador,6 VCPU
Portal Mobile,1-250,50,Servidor aplicação,SO,Windows Server 2019
Portal Mobile,1-250,50,Servidor aplicação,Memória,12GB RAM
Portal Mobile,1-250,50,Servidor aplicação,Disco,300GB Disco
Portal Mobile,1-250,50,Servidor aplicação,Servidores,1
Portal Mobile,1-250,50,Banco de Dados,Versão,SQL Server Enterprise 2019
Portal Mobile,1-250,50,Banco de Dados,Servidores,1
Portal Mobile,1-250,50,Banco de Dados,Disco,50GB Disco
TOTVS Pesagem (Convergência),1-250,50,Servidor aplicação,Processador,6 VCPU
TOTVS Pesagem (Convergência),1-250,50,Servidor aplicação,SO,Windows Server 2019
TOTVS Pesagem (Convergência),1-250,50,Servidor aplicação,Memória,12 GB RAM
TOTVS Pesagem (Convergência),1-250,50,Servidor aplicação,Disco,300GB Disco
TOTVS Pesagem (Convergência),1-250,50,Servidor aplicação,Servidores,1
TOTVS Pesagem (Convergência),1-250,50,Banco de Dados,Versão,PostgreSQL 14
TOTVS Pesagem (Convergência),1-250,50,Banco de Dados,Servidores,1
TOTVS Pesagem (Cliente),1-250,50,Estação Cliente,Processador,4 VCPU
TOTVS Pesagem (Cliente),1-250,50,Estação Cliente,SO,Windows 11
TOTVS Pesagem (Cliente),1-250,50,Estação Cliente,Memória,12 GB RAM
TOTVS Pesagem (Cliente),1-250,50,Estação Cliente,Disco,200GB Disco
TOTVS Pesagem (Cliente),1-250,50,Estação Cliente,Quantidade Estações,De acordo com a quantidade de balança
TOTVS Pesagem (Cliente),1-250,50,Estação Cliente,Banco de Dados,PostgreSQL 14
PIMS Connector,1-250,50,Servidor aplicação,Processador,4 VCPU
PIMS Connector,1-250,50,Servidor aplicação,SO,Windows Server 2019
PIMS Connector,1-250,50,Servidor aplicação,Memória,8 GB RAM
PIMS Connector,1-250,50,Servidor aplicação,Disco,300GB Disco
PIMS Connector,1-250,50,Servidor aplicação,Servidores,1
PIMS Connector,1-250,50,Banco de Dados,Versão,Oracle Server 19c / SQL Server Enterprise 2019
PIMS Connector,1-250,50,Banco de Dados,Servidores,1
Portal Agrícola,1-250,50,Servidor aplicação,Processador,6 VCPU
Portal Agrícola,1-250,50,Servidor aplicação,SO,Windows Server 2019
Portal Agrícola,1-250,50,Servidor aplicação,Memória,12GB RAM
Portal Agrícola,1-250,50,Servidor aplicação,Disco,300GB Disco
Portal Agrícola,1-250,50,Servidor aplicação,Servidores,1
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,-,,Servidor aplicação,Processador,4 VCPU - Intel Xeon Gold 5415+ Processor (22.5M Cache, 2.90 GHz)
TOTVS Agro LGPD,-,,Servidor aplicação,SO,Windows Server 2019
TOTVS Agro LGPD,-,,Servidor aplicação,Memória,8 GB
TOTVS Agro LGPD,-,,Servidor aplicação,Disco,20 GB
TOTVS Agro LGPD,-,,Banco de Dados,Versão,PostgreSQL 14
TOTVS Agro LGPD,-,,Banco de Dados,Servidores,1
TOTVS Agro Conector Client,-,,Servidor aplicação,Processador,4 VCPU - Intel Xeon Gold 5415+ Processor (22.5M Cache, 2.90 GHz)
TOTVS Agro Conector Client,-,,Servidor aplicação,SO,Windows Server 2019
TOTVS Agro Conector Client,-,,Servidor aplicação,Memória,8 GB
TOTVS Agro Conector Client,-,,Servidor aplicação,Disco,20 GB
TOTVS Agro Conector Client,-,,Banco de Dados,Versão,PostgreSQL 14
TOTVS Agro Conector Client,-,,Banco de Dados,Servidores,1
`.trim();
// Função para obter os produtos únicos
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'] || '-');
});
// Ordena os valores numericamente pelo menor valor do intervalo
return Array.from(set)
.filter(v => v && v !== '-')
.sort((a, b) => {
// Extrai o primeiro número do intervalo (ex: "1-250" => 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.textContent = `Usuários (total): ${selectedUserTotal} | Produto: ${produtoFiltro}`;
container.appendChild(h2);
const table = document.createElement('table');
const thead = document.createElement('thead');
thead.innerHTML = `<tr>
<th>Produto</th>
<th>Usuários (concorrentes)</th>
<th>Requisito</th>
<th>Descrição</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>${row['UsuariosConcorrentes']}</td>
<td>${row['Requisito']}</td>
<td>${row['Descricao']}</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);
});
// Inicialmente seleciona o primeiro produto
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);
}
// Atualiza ao trocar produto
produtoSelect.addEventListener('change', function() {
produtoFiltro = produtoSelect.value;
updateUserTotalSelect();
updateTable();
});
// Atualiza ao trocar usuários
document.getElementById('userTotalSelect').addEventListener('change', function() {
updateTable();
});
// Inicialização
updateUserTotalSelect();
updateTable();
</script>
</body>
</html> |