You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

49 lines
3.2 KiB

const dbRecords = _db.query(`
SELECT evento.titulo, to_char(evento.data, 'DD/MM/YYYY') AS data, evento.capacidade,
evento.preco, categoria_evento.nome AS categoria,
(SELECT count(*) FROM evento evento2 WHERE evento2.id_categoria = evento.id_categoria) as quantia,
ROW_NUMBER () OVER (PARTITION BY categoria_evento.id ORDER BY categoria_evento.nome) as linha
FROM evento JOIN categoria_evento ON evento.id_categoria = categoria_evento.id ORDER BY categoria
`);
_out.println('<div style="display: flex; justify-content: center; margin-top: 80px; min-height: 585px;">')
_out.println('<div>')
_out.println('<caption><a style="display: flex; justify-content: center; font-weight: bold; font-size: 25px; margin-bottom: 10px;">Eventos</a></caption>')
_out.println('<table style="min-width:700px; text-align:left; border-collapse: collapse; border: 1px solid #999; border-inline: none;">')
_out.println('<tr style="height: 35px;">')
_out.println('<th style="border-collapse:collapse; border:1px solid #999; border-inline:none;">Título</th>')
_out.println('<th style="border-collapse:collapse; border:1px solid #999; border-inline:none;">Data</th>')
_out.println('<th style="border-collapse:collapse; border:1px solid #999; border-inline:none;">Capacidade</th>')
_out.println('<th style="border-collapse:collapse; border:1px solid #999; border-inline:none;">Preço</th>')
_out.println('<th style="border-collapse:collapse; border:1px solid #999; border-inline:none;">Categoria</th>')
_out.println('</tr>')
// let copiaDbRecords = dbRecords.slice()
dbRecords.map(dbRecord => {
// const initialLength = copiaDbRecords.length
// copiaDbRecords = copiaDbRecords.filter(r => r.getString("categoria") != dbRecord.getString("categoria"))
// const lengthCategoria = initialLength - copiaDbRecords.length
const quantia = dbRecord.getInt("quantia")
const linha = dbRecord.getInt("linha")
const imprimeCategoria = (quantia > 1 && linha === 1) || quantia === 1
_out.println(`<tr style="height:35px;">`)
_out.println(`<td style="border-collapse:collapse; border:1px solid #999; border-inline:none;">${dbRecord.getString("titulo")}</td>`)
_out.println(`<td style="border-collapse:collapse; border:1px solid #999; border-inline:none;">${dbRecord.getString("data")}</td>`)
_out.println(`<td style="border-collapse:collapse; border:1px solid #999; border-inline:none;">${dbRecord.getInt("capacidade")}</td>`)
_out.println(`<td style="border-collapse:collapse; border:1px solid #999; border-inline:none;">${dbRecord.getDouble("preco")}</td>`)
{imprimeCategoria && _out.println(`<td style="border-collapse:collapse; border:1px solid #999; border-inline:none;" rowspan="${quantia}">${dbRecord.getString("categoria")}</td>`)}
_out.println('</tr>')
})
_out.println('</table>')
_out.println('</div>')
_out.println('</div>')