diff --git a/src/controllers/fichas-tombos-controller.js b/src/controllers/fichas-tombos-controller.js index 6ecdb7d..0addb97 100644 --- a/src/controllers/fichas-tombos-controller.js +++ b/src/controllers/fichas-tombos-controller.js @@ -166,7 +166,7 @@ export default function fichaTomboController(request, response, next) { }; const where = { - identificacao: 1, + identificacao: true, status: 'APROVADO', tombo_hcf: tombo.hcf, }; diff --git a/src/controllers/locais-coleta-controller.js b/src/controllers/locais-coleta-controller.js index 9c00020..7ca28e0 100644 --- a/src/controllers/locais-coleta-controller.js +++ b/src/controllers/locais-coleta-controller.js @@ -208,7 +208,7 @@ export const buscarFasesSucessionais = (request, response, next) => { export const cadastrarLocalColeta = async (request, response, next) => { try { - const dados = pick(request.body, ['descricao', 'complemento', 'cidade_id', 'fase_sucessional_id']); + const dados = pick(request.body, ['descricao', 'cidade_id', 'fase_sucessional_id']); const localColeta = await LocalColeta.create(dados); response.status(201).json(localColeta); } catch (error) { @@ -321,7 +321,7 @@ export const buscarLocalColetaPorId = async (request, response, next) => { export const atualizarLocalColeta = async (request, response, next) => { try { const { id } = request.params; - const dados = pick(request.body, ['descricao', 'complemento', 'cidade_id', 'fase_sucessional_id']); + const dados = pick(request.body, ['descricao', 'cidade_id', 'fase_sucessional_id']); const [updated] = await LocalColeta.update(dados, { where: { id }, }); diff --git a/src/controllers/pendencias-controller.js b/src/controllers/pendencias-controller.js index 520a3fa..993ac8f 100644 --- a/src/controllers/pendencias-controller.js +++ b/src/controllers/pendencias-controller.js @@ -42,7 +42,7 @@ export const listagem = (request, response, next) => { resultado: {}, }; let where = { - ativo: 1, + ativo: true, }; let whereUsuario = {}; if (status) { @@ -113,7 +113,7 @@ export const desativar = (request, response, next) => { const callback = transaction => Promise.resolve() .then(() => Alteracao.findOne({ where: { - ativo: 1, + ativo: true, id, }, transaction, @@ -123,7 +123,7 @@ export const desativar = (request, response, next) => { throw new BadRequestExeption(800); } return Alteracao.update({ - ativo: 0, + ativo: false, }, { where: { id, @@ -1738,7 +1738,7 @@ export async function visualizar(request, response, next) { try { const id = request.params.pendencia_id; const alteracao = await Alteracao.findOne({ - where: { ativo: 1, id }, + where: { ativo: true, id }, }); if (!alteracao) { @@ -2151,14 +2151,14 @@ export function aceitarPendencia(request, response, next) { status, }, { where: { - ativo: 1, + ativo: true, id, }, transaction, })) .then(() => Alteracao.findOne({ where: { - ativo: 1, + ativo: true, id, }, transaction, diff --git a/src/controllers/relatorios-controller.js b/src/controllers/relatorios-controller.js index c019c38..ee4cc3b 100644 --- a/src/controllers/relatorios-controller.js +++ b/src/controllers/relatorios-controller.js @@ -213,7 +213,7 @@ export const obtemDadosDoRelatorioDeColetaPorLocalEIntervaloDeData = async (req, }, { model: LocalColeta, - attributes: ['id', 'descricao', 'complemento'], + attributes: ['id', 'descricao'], where: whereLocal, required: true, }, @@ -578,7 +578,7 @@ export const obtemDadosDoRelatorioDeLocalDeColeta = async (req, res, next) => { }, { model: LocalColeta, - attributes: ['id', 'descricao', 'complemento'], + attributes: ['id', 'descricao'], where: whereLocal, required: true, include: { diff --git a/src/controllers/tombos-controller.js b/src/controllers/tombos-controller.js index 52293f2..671ac3f 100644 --- a/src/controllers/tombos-controller.js +++ b/src/controllers/tombos-controller.js @@ -397,8 +397,8 @@ export const cadastro = (request, response, next) => { usuario_id: request.usuario.id, status, tombo_json: JSON.stringify(tomboData), - ativo: 1, - identificacao: 1, + ativo: true, + identificacao: true, }; tomboCriado = tombo; @@ -486,8 +486,8 @@ function alteracaoIdentificador(request, transaction) { usuario_id: request.usuario.id, status: 'ESPERANDO', tombo_json: JSON.stringify(update), - ativo: 1, - identificacao: 1, + ativo: true, + identificacao: true, }, { transaction })) .then(alteracaoIdent => { if (request.usuario.tipo_usuario_id === 3) { @@ -612,8 +612,8 @@ function alteracaoCuradorouOperador(request, response, transaction) { usuario_id: request.usuario.id, status: 'ESPERANDO', tombo_json: JSON.stringify(update), - ativo: 1, - identificacao: 1, + ativo: true, + identificacao: true, }, { transaction }) .then(alteracaoCriada => { if (request.usuario.tipo_usuario_id === 1) { @@ -1472,7 +1472,7 @@ export const obterTombo = async (request, response, next) => { where: { tombo_hcf: dadosTombo.hcf, status: 'APROVADO', - identificacao: 1, + identificacao: true, }, order: [['created_at', 'DESC']], }), diff --git a/src/database/migration/20260304120000_convert_smallint_to_boolean.ts b/src/database/migration/20260304120000_convert_smallint_to_boolean.ts new file mode 100644 index 0000000..c99cbd6 --- /dev/null +++ b/src/database/migration/20260304120000_convert_smallint_to_boolean.ts @@ -0,0 +1,29 @@ +import { Knex } from 'knex' + +export async function run(knex: Knex): Promise { + await knex.transaction(async trx => { + await trx.schema.alterTable('alteracoes', table => { + table.smallint('ativo_backup').nullable() + table.smallint('identificacao_backup').nullable() + }) + + await trx.raw('UPDATE alteracoes SET ativo_backup = ativo, identificacao_backup = identificacao') + + await trx.schema.alterTable('alteracoes', table => { + table.dropColumn('ativo') + table.dropColumn('identificacao') + }) + + await trx.schema.alterTable('alteracoes', table => { + table.boolean('ativo').nullable() + table.boolean('identificacao').nullable() + }) + + await trx.raw('UPDATE alteracoes SET ativo = (ativo_backup = 1), identificacao = (identificacao_backup = 1)') + + await trx.schema.alterTable('alteracoes', table => { + table.dropColumn('ativo_backup') + table.dropColumn('identificacao_backup') + }) + }) +} diff --git a/src/helpers/formata-dados-relatorio.js b/src/helpers/formata-dados-relatorio.js index 5a01156..da688bf 100644 --- a/src/helpers/formata-dados-relatorio.js +++ b/src/helpers/formata-dados-relatorio.js @@ -58,9 +58,7 @@ const defineNomeCientifico = dado => { export const formatarDadosParaRelatorioDeColetaPorLocalEIntervaloDeData = dados => { const romanos = ['I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX', 'X', 'XI', 'XII']; const dadosFormatados = dados.map(dado => ({ - local: dado.locais_coletum?.complemento - ? `${dado.locais_coletum.descricao} ${dado.locais_coletum.complemento}` - : dado.locais_coletum?.descricao, + local: dado.locais_coletum?.descricao, data: `${String(dado.data_coleta_dia).padStart(2, '0')}/${romanos[dado.data_coleta_mes - 1]}/${dado.data_coleta_ano}`, tombo: dado?.hcf, numeroColeta: dado.numero_coleta || '-', diff --git a/src/herbarium/herbariumdatabase.js b/src/herbarium/herbariumdatabase.js index b87f3fd..fe0a985 100644 --- a/src/herbarium/herbariumdatabase.js +++ b/src/herbarium/herbariumdatabase.js @@ -796,7 +796,7 @@ export function insereAlteracaoSugerida(idUsuario, statusAlteracao, idTombo, tom status: statusAlteracao, tombo_hcf: idTombo, tombo_json: tomboJson, - identificacao: 1, + identificacao: true, data_identificacao_dia: diaIdentificacao, data_identificacao_mes: mesIdentificacao, data_identificacao_ano: anoIdentificacao, diff --git a/src/models/Alteracao.js b/src/models/Alteracao.js index dc9af65..a9ca697 100644 --- a/src/models/Alteracao.js +++ b/src/models/Alteracao.js @@ -41,11 +41,11 @@ export default (Sequelize, DataTypes) => { allowNull: false, }, ativo: { - type: DataTypes.SMALLINT, + type: DataTypes.BOOLEAN, allowNull: true, }, identificacao: { - type: DataTypes.SMALLINT, + type: DataTypes.BOOLEAN, allowNull: true, }, }; diff --git a/src/models/LocalColeta.js b/src/models/LocalColeta.js index 62c7589..d9652c4 100644 --- a/src/models/LocalColeta.js +++ b/src/models/LocalColeta.js @@ -35,10 +35,7 @@ export default (Sequelize, DataTypes) => { type: DataTypes.TEXT, allowNull: true, }, - complemento: { - type: DataTypes.TEXT, - allowNull: true, - }, + cidade_id: { type: DataTypes.INTEGER, allowNull: true, diff --git a/src/validators/localColeta-cadastro.js b/src/validators/localColeta-cadastro.js index 6f1c853..c88a8a3 100644 --- a/src/validators/localColeta-cadastro.js +++ b/src/validators/localColeta-cadastro.js @@ -5,11 +5,7 @@ export default { notEmpty: true, errorMessage: 'Descrição é obrigatória.', }, - complemento: { - in: ['body'], - isString: true, - optional: true, - }, + cidade_id: { in: ['body'], isInt: true, diff --git a/src/views/ficha-tombo.ejs b/src/views/ficha-tombo.ejs index 28615bc..4b7bcb9 100644 --- a/src/views/ficha-tombo.ejs +++ b/src/views/ficha-tombo.ejs @@ -213,9 +213,7 @@
Local de Coleta: - <% if (localColeta && localColeta.complemento) { %> - <%- localColeta.complemento %> - <% } %> + <% if (localColeta && localColeta.descricao) { %> <%- localColeta.descricao %> <% } %>