public SolicitudEstado obtenerPorId(int id, SqlConnection conexion, SqlTransaction transaccion)
        {
            String     nombreProcedure = "OBTENER_ESTADOSOLICITUD_POR_ID";
            SqlCommand comando         = new SqlCommand(nombreProcedure, conexion);

            if (transaccion != null)
            {
                comando.Transaction = transaccion;
            }
            comando.CommandType = System.Data.CommandType.StoredProcedure;
            comando.Parameters.AddWithValue("@ID", SqlDbType.Int).Value = id;
            SqlDataReader   lector = comando.ExecuteReader();
            SolicitudEstado data   = null;

            if (lector.HasRows)
            {
                while (lector.Read())
                {
                    data        = new SolicitudEstado();
                    data.id     = int.Parse(lector["ID"].ToString());
                    data.nombre = lector["NOMBRE"].ToString();
                    break;
                }
            }
            else
            {
                return(null);
            }
            lector.Close();
            lector.Dispose();
            comando.Dispose();
            return(data);
        }
        public void registrarEvaluacionSolicitud(Solicitud solicitud)
        {
            SqlConnection  cn          = null;
            SqlTransaction transaccion = null;

            try
            {
                cn = HelperDB.GetSqlConnection();
                //Inicio de la transaccion
                transaccion = cn.BeginTransaction();
                //Estado 5= Aprobado , 4 Desaprobado
                SolicitudEstado nuevoEstado = estadoSolicitudRepository.obtenerPorId(solicitud.aprobado ? 5 : 4, cn, transaccion);
                if (nuevoEstado == null)
                {
                    throw new ArgumentNullException("No se encontro el estado APROBADO/DESAPROBADO para la solicitud");
                }
                solicitudRepository.registrarEvaluacionSolicitud(solicitud, nuevoEstado, cn, transaccion);
                transaccion.Commit();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                transaccion.Rollback();
                throw new Exception(e.Message);
            }
            finally
            {
                if (cn != null)
                {
                    cn.Close();
                    cn.Dispose();
                }
            }
        }
Beispiel #3
0
        public void cambiarEstadoPagadoSolicitud(Solicitud solicitud, SolicitudEstado nuevoEstado, SqlConnection conexion, SqlTransaction transaccion)
        {
            String     nombreProcedure = "CAMBIAR_ESTADO_CANCELADO_SOLICITUD";
            SqlCommand comando         = new SqlCommand(nombreProcedure, conexion);

            if (transaccion != null)
            {
                comando.Transaction = transaccion;
            }
            comando.CommandType = System.Data.CommandType.StoredProcedure;
            comando.Parameters.AddWithValue("@SOLICITUD_ID", solicitud.id);
            comando.Parameters.AddWithValue("@ESTADO_ID", nuevoEstado.id);
            comando.Parameters.AddWithValue("@NOMBRE_RESTADO", nuevoEstado.nombre);
            comando.Parameters.AddWithValue("@FECHA_PAGO", DateTime.Now);
            comando.ExecuteNonQuery();
        }
Beispiel #4
0
        public void registrarEvaluacionSolicitud(Solicitud solicitud, SolicitudEstado nuevoEstado, SqlConnection conexion, SqlTransaction trasaccion)
        {
            String     nombreProcedure = "REGISTRAR_EVALUACION_SOLICITUD";
            SqlCommand comando         = new SqlCommand(nombreProcedure, conexion);

            if (trasaccion != null)
            {
                comando.Transaction = trasaccion;
            }
            comando.CommandType = System.Data.CommandType.StoredProcedure;
            comando.Parameters.AddWithValue("@SOLICITUD_ID", solicitud.id);
            comando.Parameters.AddWithValue("@ESTADO_ID", nuevoEstado.id);
            comando.Parameters.AddWithValue("@NOMBRE_RESTADO", nuevoEstado.nombre);
            comando.Parameters.AddWithValue("@FECHA_EVALUACION", DateTime.Now);
            comando.Parameters.AddWithValue("@MOTIVO_EVALUACION", solicitud.motivoEvaluacion);
            comando.ExecuteNonQuery();
        }
Beispiel #5
0
        public void registrarEstadoFinalizado(Solicitud solicitud, SolicitudEstado nuevoEstado, SqlConnection cn, SqlTransaction transaccion)
        {
            String     nombreProcedure = "REGISTRAR_FINALIZACION_SOLICITUD";
            SqlCommand comando         = new SqlCommand(nombreProcedure, cn);

            if (transaccion != null)
            {
                comando.Transaction = transaccion;
            }
            comando.CommandType = System.Data.CommandType.StoredProcedure;
            comando.Parameters.AddWithValue("@SOLICITUD_ID", solicitud.id);
            comando.Parameters.AddWithValue("@ESTADO_ID", nuevoEstado.id);
            comando.Parameters.AddWithValue("@NOMBRE_RESTADO", nuevoEstado.nombre);
            comando.Parameters.AddWithValue("@FECHA_FINALIZACION", DateTime.Now);
            comando.Parameters.AddWithValue("@FECHA_INICIO", solicitud.fechaInicio);
            comando.Parameters.AddWithValue("@FECHA_FIN", solicitud.fechaFin);
            comando.Parameters.AddWithValue("@DURACION", solicitud.duracion);
            comando.Parameters.AddWithValue("@LUGAR", solicitud.lugar);
            comando.ExecuteNonQuery();
        }
        public void registrarMiembrosTesis(List <HorarioSustentacion> miembrosConHorario)
        {
            SqlConnection  cn          = null;
            SqlTransaction transaccion = null;

            try
            {
                cn = HelperDB.GetSqlConnection();
                //Inicio de la transaccion
                transaccion = cn.BeginTransaction();
                Solicitud solicitud = miembrosConHorario[0].solicitud;
                //Registrar el horario y los miembros
                foreach (HorarioSustentacion miembroHorario in miembrosConHorario)
                {
                    horarioRepository.registrarHorario(miembroHorario, cn, transaccion);
                }
                //Actualizar en estado FINALIZADO la solicitud
                //Estado 6= Finalizada
                SolicitudEstado nuevoEstado = estadoSolicitudRepository.obtenerPorId(6, cn, transaccion);
                if (nuevoEstado == null)
                {
                    throw new ArgumentNullException("No se encontro el estado FINALIZADO para la solicitud");
                }
                solicitudRepository.registrarEstadoFinalizado(solicitud, nuevoEstado, cn, transaccion);
                transaccion.Commit();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                transaccion.Rollback();
                throw new Exception(e.Message);
            }
            finally
            {
                if (cn != null)
                {
                    cn.Close();
                    cn.Dispose();
                }
            }
        }
        public void registrarPagoSolicitud(PagoSolicitud pagoSolicitud)
        {
            SqlConnection  cn          = null;
            SqlTransaction transaccion = null;

            try
            {
                cn = HelperDB.GetSqlConnection();
                //Inicio de la transaccion
                transaccion = cn.BeginTransaction();
                //Estado 3= Cancelado
                SolicitudEstado estadoPagado = estadoSolicitudRepository.obtenerPorId(3, cn, transaccion);
                if (estadoPagado == null)
                {
                    throw new ArgumentNullException("No se encontro el estado PAGADO para la solicitud");
                }
                pagoSolicitudRepository.registrarPago(pagoSolicitud, cn, transaccion);
                //Modificar el estado de la solicitud
                solicitudRepository.cambiarEstadoPagadoSolicitud(pagoSolicitud.solicitud, estadoPagado, cn, transaccion);
                transaccion.Commit();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                transaccion.Rollback();
                throw new Exception(e.Message);
            }
            finally
            {
                if (cn != null)
                {
                    cn.Close();
                    cn.Dispose();
                }
            }
        }
        public void registrarSolicitud(Solicitud solicitud)
        {
            SqlConnection  cn          = null;
            SqlTransaction transaccion = null;

            try
            {
                cn = HelperDB.GetSqlConnection();
                //Inicio de la transaccion
                transaccion = cn.BeginTransaction();
                //Verificar si el alumno ya tiene una deuda con la universidad
                bool tieneDeuda = solicitudRepository.obtenerSolicitudesSinPagar(solicitud.alumno.id, cn, transaccion);
                if (tieneDeuda)
                {
                    throw new Exception("El alumno tiene una deuda con la universidad");
                }
                //Verificar si tiene una solicitud en proceso
                bool solicitudEnProceso = solicitudRepository.obtenerSolicitudesEnProceso(solicitud.alumno.id, cn, transaccion);
                if (solicitudEnProceso)
                {
                    throw new Exception("El alumno tiene en proceso una solicitud");
                }
                //Obtener el correlativo del documento y modificarlos
                SerieDocumento serieDocumento = serieDocumentoRepository.obtenerUltimo("SOLICITUD", cn, transaccion);
                if (serieDocumento == null)
                {
                    throw new ArgumentNullException("No se encontro la serie para la solicitud");
                }
                String strNumero = String.Format("{0:D8}", int.Parse(serieDocumento.numero) + 1);
                serieDocumento.numero = strNumero;
                serieDocumentoRepository.modificar(serieDocumento, cn, transaccion);
                //Asociar el correlativo
                solicitud.codigo = serieDocumento.serie + "-" + strNumero;
                //Obtener El estado GENERADO
                SolicitudEstado estadoGenerado = estadoSolicitudRepository.obtenerPorId(1, cn, transaccion);
                if (estadoGenerado == null)
                {
                    throw new ArgumentNullException("No se encontro el estado GENERADO para la solicitud");
                }
                solicitud.estadoSolicitud = estadoGenerado;
                solicitud.nombreEstado    = estadoGenerado.nombre;
                //Subir el archivo de tesis
                if (!String.IsNullOrEmpty(solicitud.urlTesis))
                {
                    String destinoArchivo = Directory.GetParent(Directory.GetCurrentDirectory()).Parent.FullName;
                    destinoArchivo = Path.Combine(destinoArchivo, "Documentos");
                    destinoArchivo = Path.Combine(destinoArchivo, "Solicitud");
                    destinoArchivo = Path.Combine(destinoArchivo, solicitud.codigo);
                    Directory.CreateDirectory(destinoArchivo);
                    //Copiar archivo
                    string sourceFile = System.IO.Path.Combine(solicitud.urlTesis);
                    string destFile   = System.IO.Path.Combine(destinoArchivo, solicitud.nombreArchivo);
                    System.IO.File.Copy(sourceFile, destFile, true);
                    //Actualizamos la ruta
                    solicitud.urlTesis = destFile;
                }
                solicitudRepository.registrarSolicitud(solicitud, cn, transaccion);
                //Registrar los temas de la solicitud
                foreach (SolicitudTema tema in solicitud.temas)
                {
                    tema.solicitud = solicitud;
                    solicitudTemaRepository.registrarSolicitudTema(tema, cn, transaccion);
                }

                transaccion.Commit();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                transaccion.Rollback();
                throw new Exception(e.Message);
            }
            finally
            {
                if (cn != null)
                {
                    cn.Close();
                    cn.Dispose();
                }
            }
        }