From a7fc849ca6b1d4b5a669aae31927ceb8fd70921e Mon Sep 17 00:00:00 2001 From: "Lemuel H. Marquez Rosas" Date: Thu, 1 Oct 2020 16:20:56 -0500 Subject: [PATCH] instalar data y usar csv --- carrera.csv | 135 ++++++++++++++++++++++++ carrera_plantel.csv | 251 ++++++++++++++++++++++++++++++++++++++++++++ package-lock.json | 18 ++++ package.json | 2 + plantel.csv | 102 ++++++++++++++++++ src/db/data.js | 240 ++++++++++++++++++++++++++++++++++++++++++ src/db/install.js | 107 ------------------- 7 files changed, 748 insertions(+), 107 deletions(-) create mode 100644 carrera.csv create mode 100644 carrera_plantel.csv create mode 100644 plantel.csv create mode 100644 src/db/data.js diff --git a/carrera.csv b/carrera.csv new file mode 100644 index 0000000..a6f7864 --- /dev/null +++ b/carrera.csv @@ -0,0 +1,135 @@ +"clave","carrera","nivel" +"101","ACTUARIA","L" +"102","ARQUITECTURA","L" +"103","ARQUITECTURA DEL PAISAJE","L" +"104","CIENCIAS DE LA COMPUTACION","L" +"105","DISEÑO INDUSTRIAL","L" +"106","FISICA","L" +"107","INGENIERIA CIVIL","L" +"108","INGENIERIA DE MINAS Y METALURGIA","L" +"109","INGENIERIA ELECTRICA Y ELECTRONICA","L" +"110","INGENIERIA EN COMPUTACION","L" +"111","INGENIERIA EN TELECOMUNICACIONES","L" +"112","INGENIERIA GEOFISICA","L" +"113","INGENIERIA GEOLOGICA","L" +"114","INGENIERIA INDUSTRIAL","L" +"115","INGENIERIA MECANICA","L" +"116","INGENIERIA MECANICA ELECTRICA","L" +"117","INGENIERIA PETROLERA","L" +"118","INGENIERIA QUIMICA","L" +"119","INGENIERIA QUIMICA METALURGICA","L" +"120","INGENIERIA TOPOGRAFICA Y GEODESICA","L" +"121","MATEMATICAS APLICADAS Y COMPUTACION","L" +"122","MATEMATICAS","L" +"123","URBANISMO","L" +"124","INGENIERIA MECATRONICA","L" +"125","INGENIERIA GEOMATICA","L" +"126","TECNOLOGIA","L" +"127","CIENCIAS DE LA TIERRA","L" +"128","INGENIERIA EN ENERGIAS RENOVABLES","L" +"129","NANOTECNOLOGIA","L" +"130","INGENIERIA EN TELECOMUNICACIONES, SISTEMAS Y ELECTRONICA","L" +"131","GEOCIENCIAS","L" +"132","TECNOLOGIAS PARA LA INFORMACION EN CIENCIAS","L" +"133","CIENCIA DE MATERIALES SUSTENTABLES","L" +"134","FISICA BIOMEDICA","L" +"135","INGENIERIA EN SISTEMAS BIOMEDICOS","L" +"136","MATEMATICAS APLICADAS","L" +"137","INGENIERIA AMBIENTAL","L" +"138","CIENCIA DE DATOS","L" +"139","INGENIERIA AEROESPACIAL","L" +"201","BIOLOGIA","L" +"202","CIRUJANO DENTISTA","L" +"203","ENFERMERIA Y OBSTETRICIA","L" +"204","INGENIERIA AGRICOLA","L" +"205","INGENIERIA EN ALIMENTOS","L" +"206","INVESTIGACION BIOMEDICA BASICA","L" +"207","MEDICINA VETERINARIA Y ZOOTECNIA","L" +"208","MEDICO CIRUJANO","L" +"209","OPTOMETRIA","L" +"210","PSICOLOGIA","L" +"211","QUIMICA","L" +"212","QUIMICA DE ALIMENTOS","L" +"213","QUIMICA FARMACEUTICO BIOLOGICA","L" +"214","QUIMICA INDUSTRIAL","L" +"215","CIENCIAS GENOMICAS","L" +"216","CIENCIAS AMBIENTALES","L" +"217","MANEJO SUSTENTABLE DE ZONAS COSTERAS","L" +"218","BIOQUIMICA DIAGNOSTICA","L" +"219","FARMACIA","L" +"220","ENFERMERIA","L" +"221","FISIOTERAPIA","L" +"222","ODONTOLOGIA","L" +"223","CIENCIAS AGROGENOMICAS","L" +"224","CIENCIA FORENSE","L" +"225","ECOLOGIA","L" +"226","NEUROCIENCIAS","L" +"227","NUTRIOLOGIA","L" +"228","ORTESIS Y PROTESIS","L" +"229","QUIMICA E INGENIERIA EN MATERIALES","L" +"230","CIENCIAS AGROFORESTALES","L" +"301","ADMINISTRACION","L" +"302","CIENCIAS DE LA COMUNICACION (PERIODISMO)","L" +"303","CIENCIAS POLITICAS Y ADMINISTRACION PUBLICA","L" +"304","CONTADURIA","L" +"305","DERECHO ","L" +"306","ECONOMIA","L" +"307","GEOGRAFIA","L" +"308","INFORMATICA","L" +"309","PLANIFICACION PARA EL DESARROLLO ","L" +"310","RELACIONES INTERNACIONALES","L" +"311","SOCIOLOGIA","L" +"312","TRABAJO SOCIAL","L" +"313","ECONOMIA INDUSTRIAL","L" +"314","ADMINISTRACION AGROPECUARIA","L" +"315","COMUNICACION","L" +"316","COMUNICACION Y PERIODISMO","L" +"317","ESTUDIOS SOCIALES Y GESTION LOCAL","L" +"318","DESARROLLO COMUNITARIO PARA EL ENVEJECIMIENTO ","L" +"319","ANTROPOLOGIA","L" +"320","DESARROLLO TERRITORIAL","L" +"321","NEGOCIOS INTERNACIONALES","L" +"322","GEOGRAFIA APLICADA","L" +"401","ARTES VISUALES","L" +"402","BIBLIOTECOLOGIA","L" +"403","CANTO","L" +"404","COMPOSICION","L" +"405","COMUNICACION GRAFICA","L" +"406","DISEÑO GRAFICO","L" +"407","EDUCACION MUSICAL","L" +"408","ENSEÑANZA DE INGLES","L" +"409","ESTUDIOS LATINOAMERICANOS","L" +"410","ETNOMUSICOLOGIA","L" +"411","FILOSOFIA","L" +"412","HISTORIA","L" +"413","INSTRUMENTISTA","L" +"414","LENGUA Y LITERATURAS HISPANICAS","L" +"415","LENGUA Y LIT MODERNAS ALEMANAS","L" +"416","LENGUA Y LIT MODERNAS FRANCESAS","L" +"417","LENGUA Y LIT MODERNAS INGLESAS","L" +"418","LENGUA Y LIT MODERNAS ITALIANAS","L" +"419","LETRAS CLASICAS","L" +"420","LITERATURA DRAMATICA Y TEATRO","L" +"421","PEDAGOGIA","L" +"422","PIANO","L" +"423","DISEÑO Y COMUNICACION VISUAL","L" +"424","ENSEÑANZA DE ALEMAN COMO LENGUA EXTRANJERA","L" +"425","ENSEÑANZA DE ESPAÑOL COMO LENGUA EXTRANJERA","L" +"426","ENSEÑANZA DE FRANCES COMO LENGUA EXTRANJERA","L" +"427","ENSEÑANZA DE INGLES COMO LENGUA EXTRANJERA","L" +"428","ENSEÑANZA DE ITALIANO COMO LENGUA EXTRANJERA","L" +"429","DESARROLLO Y GESTION ","L" +"430","LENGUA Y LIT MODERNAS PORTUGUESAS","L" +"431","GEOHISTORIA","L" +"432","LITERATURA INTERCULTURAL","L" +"433","HISTORIA DEL ARTE","L" +"434","ARTE Y DISEÑO","L" +"435","CINEMATOGRAFIA","L" +"436","TEATRO Y ACTUACION","L" +"437","ADMINISTRACION DE ARCHIVOS Y GESTION DOCUMENTAL","L" +"438","MUSICA Y TECNOLOGIA ARTISTICA","L" +"439","LINGUISTICA APLICADA","L" +"440","TRADUCCION","L" +"501","TECNICO","T" +"502","BACHILLERATO","B" +"503","INICIACION UNIVERSITARIA","I" diff --git a/carrera_plantel.csv b/carrera_plantel.csv new file mode 100644 index 0000000..a930797 --- /dev/null +++ b/carrera_plantel.csv @@ -0,0 +1,251 @@ +"plantel","carrera" +"0001","102" +"0001","103" +"0001","105" +"0001","123" +"0002","401" +"0002","405" +"0002","406" +"0002","423" +"0002","434" +"0002","435" +"0002","501" +"0003","101" +"0003","104" +"0003","106" +"0003","122" +"0003","127" +"0003","134" +"0003","136" +"0003","201" +"0003","217" +"0003","501" +"0004","302" +"0004","303" +"0004","310" +"0004","311" +"0004","319" +"0005","118" +"0005","119" +"0005","211" +"0005","212" +"0005","213" +"0005","229" +"0006","301" +"0006","304" +"0006","308" +"0006","321" +"0007","305" +"0008","306" +"0009","203" +"0009","220" +"0009","501" +"0010","307" +"0010","402" +"0010","409" +"0010","411" +"0010","412" +"0010","414" +"0010","415" +"0010","416" +"0010","417" +"0010","418" +"0010","419" +"0010","420" +"0010","421" +"0010","429" +"0010","430" +"0010","437" +"0010","501" +"0011","107" +"0011","108" +"0011","109" +"0011","110" +"0011","111" +"0011","112" +"0011","113" +"0011","114" +"0011","115" +"0011","116" +"0011","117" +"0011","120" +"0011","124" +"0011","125" +"0011","135" +"0011","137" +"0011","139" +"0012","206" +"0012","208" +"0012","221" +"0012","224" +"0012","226" +"0013","403" +"0013","404" +"0013","407" +"0013","410" +"0013","413" +"0013","422" +"0013","436" +"0013","501" +"0014","202" +"0014","501" +"0015","312" +"0016","207" +"0017","127" +"0017","322" +"0019","210" +"0021","501" +"0021","502" +"0022","501" +"0022","502" +"0022","503" +"0023","501" +"0023","502" +"0024","501" +"0024","502" +"0025","501" +"0025","502" +"0026","501" +"0026","502" +"0027","501" +"0027","502" +"0028","501" +"0028","502" +"0029","501" +"0029","502" +"0031","502" +"0032","502" +"0033","502" +"0034","502" +"0035","502" +"0042","439" +"0042","440" +"0044","435" +"0046","502" +"0066","215" +"0080","138" +"0090","128" +"0091","129" +"0094","429" +"0095","126" +"0097","216" +"0102","423" +"0105","118" +"0105","205" +"0105","211" +"0105","213" +"0105","214" +"0105","218" +"0105","219" +"0106","301" +"0106","304" +"0106","308" +"0111","114" +"0111","116" +"0111","130" +"0116","207" +"0118","204" +"0195","126" +"0201","102" +"0202","406" +"0203","101" +"0204","302" +"0204","303" +"0204","310" +"0204","311" +"0204","315" +"0207","305" +"0208","306" +"0210","411" +"0210","412" +"0210","414" +"0210","421" +"0211","107" +"0240","121" +"0240","501" +"0241","408" +"0243","424" +"0243","425" +"0243","426" +"0243","427" +"0243","428" +"0303","201" +"0309","203" +"0309","220" +"0309","501" +"0312","208" +"0314","202" +"0319","210" +"0342","209" +"0401","102" +"0401","105" +"0404","302" +"0404","310" +"0404","311" +"0404","316" +"0407","305" +"0408","306" +"0410","421" +"0411","107" +"0411","109" +"0411","110" +"0411","114" +"0411","115" +"0411","116" +"0420","309" +"0420","501" +"0503","201" +"0505","118" +"0505","213" +"0509","203" +"0509","220" +"0509","501" +"0512","208" +"0512","227" +"0514","202" +"0515","318" +"0515","501" +"0519","210" +"0604","320" +"0606","314" +"0606","501" +"0608","313" +"0608","501" +"0610","429" +"0612","209" +"0612","221" +"0614","222" +"0614","501" +"0642","440" +"0666","223" +"0702","434" +"0702","501" +"0703","131" +"0703","132" +"0703","133" +"0703","216" +"0703","225" +"0703","230" +"0703","501" +"0704","317" +"0710","431" +"0710","432" +"0710","433" +"0710","437" +"0710","501" +"0713","438" +"0713","501" +"0803","127" +"0803","216" +"0803","217" +"0803","225" +"0803","501" +"0810","322" +"0810","429" +"1003","127" +"1006","321" +"1012","226" +"1012","228" +"1066","215" +"1090","128" +"1095","126" diff --git a/package-lock.json b/package-lock.json index e75923e..4d58eb9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -462,6 +462,15 @@ "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", "dev": true }, + "csv-parser": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/csv-parser/-/csv-parser-2.3.3.tgz", + "integrity": "sha512-czcyxc4/3Tt63w0oiK1zsnRgRD4PkqWaRSJ6eef63xC0f+5LVLuGdSYEcJwGp2euPgRHx+jmlH2Lb49anb1CGQ==", + "requires": { + "minimist": "^1.2.0", + "through2": "^3.0.1" + } + }, "debug": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", @@ -1727,6 +1736,15 @@ "integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==", "dev": true }, + "through2": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "2 || 3" + } + }, "to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", diff --git a/package.json b/package.json index 4acd7e1..eed180f 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "scripts": { "db:test": "node ./src/config/test", "db:install": "node ./src/db/install", + "db:data": "node ./src/db/data", "dev": "nodemon ./src/app", "produccion": "node ./src/app" }, @@ -19,6 +20,7 @@ "bcrypt": "^5.0.0", "body-parser": "^1.19.0", "colors": "^1.4.0", + "csv-parser": "^2.3.3", "dotenv": "^8.2.0", "express": "^4.17.1", "mariadb": "^2.4.2", diff --git a/plantel.csv b/plantel.csv new file mode 100644 index 0000000..a8997d5 --- /dev/null +++ b/plantel.csv @@ -0,0 +1,102 @@ +"cve_plantel","nombre_plantel" +"0001","FACULTAD DE ARQUITECTURA" +"0002","FACULTAD DE ARTES Y DISEÑO" +"0003","FACULTAD DE CIENCIAS" +"0004","FACULTAD DE CIENCIAS POLITICAS Y SOCIALES" +"0005","FACULTAD DE QUIMICA" +"0006","FACULTAD DE CONTADURIA Y ADMON" +"0007","FACULTAD DE DERECHO" +"0008","FACULTAD DE ECONOMIA" +"0009","ESCUELA NAL DE ENFERMERIA Y OBSTETRICIA" +"0010","FACULTAD DE FILOSOFIA Y LETRAS" +"0011","FACULTAD DE INGENIERIA" +"0012","FACULTAD DE MEDICINA" +"0013","FACULTAD DE MUSICA" +"0014","FACULTAD DE ODONTOLOGIA" +"0015","ESCUELA NACIONAL DE TRABAJO SOCIAL" +"0016","FAC DE MED VETERINARIA Y ZOOTECNIA" +"0017","ESCUELA NACIONAL DE CIENCIAS DE LA TIERRA" +"0019","FACULTAD DE PSICOLOGIA" +"0021","E.N.P. 1 ""GABINO BARREDA""" +"0022","E.N.P. 2 ""ERASMO CASTELLANOS Q""" +"0023","E.N.P. 3 ""JUSTO SIERRA""" +"0024","E.N.P. 4 ""VIDAL CASTAÑEDA Y N.""" +"0025","E.N.P. 5 ""JOSE VASCONCELOS""" +"0026","E.N.P. 6 ""ANTONIO CASO""" +"0027","E.N.P. 7 ""EZEQUIEL A. CHAVEZ""" +"0028","E.N.P. 8 ""MIGUEL E. SCHULZ""" +"0029","E.N.P. 9 ""PEDRO DE ALBA""" +"0031","C.C.H. PLANTEL AZCAPOTZALCO" +"0032","C.C.H. PLANTEL NAUCALPAN" +"0033","C.C.H. PLANTEL VALLEJO" +"0034","C.C.H. PLANTEL ORIENTE" +"0035","C.C.H. PLANTEL SUR" +"0042","ESCUELA NACIONAL DE LENGUAS, LINGUISTICA Y TRADUCCION" +"0044","ESCUELA NACIONAL DE ARTES CINEMATOGRAFICAS" +"0046","COORDINACION DEL BACHILLERATO A DISTANCIA" +"0066","INSTITUTO DE BIOTECNOLOGIA" +"0080","INST. DE INVESTIGACIONES EN MATEMATICAS APLICADAS Y SISTEMAS" +"0090","INSTITUTO DE ENERGIAS RENOVABLES" +"0091","CENTRO DE NANOCIENCIAS Y NANOTECNOLOGIA" +"0094","CENTRO PENINSULAR EN HUMANIDADES Y CIENCIAS SOCIALES" +"0095","CENTRO DE FISICA APLICADA Y TECNOLOGIA AVANZADA" +"0097","CENTRO DE INVESTIGACIONES EN ECOSISTEMAS" +"0102","F.E.S. CUAUTITLAN (ARTES PLASTICAS)" +"0105","F.E.S. CUAUTITLAN (QUIMICA)" +"0106","F.E.S. CUAUTITLAN (CONTADURIA)" +"0111","F.E.S. CUAUTITLAN (INGENIERIA)" +"0116","F.E.S. CUAUTITLAN (VETERINARIA)" +"0118","F.E.S. CUAUTITLAN (AGRICOLA)" +"0195","F.E.S. CUAUTITLAN (TECNOLOGIA)" +"0201","F.E.S. ACATLAN (ARQUITECTURA)" +"0202","F.E.S. ACATLAN (ARTES PLASTICAS)" +"0203","F.E.S. ACATLAN (ACTUARIA)" +"0204","F.E.S. ACATLAN (CIENCIAS POLITICAS)" +"0207","F.E.S. ACATLAN (DERECHO)" +"0208","F.E.S. ACATLAN (ECONOMIA)" +"0210","F.E.S. ACATLAN (FILOSOFIA)" +"0211","F.E.S. ACATLAN (INGENIERIA)" +"0240","F.E.S. ACATLAN (COMPUTACION)" +"0241","F.E.S. ACATLAN (C IDIOMAS)" +"0243","F.E.S. ACATLAN (LENGUA EXTRANJERA)" +"0303","F.E.S. IZTACALA (BIOLOGIA)" +"0309","F.E.S. IZTACALA (ENFERMERIA)" +"0312","F.E.S. IZTACALA (MEDICINA)" +"0314","F.E.S. IZTACALA" +"0319","F.E.S. IZTACALA (PSICOLOGIA)" +"0342","F.E.S. IZTACALA (OPTOMETRIA)" +"0401","F.E.S. ARAGON (ARQUITECTURA)" +"0404","F.E.S. ARAGON (CIENCIAS POLITICAS)" +"0407","F.E.S. ARAGON (DERECHO)" +"0408","F.E.S. ARAGON (ECONOMIA)" +"0410","F.E.S. ARAGON (FILOSOFIA)" +"0411","F.E.S. ARAGON (INGENIERIA)" +"0420","F.E.S. ARAGON (AGROPECUARIO)" +"0503","F.E.S. ZARAGOZA (BIOLOGIA)" +"0505","F.E.S. ZARAGOZA (QUIMICAS)" +"0509","F.E.S. ZARAGOZA (ENFERMERIA)" +"0512","F.E.S. ZARAGOZA (MEDICINA)" +"0514","F.E.S. ZARAGOZA" +"0515","F.E.S. ZARAGOZA (TRABAJO SOCIAL)" +"0519","F.E.S. ZARAGOZA (PSICOLOGIA)" +"0604","E.N.E.S. LEON (CIENCIAS POLITICAS)" +"0606","E.N.E.S. LEON (CONTADURIA)" +"0608","E.N.E.S. LEON (ECONOMIA)" +"0610","E.N.E.S. LEON (FILOSOFIA)" +"0612","E.N.E.S. LEON" +"0614","E.N.E.S. LEON" +"0642","E.N.E.S. LEON" +"0666","E.N.E.S. LEON (GENOMICAS)" +"0702","E.N.E.S. MORELIA (ARTES PLASTICAS)" +"0703","E.N.E.S. MORELIA (CIENCIAS)" +"0704","E.N.E.S. MORELIA (CIENCIAS POLITICAS)" +"0710","E.N.E.S. MORELIA (FILOSOFIA)" +"0713","E.N.E.S. MORELIA (MUSICA)" +"0803","E.N.E.S. MERIDA (CIENCIAS)" +"0810","E.N.E.S. MERIDA (FILOSOFIA)" +"1003","E.N.E.S. JURIQUILLA (CIENCIAS)" +"1006","E.N.E.S. JURIQUILLA (CONTADURIA)" +"1012","E.N.E.S. JURIQUILLA (MEDICINA)" +"1066","E.N.E.S. JURIQUILLA (GENOMICAS)" +"1090","E.N.E.S. JURIQUILLA (ENERGIAS RENOVABLES)" +"1095","E.N.E.S. JURIQUILLA (TECNOLOGIA)" diff --git a/src/db/data.js b/src/db/data.js new file mode 100644 index 0000000..e4417f2 --- /dev/null +++ b/src/db/data.js @@ -0,0 +1,240 @@ +const colors = require('colors') +const { Op } = require('sequelize') +const csv = require('csv-parser') +const fs = require('fs') +const Carrito = require('./tables/Carrito') +const Carrera = require('./tables/Carrera') +const CarreraPlantel = require('./tables/CarreraPlantel') +const Plantel = require('./tables/Plantel') +const Equipo = require('./tables/Equipo') +const Horario = require('./tables/Horario') +const Mesa = require('./tables/Mesa') +const Multa = require('./tables/Multa') +const Operador = require('./tables/Operador') +const Parte = require('./tables/Parte') +const Prestamo = require('./tables/Prestamo') +const Reporte = require('./tables/Reporte') +const Salon = require('./tables/Salon') +const Status = require('./tables/Status') +const TipoCarrito = require('./tables/TipoCarrito') +const TipoMulta = require('./tables/TipoMulta') +const TipoOperador = require('./tables/TipoOperador') +const TipoUsuario = require('./tables/TipoUsuario') +const Usuario = require('./tables/Usuario') + +const dataTipoCarrito = async () => { + const data = ['Chromebook', 'iPad'] + + console.log('\nInstalando catalogo tipo_carrito'.bold.blue) + for (let i = 0; i < data.length; i++) { + console.log(`Se ha creado el registro ${data[i]}`.magenta) + await TipoCarrito.create({ nombre: data[i] }) + } +} + +const dataTipoMulta = async () => { + const data = ['Servicio', 'Red'] + + console.log('\nInstalando catalogo tipo_Multa'.bold.blue) + for (let i = 0; i < data.length; i++) { + console.log(`Se ha creado el registro ${data[i]}`.magenta) + await TipoMulta.create({ nombre: data[i] }) + } +} + +const dataTipoOperador = async () => { + const data = ['admin', 'operador'] + + console.log('\nInstalando catalogo tipo_operador'.bold.blue) + for (let i = 0; i < data.length; i++) { + console.log(`Se ha creado el registro ${data[i]}`.magenta) + await TipoOperador.create({ nombre: data[i] }) + } +} + +const dataTipoUsuario = async () => { + const data = [ + 'alumno_interno', + 'alumno_externo', + 'profesor_interno', + 'profesor_externo', + ] + + console.log('\nInstalando catalogo tipo_usuario'.bold.blue) + for (let i = 0; i < data.length; i++) { + console.log(`Se ha creado el registro ${data[i]}`.magenta) + await TipoUsuario.create({ nombre: data[i] }) + } +} + +const dataStatus = async () => { + const data = ['Activo', 'Cargando', 'Mantenimiento', 'Dañado', 'Perdida'] + + console.log('\nInstalando catalogo Status'.bold.blue) + for (let i = 0; i < data.length; i++) { + console.log(`Se ha creado el registro ${data[i]}`.magenta) + await Status.create({ status: data[i] }) + } +} + +const dataMesa = async () => { + console.log('\nInstalando catalogo Mesa'.bold.blue) + for (let i = 1; i <= 150; i++) { + console.log(`Se ha creado la mesa ${i}`.magenta) + await Mesa.create({}) + } +} + +const dataSalon = async () => { + const data = [ + 'San Luis Potosí', + 'Sinaloa', + 'Sonora', + 'Tabasco', + 'Tamaulipas', + 'Tlaxcala', + 'Veracruz', + 'Yucatán', + 'Zacatecas', + ] + + console.log('\nInstalando catalogo Salon'.bold.blue) + for (let i = 0; i < data.length; i++) { + console.log(`Se ha creado el Salon ${data[i]}`.magenta) + await Salon.create({ salon: data[i] }) + } +} + +const dataHorario = async () => { + const data = [ + '8:00-10:00', + '10:00-12:00', + '12:00-14:00', + '14:00-16:00', + '16:00-18:00', + '18:00-20:00', + ] + + console.log('\nInstalando catalogo Horario'.bold.blue) + for (let i = 0; i < data.length; i++) { + console.log(`Se ha creado el Horario ${data[i]}`.magenta) + await Horario.create({ horario: data[i] }) + } +} + +const csvJson = (filepath) => { + return new Promise((resolve, reject) => { + let data = [] + + fs.createReadStream(filepath) + .on('error', (error) => reject(error)) + .pipe(csv()) + .on('data', (row) => data.push(row)) + .on('end', () => resolve(data)) + }) +} + +const dataCarrera = async () => { + const data = await csvJson('./carrera.csv') + .then((res) => res) + .catch((err) => console.log(err)) + + for (let i = 0; i < data.length; i++) { + await Carrera.findOne({ where: { idCarrera: Number(data[i].clave) } }) + .then(async (res) => { + if (!res) { + console.log(`Se ha creado la Carrera ${data[i].carrera}`.magenta) + await Carrera.create({ + idCarrera: Number(data[i].clave), + carrera: data[i].carrera, + nivel: data[i].nivel, + }) + } + }) + .catch((err) => { + console.log(err) + }) + } +} + +const dataPlantel = async () => { + const data = await csvJson('./plantel.csv') + .then((res) => res) + .catch((err) => console.log(err)) + + for (let i = 0; i < data.length; i++) { + await Plantel.findOne({ where: { idPlantel: Number(data[i].cve_plantel) } }) + .then(async (res) => { + if (!res) { + console.log( + `Se ha creado el Plantel ${data[i].nombre_plantel}`.magenta + ) + await Plantel.create({ + idPlantel: Number(data[i].cve_plantel), + plantel: data[i].nombre_plantel, + }) + } else console.log('Repetido') + }) + .catch((err) => { + console.log(err) + }) + } +} + +const dataCarreraPlantel = async () => { + const data = await csvJson('./carrera_plantel.csv') + .then((res) => res) + .catch((err) => console.log(err)) + + for (let i = 0; i < data.length; i++) { + await CarreraPlantel.findOne({ + where: { + [Op.and]: [ + { idPlantel: Number(data[i].plantel) }, + { idCarrera: Number(data[i].carrera) }, + ], + }, + }) + .then(async (res) => { + if (!res) { + console.log( + `Se ha creado la CarreraPlantel con carrera ${data[i].carrera} y plantel ${data[i].plantel}` + .magenta + ) + await CarreraPlantel.create({ + idCarrera: data[i].carrera, + idPlantel: data[i].plantel, + }) + } else console.log('Repetido') + }) + .catch((err) => { + console.log(err) + }) + } +} + +// Parte +// Carrito +// Equipo + +const install = async () => { + await dataTipoCarrito() + await dataTipoMulta() + await dataTipoUsuario() + await dataTipoOperador() + await dataStatus() + await dataMesa() + await dataSalon() + await dataHorario() + + await dataCarrera() + await dataPlantel() + await dataCarreraPlantel() + + console.log( + '\nSe ha instalado exitosamente los catalogos.\n'.underline.bold.green + ) + process.exit() +} + +install() diff --git a/src/db/install.js b/src/db/install.js index ff256fb..00fd5fa 100644 --- a/src/db/install.js +++ b/src/db/install.js @@ -141,116 +141,9 @@ const sync = async () => { console.log('La tabla Multa se instalo correctamente.'.magenta) } -const dataTipoCarrito = async () => { - const data = ['Chromebook', 'iPad'] - - console.log('\nInstalando catalogo tipo_carrito'.bold.blue) - for (let i = 0; i < data.length; i++) { - console.log(`Se ha creado el registro ${data[i]}`.magenta) - await TipoCarrito.create({ nombre: data[i] }) - } -} - -const dataTipoMulta = async () => { - const data = ['Servicio', 'Red'] - - console.log('\nInstalando catalogo tipo_Multa'.bold.blue) - for (let i = 0; i < data.length; i++) { - console.log(`Se ha creado el registro ${data[i]}`.magenta) - await TipoMulta.create({ nombre: data[i] }) - } -} - -const dataTipoOperador = async () => { - const data = ['admin', 'operador'] - - console.log('\nInstalando catalogo tipo_operador'.bold.blue) - for (let i = 0; i < data.length; i++) { - console.log(`Se ha creado el registro ${data[i]}`.magenta) - await TipoOperador.create({ nombre: data[i] }) - } -} - -const dataTipoUsuario = async () => { - const data = [ - 'alumno_interno', - 'alumno_externo', - 'profesor_interno', - 'profesor_externo', - ] - - console.log('\nInstalando catalogo tipo_usuario'.bold.blue) - for (let i = 0; i < data.length; i++) { - console.log(`Se ha creado el registro ${data[i]}`.magenta) - await TipoUsuario.create({ nombre: data[i] }) - } -} - -const dataStatus = async () => { - const data = ['Activo', 'Mantenimiento', 'Dañado', 'Cargando'] - - console.log('\nInstalando catalogo Status'.bold.blue) - for (let i = 0; i < data.length; i++) { - console.log(`Se ha creado el registro ${data[i]}`.magenta) - await Status.create({ status: data[i] }) - } -} - -const dataMesa = async () => { - console.log('\nInstalando catalogo Mesa'.bold.blue) - for (let i = 1; i <= 150; i++) { - console.log(`Se ha creado la mesa ${i}`.magenta) - await Mesa.create({}) - } -} - -const dataSalon = async () => { - const data = ['nombreUno', 'nombreDos', 'nombreTres'] - - console.log('\nInstalando catalogo Salon'.bold.blue) - for (let i = 0; i < data.length; i++) { - console.log(`Se ha creado el Salon ${data[i]}`.magenta) - await Salon.create({ salon: data[i] }) - } -} - -const dataHorario = async () => { - const data = [ - '8:00-10:00', - '10:00-12:00', - '12:00-14:00', - '14:00-16:00', - '16:00-18:00', - '18:00-20:00', - ] - - console.log('\nInstalando catalogo Horario'.bold.blue) - for (let i = 0; i < data.length; i++) { - console.log(`Se ha creado el Horario ${data[i]}`.magenta) - await Horario.create({ horario: data[i] }) - } -} - -// Parte -// Carrito -// Equipo -// Carrera -// CarreraPlantel -// Plantel - const install = async () => { await drop() await sync() - - await dataTipoCarrito() - await dataTipoMulta() - await dataTipoUsuario() - await dataTipoOperador() - await dataStatus() - await dataMesa() - await dataSalon() - await dataHorario() - console.log( '\nSe ha instalado exitosamente la base de datos.\n'.underline.bold.green )