Histórico da Página
<!DOCTYPEhtml>
<
...
htmllang="pt-BR"
...
>
<head>
<metacharset="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: 02px8px#f4f4f51a;
}
label {
color: #0a0a0a;
font-weight: bold;
margin-right: 10px;
}
select {
padding: 6px12px;
border: 1pxsolid#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: 02px8px#1565c01a;
}
th, td {
border: 1pxsolid#90caf9;
padding: 10px;
text-align: left;
}
th {
background: #0c0c0c;
color: #fff;
font-weight: bold;
}
tr:nth-child(even) td {
background: #f4f8fb;
}
tr:hovertd {
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>
<labelfor="produtoFiltroSelect">Produto:</label>
<selectid="produtoFiltroSelect"></select>
<labelfor="userTotalSelect">Usuários (total):</label>
<selectid="userTotalSelect"></select>
<br><br>
<divid="tables"></div>
<script>
constcsvData = `
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();
...
functiongetProdutoOptions(data)
...
{
constset = newSet();
data.forEach(row
...
=>
...
set.add(row['Produto']));
...
returnArray.from(set).filter(v
...
=>
...
v
...
&&
...
v
...
!==
...
'').sort();
...
}
functionparseCSV(text)
...
{
constlines = text.split(/\r?\n/).filter(l
...
=>
...
l.trim());
...
constheader = lines[0].split(',');
...
returnlines.slice(1).map(line
...
=>
...
{
constregex = /(".*?"|[^",]+)(?=\s*,|\s*$)/g;
...
constmatches = line.match(regex)
...
||
...
[];
...
returnheader.reduce((obj,
...
key,
...
i)
...
=>
...
{
obj[key.trim()]
...
=
...
(matches[i]
...
||
...
'').replace(/^"|"$/g,
...
'').replace(/""/g,
...
'"');
...
returnobj;
}, {});
});
}
functiongroupByUserTotal(data, produtoFiltro) {
constgroups = {};
data.forEach(row=> {
if (produtoFiltro && row['Produto']
...
!==
...
produtoFiltro)
...
return;
constuserTotal = row['UsuariosTotal']
...
||
...
'-';
...
if (!groups[userTotal])
...
groups[userTotal]
...
=
...
[];
...
groups[userTotal].push(row);
...
});
returngroups;
}
functiongetUserTotalOptions(data,
...
produtoFiltro)
...
{
constset = newSet();
data.forEach(row
...
=>
...
{
if (produtoFiltro && row['Produto']
...
!==
...
produtoFiltro)
...
return;
set.add(row['UsuariosTotal']
...
||
...
'-');
...
});
// Remova o filtro para incluir o "-"
returnArray.from(set)
.sort((a,
...
b)
...
=>
...
{
// '-'
...
sempre
...
vai
...
para
...
o
...
final
if (a === '-')
...
return
...
1;
if (b === '-')
...
return
...
-1;
...
constgetMin = str=> {
constmatch = str.match(/(\d+)/);
...
returnmatch ? parseInt(match[1],
...
10)
...
:
...
Number.MAX_SAFE_INTEGER;
...
};
returngetMin(a)
...
-
...
getMin(b);
...
});
}
functionrenderTables(groups,
...
selectedUserTotal,
...
produtoFiltro)
...
{
constcontainer = document.getElementById('tables');
...
container.innerHTML
...
=
...
'';
...
constgroup = groups[selectedUserTotal];
...
if (!group)
...
{
container.innerHTML
...
=
...
'<p>Nenhum
...
dado
...
para
...
este
...
grupo.</p>';
...
return;
}
consth2 = document.createElement('h2');
...
h2.innerHTML
...
=
...
`<div
...
style="margin-bottom:16px;">
...
<strong>Produto:</strong>
...
${produtoFiltro}
...
<strong>Usuários (total):</strong>
...
${selectedUserTotal}
...
</div>`;container.appendChild(h2);
...
consttable = document.createElement('table');
...
constthead = 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);
...
consttbody = document.createElement('tbody');
...
group.forEach(row
...
=>
...
{
consttr = 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
constdata = parseCSV(csvData);
constprodutoOptions = getProdutoOptions(data);
constprodutoSelect = document.getElementById('produtoFiltroSelect');
...
produtoOptions.forEach(opt
...
=>
...
{
constoption = document.createElement('option');
...
option.value
...
=
...
opt;
option.textContent
...
=
...
opt;
produtoSelect.appendChild(option);
...
});
letprodutoFiltro = produtoSelect.value;
functionupdateUserTotalSelect() {
constuserTotalOptions = getUserTotalOptions(data, produtoFiltro);
constselect = document.getElementById('userTotalSelect');
...
select.innerHTML
...
=
...
'';
...
userTotalOptions.forEach(opt
...
=>
...
{
constoption = document.createElement('option');
...
option.value
...
=
...
opt;
option.textContent
...
=
...
opt;
select.appendChild(option);
...
});
}
functionupdateTable() {
constuserTotal = document.getElementById('userTotalSelect').value;
...
constgroups = 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>