package src;

import java.util.Date;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;


// <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
// #[regen=yes,id=DCE.9B7D8F6F-3463-7964-613F-14AA974EF836]
// </editor-fold> 
public class LibretaAhorro extends Cuentas
{
    public LibretaAhorro ()
    {
    }
    //METODO QUE CREA LA LIBRETA DE AHORRO 
    public void CreaCuentaLA(Sucursal suc,String dni,String nombre,String apellidos,String cuenta, int tc)
    {
        LibretaAhorro p1=new LibretaAhorro();
        ClienteFisico cliF=new ClienteFisico();
        ClienteFisico cliFpersist=new ClienteFisico();
        ClienteJuridico cliJ=new ClienteJuridico();
        ClienteJuridico cliJpersit=new ClienteJuridico();

      if(suc.devuelveDni(dni)==null) //Si es igual null es que no existe el cliente
      {
       int tipoCliente=2;

        //Extrae el primer caracter del dni para diferencia cF o Cj
        String extraer=(dni.substring(0, 1));
       if((extraer.compareTo("0")==0) || (extraer.compareTo("1")==0) || (extraer.compareTo("2")==0) || (extraer.compareTo("3")==0) || (extraer.compareTo("4")==0) ||(extraer.compareTo("5")==0) || (extraer.compareTo("6")==0) || (extraer.compareTo("7")==0) || (extraer.compareTo("8")==0) || (extraer.compareTo("9")==0))
       {
        tipoCliente=1;
        cliFpersist=cliF.CreaClienteF(suc,dni, nombre, apellidos, cuenta, tipoCliente);
         persist(cliFpersist);
       }
       if(tipoCliente==2)
       {
        cliJpersit=cliJ.CreaClienteJ(suc,dni, nombre, apellidos, cuenta, tipoCliente);
        persist(cliJpersit);
       }
      }
       //Inserta la Cuenta
        p1.setnumero_cuenta(cuenta);
        p1.setNombre_cliente(nombre+" "+apellidos);
        p1.setSaldo_cuenta(0);
        p1.setId_cliente(dni);
        Date fecha=new Date();
        p1.setFecha(fecha);
        p1.settipoCuenta(tc);

        suc.insertaCuenta(p1);
        this.persist(p1);//GUARDAMOS LACUENTA DEL CLIENTE

    }

    public void persist(Object object) {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("bancocolombinoPU");
        EntityManager em = emf.createEntityManager();
        em.getTransaction().begin();
        try {
            em.persist(object);
            em.getTransaction().commit();
        } catch (Exception e) {
            e.printStackTrace();
            em.getTransaction().rollback();
        } finally {
            em.close();
        }
    }
}

