diff --git a/server/controller/CasoEspecial/nuevo.js b/server/controller/CasoEspecial/nuevo.js new file mode 100644 index 0000000..e69de29 diff --git a/server/controller/CasoEspecial/serviciosAdmin.js b/server/controller/CasoEspecial/serviciosAdmin.js new file mode 100644 index 0000000..e69de29 diff --git a/server/controller/CasoEspecial/serviciosResponsable.js b/server/controller/CasoEspecial/serviciosResponsable.js new file mode 100644 index 0000000..e69de29 diff --git a/server/controller/Servicio/serviciosAdmin.js b/server/controller/Servicio/serviciosAdmin.js index 6001940..72f93bc 100644 --- a/server/controller/Servicio/serviciosAdmin.js +++ b/server/controller/Servicio/serviciosAdmin.js @@ -10,7 +10,7 @@ const serviciosAdmin = async (body) => { const pagina = validar.validarId(body.pagina); const where = body.idStatus ? { idStatus: validar.validarId(body.idStatus) } - : {}; + : { idStatus: { [Op.lte]: 10 } }; const nombre = body.nombre ? validar.validarTexto(body.nombre, 'El nombre', 60) : ''; @@ -20,7 +20,6 @@ const serviciosAdmin = async (body) => { const data = []; return Servicio.findAll({ - where, include: [ { model: Usuario, @@ -31,7 +30,7 @@ const serviciosAdmin = async (body) => { }, }, { model: Carrera }, - { model: Status }, + { model: Status, where }, ], order: [['updatedAt', 'DESC']], }).then((res) => { diff --git a/server/controller/Servicio/serviciosResponsable.js b/server/controller/Servicio/serviciosResponsable.js index 941ae1c..2fb8623 100644 --- a/server/controller/Servicio/serviciosResponsable.js +++ b/server/controller/Servicio/serviciosResponsable.js @@ -12,7 +12,7 @@ const serviciosResponsable = async (body) => { const idUsuario = validar.validarId(body.idUsuario); const where = body.idStatus ? { idStatus: validar.validarId(body.idStatus) } - : {}; + : { idStatus: { [Op.lt]: 10 } }; const nombre = body.nombre ? validar.validarTexto(body.nombre, 'El nombre', 60) @@ -28,7 +28,6 @@ const serviciosResponsable = async (body) => { if (res.idTipoUsuario !== 2) throw new Error('No es un usuario tipo responsable.'); return Servicio.findAll({ - where, include: [ { model: Programa, where: { idUsuario } }, { @@ -40,7 +39,7 @@ const serviciosResponsable = async (body) => { }, }, { model: Carrera }, - { model: Status, where: { idStatus: { [Op.not]: 10 } } }, + { model: Status, where }, ], order: [['updatedAt', 'DESC']], }); diff --git a/server/db/install.js b/server/db/install.js index b534160..40f4b94 100644 --- a/server/db/install.js +++ b/server/db/install.js @@ -6,6 +6,7 @@ const CuestionarioAlumno = require('./tablas/CuestionarioAlumno'); const CuestionarioPrograma = require('./tablas/CuestionarioPrograma'); const Programa = require('./tablas/Programa'); const Servicio = require('./tablas/Servicio'); +const CasoEspecial = require('./tablas/CasoEspecial'); const Status = require('./tablas/Status'); const TipoUsuario = require('./tablas/TipoUsuario'); const Usuario = require('./tablas/Usuario'); @@ -13,67 +14,73 @@ const Usuario = require('./tablas/Usuario'); const drop = async () => { console.log('\nPaso 1) Desinstalando la db.'.bold.blue); + await CasoEspecial.drop(); + console.log('La tabla CasoEspecial se desinstalo correctamente.'.magenta); + await Servicio.drop(); - console.log('La tabla Servicio se instalo correctamente.'.magenta); + console.log('La tabla Servicio se desinstalo correctamente.'.magenta); await Carrera.drop(); - console.log('La tabla Carrera se instalo correctamente.'.magenta); + console.log('La tabla Carrera se desinstalo correctamente.'.magenta); await CuestionarioPrograma.drop(); console.log( - 'La tabla CuestionarioPrograma se instalo correctamente.'.magenta + 'La tabla CuestionarioPrograma se desinstalo correctamente.'.magenta ); await CuestionarioAlumno.drop(); - console.log('La tabla CuestionarioAlumno se instalo correctamente.'.magenta); + console.log( + 'La tabla CuestionarioAlumno se desinstalo correctamente.'.magenta + ); await Programa.drop(); - console.log('La tabla Programa se instalo correctamente.'.magenta); + console.log('La tabla Programa se desinstalo correctamente.'.magenta); await Status.drop(); - console.log('La tabla Status se instalo correctamente.'.magenta); + console.log('La tabla Status se desinstalo correctamente.'.magenta); await Usuario.drop(); - console.log('La tabla Usuario se instalo correctamente.'.magenta); + console.log('La tabla Usuario se desinstalo correctamente.'.magenta); await TipoUsuario.drop(); - console.log('La tabla TipoUsuario se instalo correctamente.'.magenta); + console.log('La tabla TipoUsuario se desinstalo correctamente.'.magenta); }; const sync = async () => { console.log('\nPaso 2) Instalando la db.'.bold.blue); await TipoUsuario.sync(); - console.log('La tabla TipoUsuario se desinstalo correctamente.'.magenta); + console.log('La tabla TipoUsuario se instalo correctamente.'.magenta); await Usuario.sync(); - console.log('La tabla Usuario se desinstalo correctamente.'.magenta); + console.log('La tabla Usuario se instalo correctamente.'.magenta); await Programa.sync(); - console.log('La tabla Programa se desinstalo correctamente.'.magenta); + console.log('La tabla Programa se instalo correctamente.'.magenta); await Status.sync(); - console.log('La tabla Status se desinstalo correctamente.'.magenta); + console.log('La tabla Status se instalo correctamente.'.magenta); await CuestionarioAlumno.sync(); - console.log( - 'La tabla CuestionarioAlumno se desinstalo correctamente.'.magenta - ); + console.log('La tabla CuestionarioAlumno se instalo correctamente.'.magenta); await CuestionarioPrograma.sync(); console.log( - 'La tabla CuestionarioPrograma se desinstalo correctamente.'.magenta + 'La tabla CuestionarioPrograma se instalo correctamente.'.magenta ); await Carrera.sync(); - console.log('La tabla Carrera se desinstalo correctamente.'.magenta); + console.log('La tabla Carrera se instalo correctamente.'.magenta); await Servicio.sync(); - console.log('La tabla Servicio se desinstalo correctamente.'.magenta); + console.log('La tabla Servicio se instalo correctamente.'.magenta); + + await CasoEspecial.sync(); + console.log('La tabla CasoEspecial se instalo correctamente.'.magenta); }; const dataTipoUsuario = async () => { - const data = ['admin', 'responsable', 'alumno']; + const data = ['admin', 'responsable', 'alumno', 'caso especial']; console.log('\nPaso 3) Instalando data de TipoUsuario.'.bold.blue); for (let i = 0; i < data.length; i++) { @@ -94,6 +101,8 @@ const dataStatus = async () => { 'Carta Termino Rechazada', 'Informe Global Rechazado', 'Cancelado', + 'Articulo 52', + 'Articulo 91', ]; console.log('\nPaso 4) Instalando data de Status.'.bold.blue); diff --git a/server/db/tablas/CasoEspecial.js b/server/db/tablas/CasoEspecial.js new file mode 100644 index 0000000..1e5e6b3 --- /dev/null +++ b/server/db/tablas/CasoEspecial.js @@ -0,0 +1,100 @@ +const { DataTypes, Model } = require('sequelize'); +const sequelize = require('../../config/sequelize.conf'); +const Usuario = require('./Usuario'); +const Carrera = require('./Carrera'); +const Programa = require('./Programa'); +const Status = require('./Status'); + +class CasoEspecial extends Model {} +CasoEspecial.init( + { + idServicio: { + type: DataTypes.INTEGER, + primaryKey: true, + allowNull: false, + unique: true, + autoIncrement: true, + }, + creditos: { + type: DataTypes.STRING(3), + allowNull: false, + }, + correo: { + type: DataTypes.STRING(60), + allowNull: false, + }, + telefono: { + type: DataTypes.STRING(15), + allowNull: true, + defaultValue: null, + }, + direccion: { + type: DataTypes.STRING(200), + allowNull: true, + defaultValue: null, + }, + fechaInicio: { + type: DataTypes.DATE, + allowNull: false, + }, + fechaFin: { + type: DataTypes.DATE, + allowNull: true, + defaultValue: null, + }, + fechaNacimiento: { + type: DataTypes.DATE, + allowNull: true, + defaultValue: null, + }, + carpeta: { + type: DataTypes.STRING(60), + allowNull: false, + }, + archivoZip: { + type: DataTypes.STRING(60), + allowNull: false, + }, + }, + { + sequelize, + modelName: 'CasoEspecial', + tableName: 'caso_especial', + timestamps: true, + } +); + +CasoEspecial.belongsTo(Usuario, { + foreignKey: { + name: 'idUsuario', + type: DataTypes.INTEGER, + allowNull: false, + }, +}); + +CasoEspecial.belongsTo(Carrera, { + foreignKey: { + name: 'idCarrera', + type: DataTypes.INTEGER, + allowNull: false, + }, +}); + +CasoEspecial.belongsTo(Status, { + foreignKey: { + name: 'idStatus', + type: DataTypes.INTEGER, + allowNull: false, + defaultValue: 1, + }, +}); + +CasoEspecial.belongsTo(Programa, { + foreignKey: { + name: 'idPrograma', + type: DataTypes.INTEGER, + allowNull: false, + }, +}); + +module.exports = CasoEspecial; diff --git a/server/routes/CasoEspecial.js b/server/routes/CasoEspecial.js new file mode 100644 index 0000000..dfe41f2 --- /dev/null +++ b/server/routes/CasoEspecial.js @@ -0,0 +1,13 @@ +const fs = require('fs'); +const express = require('express'); +const multer = require('multer'); +const app = express(); +const upload = multer({ dest: 'server/uploads' }); +const { verificaToken } = require('../middleware/autentificacion'); +const route = '/casoEspecial'; + +const eliminarArchivo = (filename) => { + fs.unlinkSync(`./server/uploads/${filename}`); +}; + +module.exports = app; diff --git a/server/routes/index.js b/server/routes/index.js index 9846d0e..2c5581b 100644 --- a/server/routes/index.js +++ b/server/routes/index.js @@ -4,8 +4,9 @@ const app = express(); app.use(require('./Status')); app.use(require('./Usuario')); app.use(require('./Servicio')); +// app.use(require('./CasoEspecial')); app.use(require('./Programa')); -app.use(require('./CuestionarioAlumno')) -app.use(require('./CuestionarioPrograma')) +app.use(require('./CuestionarioAlumno')); +app.use(require('./CuestionarioPrograma')); module.exports = app;