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(); } } }
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(); }
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(); }
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(); } } }