diff --git a/server/controller/Prestamo/regresar.js b/server/controller/Prestamo/regresar.js index 2575238..5d78903 100644 --- a/server/controller/Prestamo/regresar.js +++ b/server/controller/Prestamo/regresar.js @@ -17,6 +17,7 @@ const regresar = async (body) => { 'id operador regreso', true ); + const update = { idOperadorRegreso }; let diferencia = null; return Operador.findOne({ where: { idOperador: idOperadorRegreso } }) @@ -33,31 +34,30 @@ const regresar = async (body) => { throw new Error('Este préstamo ya no esta activo.'); if (res.Equipo.idStatus === 1) throw new Error('Aun no se ha entregado el equipo al usuario.'); - diferencia = parseInt((ahora - moment(res.horaFin)) / 60000); - if (diferencia >= 15) - await Multa.create({ - idPrestamo, - idInfraccion: 1, - idOperadorMulta: idOperadorRegreso, - descripcion: `Se paso por ${diferencia} minutos para entregar el equipo.`, - fechaFin: ahoraAux.add(parseInt(diferencia / 15) * 7, 'd').format(), - }).then((res) => - Usuario.update( - { multa: true }, - { where: { idUsuario: res.idUsuario } } - ) - ); + if (!res.regresoInmediato) { + update.horaEntrega = ahora.format(); + update.activo = false; + diferencia = parseInt((ahora - moment(res.horaFin)) / 60000); + if (diferencia >= 15) + await Multa.create({ + idPrestamo, + idInfraccion: 1, + idOperadorMulta: 1, + descripcion: `Se paso por ${diferencia} minutos para entregar el equipo.`, + fechaFin: ahoraAux.add(parseInt(diferencia / 15) * 7, 'd').format(), + }).then((res) => + Usuario.update( + { multa: true }, + { where: { idUsuario: res.idUsuario } } + ) + ); + } return Equipo.update( { idStatus: 4 }, { where: { idEquipo: res.idEquipo } } ); }) - .then(() => - Prestamo.update( - { idOperadorRegreso, horaEntrega: ahora.format(), activo: false }, - { where: { idPrestamo } } - ) - ) + .then(() => Prestamo.update(update, { where: { idPrestamo } })) .then(() => { io.getIO().emit('actualizar'); return { diff --git a/server/controller/Prestamo/regresarNumeroInventario.js b/server/controller/Prestamo/regresarNumeroInventario.js index 490507b..eb2b782 100644 --- a/server/controller/Prestamo/regresarNumeroInventario.js +++ b/server/controller/Prestamo/regresarNumeroInventario.js @@ -7,6 +7,7 @@ const Equipo = require(`${dbPath}/Equipo`); const Multa = require(`${dbPath}/Multa`); const Operador = require(`${dbPath}/Operador`); const Prestamo = require(`${dbPath}/Prestamo`); +const Usuario = require(`${dbPath}/Usuario`); const regresarNumeroInventario = async (body) => { const ahora = moment(); @@ -22,6 +23,7 @@ const regresarNumeroInventario = async (body) => { 'id operador regreso', true ); + const update = { idOperadorRegreso }; let diferencia = null; let idPrestamo = null; @@ -49,25 +51,31 @@ const regresarNumeroInventario = async (body) => { if (res.Equipo.idStatus === 1) throw new Error('Aun no se ha entregado el equipo al usuario.'); idPrestamo = res.idPrestamo; - diferencia = parseInt((ahora - moment(res.horaFin)) / 60000); - if (diferencia >= 15) - await Multa.create({ - idPrestamo, - idInfraccion: 1, - idOperadorMulta: idOperadorRegreso, - descripcion: `Se paso por ${diferencia} minutos para entregar el equipo.`, - fechaFin: ahoraAux.add(parseInt(diferencia / 15) * 7, 'd').format(), - }); + if (!res.regresoInmediato) { + update.horaEntrega = ahora.format(); + update.activo = false; + diferencia = parseInt((ahora - moment(res.horaFin)) / 60000); + if (diferencia >= 15) + await Multa.create({ + idPrestamo, + idInfraccion: 1, + idOperadorMulta: 1, + descripcion: `Se paso por ${diferencia} minutos para entregar el equipo.`, + fechaFin: ahoraAux.add(parseInt(diferencia / 15) * 7, 'd').format(), + }).then((res) => + Usuario.update( + { multa: true }, + { where: { idUsuario: res.idUsuario } } + ) + ); + } return Equipo.update( { idStatus: 4 }, { where: { idEquipo: res.idEquipo } } ); }) .then(() => { - Prestamo.update( - { idOperadorRegreso, horaEntrega: ahora.format(), activo: false }, - { where: { idPrestamo } } - ); + Prestamo.update(update, { where: { idPrestamo } }); }) .then(() => { io.getIO().emit('actualizar'); diff --git a/server/controller/Prestamo/regresoInmediato.js b/server/controller/Prestamo/regresoInmediato.js index e490e20..27a0e10 100644 --- a/server/controller/Prestamo/regresoInmediato.js +++ b/server/controller/Prestamo/regresoInmediato.js @@ -27,6 +27,7 @@ const regresoInmediato = async (body) => { await Multa.create({ idPrestamo, idInfraccion: 1, + idOperadorMulta: 1, descripcion: `Se paso por ${diferencia} minutos para entregar el equipo.`, fechaFin: ahoraAux.add(parseInt(diferencia / 15) * 7, 'd').format(), }).then((res) => diff --git a/server/controller/Prestamo/regresoInmediatoNumeroInventario.js b/server/controller/Prestamo/regresoInmediatoNumeroInventario.js index af8b5c0..a27e77f 100644 --- a/server/controller/Prestamo/regresoInmediatoNumeroInventario.js +++ b/server/controller/Prestamo/regresoInmediatoNumeroInventario.js @@ -33,6 +33,7 @@ const regresoInmediatoNumeroInventario = async (body) => { await Multa.create({ idPrestamo, idInfraccion: 1, + idOperadorMulta: 1, descripcion: `Se paso por ${diferencia} minutos para entregar el equipo.`, fechaFin: ahoraAux.add(parseInt(diferencia / 15) * 7, 'd').format(), }).then((res) => diff --git a/server/controller/Usuario/crear.js b/server/controller/Usuario/crear.js index 3ed30fb..1114da4 100644 --- a/server/controller/Usuario/crear.js +++ b/server/controller/Usuario/crear.js @@ -1,6 +1,7 @@ const helperPath = '../../helper'; -const gmail = require(`${helperPath}/gmail`); +const correoPcPuma = require(`${helperPath}/correo`); const encriptar = require(`${helperPath}/encriptar`); +const gmail = require(`${helperPath}/gmail`); const validar = require(`${helperPath}/validar`); const Usuario = require('../../db/tablas/Usuario'); @@ -12,15 +13,16 @@ const crear = async (body) => { ); const telefono = validar.validarNumero(body.telefono, 'teléfono', true, 15); const password = encriptar.generarPassword(); - let correo = ''; + let correo = {}; + let email = ''; return Usuario.findOne({ where: { idUsuario } }) .then((res) => { if (!res) throw new Error('No existe este usuario.'); if (res.password) throw new Error('Este usuario ya fue registrado.'); if (!res.activo) throw new Error('Este usuario no esta activo.'); - // correo = `${res.usuario}@pcpuma.acatlan.unam.mx`; - correo = 'lemuelhelonmarquezrosas@gmail.com'; + email = `${res.usuario}@pcpuma.acatlan.unam.mx`; + correo = correoPcPuma(password); return Usuario.update( { password: encriptar.encriptar(password), @@ -29,8 +31,8 @@ const crear = async (body) => { { where: { idUsuario } } ); }) - .then((res) => gmail('Contraseña', correo, password)) - .then((res) => ({ + .then(() => gmail(correo.subject, email, correo.msj)) + .then(() => ({ message: 'Se creó correctamente tu cuenta, ingresa a tu correo @pcpuma para consultar tu contraseña para este servicio.', })); diff --git a/server/db/install.js b/server/db/install.js index df1376d..ccf8df1 100644 --- a/server/db/install.js +++ b/server/db/install.js @@ -174,8 +174,17 @@ const dataPrograma = async () => { } }; +const dataSystem = async () => { + console.log('\nPaso 8) Insertando system.'.bold.blue); + await Operador.create({ + idTipoUsuario: 1, + operador: 'Systema', + password: encriptar.encriptar(process.env.SYSTEM_PASSWORD), + }); +}; + const dataAdmin = async () => { - console.log('\nPaso 8) Insertando admin.'.bold.blue); + console.log('\nPaso 9) Insertando admin.'.bold.blue); await Operador.create({ idTipoUsuario: 1, operador: 'Araceli', @@ -204,7 +213,7 @@ const dataInfraccion = async () => { // { infraccion: '', gravedad: '2' }, ]; - console.log('\nPaso 9) Insertando data infraccion.'.bold.blue); + console.log('\nPaso 10) Insertando data infraccion.'.bold.blue); for (let i = 0; i < data.length; i++) { await Infraccion.create({ infraccion: data[i].infraccion, @@ -222,6 +231,7 @@ const exe = async () => { await dataTipoCarrito(); await dataStatus(); await dataPrograma(); + await dataSystem(); await dataAdmin(); await dataInfraccion(); diff --git a/server/helper/correo.js b/server/helper/correo.js new file mode 100644 index 0000000..0ae3d8d --- /dev/null +++ b/server/helper/correo.js @@ -0,0 +1,23 @@ +const correoPcPuma = (password) => ({ + subject: `Pc Puma credenciales`, + msj: `Estimado usuario, su registro se realizó con éxito. + +Para acceder al servicio debe hacerlo con los siguientes datos: +• Usuario: Número de cuenta o número de trabajador +• Contraseña: ${password} + +

+ El presente registro le permite hacer uso del préstamo del equipo de cómputo seleccionado, el cual puede ser utilizado únicamente al interior de la FES Acatlán. + Para acceder al servicio es obligatorio y su responsabilidad leer los lineamientos "pcpuma-solicita" en la siguiente liga: acatlan.unam.mx/pcpuma/Lineamientos.html + Hacemos de su conocimiento que la presente información es confidencial y debe ser tratada como tal, es de uso exclusivo para el usuario al que fue asignada y se encuentra protegida por la normatividad de la Universidad Nacional Autónoma de México en la materia, cualquier uso no autorizado o indebido se hará del conocimiento de la autoridad universitaria. + Puede consultar nuestro aviso de privacidad en: acatlan.unam.mx/normatividad +

+ +Para mayor información o duda contáctenos por este medio. + +Atte. + +PCPUMA Solicita`, +}); + +module.exports = correoPcPuma;