Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Proyecto de Titulación
Carrera:
Técnico en Informática
Profesor:
Gutiérrez de la Peña Federico
Alumnos:
Ballesteros Mata Rafael
Duran Santiago Isaac
Estrada Piñón Rafael
Rojas Escudero Iván Emmanuel
Grupo:
6IV9
INDICE
Introducción……………………………………………………1
Resumen……………………………………………………….6
1. Estudio de Factibilidad……………………8
3. Revolución Industrial……………………...21
Conclusión……………………………………………………….249
1
Introducción
Un idioma es un sistema de signos que utiliza una comunidad o sociedad para poder
tener una comunicación o interacción entre sí mismos, sea oralmente o por escrito,
se estima que existen alrededor de 7.000 idiomas que se hablan en todo el mundo.
El 90% de las cuales son hablados por menos de 100.000 personas, como los
propios de las tribus o poblaciones con dialectos diferentes.
2
y a nivel profesional da la oportunidad trabajar en una empresa transnacional, el
poder lograr un emprendimiento en otra nación, entre muchas otras opciones.
3
Introduction
Mass Media: They are those that affect a greater number of people at any
given time. They are also known as measured media (Internet, television,
radio, newspapers, magazines, and cinema).
Auxiliary or Complementary Means: These affect a smaller number of
people at any given time. They are also known as unmeasured means
(outdoor advertising, indoor advertising, direct mail, or direct mail).
Alternative Media: These are new forms of product promotion, some
ordinary and others highly innovative (mass advertising: road signs,
restrooms, elevators, public places, etc.).
4
The Extracurricular Courses in Foreign Languages (CELEX) is an organ of the
Center for Scientific and Technological Studies (CECyT) No. 13 "Ricardo Flores
Magón" in which courses are taught for the learning of other languages such as
English. This body is in charge of carrying out advanced preparation in the area of
language learning (other than Spanish Castilian) and giving certification to students
who take these courses; Currently one of the certifications in which this is prepared
is the “B2 First” in the English language (B2 First is a certification by Cambridge,
intermediate-advanced level, which shows that the person can use written everyday
English and spoken for work or educational purposes) which is a minimum
requirement to be considered as an exchange student.
5
Resumen
Factibilidad Técnica
Factibilidad Económica
Factibilidad Operativa
Con los cuales se puede hacer una evaluación que demuestre que el sistema puede
ponerse en marcha y mantenerse, mostrando evidencias de que se ha planeado
cuidadosamente, contemplado los problemas que involucra y mantenerlo en
funcionamiento. Después de analizar estos puntos haremos una pequeña
conclusión sobre el sistema que estamos proponiendo, sobre la factibilidad de su
aplicación, mantenimiento, funcionalidad, etc.
6
proceso que implica, al igual que se mostrara que se hizo, con que herramienta se
creó el programa, la manera en la que se analizó y ataco el problema para
posteriormente darle la solución apropiada y requerida.
Para concluir vendrá una conclusión general sobre el tema, en este también
tomaremos un punto importante en el cual explicará las posibilidades de expansión-
distribución (poner a disposición el software a otros CECyT y/o Unidades superiores
que cuenten con una problemática similar al CECyT No.13), al igual que se quedará
como herencia para futuras generaciones.
7
1. Estudio de factibilidad.
1.1 Introducción
1.2.1 Hardware
8
Procesador Pentium 166 MHz.
Tarjeta Madre.
64 MB de Memoria RAM.
Disco Duro de 5 GB
Tarjeta de Red
Teclado
Mouse
CANTIDAD DESCRIPCION
1.2.2 Software
En cuanto al software, CELEX cuenta con todas las aplicaciones que emplearon
para el desarrollo del proyecto y funcionamiento del sistema, lo cual no amerita
inversión alguna para la adquisición de los mismos. Las estaciones de trabajo,
operaran bajo ambiente Windows. Para el uso general de las estaciones en
9
actividades diversas se debe poseer las herramientas de escritorio y los
navegadores que existen en el mercado actualmente.
CANTIDAD DESCRIPCION
Este análisis permitió hacer una comparación entre la relación costos del
sistema actual, y los costos que tendría un nuevo sistema, conociendo de antemano
los beneficios que la ciencia de la Informática ofrece.
10
A continuación, se presenta un resumen de los costos intrínsecos del sistema
propuesto y una lista de los costos que conlleva implantar el mismo, y los costos de
operación. Luego a través de un análisis de valor se determinaron los beneficios
que no necesariamente para el nuevo sistema son monetarios o cuantificables.
11
En la tabla se puede mostrar el ahorro anual que nuestro sistema ahorrara, ya que
no generara un gasto extra a causa de que:
Debido a que CELEX cuenta con los equipos y recursos técnicos necesarios,
para el desarrollo del nuevo sistema, no fue requerido ningún tipo de inversión en
este aspecto. Esta situación facilito la puesta en marcha de SACELEX, ofreciendo
la posibilidad y la ventaja de realizar inversiones en otros requerimientos y
necesidades.
12
alguno; aspecto que favoreció aún más el proyecto en cuestión, pero cabe destacar
que al automatizar los procesos de seguimiento y control, se reducen y se aligeran
las cargas laborales del personal que normalmente dedicaba su jornada laboral
a atender exclusivamente funciones relacionadas con estos procesos, y por
ende puede emplear el tiempo que se ahorran con el sistema propuesto,
optimizando de esta manera el funcionamiento del mismo.
Los beneficios tangibles son las que se miden en términos monetarios, mejoran la
productividad de los procesos y el personal. Los beneficios tangibles aportados
por el sistema propuesto están dados por los siguientes aspectos:
13
1.3.1.2.5 Beneficios Intangibles
14
Con la implantación del nuevo sistema automatizado, el beneficio más significativo
que se adjudicaría la organización sería la información, convirtiéndose de esta
manera en la herramienta más poderosa y versátil con que ésta cuente.
Con la puesta en marcha de este proyecto se logrará optimizar los procesos que
involucra la gestión de la información dentro de CELEX, reduciendo de esta manera
el empleo de recursos, tanto materiales como humanos, permitiendo obtener una
información segura y confiable, dirigida a la consecución de los objetivos.
15
1.3 Factibilidad Operativa
16
2. CELEX
2.1 Introducción
El primero de enero de 1936 el Gral. Lázaro Cárdenas junto con el Gral. Juan de
Dios Bátiz fundaron el Instituto Politécnico Nacional, por lo cual las primeras
inscripciones a esta institución se empezaron a realizar el 16 de enero de ese mismo
año. El día 20 de febrero de 1937 se inauguraron por primera vez los cursos del
Instituto Politécnico Nacional, el presupuesto inicial para la construcción de las
instalaciones fue de dos millones de pesos, todo esto bajo el cargo de Juan de Dios
Bátiz Paredes. En la década de los 70’s el CECyT 13 Ricardo Flores Magón tiene
su origen, en el año de 1971 cuando a la vocacional 5 Ciudadela (hoy Benito
Juárez), le construyeron los planteles de jacarandas y Taxqueña, con el fin de
satisfacer la demanda de los jóvenes que se querían integrar a una carrera de
Ciencias Sociales en el Instituto, ya que en ese entonces las instalaciones eran
insuficientes. Por no contar con salones y dado que la demanda era mucho en dicha
vocacional 5, Taxqueña albergo a 2,449 estudiantes que deseaban estudiar alguna
carrera en Ciencias Sociales. El 22 de abril de 1972, el maestro Jorge Hernández
Pizaña, con todo el alumnado y el personal del plantel, inicio clases en el segundo
semestre del año, en el plantel semi-construido de la Avenida Taxqueña 1620 de la
17
colonia Excélsior, esto solo fue el comienzo de la lucha para que se siguiera
construyendo el centro.
También en dicha década el IPN, creo una unidad llamada CENLEX, en donde se
18
cuales integrarían Cursos de Lenguas Extranjeras, como es el caso de: CECyT 1,
CECyT 2, CECyT 3, CECyT 4, CECyT 7, CECyT 8, CECyT 10, CECyT 11, CECyT
12, CECyT 13, CECyT 14, CECyT 15 y CET 1.
2.3.1 Modalidades
2.3.2 Niveles
Básico
Intermedio
Avanzado
19
2.4 A quien va dirigido
El CELEX tiene como objetivo principal a los alumnos del CECyT No. 13, no
obstante, el sistema está abierto a alumnos de otros CECyT’s, personas egresadas
o pertenecientes a una unidad superior e incluso para público en general. Los cursos
tienen un costo para personas externas al instituto y en un menor costo para
estudiantes del propio instituto.
2.5 Requisitos
20
3. Revoluciones Industriales
3.1 Introducción
3.2.1 Introducción
21
3.2.2 Principales características
22
3.2.3 Consecuencias
3.3.1 Introducción
23
La Segunda Revolución Industrial se refiere a los cambios socioeconómicos
interrelacionados que se produjeron aproximadamente entre 1870 hasta 1914.
Durante este periodo los cambios sufrieron una fuerte aceleración. El proceso de
industrialización cambió su naturaleza y el crecimiento económico varió de modelo.
Los cambios técnicos siguieron ocupando una posición central, junto a las
innovaciones técnicas concentradas, esencialmente, en nuevas fuentes de energía
como el gas, el petróleo o la electricidad; nuevos materiales y nuevos sistemas de
transporte (avión y automóvil) y comunicación (teléfono y radio) indujeron
transformaciones en cadena que afectaron al factor trabajo y al sistema educativo y
científico; al tamaño y gestión de las empresas, a la forma de organización del
trabajo, al consumo, hasta desembocar también en la política. Este proceso se
produjo en el marco de la denominada primera globalización, que supuso una
progresiva internacionalización de la economía, y que funcionaba de forma
creciente a escala mundial por la revolución de los transportes. Ello condujo a su
extensión a más territorios que la primera revolución, limitada a Gran Bretaña, y que
llegaría a alcanzar a casi toda Europa occidental, Estados Unidos y Japón. Entre
los cambios sucedidos en los países que vivieron la industrialización durante este
periodo destacan las innovaciones tecnológicas, los cambios organizativos en las
empresas y los mercados y el nacimiento de lo que podría considerarse como la
primera globalización.
24
hacia toda Europa y Estados Unidos. Algunos de esos inventos aparecieron en las
décadas de 1850 y 1860, pero las innovaciones más radicales surgieron en el
periodo entre 1870 y 1913 en Estados Unidos y Alemania principalmente, en los
que se concentró la mayor parte de las invenciones que se desarrollarían
posteriormente a lo largo del siglo XX. Todos estos descubrimientos acabaron por
conformar un nuevo sistema tecnológico.
25
Manganeso y cromo (c. 1900)
El cobre tendrá también una gran importancia, al
perfeccionarse su producción se va a destinar, casi
exclusivamente, a la industria eléctrica, bien como conductor o
bien como componente de los motores eléctricos.
o Productos químicos, la industria química va a experimentar una
expansión sin precedentes y se van a encontrar avances
prácticamente para todos los campos de la producción, unos ya
conocidos pero que ahora se producen mediante procedimientos
nuevos:
La sosa se va a producir de manera rentable tras los
descubrimientos del belga Solvay, éste hizo pasar amoníaco
por agua salada, así se genera bicarbonato sódico susceptible
de convertirse fácilmente en sosa; esto multiplicó la producción
mundial de este producto.
Los colorantes artificiales van a sustituir a los colorantes
naturales anteriores y se obtendrán de productos derivados de
la hulla como el alquitrán y el benzol. La investigación en este
campo fue muy intensa debido a la gran demanda de la
industria textil y en menos de 20 años se encontraron sustitutos
de todos los tintes naturales.
Los explosivos adquieren un gran desarrollo. La pólvora era el
único conocido y estallaba por ignición (fuego), se van a
descubrir nuevos explosivos químicos que estallan por
percusión como la nitrocelulosa y la nitroglicerina, esta última
del italiano Sobrero. En 1866 Alfred Nobel, también conocido
por los premios que llevan su nombre, inventó la dinamita,
mezcla de nitroglicerina y un tipo de arcilla llamada Kieselguhr,
esto generará una gran industria de explosivos. La dinamita
tendría importantes aplicaciones en la minería y en el campo
militar gracias a su gran potencia y estabilidad.
26
En el campo la demanda de fertilizantes dará lugar al desarrollo
de los abonos químicos o fertilizantes sintéticos. Se van a
elaborar superfosfatos y nitrato sódico, este último se elabora
a partir de nitratos minerales procedentes de Perú y Chile.
Europa era la zona que más nitrato sódico consumía. Otros
elementos minerales indispensables para las plantas también
se sintetizaron químicamente como el abono de potasio.
o El cemento portland (c. 1840) asociado al fenómeno de la creciente
urbanización de la época
o El siglo XIX es el de los grandes inventos. En 1800 Volta inventa la
pila eléctrica. En 1814 se instalan las primeras farolas de gas para la
iluminación de las calles y en 1819 un primer barco de vapor, el
“Savannah”, cruza el Atlántico. Nicephore Niepce fabrica en 1827 las
primeras cámaras fotográficas. En 1828 William Austin Burt construye
la primera máquina de escribir en Detroit. En 1830 se inaugura la
primera línea de ferrocarril entre Liverpool y Manchester. En 1835
Morse realiza la primera experiencia del telégrafo eléctrico. Goodyear
en 1839 realiza la vulcanización del caucho. En 1850 se instala el
primer cable submarino en el Paso de Calais. Y se realiza la primera
exposición de la primera locomóvil a vapor. Fernando Lessenps en
1853 empieza la construcción del canal de Suez. En 1854 Otis inventa
el primer ascensor hidráulico. En 1856 Bessemer inventa el
convertidos para obtener acero industrial. En 1860 el ingeniero francés
Ferdinand Corre pone a punto el primer aparato de refrigeración que
permite producir hielo. En 1867 Alfred Nóbel inventa la dinamita y
funda los premios Nóbel con la fortuna que obtuvo por su invento. Y el
norteamericano Sholes inventa la máquina de escribir. En 1876
aparece el teléfono eléctrico de Graham Bell y Grey. En 1878 Edison
inventa la bombilla eléctrica En 1880 se inventa la bicicleta. En 1885
Daimler y Benz construyen un vehículo automóvil movido por gasolina
En 1895 Peugeot hace circular un vehículo sobre neumáticos y los
27
hermanos Lumière inventan un aparato cinematográfico. En 1897 el
matrimonio Curie descubre el radio.
La energía ha constituido históricamente un elemento fundamental de
cualquier cambio técnico trascendente y lo fue también en este momento. La
oferta de energía aumentó y se diversificó, debido al perfeccionamiento de
técnicas ya conocidas, como la máquina de Watt, la turbina o la industria del
gas, y por otro lado gracias a las nuevas formas de energía, como la
electricidad y el petróleo, con grandes ventajas en su utilización.
La mecanización continuó con un progresivo proceso de avance, debido a la
creciente escala de las unidades de producción, facilitado por el empleo del
acero y otros metales y de las nuevas fuentes de energía.
3.4.1 Introducción
28
comunicaciones, junto al gran desarrollo y uso de Internet al igual que de las
energías renovables, están dando lugar a lo que bien podríamos llamar 'Tercera
Revolución Industrial' o 'Tercera Revolución Tecnológica’:
29
El desarrollo de la red eléctrica inteligente o red de distribución de
energía eléctrica “inteligente” (Smart grid): desde un contexto global, la
red eléctrica inteligente se puede definir como la integración dinámica de los
desarrollos en ingeniería eléctrica y en almacenamiento energético, y los
avances de las tecnologías de la información y la comunicación (o TIC),
dentro del negocio de la energía eléctrica (generación, transmisión,
distribución, almacenamiento y comercialización, incluyendo las energías
alternativas), permitiendo así que las áreas de coordinación de protecciones,
control, instrumentación, medida, calidad y administración de energía, etc.,
sean concatenadas en un solo sistema de gestión, con el objetivo primordial
de realizar un uso eficiente y racional de la energía eléctrica .
3.5.1 Introducción
30
Económico Mundial 2016. Schwab sostiene que si la tercera revolución industrial es
la revolución digital que ha estado en vigor desde mediados del siglo XX, que se
caracteriza por una fusión de tecnologías que está difuminando las líneas entre lo
físico, esferas digitales y biológicas esta cuarta etapa está marcada por avances
tecnológicos emergentes en una serie de campos, incluyendo robótica, inteligencia
artificial, cadena de bloques, nanotecnología, computación cuántica, biotecnología,
internet de las cosas, impresión 3D, y vehículos autónomos. Klaus Schwab lo asocia
también con la "segunda era de la máquina".
31
en la mayor medida posible. Sólo en ciertas excepciones, como en
interferencias o metas conflictivas, las tareas son delegadas a un mayor nivel.
3.5.2 Consecuencias
Existen ciertas diferencias entre una fábrica típica tradicional y una de la Industria
4.0. En el entorno de la industria actual, proporcionar un servicio o producto de alta
calidad al menor costo, es la clave para el éxito. Las fábricas industriales están
intentando lograr el mayor rendimiento posible para incrementar sus ganancias al
igual que su reputación. De este modo, varias fuentes de datos están disponibles
para proveer información digna sobre distintos aspectos de una fábrica. En esta
etapa, el uso de fuentes de datos para entender las condiciones actuales operativas,
detectar fallas y errores, es un tema importante de investigación. Por ejemplo, en la
producción, existen varias herramientas comerciales disponibles para proveer
información de Eficiencia general de los equipos (OEE) para el manejo de la fábrica
y así resaltar los análisis de causas (ACR) de los problemas y las posibles fallas en
el sistema. En contraste, en una fábrica de Industria 4.0, además de la supervisión
de condición y los diagnósticos de fallas, los componentes y sistemas son capaces
de adquirir auto-conciencia y auto-predicción, lo cual otorgará una visión más clara
para el manejo y el estado de la fábrica. Por otra parte, el contraste en pares de la
información de salud de varios elementos, otorga una predicción específica en los
niveles de componentes, sistemas y el manejo de la fábrica para activar el
mantenimiento requerido en el mejor tiempo posible, y así, alcanzar un
mantenimiento JIT (just-in-time o justo a tiempo) y lograr un tiempo cero de
inactividad
32
CODIGO DEL SISTEMA SACELEX
CONTROLLERS
33
34
using System;
using System.Collections.Generic;
using System.Linq;
35
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Authorization;
using SACELEX.Models;
using SACELEX.Repositorios;
using Newtonsoft.Json;
namespace SACELEX.Controllers
//Constructor
[HttpGet("/")]
return View();
[HttpGet("/Alumnos")]
36
ViewBag.ListaAlumnos = _UnitOfWork.repoAlumnos.ObtenerAlumnos(0,
10);
return View("Administrar/Alumnos");
[HttpGet("/Alumnos/{id}")]
[HttpGet("/Profesores")]
ViewBag.ListaProfesores = _UnitOfWork.repoProfesores.ObtenerProf
esores(0, 10);
return View("Administrar/Profesores");
[HttpGet("/Administradores")]
ViewBag.ListaAdministradores = _UnitOfWork.repoAdministradores.O
btenerAdministradores(0, 10);
return View("Administrar/Administradores");
[HttpGet("/Grupos")]
37
{
return View("Administrar/Grupos");
[HttpGet("/Expedientes")]
return View("GenerarExpediente/Expedientes");
//Registros
[HttpGet("/Registrar/Administrador")]
return View("Registrar/RegistrarAdministrador");
[HttpGet("/Registrar/Profesor")]
return View("Registrar/RegistrarProfesor");
[HttpGet("/Registrar/Alumno")]
return View("Registrar/RegistrarAlumno");
38
//CRUD
[HttpGet("/Aulas")]
return View("CRUD/Aulas");
if (ModelState.IsValid)
int id = _UnitOfWork.repoAulas.Agregar(aula);
if (id != 0)
else
else
39
if (ModelState.IsValid)
if (resultado)
else
else
if (resultado)
else
40
}
[HttpGet("/Horarios")]
ViewBag.Lista = _UnitOfWork.repoHorarios.ObtenerHorarios();
return View("CRUD/Horarios");
[HttpPost]
if (ModelState.IsValid)
int id = _UnitOfWork.repoHorarios.Agregar(horario);
if (id != 0)
else
else
41
[HttpPut]
if (ModelState.IsValid)
if (resultado)
else
else
[HttpDelete]
if (resultado)
42
return Json(new { estado = 1 });
else
[HttpGet("/Idiomas")]
return View("CRUD/Idiomas");
if (ModelState.IsValid)
int id = _UnitOfWork.repoIdiomas.Agregar(idioma);
if (id != 0)
else
else
43
{
if (ModelState.IsValid)
if (resultado)
else
else
if (resultado)
44
{
else
[HttpGet("/Modalidades")]
return View("CRUD/Modalidades");
if (ModelState.IsValid)
int id = _UnitOfWork.repoModalidades.Agregar(modalidad);
if (id != 0)
else
45
else
if (ModelState.IsValid)
if (resultado)
else
else
46
bool resultado = _UnitOfWork.repoModalidades.Eliminar(id);
if (resultado)
else
[HttpGet("/Niveles")]
return View("CRUD/Niveles");
if (ModelState.IsValid)
int id = _UnitOfWork.repoNiveles.Agregar(nivel);
if (id != 0)
else
47
}
else
if (ModelState.IsValid)
if (resultado)
else
else
48
{
if (resultado)
else
[HttpGet("/Origenes")]
return View("CRUD/Origenes");
if (ModelState.IsValid)
int id = _UnitOfWork.repoOrigenes.Agregar(origen);
if (id != 0)
else
49
return Json(new { estado = 2 });
else
if (ModelState.IsValid)
if (resultado)
else
else
50
public JsonResult EliminarOrigen([FromBody] byte id)
if (resultado)
else
51
MODELS
52
53
54
55
56
57
58
59
60
61
62
63
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
64
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata;
using SACELEX.ViewModels;
namespace SACELEX.Models
{
public partial class dbSACELEXContext : DbContext
{
public dbSACELEXContext(DbContextOptions<dbSACELEXContext>
options)
: base(options)
{
}
65
//Procedimientos Almacenados: Inicio
#region spConteo
public int spContarAdministradores()
{
int resultado = 0;
SqlConnection conexion =
(SqlConnection)this.Database.GetDbConnection();
SqlCommand cmd = new SqlCommand();
conexion.Open();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "spContarAdministradores";
resultado = (int)cmd.ExecuteScalar();
conexion.Close();
return resultado;
}
public int spContarProfesores()
{
int resultado = 0;
SqlConnection conexion =
(SqlConnection)this.Database.GetDbConnection();
SqlCommand cmd = new SqlCommand();
conexion.Open();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "spContarProfesores";
resultado = (int)cmd.ExecuteScalar();
conexion.Close();
return resultado;
}
66
public int spContarAlumnos()
{
int resultado = 0;
SqlConnection conexion =
(SqlConnection)this.Database.GetDbConnection();
SqlCommand cmd = new SqlCommand();
conexion.Open();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "spContarAlumnos";
resultado = (int)cmd.ExecuteScalar();
conexion.Close();
return resultado;
}
public int spContarPeriodos()
{
int resultado = 0;
SqlConnection conexion =
(SqlConnection)this.Database.GetDbConnection();
SqlCommand cmd = new SqlCommand();
conexion.Open();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "spContarPeriodos";
resultado = (int)cmd.ExecuteScalar();
conexion.Close();
return resultado;
}
public int spContarAulas()
{
int resultado = 0;
67
SqlConnection conexion =
(SqlConnection)this.Database.GetDbConnection();
SqlCommand cmd = new SqlCommand();
conexion.Open();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "spContarAulas";
resultado = (int)cmd.ExecuteScalar();
conexion.Close();
return resultado;
}
public int spContarHorarios()
{
int resultado = 0;
SqlConnection conexion =
(SqlConnection)this.Database.GetDbConnection();
SqlCommand cmd = new SqlCommand();
conexion.Open();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "spContarHorarios";
cmd.Connection = conexion;
resultado = (int)cmd.ExecuteScalar();
conexion.Close();
return resultado;
}
public int spContarIdiomas()
{
int resultado = 0;
SqlConnection conexion =
(SqlConnection)this.Database.GetDbConnection();
68
SqlCommand cmd = new SqlCommand();
conexion.Open();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "spContarIdiomas";
resultado = (int)cmd.ExecuteScalar();
conexion.Close();
return resultado;
}
public int spContarModalidades()
{
int resultado = 0;
SqlConnection conexion =
(SqlConnection)this.Database.GetDbConnection();
SqlCommand cmd = new SqlCommand();
conexion.Open();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "spContarModalidades";
resultado = (int)cmd.ExecuteScalar();
conexion.Close();
return resultado;
}
public int spContarNiveles()
{
int resultado = 0;
SqlConnection conexion =
(SqlConnection)this.Database.GetDbConnection();
SqlCommand cmd = new SqlCommand();
conexion.Open();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
69
cmd.CommandText = "spContarNiveles";
resultado = (int)cmd.ExecuteScalar();
conexion.Close();
return resultado;
}
public int spContarOrigenes()
{
int resultado = 0;
SqlConnection conexion =
(SqlConnection)this.Database.GetDbConnection();
SqlCommand cmd = new SqlCommand();
conexion.Open();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "spContarOrigenes";
resultado = (int)cmd.ExecuteScalar();
conexion.Close();
return resultado;
}
#endregion
#region spConsultar
#region Usuarios
public Alumnos spConsultarAlumno(int IDAlumno)
{
string sql = "spConsultarAlumno @IDAlumno";
70
return this.Alumnos.FromSql(sql, pam1).SingleOrDefault();
}
public List<ListaAlumnosViewModel> spConsultarAlumnos(int NumeroInicio,
int NumeroFin)
{
List<ListaAlumnosViewModel> lista = new List<ListaAlumnosViewModel>();
SqlConnection conexion =
(SqlConnection)this.Database.GetDbConnection();
SqlCommand cmd = new SqlCommand();
conexion.Open();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "spConsultarAlumnos";
cmd.Connection = conexion;
SqlParameter pam1 = new SqlParameter("@NumeroInicio", NumeroInicio);
SqlParameter pam2 = new SqlParameter("@NumeroFin", NumeroFin);
cmd.Parameters.Add(pam1);
cmd.Parameters.Add(pam2);
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
lista.Add(new ListaAlumnosViewModel
{
IDAlumno = (int)reader["IDAlumno"],
MatriculaAlumno = reader["MatriculaAlumno"].ToString(),
NombreAlumno = reader["Nombre"].ToString()
}
);
71
}
conexion.Close();
return lista;
}
public List<ListaAlumnosViewModel> spConsultarAlumnosMatricula(int
NumeroInicio, int NumeroFin, string Matricula)
{
List<ListaAlumnosViewModel> lista = new List<ListaAlumnosViewModel>();
SqlConnection conexion =
(SqlConnection)this.Database.GetDbConnection();
SqlCommand cmd = new SqlCommand();
conexion.Open();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "spConsultarAlumnosMatricula";
cmd.Connection = conexion;
SqlParameter pam1 = new SqlParameter("@NumeroInicio", NumeroInicio);
SqlParameter pam2 = new SqlParameter("@NumeroFin", NumeroFin);
SqlParameter pam3 = new SqlParameter("@Matricula", Matricula);
cmd.Parameters.Add(pam1);
cmd.Parameters.Add(pam2);
cmd.Parameters.Add(pam3);
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
lista.Add(new ListaAlumnosViewModel
72
{
IDAlumno = (int)reader["IDAlumno"],
MatriculaAlumno = reader["MatriculaAlumno"].ToString(),
NombreAlumno = reader["Nombre"].ToString()
}
);
}
conexion.Close();
return lista;
}
public List<ListaAlumnosViewModel> spConsultarAlumnosNombre(int
NumeroInicio, int NumeroFin, string Nombre)
{
List<ListaAlumnosViewModel> lista = new List<ListaAlumnosViewModel>();
SqlConnection conexion =
(SqlConnection)this.Database.GetDbConnection();
SqlCommand cmd = new SqlCommand();
conexion.Open();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "spConsultarAlumnosNombre";
cmd.Connection = conexion;
SqlParameter pam1 = new SqlParameter("@NumeroInicio", NumeroInicio);
SqlParameter pam2 = new SqlParameter("@NumeroFin", NumeroFin);
SqlParameter pam3 = new SqlParameter("@Nombre", Nombre);
cmd.Parameters.Add(pam1);
cmd.Parameters.Add(pam2);
73
cmd.Parameters.Add(pam3);
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
lista.Add(new ListaAlumnosViewModel
{
IDAlumno = (int)reader["IDAlumno"],
MatriculaAlumno = reader["MatriculaAlumno"].ToString(),
NombreAlumno = reader["Nombre"].ToString()
}
);
}
conexion.Close();
return lista;
}
public Profesores spConsultarProfesor(int IDProfesor)
{
string sql = "spConsultarProfesor @IDProfesor";
74
List<ListaProfesoresViewModel> lista = new
List<ListaProfesoresViewModel>();
SqlConnection conexion =
(SqlConnection)this.Database.GetDbConnection();
SqlCommand cmd = new SqlCommand();
conexion.Open();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "spConsultarProfesores";
cmd.Connection = conexion;
SqlParameter pam1 = new SqlParameter("@NumeroInicio", NumeroInicio);
SqlParameter pam2 = new SqlParameter("@NumeroFin", NumeroFin);
cmd.Parameters.Add(pam1);
cmd.Parameters.Add(pam2);
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
lista.Add(new ListaProfesoresViewModel
{
IDProfesor = (int)reader["IDProfesor"],
MatriculaProfesor = reader["MatriculaProfesor"].ToString(),
NombreProfesor = reader["Nombre"].ToString()
}
);
}
conexion.Close();
75
return lista;
}
public List<ListaProfesoresViewModel> spConsultarProfesoresMatricula(int
NumeroInicio, int NumeroFin, string Matricula)
{
List<ListaProfesoresViewModel> lista = new
List<ListaProfesoresViewModel>();
SqlConnection conexion =
(SqlConnection)this.Database.GetDbConnection();
SqlCommand cmd = new SqlCommand();
conexion.Open();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "spConsultarProfesoresMatricula";
cmd.Connection = conexion;
SqlParameter pam1 = new SqlParameter("@NumeroInicio", NumeroInicio);
SqlParameter pam2 = new SqlParameter("@NumeroFin", NumeroFin);
SqlParameter pam3 = new SqlParameter("@Matricula", Matricula);
cmd.Parameters.Add(pam1);
cmd.Parameters.Add(pam2);
cmd.Parameters.Add(pam3);
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
lista.Add(new ListaProfesoresViewModel
{
IDProfesor = (int)reader["IDProfesor"],
MatriculaProfesor = reader["MatriculaProfesor"].ToString(),
76
NombreProfesor = reader["Nombre"].ToString()
}
);
}
conexion.Close();
return lista;
}
public List<ListaProfesoresViewModel> spConsultarProfesoresNombre(int
NumeroInicio, int NumeroFin, string Nombre)
{
List<ListaProfesoresViewModel> lista = new
List<ListaProfesoresViewModel>();
SqlConnection conexion =
(SqlConnection)this.Database.GetDbConnection();
SqlCommand cmd = new SqlCommand();
conexion.Open();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "spConsultarProfesoresNombre";
cmd.Connection = conexion;
SqlParameter pam1 = new SqlParameter("@NumeroInicio", NumeroInicio);
SqlParameter pam2 = new SqlParameter("@NumeroFin", NumeroFin);
SqlParameter pam3 = new SqlParameter("@Nombre", Nombre);
cmd.Parameters.Add(pam1);
cmd.Parameters.Add(pam2);
cmd.Parameters.Add(pam3);
SqlDataReader reader = cmd.ExecuteReader();
77
while (reader.Read())
{
lista.Add(new ListaProfesoresViewModel
{
IDProfesor = (int)reader["IDProfesor"],
MatriculaProfesor = reader["MatriculaProfesor"].ToString(),
NombreProfesor = reader["Nombre"].ToString()
}
);
}
conexion.Close();
return lista;
}
public Administradores spConsultarAdministrador(int IDAdministrador)
{
string sql = "spConsultarAdministrador @IDAdministrador";
78
List<ListaAdministradoresViewModel> lista = new
List<ListaAdministradoresViewModel>();
SqlConnection conexion =
(SqlConnection)this.Database.GetDbConnection();
SqlCommand cmd = new SqlCommand();
conexion.Open();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "spConsultarAdministradores";
cmd.Connection = conexion;
SqlParameter pam1 = new SqlParameter("@NumeroInicio", NumeroInicio);
SqlParameter pam2 = new SqlParameter("@NumeroFin", NumeroFin);
cmd.Parameters.Add(pam1);
cmd.Parameters.Add(pam2);
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
lista.Add(new ListaAdministradoresViewModel
{
IDAdministrador = (int)reader["IDAdministrador"],
MatriculaAdministrador = reader["MatriculaAdministrador"].ToString(),
NombreAdministrador = reader["Nombre"].ToString()
}
);
}
conexion.Close();
79
return lista;
}
public List<ListaAdministradoresViewModel>
spConsultarAdministradoresMatricula(int NumeroInicio, int NumeroFin, string
Matricula)
{
List<ListaAdministradoresViewModel> lista = new
List<ListaAdministradoresViewModel>();
SqlConnection conexion =
(SqlConnection)this.Database.GetDbConnection();
SqlCommand cmd = new SqlCommand();
conexion.Open();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "spConsultarAdministradoresMatricula";
cmd.Connection = conexion;
SqlParameter pam1 = new SqlParameter("@NumeroInicio", NumeroInicio);
SqlParameter pam2 = new SqlParameter("@NumeroFin", NumeroFin);
SqlParameter pam3 = new SqlParameter("@Matricula", Matricula);
cmd.Parameters.Add(pam1);
cmd.Parameters.Add(pam2);
cmd.Parameters.Add(pam3);
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
lista.Add(new ListaAdministradoresViewModel
{
IDAdministrador = (int)reader["IDAdministrador"],
MatriculaAdministrador = reader["MatriculaAdministrador"].ToString(),
80
NombreAdministrador = reader["Nombre"].ToString()
}
);
}
conexion.Close();
return lista;
}
public List<ListaAdministradoresViewModel>
spConsultarAdministradoresNombre(int NumeroInicio, int NumeroFin, string
Nombre)
{
List<ListaAdministradoresViewModel> lista = new
List<ListaAdministradoresViewModel>();
SqlConnection conexion =
(SqlConnection)this.Database.GetDbConnection();
SqlCommand cmd = new SqlCommand();
conexion.Open();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "spConsultarAdministradoresNombre";
cmd.Connection = conexion;
SqlParameter pam1 = new SqlParameter("@NumeroInicio", NumeroInicio);
SqlParameter pam2 = new SqlParameter("@NumeroFin", NumeroFin);
SqlParameter pam3 = new SqlParameter("@Nombre", Nombre);
cmd.Parameters.Add(pam1);
cmd.Parameters.Add(pam2);
cmd.Parameters.Add(pam3);
SqlDataReader reader = cmd.ExecuteReader();
81
while (reader.Read())
{
lista.Add(new ListaAdministradoresViewModel
{
IDAdministrador = (int)reader["IDAdministrador"],
MatriculaAdministrador = reader["MatriculaAdministrador"].ToString(),
NombreAdministrador = reader["Nombre"].ToString()
}
);
}
conexion.Close();
return lista;
}
#endregion
82
{
string sql = "spConsultarGrupos @IDPeriodo";
return this.Periodos.FromSql(sql).SingleOrDefault();
}
public List<Periodos> spConsultarPeriodos(int NumeroInicio, int NumeroFin)
{
string sql = "spConsultarPeriodos @NumeroInicio, @NumeroFin";
83
SqlParameter pam1 = new SqlParameter("@IDAlumno", IDAlumno);
#region CRUD
public Aulas spConsultarAula(byte IDAula)
{
string sql = "spConsultarAula @IDAula";
84
return this.Aulas.FromSql(sql).ToList();
}
public Horarios spConsultarHorario(byte IDHorario)
{
string sql = "spConsultarHorario @IDHorario";
85
SqlParameter pam1 = new SqlParameter("@IDIdioma", IDIdioma);
86
public List<Modalidades> spConsultarRangoModalidades(int NumeroInicio,
int NumeroFin)
{
string sql = "spConsultarRangoModalidades @NumeroInicio, NumeroFin";
87
SqlParameter pam2 = new SqlParameter("@NumeroFin", NumeroFin);
88
string sql = "spConsultarOrigenes";
return this.Origenes.FromSql(sql).ToList();
}
#endregion
#endregion
#region spCrear
public int spCrearAdministrador(Administradores administrador)
{
int? resultado;
using (SqlConnection conexion =
(SqlConnection)this.Database.GetDbConnection())
{
SqlCommand cmd = new SqlCommand();
conexion.Open();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "spCrearAdministrador";
SqlParameter pammat = new SqlParameter("@MatriculaAdministrador",
administrador.MatriculaAdministrador);
SqlParameter pamnom = new SqlParameter("@Nombre",
administrador.Nombre);
SqlParameter pamapp = new SqlParameter("@ApellidoPaterno",
administrador.ApellidoPaterno);
SqlParameter pamapm = new SqlParameter("@ApellidoMaterno",
administrador.ApellidoMaterno);
SqlParameter pamcor = new SqlParameter("@Correo",
administrador.Correo);
SqlParameter pamcont = new SqlParameter("@Contrasena",
administrador.Contrasena);
89
SqlParameter pamtel = new SqlParameter("@Telefono",
administrador.Telefono);
SqlParameter pamnivel = new SqlParameter("@Nivel",
administrador.Nivel);
SqlParameter pamact = new SqlParameter("@Activo",
administrador.Activo);
cmd.Parameters.Add(pammat);
cmd.Parameters.Add(pamnom);
cmd.Parameters.Add(pamapp);
cmd.Parameters.Add(pamapm);
cmd.Parameters.Add(pamcor);
cmd.Parameters.Add(pamcont);
cmd.Parameters.Add(pamtel);
cmd.Parameters.Add(pamnivel);
cmd.Parameters.Add(pamact);
resultado = (int?)cmd.ExecuteScalar();
}
90
int? resultado;
using (SqlConnection conexion =
(SqlConnection)this.Database.GetDbConnection())
{
SqlCommand cmd = new SqlCommand();
conexion.Open();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "spCrearProfesor";
SqlParameter pammat = new SqlParameter("@MatriculaProfesor",
profesor.MatriculaProfesor);
SqlParameter pamnom = new SqlParameter("@Nombre",
profesor.Nombre);
SqlParameter pamapp = new SqlParameter("@ApellidoPaterno",
profesor.ApellidoPaterno);
SqlParameter pamapm = new SqlParameter("@ApellidoMaterno",
profesor.ApellidoMaterno);
SqlParameter pamcor = new SqlParameter("@Correo", profesor.Correo);
SqlParameter pamcont = new SqlParameter("@Contrasena",
profesor.Contrasena);
SqlParameter pamtel = new SqlParameter("@Telefono",
profesor.Telefono);
SqlParameter pamact = new SqlParameter("@Activo", profesor.Activo);
cmd.Parameters.Add(pammat);
cmd.Parameters.Add(pamnom);
cmd.Parameters.Add(pamapp);
cmd.Parameters.Add(pamapm);
cmd.Parameters.Add(pamcor);
cmd.Parameters.Add(pamcont);
cmd.Parameters.Add(pamtel);
cmd.Parameters.Add(pamact);
resultado = (int?)cmd.ExecuteScalar();
91
}
92
SqlParameter pamido = new SqlParameter("@IDOrigen_FK",
alumno.IdorigenFk);
SqlParameter pamcor = new SqlParameter("@Correo", alumno.Correo);
SqlParameter pamcont = new SqlParameter("@Contrasena",
alumno.Contrasena);
SqlParameter pamtel = new SqlParameter("@Telefono",
alumno.Telefono);
SqlParameter pamact = new SqlParameter("@Activo", alumno.Activo);
cmd.Parameters.Add(pammat);
cmd.Parameters.Add(pamnom);
cmd.Parameters.Add(pamapp);
cmd.Parameters.Add(pamapm);
cmd.Parameters.Add(pamido);
cmd.Parameters.Add(pamcor);
cmd.Parameters.Add(pamcont);
cmd.Parameters.Add(pamtel);
cmd.Parameters.Add(pamact);
resultado = (int?)cmd.ExecuteScalar();
}
93
public int spCrearGrupo(Grupos grupo)
{
int? resultado;
using (SqlConnection conexion =
(SqlConnection)this.Database.GetDbConnection())
{
SqlCommand cmd = new SqlCommand();
conexion.Open();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "spCrearGrupo";
SqlParameter pamnom = new SqlParameter("@Nombre",
grupo.Nombre);
SqlParameter pamaula = new SqlParameter("@IDAula_FK",
grupo.IdaulaFk);
SqlParameter pammat = new SqlParameter("@IDProfesor_FK",
grupo.IdprofesorFk);
SqlParameter pamidi = new SqlParameter("@IDIdioma_FK",
grupo.IdidiomaFk);
SqlParameter pamniv = new SqlParameter("@IDNivel_FK",
grupo.IdnivelFk);
SqlParameter pamper = new SqlParameter("@IDPeriodo_FK",
grupo.IdperiodoFk);
SqlParameter pammod = new SqlParameter("@IDModalidad_FK",
grupo.IdmodalidadFk);
SqlParameter pamhor = new SqlParameter("@IDHorario_FK",
grupo.IdhorarioFk);
cmd.Parameters.Add(pamnom);
cmd.Parameters.Add(pamaula);
cmd.Parameters.Add(pammat);
cmd.Parameters.Add(pamidi);
cmd.Parameters.Add(pamniv);
94
cmd.Parameters.Add(pamper);
cmd.Parameters.Add(pammod);
cmd.Parameters.Add(pamhor);
resultado = (int?)cmd.ExecuteScalar();
}
95
SqlParameter pamffin = new SqlParameter("@FechaFin",
periodo.FechaFin);
SqlParameter pamcur = new SqlParameter("@Cursado",
periodo.Cursado);
SqlParameter pamact = new SqlParameter("@Activo", periodo.Activo);
cmd.Parameters.Add(pamnom);
cmd.Parameters.Add(pamfini);
cmd.Parameters.Add(pamffin);
cmd.Parameters.Add(pamcur);
cmd.Parameters.Add(pamact);
resultado = (int?)cmd.ExecuteScalar();
}
96
conexion.Open();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "spCrearExpediente";
SqlParameter pampidalu = new SqlParameter("@IDAlumno",
expediente.IdalumnoFk);
SqlParameter pamsidido = new SqlParameter("@IDIdioma",
expediente.IdidiomaFk);
SqlParameter pamidniv = new SqlParameter("@IDNivel",
expediente.IdnivelFk);
cmd.Parameters.Add(pampidalu);
cmd.Parameters.Add(pamsidido);
cmd.Parameters.Add(pamidniv);
resultado = (int?)cmd.ExecuteScalar();
}
97
SqlCommand cmd = new SqlCommand();
conexion.Open();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "spCrearCalificacion";
SqlParameter pampeva = new SqlParameter("@PrimeraEvaluacion",
calificacion.PrimeraEvaluacion);
SqlParameter pamseva = new SqlParameter("@SegundaEvaluacion",
calificacion.SegundaEvaluacion);
SqlParameter pamfeva = new SqlParameter("@EvaluacionFinal",
calificacion.EvaluacionFinal);
cmd.Parameters.Add(pampeva);
cmd.Parameters.Add(pamseva);
cmd.Parameters.Add(pamfeva);
resultado = (int?)cmd.ExecuteScalar();
}
98
{
SqlCommand cmd = new SqlCommand();
conexion.Open();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "spCrearAula";
SqlParameter pamnom = new SqlParameter("@Dias", aula.Nombre);
SqlParameter pamcap = new SqlParameter("@Capacidad",
aula.Capacidad);
cmd.Parameters.Add(pamnom);
cmd.Parameters.Add(pamcap);
resultado = (int?)cmd.ExecuteScalar();
}
99
conexion.Open();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "spCrearHorario";
cmd.Connection = conexion;
SqlParameter pamdias = new SqlParameter("@Dias", horario.Dias);
SqlParameter pamini = new SqlParameter("@HoraInicio",
horario.HoraInicio);
SqlParameter pamfin = new SqlParameter("@HoraFin",
horario.HoraFin);
cmd.Parameters.Add(pamdias);
cmd.Parameters.Add(pamini);
cmd.Parameters.Add(pamfin);
resultado = (int)cmd.ExecuteScalar();
}
if (resultado == 0)
{
return 0;
}
else
{
return (int)resultado;
}
}
public int spCrearIdioma(Idiomas idioma)
{
int? resultado;
using (SqlConnection conexion =
(SqlConnection)this.Database.GetDbConnection())
100
{
SqlCommand cmd = new SqlCommand();
conexion.Open();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "spCrearIdioma";
SqlParameter pamnom = new SqlParameter("@Nombre",
idioma.Nombre);
SqlParameter pamdes = new SqlParameter("@Descripcion",
idioma.Descripcion);
cmd.Parameters.Add(pamnom);
cmd.Parameters.Add(pamdes);
resultado = (int?)cmd.ExecuteScalar();
}
101
SqlCommand cmd = new SqlCommand();
conexion.Open();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "spCrearModalidad";
SqlParameter pamnom = new SqlParameter("@Nombre",
modalidad.Nombre);
SqlParameter pamdes = new SqlParameter("@Descripcion",
modalidad.Descripcion);
cmd.Parameters.Add(pamnom);
cmd.Parameters.Add(pamdes);
resultado = (int?)cmd.ExecuteScalar();
}
102
conexion.Open();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "spCrearNivel";
SqlParameter pamnom = new SqlParameter("@Nombre", nivel.Nombre);
SqlParameter pamdes = new SqlParameter("@Descripcion",
nivel.Descripcion);
cmd.Parameters.Add(pamnom);
cmd.Parameters.Add(pamdes);
resultado = (int?)cmd.ExecuteScalar();
}
103
cmd.CommandText = "spCrearOrigen";
SqlParameter pamnom = new SqlParameter("@Nombre",
origen.Nombre);
SqlParameter pamdes = new SqlParameter("@Descripcion",
origen.Descripcion);
cmd.Parameters.Add(pamnom);
cmd.Parameters.Add(pamdes);
resultado = (int?)cmd.ExecuteScalar();
}
#region spActualizar
public int spActualizarAdministrador(Administradores administrador)
{
string sql = "spActualizarAdministrador @IDAdministrador,
@MatriculaAdministrador, @Nombre, @ApellidoPaterno, @ApellidoMaterno,
@Correo, @Contrasena, @Telefono,@Nivel, @Activo";
SqlParameter pamid = new SqlParameter("@IDAdministrador",
administrador.Idadministrador);
104
SqlParameter pammat = new SqlParameter("@MatriculaAdministrador",
administrador.MatriculaAdministrador);
SqlParameter pamnom = new SqlParameter("@Nombre",
administrador.Nombre);
SqlParameter pamapp = new SqlParameter("@ApellidoPaterno",
administrador.ApellidoPaterno);
SqlParameter pamapm = new SqlParameter("@ApellidoMaterno",
administrador.ApellidoMaterno);
SqlParameter pamcor = new SqlParameter("@Correo",
administrador.Correo);
SqlParameter pamcont = new SqlParameter("@Contrasena",
administrador.Contrasena);
SqlParameter pamtel = new SqlParameter("@Telefono",
administrador.Telefono);
SqlParameter pamnivel = new SqlParameter("@Nivel",
administrador.Nivel);
SqlParameter pamact = new SqlParameter("@Activo",
administrador.Activo);
return this.Database.ExecuteSqlCommand(sql, pamid, pammat, pamnom,
pamapp, pamapm, pamcor, pamcont, pamtel, pamnivel, pamact);
}
public int spActualizarProfesor(Profesores profesor)
{
string sql = "spActualizarProfesor @IDProfesor, @MatriculaProfesor,
@Nombre, @ApellidoPaterno, @ApellidoMaterno, @Correo, @Contrasena,
@Telefono, @Activo";
SqlParameter pamid = new SqlParameter("@IDProfesor",
profesor.Idprofesor);
SqlParameter pammat = new SqlParameter("@MatriculaProfesor",
profesor.MatriculaProfesor);
SqlParameter pamnom = new SqlParameter("@Nombre",
profesor.Nombre);
SqlParameter pamapp = new SqlParameter("@ApellidoPaterno",
profesor.ApellidoPaterno);
105
SqlParameter pamapm = new SqlParameter("@ApellidoMaterno",
profesor.ApellidoMaterno);
SqlParameter pamcor = new SqlParameter("@Correo", profesor.Correo);
SqlParameter pamcont = new SqlParameter("@Contrasena",
profesor.Contrasena);
SqlParameter pamtel = new SqlParameter("@Telefono",
profesor.Telefono);
SqlParameter pamact = new SqlParameter("@Activo", profesor.Activo);
return this.Database.ExecuteSqlCommand(sql, pamid, pammat, pamnom,
pamapp, pamapm, pamcor, pamcont, pamtel, pamact);
}
public int spActualizarAlumno(Alumnos alumno)
{
string sql = "spActualizarAlumno @IDAlumno, @MatriculaAlumno,
@Nombre, @ApellidoPaterno, @ApellidoMaterno, @IDOrigen_FK, @Correo,
@Contrasena, @Telefono, @Activo";
SqlParameter pamid = new SqlParameter("@IDAlumno",
alumno.Idalumno);
SqlParameter pammat = new SqlParameter("@MatriculaAlumno",
alumno.MatriculaAlumno);
SqlParameter pamnom = new SqlParameter("@Nombre",
alumno.Nombre);
SqlParameter pamapp = new SqlParameter("@ApellidoPaterno",
alumno.ApellidoPaterno);
SqlParameter pamapm = new SqlParameter("@ApellidoMaterno",
alumno.ApellidoMaterno);
SqlParameter pamido = new SqlParameter("@IDOrigen_FK",
alumno.IdorigenFk);
SqlParameter pamcor = new SqlParameter("@Correo", alumno.Correo);
SqlParameter pamcont = new SqlParameter("@Contrasena",
alumno.Contrasena);
SqlParameter pamtel = new SqlParameter("@Telefono", alumno.Telefono);
SqlParameter pamact = new SqlParameter("@Activo", alumno.Activo);
106
return this.Database.ExecuteSqlCommand(sql, pamid, pammat, pamnom,
pamapp, pamapm, pamido, pamcor, pamcont, pamtel, pamact);
}
public int spActualizarGrupo(Grupos grupo)
{
string sql = "spActualizarGrupo @IDGrupo, @Nombre, @IDAula_FK,
@IDProfesor_FK, @IDIdioma_FK, @IDNivel_FK, @IDPeriodo_FK,
@IDModalidad_FK, @IDHorario_FK";
SqlParameter pamid = new SqlParameter("@IDGrupo", grupo.Idgrupo);
SqlParameter pamnom = new SqlParameter("@Nombre", grupo.Nombre);
SqlParameter pamaula = new SqlParameter("@IDAula_FK",
grupo.IdaulaFk);
SqlParameter pammat = new SqlParameter("@IDProfesor_FK",
grupo.IdprofesorFk);
SqlParameter pamidi = new SqlParameter("@IDIdioma_FK",
grupo.IdidiomaFk);
SqlParameter pamniv = new SqlParameter("@IDNivel_FK",
grupo.IdnivelFk);
SqlParameter pamper = new SqlParameter("@IDPeriodo_FK",
grupo.IdperiodoFk);
SqlParameter pammod = new SqlParameter("@IDModalidad_FK",
grupo.IdmodalidadFk);
SqlParameter pamhor = new SqlParameter("@IDHorario_FK",
grupo.IdhorarioFk);
return this.Database.ExecuteSqlCommand(sql, pamid, pamnom, pamaula,
pammat, pamidi, pamniv, pamper, pammod, pamhor);
}
public int spActualizarPeriodo(Periodos periodo)
{
string sql = "spActualizarPeriodo @IDPeriodo, @Nombre, @FechaInicio,
@FechaFin, @Cursado,@Activo";
SqlParameter pamid = new SqlParameter("@IDPeriodo",
periodo.Idperiodo);
107
SqlParameter pamnom = new SqlParameter("@Nombre",
periodo.Nombre);
SqlParameter pamfini = new SqlParameter("@FechaInicio",
periodo.FechaInicio);
SqlParameter pamffin = new SqlParameter("@FechaFin",
periodo.FechaFin);
SqlParameter pamcur = new SqlParameter("@Cursado", periodo.Cursado);
SqlParameter pamact = new SqlParameter("@Activo", periodo.Activo);
return this.Database.ExecuteSqlCommand(sql, pamid, pamnom, pamfini,
pamffin, pamcur, pamact);
}
public int spActualizarExpediente(Expedientes expediente)
{
string sql = "spActualizarExpediente @IDExpediente, @IDAlumno,
@IDIdioma, @IDNivel";
SqlParameter pamid = new SqlParameter("@IDExpediente",
expediente.Idexpediente);
SqlParameter pampidalu = new SqlParameter("@IDAlumno",
expediente.IdalumnoFk);
SqlParameter pamsidido = new SqlParameter("@IDIdioma",
expediente.IdidiomaFk);
SqlParameter pamidniv = new SqlParameter("@IDNivel",
expediente.IdnivelFk);
return this.Database.ExecuteSqlCommand(sql, pamid, pampidalu,
pamsidido, pamidniv);
}
public int spActualizarCalificacion(Calificaciones calificacion)
{
string sql = "spActualizarCalificacion @IDCalificacion,
@PrimeraEvaluacion, @SegundaEvaluacion, @EvaluacionFinal";
SqlParameter pamid = new SqlParameter("@IDCalificacion",
calificacion.Idcalificacion);
108
SqlParameter pampeva = new SqlParameter("@PrimeraEvaluacion",
calificacion.PrimeraEvaluacion);
SqlParameter pamseva = new SqlParameter("@SegundaEvaluacion",
calificacion.SegundaEvaluacion);
SqlParameter pamfeva = new SqlParameter("@EvaluacionFinal",
calificacion.EvaluacionFinal);
return this.Database.ExecuteSqlCommand(sql, pamid, pampeva, pamseva,
pamfeva);
}
public int spActualizarAula(Aulas aula)
{
string sql = "spActualizarAula @IDAula, @Nombre, @Capacidad";
SqlParameter pamid = new SqlParameter("@IDHorario", aula.Idaula);
SqlParameter pamnom = new SqlParameter("@Dias", aula.Nombre);
SqlParameter pamcap = new SqlParameter("@HoraInicio",
aula.Capacidad);
return this.Database.ExecuteSqlCommand(sql, pamid, pamnom, pamcap);
}
public int spActualizarHorario(Horarios horario)
{
string sql = "spActualizarHorario @IDHorario, @Dias, @HoraInicio,
@HoraFin";
SqlParameter pamid = new SqlParameter("@IDHorario", horario.Idhorario);
SqlParameter pamdias = new SqlParameter("@Dias", horario.Dias);
SqlParameter pamini = new SqlParameter("@HoraInicio",
horario.HoraInicio);
SqlParameter pamfin = new SqlParameter("@HoraFin", horario.HoraFin);
return this.Database.ExecuteSqlCommand(sql, pamid, pamdias, pamini,
pamfin);
}
public int spActualizarIdioma(Idiomas idioma)
109
{
string sql = "spActualizarIdioma @IDIdioma, @Nombre, @Descripcion";
SqlParameter pamid = new SqlParameter("@IDIdioma", idioma.Ididioma);
SqlParameter pamnom = new SqlParameter("@Nombre", idioma.Nombre);
SqlParameter pamdes = new SqlParameter("@Descripcion",
idioma.Descripcion);
return this.Database.ExecuteSqlCommand(sql, pamid, pamnom, pamdes);
}
public int spActualizarModalidad(Modalidades modalidad)
{
string sql = "spActualizarModalidad @IDModalidad, @Nombre,
@Descripcion";
SqlParameter pamid = new SqlParameter("@IDModalidad",
modalidad.Idmodalidad);
SqlParameter pamnom = new SqlParameter("@Nombre",
modalidad.Nombre);
SqlParameter pamdes = new SqlParameter("@Descripcion",
modalidad.Descripcion);
return this.Database.ExecuteSqlCommand(sql, pamid, pamnom, pamdes);
}
public int spActualizarNivel(Niveles nivel)
{
string sql = "spActualizarNivel @IDNivel, @Nombre, @Descripcion";
SqlParameter pamid = new SqlParameter("@IDOrigen", nivel.Idnivel);
SqlParameter pamnom = new SqlParameter("@Nombre", nivel.Nombre);
SqlParameter pamdes = new SqlParameter("@Descripcion",
nivel.Descripcion);
return this.Database.ExecuteSqlCommand(sql, pamid, pamnom, pamdes);
}
public int spActualizarOrigen(Origenes origen)
110
{
string sql = "spActualizarOrigen @IDOrigen, @Nombre, @Descripcion";
SqlParameter pamid = new SqlParameter("@IDOrigen", origen.Idorigen);
SqlParameter pamnom = new SqlParameter("@Nombre", origen.Nombre);
SqlParameter pamdes = new SqlParameter("@Descripcion",
origen.Descripcion);
return this.Database.ExecuteSqlCommand(sql, pamid, pamnom, pamdes);
}
#endregion
#region spEliminar
public int spEliminarAlumno(int IDAlumno)
{
string sql = "spEliminarAlumno @IDAlumno";
SqlParameter pamid = new SqlParameter("@IDAlumno", IDAlumno);
return this.Database.ExecuteSqlCommand(sql, pamid);
}
public int spEliminarProfesor(int IDProfesor)
{
string sql = "spEliminarProfesor @IDProfesor";
SqlParameter pamid = new SqlParameter("@IDProfesor", IDProfesor);
return this.Database.ExecuteSqlCommand(sql, pamid);
}
public int spEliminarAdministrador(int IDAdministrador)
{
string sql = "spEliminarAdministrador @IDAdministrador";
SqlParameter pamid = new SqlParameter("@IDAdministrador",
IDAdministrador);
return this.Database.ExecuteSqlCommand(sql, pamid);
111
}
public int spEliminarGrupo(int IDGrupo)
{
string sql = "spEliminarGrupo @IDGrupo";
SqlParameter pamid = new SqlParameter("@IDGrupo", IDGrupo);
return this.Database.ExecuteSqlCommand(sql, pamid);
}
public int spEliminarPeriodo(byte IDPeriodo)
{
string sql = "spEliminarPeriodo @IDPeriodo";
SqlParameter pamid = new SqlParameter("@IDPeriodo", IDPeriodo);
return this.Database.ExecuteSqlCommand(sql, pamid);
}
public int spEliminarExpediente(int IDExpediente)
{
string sql = "spEliminarExpediente @IDExpediente";
SqlParameter pamid = new SqlParameter("@IDExpediente",
IDExpediente);
return this.Database.ExecuteSqlCommand(sql, pamid);
}
public int spEliminarInscripcion(int IDInscripcion)
{
string sql = "spEliminarInscripcion @IDInscripcion";
SqlParameter pamid = new SqlParameter("@IDInscripcion", IDInscripcion);
return this.Database.ExecuteSqlCommand(sql, pamid);
}
public int spEliminarCalificacion(int IDCalificacion)
{
string sql = "spEliminarCalificacion @IDCalificacion";
112
SqlParameter pamid = new SqlParameter("@IDCalificacion",
IDCalificacion);
return this.Database.ExecuteSqlCommand(sql, pamid);
}
113
public int spEliminarNivel(byte IDNivel)
{
string sql = "spEliminarIdioma @IDNivel";
SqlParameter pamid = new SqlParameter("@IDNivel", IDNivel);
return this.Database.ExecuteSqlCommand(sql, pamid);
}
public int spEliminarOrigen(byte IDOrigen)
{
string sql = "spEliminarOrigen @IDOrigen";
SqlParameter pamid = new SqlParameter("@IDOrigen", IDOrigen);
return this.Database.ExecuteSqlCommand(sql, pamid);
}
#endregion
entity.Property(e =>
e.Idadministrador).HasColumnName("IDAdministrador");
114
entity.Property(e => e.ApellidoMaterno)
.IsRequired()
.HasMaxLength(100)
.IsUnicode(false);
115
.IsUnicode(false);
modelBuilder.Entity<Alumnos>(entity =>
{
entity.HasKey(e => e.Idalumno);
116
entity.Property(e => e.Contrasena)
.IsRequired()
.HasMaxLength(100)
.IsUnicode(false);
117
.WithMany(p => p.Alumnos)
.HasForeignKey(d => d.IdorigenFk)
.OnDelete(DeleteBehavior.SetNull)
.HasConstraintName("FK__Alumnos__IDOrige__1B9317B3");
});
modelBuilder.Entity<Aulas>(entity =>
{
entity.HasKey(e => e.Idaula);
modelBuilder.Entity<Calificaciones>(entity =>
{
entity.HasKey(e => e.Idcalificacion);
entity.Property(e =>
e.IdinscripcionFk).HasColumnName("IDInscripcion_FK");
118
entity.HasOne(d => d.IdinscripcionFkNavigation)
.WithMany(p => p.Calificaciones)
.HasForeignKey(d => d.IdinscripcionFk)
.HasConstraintName("FK__Calificac__IDIns__36470DEF");
});
modelBuilder.Entity<Expedientes>(entity =>
{
entity.HasKey(e => e.Idexpediente);
119
entity.HasOne(d => d.IdnivelFkNavigation)
.WithMany(p => p.Expedientes)
.HasForeignKey(d => d.IdnivelFk)
.OnDelete(DeleteBehavior.SetNull)
.HasConstraintName("FK__Expedient__IDNiv__2CBDA3B5");
});
modelBuilder.Entity<Grupos>(entity =>
{
entity.HasKey(e => e.Idgrupo);
entity.Property(e =>
e.IdmodalidadFk).HasColumnName("IDModalidad_FK");
120
entity.Property(e => e.Nombre)
.IsRequired()
.HasMaxLength(100)
.IsUnicode(false);
121
entity.HasOne(d => d.IdnivelFkNavigation)
.WithMany(p => p.Grupos)
.HasForeignKey(d => d.IdnivelFk)
.OnDelete(DeleteBehavior.SetNull)
.HasConstraintName("FK__Grupos__IDNivel___214BF109");
modelBuilder.Entity<Horarios>(entity =>
{
entity.HasKey(e => e.Idhorario);
122
entity.Property(e => e.Dias)
.IsRequired()
.HasMaxLength(250)
.IsUnicode(false);
});
modelBuilder.Entity<Idiomas>(entity =>
{
entity.HasKey(e => e.Ididioma);
modelBuilder.Entity<Inscripciones>(entity =>
{
entity.HasKey(e => e.Idinscripcion);
123
entity.Property(e => e.Idinscripcion).HasColumnName("IDInscripcion");
modelBuilder.Entity<Modalidades>(entity =>
{
entity.HasKey(e => e.Idmodalidad);
124
entity.Property(e => e.Descripcion)
.HasMaxLength(250)
.IsUnicode(false);
modelBuilder.Entity<Niveles>(entity =>
{
entity.HasKey(e => e.Idnivel);
125
modelBuilder.Entity<Origenes>(entity =>
{
entity.HasKey(e => e.Idorigen);
modelBuilder.Entity<Periodos>(entity =>
{
entity.HasKey(e => e.Idperiodo);
126
entity.Property(e => e.FechaInicio).HasColumnType("date");
modelBuilder.Entity<Profesores>(entity =>
{
entity.HasKey(e => e.Idprofesor);
127
entity.Property(e => e.Contrasena)
.IsRequired()
.HasMaxLength(100)
.IsUnicode(false);
128
}
REPOSITORIOS
129
130
131
132
133
134
135
136
137
138
139
140
141
142
using SACELEX.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace SACELEX.Repositorios
//Repositorios
143
{
_Context = Context;
get
if(_AdministradoresRepository == null)
return _AdministradoresRepository;
get
if (_AlumnosRepository == null)
return _AlumnosRepository;
144
}
get
if (_AulasRepository == null)
return _AulasRepository;
get
if (_CalificacionesRepository == null)
return _CalificacionesRepository;
145
public ExpedientesRepository repoExpedientes
get
if (_ExpedientesRepository == null)
return _ExpedientesRepository;
get
if (_GruposRepository == null)
return _GruposRepository;
146
get
if (_HorariosRepository == null)
return _HorariosRepository;
get
if (_IdiomasRepository == null)
return _IdiomasRepository;
get
if (_InscripcionesRepository == null)
147
{
return _InscripcionesRepository;
get
if (_ModalidadesRepository == null)
return _ModalidadesRepository;
get
if (_NivelesRepository == null)
148
}
return _NivelesRepository;
get
if (_OrigenesRepository == null)
return _OrigenesRepository;
get
if (_PeriodosRepository == null)
return _PeriodosRepository;
149
}
get
if (_ProfesoresRepository == null)
return _ProfesoresRepository;
150
VIEWMODELS
151
152
153
154
VIEWS
155
156
157
158
159
160
161
162
163
164
165
166
167
@{
ViewData["Titulo"] = "Administradores";
</div>
</div>
Nuevo Administrador
</a>
</div>
</div>
168
<div class="col-12 px-0 my-2">
id="txtBusquedaAdministradores" placeholder="
Buscar...">
</div>
<label class="custom-control-
label" for="cbxAdministradoresTodos">Sin Filtros</label>
</div>
name="FiltroBusquedaAdministradores" clas
s="custom-control-input">
<label class="custom-control-
label" for="rbtnAdministradoresMatricula">Matricula</label>
</div>
class="custom-control-input">
169
<label class="custom-control-
label" for="rbtnAdministradoresNombre">Nombre</label>
</div>
</div>
id="btnBusquedaAdministradores" value="Buscar
">
</div>
</div>
</form>
</div>
</div>
Administradores
</div>
170
<p class="mb-0"><span class="font-weight-
bold">Matricula: </span>2017132211</p>
</div>
<p class="mb-0">
<span class="font-weight-
bold">Nombre: </span>Rafael Estrada Piñon
</p>
</div>
</a>
</div>
</div>
<li class="page-item">
aria-label="Previous">
<span aria-hidden="true">«</span>
</a>
</li>
<li class="page-item">
href="#">1</a>
</li>
<li class="page-item">
171
<a class="page-link border-0 text-
dark" style="box-shadow: none;"
href="#">2</a>
</li>
<li class="page-item">
href="#">3</a>
</li>
<li class="page-item">
aria-label="Next">
<span aria-hidden="true">»</span>
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
</div>
Regresar
</a>
</div>
</div>
172
</div>
@{
ViewData["Titulo"] = "Expedientes";
</div>
</div>
<!-- -->
Registro Exitoso
<span aria-hidden="true">×</span>
</button>
</div>
</div>
</div>
173
<!-- Formulario de Busqueda -->
id="txtBusquedaAlumnos" placeholder="Buscar..
.">
</div>
<label class="custom-control-
label" for="cbxAlumnosTodos">Sin Filtros</label>
</div>
class="custom-control-input">
<label class="custom-control-
label" for="rbtnAlumnosMatricula">Matricula</label>
</div>
174
<!-- RadioButton Nombre -->
class="custom-control-input">
<label class="custom-control-
label" for="rbtnAlumnosNombre">Nombre</label>
</div>
</div>
value="Buscar">
</div>
</div>
</form>
</div>
</div>
Alumnos
175
</div>
data-toggle="modal" data-
target="#modalGenerarExpediente"
id="btnModalGenerarExpediente">
</div>
<p class="mb-0">
<span class="font-weight-
bold">Nombre: </span>Rafael Estrada Piñon
</p>
</div>
</a>
</div>
</div>
<li class="page-item">
aria-label="Previous">
<span aria-hidden="true">«</span>
176
</a>
</li>
<li class="page-item">
href="#">1</a>
</li>
<li class="page-item">
href="#">2</a>
</li>
<li class="page-item">
href="#">3</a>
</li>
<li class="page-item">
aria-label="Next">
<span aria-hidden="true">»</span>
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
</div>
177
<div class="row mx-0 justify-content-center">
Regresar
</a>
</div>
</div>
</div>
id="modalGenerarExpediente">
<div class="modal-content">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
178
<div class="col-12 col-sm-10 col-md-
8 col-lg-6 my-2 px-0">
</div>
</div>
</div>
<select class="custom-
select" id="selectIdioma">
<option value="">Seleccione un i
dioma...</option>
</select>
</div>
<select class="custom-
select" id="selectNivel">
<option value="">Seleccione un N
ivel...</option>
</select>
</div>
179
</div>
value="Generar" id="btnGenera
rExpediente">
</div>
data-
dismiss="modal" value="Cancelar">
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
function AsignarIDAlumno(id) {
180
txtIDAlumno.value = id;
</script>
@{
ViewData["Title"] = "Horarios";
</div>
</div>
</div>
</div>
181
<div class="row mx-0 justify-content-center color-
secundario">
data-target="#modalHorario">
Nuevo Horario
</button>
</div>
</div>
placeholder="Buscar...">
</div>
class="custom-control-input">
<label class="custom-control-
label" for="rbtnHorariosID">ID</label>
182
</div>
class="custom-control-input">
<label class="custom-control-
label" for="rbtnHorariosDias">Dias</label>
</div>
name="FiltroBusquedaHorarios"
class="custom-control-input">
<label class="custom-control-
label" for="rbtnHorariosHoraInicio">
Hora de
Entrada
</label>
</div>
class="custom-control-input">
<label class="custom-control-
label" for="rbtnHorariosHoraFin">
Hora de
Salida
</label>
</div>
</div>
183
<!-- Boton de Busqueda -->
value="Buscar">
</div>
</div>
</form>
</div>
</div>
<thead>
<tr>
<th scope="col">ID</th>
<th scope="col">Dias</th>
<th scope="col">
</th>
</tr>
</thead>
<tbody id="RegistrosTabla">
184
<!-
- Aquí estarán las vistas parciales -->
<partial name="HorarioPartialVie
w" model="horario" />
</tbody>
</table>
</div>
<nav aria-
label="Page navigation example" class="d-flex justify-content-center">
<li class="page-item">
style="box-
shadow: none;" href="#" aria-label="Previous">
<span aria-
hidden="true">«</span>
</a>
</li>
<li class="page-item">
style="box-
shadow: none;" href="#">1</a>
</li>
<li class="page-item">
185
<a class="page-link border-0 bg-
dark text-light"
style="box-
shadow: none;" href="#" aria-label="Next">
<span aria-
hidden="true">»</span>
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
id="modalHorario">
<div class="modal-content">
<span aria-hidden="true">×</span>
186
</button>
</div>
<div class="modal-body">
</div>
</div>
id="inputCrearDias">
</div>
<option value="value">Selecciona
una opcion...</option>
187
</select>
</div>
id="inputCrearHoraEntrada">
</div>
id="inputCrearHoraSalida">
</div>
</div>
value="Crear" id="btnCrearHor
ario">
</div>
data-
dismiss="modal" value="Cancelar">
188
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
aria-hidden="true" id="modalHorarioEditar">
<div class="modal-content">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
</div>
<div class="modal-footer">
189
<button type="button" class="btn btn-info" data-
dismiss="modal">Confirmar</button>
</div>
</div>
</div>
</div>
aria-hidden="true" id="modalHorarioEliminar">
<div class="modal-content">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
</div>
<div class="modal-footer">
</div>
</div>
190
</div>
</div>
<style>
body {
font-family: "nunito";
.fondito {
background-
image: url("data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBwgHC
AgIBwgHBwcHBwoHBwcHBw8ICQcKIBEiFiAREx8YKCggGBolGxMTITEhJSkrLi4uFx8zODMsNygtL
isBCgoKDQ0NDg0NDysZFRkrLSsrLSsrLS0rKysrLS0rKysrKysrKysrKysrKysrKysrKysrKysrK
ysrKysrKysrK//AABEIALEBHAMBIgACEQEDEQH/xAAYAAEBAQEBAAAAAAAAAAAAAAABAAIFBv/EA
BYQAQEBAAAAAAAAAAAAAAAAAAABEf/EABkBAQEBAQEBAAAAAAAAAAAAAAABAwIFBP/EABURAQEAA
AAAAAAAAAAAAAAAAAAR/9oADAMBAAIRAxEAPwD2oIfS9NJIEkgSSApICkgJBEKBQJgIhQIEgohQI
EggoQhCkgRBBEIQxKIHPBDtokEBQIIhQCkgJgSI0gQJZINIEQwwIGkCiEggUCIiCBQSBIQFAgiIQ
c4INHRQQpQQEskQ6tBAlkgSEg0YyRDCCFJBRCWSBIhAoEQoECgUKiEFJCEKSBzdSDR3SAgpLJClB
BTp0ISkggYWSBIKFJZIlaLJCtFkolJBgGIECWSgUCIiEBIQEhA5oQauqUAFaTJClBA0gRKSyQpLJ
iDRjJBoslEaLJ0K0WSFJBRKUCFKBClAoIhASEIYQgcwINlpWhBSggpQJClAoUlkhWtLJCkhINplo
QkFAwstQCWSg0gRCgQpQMCohBSQkKYQgcsLQ2hShqWFKGrSFJZOoEskKSyQrRZKFaLJBoslErRZI
NFkoNFmECQkGkCIUCCIQEwJAwhBXKCDcpQQUoagrSZIUlkhWtQKFJCCtFlpCkwQiUtMmINFmEK0o
CgYYEDSBQKBAoICYEI0gUHJCDcSCUJZIFBINIECWYQaMZKDRZINFmNIGEFBpAwCQUDCCJSWShSgQ
KBBEQoFAg5ASbiQShQIIhINIIGiyRCRDEGoWTAaLLUQMMBQaLJgNFmFAkFAkIDCEBLJAoFApIHIB
ordEglUoICYEgSCISyQaLJiK0Yy0iEwQg1CyUGizGkDCIQJZKBIIIgoKEQgoQQRBByKKE3EkgSSA
xJATAkCUgJiQGNQJBqGBINQpIGNJATAkCUkCYkCKQIpAkUgokgf/9k=");
background-position: center;
background-repeat: no-repeat;
background-size: cover;
background-attachment: fixed;
.sombras {
191
.sombras-controles:focus {
.color-primario {
.color-secundario {
.contenedor-tabla {
overflow: auto;
.tabla {
min-width: 750px;
.tabla tbody tr td {
min-width: 30px;
vertical-align: middle;
192
}
.input-dias {
width: 200px;
.input-hora {
width: 150px;
</style>
<script>
//Formulario de Creacion
//Input de Creacion
//Panel de Mensajes
//Tabla
tablaHorarios = document.getElementById("tablaHorarios");
e.preventDefault();
console.log("Hol");
//Objeto
let oHorario = {
193
Dias: inputCrearDias.value,
HoraInicio: inputCrearHoraEntrada.value,
HoraFin: inputCrearHoraSalida.value
fetch('Administradores/CrearHorario', {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify(oHorario)
})
.then((servidor) => {
if (servidor.ok) {
return servidor.json();
} else {
})
.then((resultados) => {
let mensaje;
let plantillaMensaje;
if (resultados.estado == 1) {
194
<button type="button" class="close" data-dismiss="alert" aria-
label="Close"><span aria-hidden="true">×</span>
</button></div>`;
</td></tr>`;
tablaHorarios.innerHTML += plantillaObjeto;
if (resultados.estado == 2) {
</button></div>`;
if (resultados.estado == 3) {
195
//Se ingresó un dato erroneo
</button></div>`;
divMensajes.innerHTML = plantillaMensaje;
})
.catch((error) => {
console.error(error);
});
});
dias.attributes.removeNamedItem("readonly");
hinicio.attributes.removeNamedItem("readonly");
hfin.attributes.removeNamedItem("readonly");
control.innerText = "m";
else {
fetch('Administradores/EditarHorario', {
196
method: 'PUT',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
Idhorario: id,
Dias: dias.value,
HoraInicio: hinicio.value,
HoraFin: hfin.value,
})
})
.then((servidor) => {
if (servidor.ok) {
return servidor.json();
} else {
})
.then((resultados) => {
let mensaje;
let plantillaMensaje;
if (resultados.estado == 1) {
197
contenedorFilas.removeChild(fila);
//Muestra mensaje
</button></div>`;
tablaHorarios.innerHTML += plantillaObjeto;
control.innerText = "M";
if (resultados.estado == 2) {
</button></div>`;
dias.attributes.setNamedItem("readonly");
hinicio.attributes.setNamedItem("readonly");
hfin.attributes.setNamedItem("readonly");
if (resultados.estado == 3) {
</button></div>`;
198
}
divMensajes.innerHTML = plantillaMensaje;
})
.catch((error) => {
console.error(error);
});
function EliminarHorario(id) {
fetch('Administradores/EliminarHorario', {
method: 'DELETE',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
id: id
})
})
.then((servidor) => {
if (servidor.ok) {
return servidor.json();
} else {
})
199
.then((resultados) => {
let mensaje;
let plantillaMensaje;
if (resultados.estado == 1) {
contenedorFilas.removeChild(fila);
//Muestra mensaje
</button></div>`;
tablaHorarios.innerHTML += plantillaObjeto;
if (resultados.estado == 2) {
</button></div>`;
divMensajes.innerHTML = plantillaMensaje;
})
200
.catch((error) => {
console.error(error);
});
</script>
@{
ViewData["Titulo"] = "Profesores";
</div>
</div>
Nuevo Profesor
</a>
</div>
</div>
201
<!-- Formulario de Busqueda -->
id="txtBusquedaProfesores" placeholder="Busca
r...">
</div>
<label class="custom-control-
label" for="cbxProfesoresTodos">Sin Filtros</label>
</div>
class="custom-control-input">
<label class="custom-control-
label" for="rbtnProfesoresMatricula">Matricula</label>
</div>
202
<!-- RadioButton Nombre -->
class="custom-control-input">
<label class="custom-control-
label" for="rbtnProfesoresNombre">Nombre</label>
</div>
</div>
value="Buscar">
</div>
</div>
</form>
</div>
</div>
Profesores
203
</div>
</div>
<p class="mb-0">
<span class="font-weight-
bold">Nombre: </span>Rafael Estrada Piñon
</p>
</div>
</a>
</div>
</div>
<li class="page-item">
aria-label="Previous">
<span aria-hidden="true">«</span>
</a>
</li>
<li class="page-item">
204
<a class="page-link border-0 text-
dark" style="box-shadow: none;"
href="#">1</a>
</li>
<li class="page-item">
href="#">2</a>
</li>
<li class="page-item">
href="#">3</a>
</li>
<li class="page-item">
aria-label="Next">
<span aria-hidden="true">»</span>
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
</div>
205
<a asp-controller="Administradores" asp-
action="Index" class="btn btn-block btn-info text-light sombras">
Regresar
</a>
</div>
</div>
</div>
@{
ViewData["Titulo"] = "Grupos";
id="Grupo">
206
</div>
</div>
<div class="card-body">
<h5 class="card-title">
Idioma</h3>
<select class="custom-
select" value="Portugués" id="SelectIdioma" disabled>
<option value="Portugués">Po
rtugués</option>
</select>
</div>
</div>
</div>
<div class="card-body">
<h5 class="card-title">
Nivel</h3>
<select class="custom-
select" id="SelectNivel" disabled>
<option value="Intermedio">I
ntermedio</option>
</select>
207
</div>
</div>
</div>
<div class="card-body">
<h5 class="card-title">
Profesor</h3>
<select class="custom-
select" id="SelectProfesor" disabled>
</select>
</div>
</div>
</div>
<div class="card-body">
<h5 class="card-title">
Modalidad</h3>
<select class="custom-
select" id="SelectModalidad" disabled>
<option value="Intensivo">In
tensivo</option>
</select>
</div>
208
</div>
</div>
<div class="card-body">
<h5 class="card-title">
Aula</h3>
<select class="custom-
select" id="SelectAula" disabled>
</select>
</div>
</div>
</div>
<div class="card-body">
<h5 class="card-title">
Horario</h3>
<select class="custom-
select" id="SelectHorario" disabled>
</select>
</div>
</div>
209
</div>
</div>
</div>
</div>
<thead class="paleta-1-color-fondo-
3 sombras-int">
<tr>
<th scope="col">Matricula</th>
<th scope="col">Nombre</th>
<th scope="col"></th>
</tr>
</thead>
<tbody class="paleta-1-color-fondo-
2 sombras-int" id="TablaGruposAlumnos">
<tr>
<th scope="row">2017132211sd</th
>
<td>
</td>
210
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</button>
</div>
</button>
</div>
</div>
</div>
</div>
211
<div class="col-12 col-lg-4 p-3 paleta-1-color-fondo-3 sombras-
int grupos-columna-derecha order-1 order-lg-2">
Agregar Grupo
</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
212
</div>
</div>
id="modalCrearGrupo">
<div class="modal-content">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
</div>
</div>
213
<div class="form-group form-row mx-
0 justify-content-center">
</div>
<select class="custom-
select" id="selectCrearAula">
</select>
</div>
<select class="custom-
select" id="selectCrearProfesor">
</select>
</div>
214
<select class="custom-
select" id="selectCrearIdioma">
</select>
</div>
<select class="custom-
select" id="selectNivelAula">
</select>
</div>
<select class="custom-
select" id="selectCrearModalidad">
</select>
</div>
<select class="custom-
select" id="selectCrearHorario">
215
<option value="">Seleccione una
opcion</option>
</select>
</div>
</div>
id="btnModalCrearGrupo">
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<style>
216
.sombras {
/* .sombras-controles:focus {
} */
.sombras-int {
.paleta-1-color-fondo-1 {
background-color: #fff3cd;
color: #574949;
.paleta-1-color-fondo-2 {
background-color: #998787;
color: white;
.paleta-1-color-fondo-3 {
background-color: #574949;
color: white;
.paleta-2-color-fondo-1 {
217
background-color: rgb(57, 53, 70);
color: white;
.paleta-2-color-fondo-2 {
color: white;
.contenedor-tabla {
overflow-x: auto;
.tabla {
overflow: hidden;
text-align: center;
min-width: 500px;
.tabla thead tr th {
border: none;
218
.tabla tbody tr th,
.tabla tbody tr td {
border: 0;
vertical-align: middle;
min-width: 30px;
.contenedor-grupos {
width: 100%;
height: 100vh;
.grupos-columna-izquierda {
height: 70%;
overflow-y: auto;
.grupos-columna-derecha {
height: 30%;
overflow-y: auto;
.grupos-lista {
flex-direction: row;
.lista-grupos-grupo {
min-width: 300px;
219
}
.contenedor-lista {
overflow-x: auto;
height: auto;
.grupos-columna-izquierda {
height: 100vh;
overflow-y: auto;
.grupos-columna-derecha {
height: 100vh;
overflow-y: auto;
.grupos-lista {
flex-direction: column;
.contenedor-lista {
overflow-x: auto;
height: 70vh;
220
</style>
<script>
const GrupoSelect = [
$("#SelectAula"),
$("#SelectHorario"),
$("#SelectIdioma"),
$("#SelectModalidad"),
$("#SelectNivel"),
$("#SelectProfesor"),
btnModificarGrupo.click(() => {
console.log("Hola Mundo");
if (!modificando) {
GrupoSelect.forEach((elemento) => {
elemento.attr("disabled", false);
});
modificando = true;
} else {
GrupoSelect.forEach((elemento) => {
elemento.attr("disabled", true);
});
modificando = false;
221
}
});
btnCrearGrupo.click(() => {
$("#ListaGrupos").append(`
</div>
<div>
</p>
</div>
</a>
`);
});
</script>
<script>
let json = {
Aulas: [
valor: 1,
valor: 1,
222
valor: 1,
valor: 1
},
valor: 1,
valor: 1,
valor: 1,
valor: 1
},
valor: 1,
valor: 1,
valor: 1,
valor: 1
],
Profesores: [
valor: 1,
valor: 1,
valor: 1,
valor: 1
},
valor: 1,
valor: 1,
valor: 1,
valor: 1
},
223
{
valor: 1,
valor: 1,
valor: 1,
valor: 1
],
Horarios: [
valor: 1,
valor: 1,
valor: 1,
valor: 1
},
valor: 1,
valor: 1,
valor: 1,
valor: 1
},
valor: 1,
valor: 1,
valor: 1,
valor: 1
</script>
224
@model SACELEX.Models.Administradores
@{
ViewData["Titulo"] = "RegistrarAdministrador";
</div>
<input asp-
for="MatriculaAdministrador" type="text" class="form-
control" placeholder="Matricula..." />
</div>
225
</div>
<input asp-
for="ApellidoPaterno" type="text" class="form-
control" placeholder="Apellido Paterno..."
id="txtApellidoPaterno">
</div>
<input asp-
for="ApellidoMaterno" type="text" class="form-
control" placeholder="Apellido Materno..."
id="txtApellidoMaterno">
</div>
</div>
<input asp-
for="Contrasena" type="password" class="form-
control" placeholder="Contraseña..." id="txtContraseña">
</div>
id="txtConfirmarContraseña">
</div>
226
<!-- Telefono -->
</div>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</div>
<input asp-
for="Activo" type="checkbox" class="custom-control-input" id="cbxActivo">
<label class="custom-control-
label" for="cbxActivo">Activo</label>
</div>
</div>
</div>
</div>
</form>
227
</div>
</div>
</div>
</div>
</div>
@{
ViewData["Title"] = "RegistrarAlumno";
</div>
228
<!-- Matricula -->
</div>
</div>
</div>
</div>
<select class="custom-select">
<option value="">Origen</option>
</select>
</div>
</div>
229
<!-- Contraseña -->
</div>
</div>
</div>
<label class="custom-control-
label">Activo</label>
</div>
</div>
</div>
</div>
</form>
230
</div>
</div>
</div>
</div>
</div>
@model SACELEX.Models.Administradores
@{
ViewData["Titulo"] = "RegistrarAdministrador";
231
</div>
<input asp-
for="MatriculaAdministrador" type="text" class="form-
control" placeholder="Matricula..." />
</div>
</div>
<input asp-
for="ApellidoPaterno" type="text" class="form-
control" placeholder="Apellido Paterno..."
id="txtApellidoPaterno">
</div>
<input asp-
for="ApellidoMaterno" type="text" class="form-
control" placeholder="Apellido Materno..."
id="txtApellidoMaterno">
</div>
</div>
232
<div class="col-10 my-2">
<input asp-
for="Contrasena" type="password" class="form-
control" placeholder="Contraseña..." id="txtContraseña">
</div>
id="txtConfirmarContraseña">
</div>
</div>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</div>
<input asp-
for="Activo" type="checkbox" class="custom-control-input" id="cbxActivo">
233
<label class="custom-control-
label" for="cbxActivo">Activo</label>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
@{
ViewData["Titulo"] = "Alumnos";
234
<div class="container-fluid mx-0 pb-3 px-0 fondito" style="min-
height: 100vh;">
</div>
</div>
Nuevo Alumno
</a>
</div>
</div>
id="txtBusquedaAlumnos" placeholder="Buscar..
.">
</div>
235
<!-- Filtros de Busqueda -->
<label class="custom-control-
label" for="cbxAlumnosTodos">Sin Filtros</label>
</div>
class="custom-control-input">
<label class="custom-control-
label" for="rbtnAlumnosMatricula">Matricula</label>
</div>
class="custom-control-input">
<label class="custom-control-
label" for="rbtnAlumnosNombre">Nombre</label>
</div>
</div>
236
<input type="submit" class="btn btn-block btn-
success sombras" id="btnBusquedaAlumnos"
value="Buscar">
</div>
</div>
</form>
</div>
</div>
Alumnos
</div>
@foreach (SACELEX.ViewModels.ListaAlumnosViewModel m
odelo in ViewBag.ListaAlumnos)
</div>
</div>
237
<nav aria-label="Page navigation example" class="d-
flex justify-content-center">
<li class="page-item">
aria-label="Previous">
<span aria-hidden="true">«</span>
</a>
</li>
<li class="page-item">
href="#">1</a>
</li>
<li class="page-item">
href="#">2</a>
</li>
<li class="page-item">
href="#">3</a>
</li>
<li class="page-item">
aria-label="Next">
<span aria-hidden="true">»</span>
</a>
238
</li>
</ul>
</nav>
</div>
</div>
</div>
</div>
Regresar
</a>
</div>
</div>
</div>
CSS, JSON, JS
239
240
241
242
243
244
245
246
247
248
Conclusion
Con base en lo anterior se denota que el programa SACELEX será factible tanto
para el CELEX que es a quien va dirigido el programa como para nosotros como
alumnos, ya que se solucionara una problemática y de esta manera nosotros como
alumnos podremos realizar nuestro proyecto de grado.
249