const csv = require('csvtojson'); const Carrera = require('./tablas/Carrera'); const CuestionarioAlumno = require('./tablas/CuestionarioAlumno'); const CuestionarioPrograma = require('./tablas/CuestionarioPrograma'); const Programa = require('./tablas/Programa'); const Servicio = require('./tablas/Servicio'); const Status = require('./tablas/Status'); const TipoUsuario = require('./tablas/TipoUsuario'); const Usuario = require('./tablas/Usuario'); const guardar = async () => { let idsProgramas = []; let idsAlumnos = []; let responsables = await csv() .fromFile('responsable.csv') .then((res) => res); let programas = await csv() .fromFile('programa.csv') .then((res) => res); let alumnos = await csv() .fromFile('alumno.csv') .then((res) => res); let registros = await csv() .fromFile('registro.csv') .then((res) => res); for (let i = 0; i < responsables.length; i++) { await Usuario.create({ idTipoUsuario: 2, usuario: responsables[i].correo, password: responsables[i].password, nombre: responsables[i].nombreResp, activo: true, }) .then(async (res) => { console.log( `Fila ${i}\nSe agrego correctamente al responsable ${res.dataValues.usuario}` ); for (let j = 0; j < programas.length; j++) { if (responsables[i].idResponsable == programas[j].idResponsable) { await Programa.create({ institucion: programas[j].institucion, dependencia: programas[j].dependencia, programa: programas[j].programa, clavePrograma: programas[j].clavePrograma, acatlan: responsables[i].acatlanContigo === 'true' ? true : false, activo: true, idUsuario: res.dataValues.idUsuario, }) .then((res) => { console.log( `Se agrego correctamente el programa ${res.dataValues.programa}` ); idsProgramas.push({ nuevo: res.dataValues.idPrograma, viejo: programas[j].idPrograma, }); programas.splice(j, 1); j--; }) .catch((err) => { throw err; }); } } console.log('\n'); }) .catch((err) => { throw err; }); } for (let i = 0; i < alumnos.length; i++) { let nombre = ''; let usuario = alumnos[i].idAlumno; for (let j = 0; j < registros.length; j++) { if (alumnos[i].idAlumno === registros[j].idAlumno) { nombre = registros[j].nombre; break; } } if (alumnos[i].idAlumno.length === 8) usuario = '0' + usuario; await Usuario.create({ idTipoUsuario: 3, usuario, password: alumnos[i].password ? alumnos[i].password : null, nombre, activo: alumnos[i].password ? true : false, }) .then((res) => { idsAlumnos.push({ nuevo: res.dataValues.idUsuario, viejo: alumnos[i].idAlumno, }); console.log( `Se agrego correctamente al alumno ${res.dataValues.usuario}` ); }) .catch((err) => { throw err; }); } for (let i = 0; i < registros.length; i++) { let idUsuario; let idPrograma; let idStatus; let idCarrera = await Carrera.findOne({ where: { carrera: registros[i].carrera, }, }) .then(async (res) => { if (!res) { return await Carrera.create({ carrera: registros[i].carrera }) .then((res) => res.dataValues.idCarrera) .catch((err) => { throw err; }); } return res.dataValues.idCarrera; }) .catch((err) => { throw err; }); for (let j = 0; j < idsAlumnos.length; j++) if (registros[i].idAlumno === idsAlumnos[j].viejo) { idUsuario = idsAlumnos[j].nuevo; break; } for (let j = 0; j < idsProgramas.length; j++) if (registros[i].idPrograma === idsProgramas[j].viejo) { idPrograma = idsProgramas[j].nuevo; break; } switch (registros[i].idStatus) { case 1: case 2: case 3: case 4: case 5: case 6: idStatus = registros[i].idStatus; break; case 7: if (registros[i].cartaTermino || registros[i].informeGlobal) idStatus = 8; else idStatus = 7; break; case 8: idStatus = 10; break; } await Servicio.create({ creditos: registros[i].creditos, correo: registros[i].correo, fechaInicio: registros[i].fechaInicio, fechaFin: registros[i].fechaFin, cartaAceptacion: registros[i].cartaAceptacion, // carpeta: registros[i]., // hay que limpiar drive de carpetas de mas telefono: registros[i].telefono ? registros[i].telefono : null, direccion: registros[i].direccion ? registros[i].direccion : null, fechaNacimiento: registros[i].fechaNacimiento ? registros[i].fechaNacimiento : null, cartaTermino: registros[i].cartaTermino ? registros[i].cartaTermino : null, informeGlobal: registros[i].informeGlobal ? registros[i].informeGlobal : null, programaInterno: registros[i].progInterno ? registros[i].progInterno : null, profesor: registros[i].prof ? registros[i].prof : null, vistoBuenoAcatlan: registros[i].vistoBuenoAcatlan === 'true' ? true : null, idUsuario, idPrograma, idStatus, idCarrera, createdAt: registros[i].createdAt, updatedAt: registros[i].updatedAt, }) .then((res) => { console.log( `Linea ${i}\nSe agrego correctamente el servico social del alumno ${res.dataValues.idUsuario} con numero de cuenta ${registros[i].idAlumno}` ); }) .catch((err) => { throw err; }); console.log('\n'); } }; guardar();