com.ipn.escom.ageinnn.gestion.service.InscripcionService.java Source code

Java tutorial

Introduction

Here is the source code for com.ipn.escom.ageinnn.gestion.service.InscripcionService.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.ipn.escom.ageinnn.gestion.service;

import com.ipn.escom.ageinnn.alumno.model.Alumno;
import com.ipn.escom.ageinnn.curso.model.Curso;
import com.ipn.escom.ageinnn.curso.model.EstadoCurso;
import com.ipn.escom.ageinnn.curso.model.Grupo;
import com.ipn.escom.ageinnn.curso.model.Inscripcion;
import com.ipn.escom.ageinnn.curso.model.InscripcionId;
import com.ipn.escom.ageinnn.service.Service;
import com.ipn.escom.ageinnn.usuario.model.MedicoResidente;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;

/**
 *
 * @author Erick
 */
public class InscripcionService {

    Session session;

    public List<Inscripcion> findAllAlumnosByGrupo(Grupo grupo) {
        List<Inscripcion> inscripcionList = new ArrayList<>();
        session = Service.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        inscripcionList = session.createCriteria(Inscripcion.class).add(Restrictions.eq("grupo", grupo)).list();
        session.getTransaction().commit();
        return inscripcionList;
    }

    public Serializable inscribirAlumno(Grupo grupo, MedicoResidente alumno) {

        InscripcionId inscripcionId = new InscripcionId();
        Inscripcion inscripcion = new Inscripcion();

        if (grupo.getDisponibilidad() > 0) {
            inscripcionId.setAlumnoId(alumno.getId());
            inscripcionId.setCursoId(grupo.getCursoId());
            inscripcionId.setPeriodoId(grupo.getPeriodoId());
            inscripcionId.setClave(grupo.getClave());

            inscripcion.setInscripcionId(inscripcionId);
            try {
                session = Service.getSessionFactory().getCurrentSession();
                session.beginTransaction();

                InscripcionId inscripcionId1 = (InscripcionId) session.save(inscripcion);
                grupo.setDisponibilidad(grupo.getDisponibilidad() - 1);
                session.saveOrUpdate(grupo);

                session.getTransaction().commit();
            } catch (Exception e) {
                session.getTransaction().rollback();
                throw e;
            }
        } else {

        }

        return inscripcionId;
    }

    public Inscripcion findById(InscripcionId inscripcionId) {
        Inscripcion inscripcion;
        try {
            session = Service.getSessionFactory().getCurrentSession();
            session.beginTransaction();
            inscripcion = (Inscripcion) session.get(Inscripcion.class, inscripcionId);
            session.getTransaction().commit();
        } catch (Exception e) {
            session.getTransaction().rollback();
            throw e;
        }

        return inscripcion;
    }

    public void update(Inscripcion inscripcion) {
        try {
            session = Service.getSessionFactory().getCurrentSession();
            session.beginTransaction();
            session.saveOrUpdate(inscripcion);
            session.getTransaction().commit();
        } catch (Exception e) {
            session.getTransaction().rollback();
            throw e;
        }
    }

    public Inscripcion findByCursoAndMedicoResidente(Curso curso, MedicoResidente medicoResidente) {
        Inscripcion inscripcion;
        try {
            session = Service.getSessionFactory().getCurrentSession();
            session.beginTransaction();
            inscripcion = (Inscripcion) session.createCriteria(Inscripcion.class)
                    .add(Restrictions.and(Restrictions.eq("cursoId", curso.getId()),
                            Restrictions.eq("alumnoId", medicoResidente.getId())))
                    .uniqueResult();

            session.getTransaction().commit();
        } catch (Exception e) {
            session.getTransaction().rollback();
            throw e;
        }

        return inscripcion;
    }

}