se agregaron funciones de programa

This commit is contained in:
2025-05-30 14:37:44 -06:00
parent ac3a786b5b
commit bfc74fd85f
2 changed files with 239 additions and 60 deletions
+19 -47
View File
@@ -234,56 +234,28 @@ export class ProgramaService {
correoOtroResponsable
);
const user= await this.usuarioRepo.findOne({where:{idUsuario:idusuario}})
let usuarioNuevo= await this.usuarioRepo.findOne({where:{idUsuario:idusuario}})
if (!user) throw new Error('No existe este usuario.');
if (user.tipoUsuario.idTipoUsuario != 2) throw new Error('No es un usuario de tipo responsable');
if (user.usuario === correoOtroResponsable) throw new Error('Son el mismo usuario.');
if (!usuarioNuevo) throw new Error('No existe este usuario.');
if (usuarioNuevo.tipoUsuario.idTipoUsuario != 2) throw new Error('No es un usuario de tipo responsable');
if (usuarioNuevo.usuario === correoOtroResponsable) throw new Error('Son el mismo usuario.');
const nuevoResponsable=await this.usuarioRepo.findOne({where:{usuario:correoOtroResponsable}})
let viejoResponsable=await this.usuarioRepo.findOne({where:{usuario:otroResponsable}})
if (!viejoResponsable) throw new Error('No existe este usuario.');
await this.programaRepo.update(
{ usuario:viejoResponsable },
{ usuario:usuarioNuevo }
);
// Eliminar usuario antiguo
await this.usuarioRepo.delete({idUsuario:viejoResponsable.idUsuario});
return {
message: `Se eliminó correctamente al usuario ${correoOtroResponsable} y se reasignaron sus programas.`,
}
}
const reasignarProgramas = async (body) => {
const idUsuario = validar.validarNumeroEntero(body.idUsuario, 'id usuario');
const correoOtroResponsable = validar.validarCorreo(
body.correoOtroResponsable
);
let otorResponsable = {};
return Usuario.findOne({
where: { idUsuario },
})
.then((res) => {
if (!res) throw new Error('No existe este usuario.');
if (res.idTipoUsuario != 2)
throw new Error('No es un usuario de tipo responsable');
if (res.usuario === correoOtroResponsable)
throw new Error('Son el mismo usuario.');
return Usuario.findOne({ where: { usuario: correoOtroResponsable } });
})
.then((res) => {
if (!res) throw new Error('No existe este usuario.');
otorResponsable = res;
return Programa.update(
{ idUsuario },
{
where: { idUsuario: otorResponsable.idUsuario },
}
);
})
.then((res) =>
Usuario.destroy({ where: { idUsuario: otorResponsable.idUsuario } })
)
.then((res) => ({
message: `Se elimino correctamente al usuario ${correoOtroResponsable} y se reasigno correctamente sus programas.`,
}));
};
}