|
|
|
|
|
|
|
|
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>')
|