tabla horario reemplazado en install

This commit is contained in:
Lemuel Marquez
2021-07-11 21:49:23 -05:00
parent 7065929291
commit 732fe20c44
7 changed files with 93 additions and 207 deletions
+62 -108
View File
@@ -1,13 +1,12 @@
require('../config/config');
const { Op } = require('sequelize');
const moment = require('moment');
const colors = require('colors');
const Carrera = require('./tablas/Carrera');
const CarreraDiaHora = require('./tablas/CarreraDiaHora');
const Dia = require('./tablas/Dia');
const DiaHora = require('./tablas/DiaHora');
const CarreraHorario = require('./tablas/CarreraHorario');
const Grupo = require('./tablas/Grupo');
const GrupoDiaHora = require('./tablas/GrupoDiaHora');
const Hora = require('./tablas/Hora');
const GrupoHorario = require('./tablas/GrupoHorario');
const Horario = require('./tablas/Horario');
const PrimerSemestre = require('./tablas/PrimerSemestre');
const TercerSemestre = require('./tablas/TercerSemestre');
@@ -20,23 +19,17 @@ const drop = async () => {
await PrimerSemestre.drop();
console.log('La tabla PrimerSemestre se desinstalo correctamente.'.magenta);
await GrupoDiaHora.drop();
console.log('La tabla GrupoDiaHora se desinstalo correctamente.'.magenta);
await GrupoHorario.drop();
console.log('La tabla GrupoHorario se desinstalo correctamente.'.magenta);
await CarreraDiaHora.drop();
console.log('La tabla CarreraDiaHora se desinstalo correctamente.'.magenta);
await DiaHora.drop();
console.log('La tabla DiaHora se desinstalo correctamente.'.magenta);
await CarreraHorario.drop();
console.log('La tabla CarreraHorario se desinstalo correctamente.'.magenta);
await Grupo.drop();
console.log('La tabla Grupo se desinstalo correctamente.'.magenta);
await Dia.drop();
console.log('La tabla Dia se desinstalo correctamente.'.magenta);
await Hora.drop();
console.log('La tabla Hora se desinstalo correctamente.'.magenta);
await Horario.drop();
console.log('La tabla Horario se desinstalo correctamente.'.magenta);
await Carrera.drop();
console.log('La tabla Carrera se desinstalo correctamente.'.magenta);
@@ -48,23 +41,17 @@ const sync = async () => {
await Carrera.sync();
console.log('La tabla Carrera se instalo correctamente.'.magenta);
await Hora.sync();
console.log('La tabla Hora se instalo correctamente.'.magenta);
await Dia.sync();
console.log('La tabla Dia se instalo correctamente.'.magenta);
await Horario.sync();
console.log('La tabla Horario se instalo correctamente.'.magenta);
await Grupo.sync();
console.log('La tabla Grupo se instalo correctamente.'.magenta);
await DiaHora.sync();
console.log('La tabla DiaHora se instalo correctamente.'.magenta);
await CarreraHorario.sync();
console.log('La tabla CarreraHorario se instalo correctamente.'.magenta);
await CarreraDiaHora.sync();
console.log('La tabla CarreraDiaHora se instalo correctamente.'.magenta);
await GrupoDiaHora.sync();
console.log('La tabla GrupoDiaHora se instalo correctamente.'.magenta);
await GrupoHorario.sync();
console.log('La tabla GrupoHorario se instalo correctamente.'.magenta);
await PrimerSemestre.sync();
console.log('La tabla PrimerSemestre se instalo correctamente.'.magenta);
@@ -264,105 +251,74 @@ const dataGrupo = async () => {
}
};
const dataHora = async () => {
let horaInicio = 8;
let minutoInicio = 0;
const horaFin = 15;
const minutoFin = 20;
let parar = false;
const dataHorario = async () => {
const diaFin = 13;
const diaInicio = 2;
console.log('\nPaso 5) Instalando catalogo Hora.'.bold.blue);
while (!parar) {
const hora = `${horaInicio < 10 ? '0' + horaInicio : horaInicio}:${
minutoInicio < 10 ? '0' + minutoInicio : minutoInicio
}`;
console.log('\nPaso 5) Instalando catalogo Horario.'.bold.blue);
for (let i = diaInicio; i <= diaFin; i++) {
const dia = `2021/08/${i < 10 ? '0' + i : i}`;
const horaFin = 15;
const minutoFin = 20;
let horaInicio = 8;
let minutoInicio = 0;
let parar = false;
await Hora.create({ hora });
console.log(`Se agrego la hora ${hora} correctamente.`.magenta);
if (horaInicio === horaFin && minutoInicio === minutoFin) parar = true;
else {
minutoInicio += 20;
if (minutoInicio == 60) {
horaInicio++;
minutoInicio = 0;
if (i === 7 || i === 8) continue;
while (!parar) {
const hora = `${horaInicio < 10 ? '0' + horaInicio : horaInicio}:${
minutoInicio < 10 ? '0' + minutoInicio : minutoInicio
}`;
await Horario.create({ horario: `${dia} ${hora}` });
console.log(`Se agrego el horario ${dia} ${hora} correctamente.`.magenta);
if (horaInicio === horaFin && minutoInicio === minutoFin) parar = true;
else {
minutoInicio += 20;
if (minutoInicio == 60) {
horaInicio++;
minutoInicio = 0;
}
}
}
}
};
const dataDia = async () => {
let diaInicio = 2;
const diaFin = 13;
const finSemana = [7, 8];
let parar = false;
console.log('\nPaso 6) Instalando catalogo Dia.'.bold.blue);
while (!parar) {
let saltar = false;
for (let i = 0; i < finSemana.length; i++)
if (finSemana[i] === diaInicio) saltar = true;
if (!saltar) {
const dia = `2021/08/${diaInicio < 10 ? '0' + diaInicio : diaInicio}`;
await Dia.create({ dia });
console.log(`Se agrego el dia ${dia} correctamente.`.magenta);
}
if (diaInicio === diaFin) parar = true;
else diaInicio++;
}
};
const dataDiaHora = async () => {
const dias = await Dia.findAll().then((res) => res.length);
const horas = await Hora.findAll().then((res) => res.length);
console.log('\nPaso 7) Instalando catalogo DiaHora.'.bold.blue);
for (let i = 1; i <= dias; i++) {
for (let j = 1; j <= horas; j++) {
await DiaHora.create({ idDia: i, idHora: j });
console.log(
`Se agrego el diaHora con idDia: ${i} y idHora: ${j} correctamente.`
.magenta
);
}
console.log();
}
};
const dataGrupoDiaHora = async () => {
console.log('\nPaso 8) Instalando catalogo GrupoDiaHora.'.bold.blue);
const dataGrupoHorario = async () => {
console.log('\nPaso 6) Instalando catalogo GrupoHorario.'.bold.blue);
for (let i = 0; i < data.length; i++) {
const gruposCarrera = await Grupo.findAll({
where: { grupo: { [Op.like]: '22%' }, idCarrera: i + 1 },
});
let idDiaHora = await DiaHora.findOne({
include: [
{ model: Dia, where: { dia: data[i].horarioAsignado.dia } },
{ model: Hora, where: { hora: data[i].horarioAsignado.horaInicio } },
],
}).then((res) => res.idDiaHora);
let idHorario = await Horario.findOne({
where: {
horario: new Date(
`${data[i].horarioAsignado.dia} ${data[i].horarioAsignado.horaInicio}`
),
},
}).then((res) => res.idHorario);
for (let j = 0; j < gruposCarrera.length; j++) {
await GrupoDiaHora.create({
idDiaHora,
await GrupoHorario.create({
idHorario,
idGrupo: gruposCarrera[j].idGrupo,
})
.then((res) =>
GrupoDiaHora.findOne({
where: { idGrupoDiaHora: res.idGrupoDiaHora },
GrupoHorario.findOne({
where: { idGrupoHorario: res.idGrupoHorario },
include: [
{ model: Grupo, include: [{ model: Carrera }] },
{ model: DiaHora, include: [{ model: Dia }, { model: Hora }] },
{ model: Horario },
],
})
)
.then((res) => {
console.log(
`Se le asigno al grupo ${res.Grupo.grupo} de la carrera ${res.Grupo.Carrera.carrera} el horario ${res.DiaHora.Dium.dia} ${res.DiaHora.Hora.hora}`
.magenta
`Se le asigno al grupo ${res.Grupo.grupo} de la carrera ${
res.Grupo.Carrera.carrera
} el horario ${moment(res.Horario.horario).format()}`.magenta
);
idDiaHora++;
idHorario++;
});
}
console.log();
@@ -374,10 +330,8 @@ const exe = async () => {
await sync();
await dataCarrera();
await dataGrupo();
await dataHora();
await dataDia();
await dataDiaHora();
await dataGrupoDiaHora();
await dataHorario();
await dataGrupoHorario();
console.log(
'\nSe ha instalado exitosamente la base de datos.\n'.underline.bold.green
@@ -1,12 +1,12 @@
const { DataTypes, Model } = require('sequelize');
const sequelize = require('../../config/sequelize.conf');
const Carrera = require('./Carrera');
const DiaHora = require('./DiaHora');
const Horario = require('./Horario');
class CarreraDiaHora extends Model {}
CarreraDiaHora.init(
class CarreraHorario extends Model {}
CarreraHorario.init(
{
idCarreraDiaHora: {
idCarreraHorario: {
type: DataTypes.INTEGER,
primaryKey: true,
allowNull: false,
@@ -16,21 +16,21 @@ CarreraDiaHora.init(
},
{
sequelize,
modelName: 'CarreraDiaHora',
tableName: 'carrera_dia_hora',
modelName: 'CarreraHorario',
tableName: 'carrera_horario',
timestamps: false,
}
);
CarreraDiaHora.belongsTo(DiaHora, {
CarreraHorario.belongsTo(Horario, {
foreignKey: {
name: 'idDiaHora',
name: 'idHorario',
type: DataTypes.INTEGER,
allowNull: false,
},
});
CarreraDiaHora.belongsTo(Carrera, {
CarreraHorario.belongsTo(Carrera, {
foreignKey: {
name: 'idCarrera',
type: DataTypes.INTEGER,
@@ -38,4 +38,4 @@ CarreraDiaHora.belongsTo(Carrera, {
},
});
module.exports = CarreraDiaHora;
module.exports = CarreraHorario;
-27
View File
@@ -1,27 +0,0 @@
const { DataTypes, Model } = require('sequelize');
const sequelize = require('../../config/sequelize.conf');
class Dia extends Model {}
Dia.init(
{
idDia: {
type: DataTypes.INTEGER,
primaryKey: true,
allowNull: false,
unique: true,
autoIncrement: true,
},
dia: {
type: DataTypes.STRING(10),
allowNull: false,
},
},
{
sequelize,
modelName: 'Dia',
tableName: 'dia',
timestamps: false,
}
);
module.exports = Dia;
-41
View File
@@ -1,41 +0,0 @@
const { DataTypes, Model } = require('sequelize');
const sequelize = require('../../config/sequelize.conf');
const Dia = require('./Dia');
const Hora = require('./Hora');
class DiaHora extends Model {}
DiaHora.init(
{
idDiaHora: {
type: DataTypes.INTEGER,
primaryKey: true,
allowNull: false,
unique: true,
autoIncrement: true,
},
},
{
sequelize,
modelName: 'DiaHora',
tableName: 'dia_hora',
timestamps: false,
}
);
DiaHora.belongsTo(Dia, {
foreignKey: {
name: 'idDia',
type: DataTypes.INTEGER,
allowNull: false,
},
});
DiaHora.belongsTo(Hora, {
foreignKey: {
name: 'idHora',
type: DataTypes.INTEGER,
allowNull: false,
},
});
module.exports = DiaHora;
@@ -1,12 +1,12 @@
const { DataTypes, Model } = require('sequelize');
const sequelize = require('../../config/sequelize.conf');
const DiaHora = require('./DiaHora');
const Horario = require('./Horario');
const Grupo = require('./Grupo');
class GrupoDiaHora extends Model {}
GrupoDiaHora.init(
class GrupoHorario extends Model {}
GrupoHorario.init(
{
idGrupoDiaHora: {
idGrupoHorario: {
type: DataTypes.INTEGER,
primaryKey: true,
allowNull: false,
@@ -16,21 +16,21 @@ GrupoDiaHora.init(
},
{
sequelize,
modelName: 'GrupoDiaHora',
tableName: 'grupo_dia_hora',
modelName: 'GrupoHorario',
tableName: 'grupo_horario',
timestamps: false,
}
);
GrupoDiaHora.belongsTo(DiaHora, {
GrupoHorario.belongsTo(Horario, {
foreignKey: {
name: 'idDiaHora',
name: 'idHorario',
type: DataTypes.INTEGER,
allowNull: false,
},
});
GrupoDiaHora.belongsTo(Grupo, {
GrupoHorario.belongsTo(Grupo, {
foreignKey: {
name: 'idGrupo',
type: DataTypes.INTEGER,
@@ -38,4 +38,4 @@ GrupoDiaHora.belongsTo(Grupo, {
},
});
module.exports = GrupoDiaHora;
module.exports = GrupoHorario;
@@ -1,27 +1,27 @@
const { DataTypes, Model } = require('sequelize');
const sequelize = require('../../config/sequelize.conf');
class Hora extends Model {}
Hora.init(
class Horario extends Model {}
Horario.init(
{
idHora: {
idHorario: {
type: DataTypes.INTEGER,
primaryKey: true,
allowNull: false,
unique: true,
autoIncrement: true,
},
hora: {
type: DataTypes.STRING(5),
horario: {
type: DataTypes.DATE,
allowNull: false,
},
},
{
sequelize,
modelName: 'Hora',
tableName: 'hora',
modelName: 'Horario',
tableName: 'horario',
timestamps: false,
}
);
module.exports = Hora;
module.exports = Horario;
+3 -3
View File
@@ -1,6 +1,6 @@
const { DataTypes, Model } = require('sequelize');
const sequelize = require('../../config/sequelize.conf');
const DiaHora = require('./DiaHora');
const Horario = require('./Horario');
const Grupo = require('./Grupo');
class PrimerSemestre extends Model {}
@@ -44,9 +44,9 @@ PrimerSemestre.belongsTo(Grupo, {
},
});
PrimerSemestre.belongsTo(DiaHora, {
PrimerSemestre.belongsTo(Horario, {
foreignKey: {
name: 'idDiaHora',
name: 'idHorario',
type: DataTypes.INTEGER,
allowNull: true,
defaultValue: null,