/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package javabbuva;

import java.util.ArrayList;
import java.util.List;
import vistas.*;

/**
 *
 * @author Adrian
 */
public class Main {

    /**
     * @param args the command line arguments
     */

     private static void carga_datos(Sucursal suc){

            ArrayList<Producto> AP=new ArrayList<Producto>();
            ArrayList<ClienteFisico> AC=new ArrayList<ClienteFisico>();

            Producto p1=new CuentaCorriente();
            p1.setNumeroCuenta("20984002161000015263");
            p1.setTipo("Cuenta Corriente");
            p1.setDinero(200);
            p1.setNumeroTitulares(1);
            Producto p1b=new CuentaCorriente();
            p1b.setNumeroCuenta("209840021000015263");
            p1b.setTipo("Cuenta Corriente");
            p1b.setDinero(200);
            p1b.setNumeroTitulares(1);

            ClienteFisico c1=new ClienteFisico();
            c1.setNombre("Julian");
            c1.setApellido1("Martinez");
            c1.setApellido2("Morillas");
            c1.setDNI("24784598J");
            c1.añadirProducto(p1);
            c1.añadirProducto(p1b);
            p1.añadirCliente(c1);
            p1b.añadirCliente(c1);

            AP.add(p1);
            AP.add(p1b);
            AC.add(c1);

            Producto p2=new CuentaCorriente();
            p2.setNumeroCuenta("20984002181000015264");
            p2.setTipo("Cuenta Corriente");
            p2.setDinero(200);
            p2.setNumeroTitulares(1);
            Producto p2b=new CuentaCorriente();
            p2b.setNumeroCuenta("209840021000015264");
            p2b.setTipo("Cuenta Corriente");
            p2b.setDinero(200);
            p2b.setNumeroTitulares(1);

            ClienteFisico c2=new ClienteFisico();
            c2.setNombre("Javier");
            c2.setApellido1("Alvarez");
            c2.setApellido2("Cejudo");
            c2.setDNI("22548544P");
            c2.añadirProducto(p2);
            p2.añadirCliente(c2);
            c2.añadirProducto(p2b);
            p2b.añadirCliente(c2);


            AP.add(p2);
            AP.add(p2b);
            AC.add(c2);

            Producto p3=new CuentaCorriente();
            p3.setNumeroCuenta("20984002141000015265");
            p3.setTipo("Cuenta Corriente");
            p3.setDinero(200);
            p3.setNumeroTitulares(1);

            ClienteFisico c3=new ClienteFisico();
            c3.setNombre("Martin Rivas Nistal");
            c3.setApellido1("Rivas");
            c3.setApellido2("Nistal");
            c3.setDNI("18745354H");
            c3.añadirProducto(p3);
            p3.añadirCliente(c3);

            AP.add(p3);
            AC.add(c3);

            Producto p4=new CuentaCorriente();
            p4.setNumeroCuenta("20984002131000015266");
            p4.setTipo("Cuenta Corriente");
            p4.setDinero(200);
            p4.setNumeroTitulares(1);
            Producto p4b=new CuentaCorriente();
            p4b.setNumeroCuenta("209840021000015266");
            p4b.setTipo("Cuenta Corriente");
            p4b.setDinero(200);
            p4b.setNumeroTitulares(1);

            ClienteFisico c4=new ClienteFisico();
            c4.setNombre("Alicia Rivas Cano");
            c4.setApellido1("Rivas");
            c4.setApellido2("Cano");
            c4.setDNI("54252622T");
            c4.añadirProducto(p4);
            p4.añadirCliente(c4);
            c4.añadirProducto(p4b);
            p4b.añadirCliente(c4);

            AP.add(p4);
            AP.add(p4b);
            AC.add(c4);

            /* Producto p5=new CuentaCorriente();
            p5.setNumeroProducto("20984002151000015267");
            Cliente c5=new Cliente();
            c5.setNombreCliente("Julia Morente Castro");
            c4.setDocumentacion("18745354H");
            c4.insertaProductoenCliente(p4);
            p4.insertaTitularenProducto(c4);
            AP.add(p5);
            Producto p6=new CuentaCorriente();
            p6.setNumeroProducto("20984002181000015268");
            //p6.setNombreCliente("Antonio Recio Odon");
            AP.add(p6);

            Producto p7=new CuentaCorriente();
            p7.setNumeroProducto("20984002191000015269");
            //p7.setNombreCliente("Luisa Fernandez Ruiz");
            AP.add(p7);

            Producto p8=new CuentaCorriente();
            p8.setNumeroProducto("20984002141000015270");
            //p8.setNombreCliente("Antonio Martin Ares");
            AP.add(p8);

            Producto p9=new CuentaCorriente();
            p9.setNumeroProducto("20984002151000015271");
            //p9.setNombreCliente("Gabriel Mercado Condal");
            AP.add(p9);

            Producto p10=new CuentaCorriente();
            p10.setNumeroProducto("20984002181000015272");
            //p10.setNombreCliente("Pedro Villar Torres");
            AP.add(p10);

            Producto p11=new CuentaCorriente();
            p11.setNumeroProducto("20984002171000015273");
            //p11.setNombreCliente("Maria Castilla Ramos");
            AP.add(p11);

            Producto p12=new CuentaCorriente();
            p12.setNumeroProducto("20984002131000015274");
            //p12.setNombreCliente("Isabel Torres Ruiz");
            AP.add(p12);

            Producto p13=new CuentaCorriente();
            p13.setNumeroProducto("20984002181000015275");
            //p13.setNombreCliente("Ana Castro Cano");
            AP.add(p13);

            Producto p14=new CuentaCorriente();
            p14.setNumeroProducto("20984002171000015276");
            //p14.setNombreCliente("Luis Canseco Roldan");
            AP.add(p14);

            Producto p15=new CuentaCorriente();
            p15.setNumeroProducto("20984002181000015277");
            //p15.setNombreCliente("Olivia Martinez Fernandez");
            AP.add(p15);

            Producto p16=new CuentaCorriente();
            p16.setNumeroProducto("20981001242000024145");
            //p16.setNombreCliente("Universidad de Huelva");
            AP.add(p16);

            Producto p17=new CuentaCorriente();
            p17.setNumeroProducto("20981003821540005128");
            //p17.setNombreCliente("TELEFONICA DE ESPANA, S.A.U.");
            AP.add(p17);

            Producto p18=new CuentaCorriente();
            p18.setNumeroProducto("20980002210007125226");
            //p18.setNombreCliente("Telefónica Moviles");
            AP.add(p18);

            Producto p19=new CuentaCorriente();
            p19.setNumeroProducto("20980002260000564814");
            //p19.setNombreCliente("Canal Satelite Digital, SL");
            AP.add(p19);

            Producto p20=new CuentaCorriente();
            p20.setNumeroProducto("20980003410000425188");
            //p20.setNombreCliente("ENDESA ENERGIA XXI, S.L.");
            AP.add(p20);

            Producto p21=new CuentaCorriente();
            p21.setNumeroProducto("20980005620000954125");
            //p21.setNombreCliente("El Corte Inglés");
            AP.add(p21); */

            suc.setProducto(AP);
            suc.setMClientesF(AC);
}

    public static void main(String[] args) {
        // TODO code application logic here

        //CREACION DE ALGUNOS CLIENTES
        ClienteFisico c = new ClienteFisico();
        c.setNombre("Adrian");
        c.setApellido1("Garcia");
        c.setApellido2("Acosta");
        c.setDireccion("Huelva");
        c.setDNI("49059850");
        c.setTelefono("630265653");

        ClienteFisico c2 = new ClienteFisico();
        c2.setNombre("Juan");
        c2.setApellido1("Gomez");
        c2.setApellido2("Perez");
        c2.setDireccion("Huelva");
        c2.setDNI("49059851");
        c2.setTelefono("678215833");
        

        ClienteJuridico c3 = new ClienteJuridico();
        c3.setNombre("LASLA");
        c3.setDireccion("Huelva");
        c3.setNIF("1");
        c3.setTelefono("959768129");

        //CREACION DE ALGUNOS PRODUCTOS
        Producto p = new Producto();
        p.setDinero(900);
        p.setNumeroTitulares(1);
        p.setNumeroCuenta("20984002161000000001");
        p.setTipo("Libreta Ahorro");

        Producto p2 = new Producto();
        p2.setDinero(300);
        p2.setNumeroTitulares(1);
        p2.setNumeroCuenta("20984002161000000002");
        p2.setTipo("Cuenta Corriente");

        Producto p3 = new Producto();
        p3.setDinero(3200);
        p3.setNumeroTitulares(1);
        p3.setNumeroCuenta("20984002161000000003");
        p3.setTipo("Libreta Ahorro");

        //ASOCIAMOS LOS CLIENTES A LOS PRODUCTOS
        p.añadirCliente(c);
        c.añadirProducto(p);
        p2.añadirCliente(c2);
        c2.añadirProducto(p2);
        p3.añadirCliente(c3);
        c3.añadirProducto(p3);

        //CREACION DE LA SUCURSAL
        Sucursal su = new Sucursal();
//        carga_datos(su);
//        su.añadirClienteF(c);
//        su.añadirProducto(p);
//        su.añadirClienteF(c2);
//        su.añadirProducto(p2);
//        su.añadirClienteJ(c3);
//        su.añadirProducto(p3);


        //CREACION DE EMPLEADOS
        Empleado em = new Empleado();
        em.setLogin("adri");
        em.setNombre("Adrian");
        em.setApellidos("Garcia Acosta");
        em.setPassword("adri");
        em.setTelefono("630265653");
        em.setIdentificador(1);
        Empleado em2 = new Empleado();
        em2.setLogin("manuel");
        em2.setNombre("Manuel");
        em2.setApellidos("De la Villa");
        em2.setPassword("manuel");
        em2.setTelefono("624653782");
        em2.setIdentificador(2);

        //CREACION DE LA ENTIDAD
        Entidad e = new Entidad();
        e.setSucursal(su);
        e.añadirDinero(10000);

        //CREACION DE LAS CAJAS
        Caja ca1 = new Caja();
        ca1.setIdentificador("Caja 1");
        Caja ca2 = new Caja();
        ca2.setIdentificador("Caja 2");
        Caja ca3 = new Caja();
        ca3.setIdentificador("Caja 3");

        //AÑADIMOS A SUCURSAL
        su.setEntidad(e);
        su.añadirEmpleado(em);
        su.añadirEmpleado(em2);
        su.añadirCaja(ca1);
        su.añadirCaja(ca2);
        su.añadirCaja(ca3);

        //RECUPERAMOS DE LA BASE DE DATOS
        ControladorBD cbd = new ControladorBD();

        List <ClienteJuridico> clientesJ = cbd.getDataClientesJ();
        List <ClienteFisico> clientesF = cbd.getDataClientesF();
        List <Producto> productos = cbd.getDataProductos();

        su.setMClientesF(clientesF);
        su.setMClientesJ(clientesJ);
        su.setProducto(productos);

        //ARRANCAMOS
        JFPrincipal principal = new JFPrincipal(su);
        su.addObserver(principal);
        new JFInicio(su,principal).setVisible(true);
    }

}
