com.flexcore.dao_orm.CuentaAhorroAutomaticoDAO.java Source code

Java tutorial

Introduction

Here is the source code for com.flexcore.dao_orm.CuentaAhorroAutomaticoDAO.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.flexcore.dao_orm;

import com.flexcore.dao_interfaces.TransaccionesCuentaAhorroAutomatico;
import com.flexcore.dto_hibernate.Cliente;
import com.flexcore.dto_hibernate.Cuenta;
import com.flexcore.dto_hibernate.Cuentaahorroautomatico;
import com.flexcore.dto_hibernate.Propositos;
import com.flexcore.dto_hibernate.Tipostiempo;
import com.flexcore.hibernate.config.NewHibernateUtil;
import java.sql.CallableStatement;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

/**
 *
 * @author Carlos
 */
public class CuentaAhorroAutomaticoDAO implements TransaccionesCuentaAhorroAutomatico {
    Session session = null;

    public CuentaAhorroAutomaticoDAO() {

        this.session = NewHibernateUtil.getCurrentSession();
    }

    @Override
    public List<Cuentaahorroautomatico> verCuentasAhorroAutomatico(int pagina, String busqueda, int customerIF) {
        List<Cuentaahorroautomatico> listacuentaAhorro = new ArrayList<>();

        int datoInicial = (pagina - 1) * 10;
        int datoFinal = pagina * 10;

        Transaction trans = session.beginTransaction();

        Query q = session.createSQLQuery(" { call obtenerCuentasAhorroAutomatico(?,?,?,?) }")
                .setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP)

        ;
        q.setInteger(0, datoInicial);
        q.setInteger(1, datoFinal);
        q.setString(2, busqueda);
        q.setInteger(3, customerIF);
        q.executeUpdate();

        listacuentaAhorro = q.list();
        trans.commit();
        session.close();

        return listacuentaAhorro;
    }

    @Override
    public Cuentaahorroautomatico crearCuentaAhorroAutomatico(Cuentaahorroautomatico cuentaAhorro) {
        Transaction trans = session.beginTransaction();
        /**System.out.println(cuentaAhorro.getIdCliente());
        Cliente client = (Cliente) session.get(Cliente.class, cuentaAhorro.getIdCliente());
        Cuenta cuenta = new Cuenta(client,cuentaAhorro.getSaldoTemporal(),
            cuentaAhorro.getSaldoReal());
        cuenta.setEstadoCuenta(true);
        session.save(cuenta);
        Propositos proposito = (Propositos) session.get(Propositos.class, cuentaAhorro.getIdProposito());
        Tipostiempo tipotiempo = (Tipostiempo) session.get(Tipostiempo.class, cuentaAhorro.getTipoTiempo());
        Date date = new Date();
        Cuentaahorroautomatico Cauto = new Cuentaahorroautomatico(
                proposito,
                null,
                tipotiempo,
                cuentaAhorro.getTiempoDeducciones(),
                date, 
                cuentaAhorro.getTiempoAhorroMeses(), 
                cuentaAhorro.getMontoAhorro(),
                true, 
                date);
        Cauto.setNumCuenta(cuenta.getNumCuenta());
        Cauto.setCuenta(cuenta);
        Cauto.setNumCuentaDeduccion(cuentaAhorro.getNumCuentaDeduccion());**/

        /**Cambiar por Cauto **/
        System.out.println("LLEGOOOOOOOOOOO AQUII");
        System.out.println("Cuenta num cuenta");
        //System.out.println(cuentaAhorro.getCuenta().getNumCuenta());
        System.out.println("Cuenta");
        //System.out.println(cuentaAhorro.getNumCuenta());
        System.out.println("Cliente");
        System.out.println(cuentaAhorro.getCuenta().getCliente().getCustomerIF());
        System.out.println("Propositos Descripcion");
        System.out.println(cuentaAhorro.getPropositos().getIdcuentaPropositos());
        System.out.println("Cuenta deduccion");
        System.out.println(cuentaAhorro.getNumCuentaDeduccion());
        session.save(cuentaAhorro.getCuenta());
        session.save(cuentaAhorro);
        trans.commit();
        session.close();
        return cuentaAhorro;
    }

    @Override
    public Cuentaahorroautomatico actualizarCuentaAhorroAutomatico(Cuentaahorroautomatico cuentaAuto) {

        Transaction trans = session.beginTransaction();

        Cuentaahorroautomatico cuentaAhorroAutomatico = (Cuentaahorroautomatico) session
                .get(Cuentaahorroautomatico.class, cuentaAuto.getNumCuenta());

        Tipostiempo tiempo = (Tipostiempo) session.get(Tipostiempo.class, cuentaAuto.getTipoTiempo());
        cuentaAhorroAutomatico.setTipostiempo(tiempo);

        cuentaAhorroAutomatico.setTiempoDeducciones(cuentaAuto.getTiempoDeducciones());
        cuentaAhorroAutomatico.setTiempoAhorroMeses(cuentaAuto.getTiempoAhorroMeses());
        cuentaAhorroAutomatico.setNumCuentaDeduccion(cuentaAuto.getNumCuentaDeduccion());
        cuentaAhorroAutomatico.setMontoAhorro(cuentaAuto.getMontoAhorro());

        Propositos proposito = (Propositos) session.get(Propositos.class, cuentaAuto.getIdProposito());
        cuentaAhorroAutomatico.setPropositos(proposito);

        cuentaAhorroAutomatico.setNumCuenta(cuentaAuto.getNumCuenta());
        Cuenta cuenta = cuentaAhorroAutomatico.getCuenta();
        cuenta.setSaldoReal(cuentaAuto.getSaldoReal());
        cuenta.setSaldoTemporal(cuentaAuto.getSaldoTemporal());
        session.merge(cuenta);
        session.merge(cuentaAhorroAutomatico);

        trans.commit();
        session.close();
        return cuentaAuto;

    }

    @Override
    public void eliminarCuentaAhorroAutomatico(int numCuenta) {
        Transaction trans = session.beginTransaction();
        Cuenta cuenta = (Cuenta) session.get(Cuenta.class, numCuenta);
        session.delete(cuenta);
        trans.commit();
        session.close();

    }

    public int obtenerCantidadCuentasAhorroAutomatico(String entrada, int customerIF) {
        int cantidadCuentasAhorro = 0;
        Transaction trans = session.beginTransaction();
        Query q = session.createSQLQuery(" { call obtenerCantidadCuentasAhorroAutomatico (?,?) }");
        q.setString(0, entrada);
        q.setInteger(1, customerIF);
        q.executeUpdate();
        cantidadCuentasAhorro = Integer.parseInt(q.list().get(0).toString());

        trans.commit();
        session.close();

        return cantidadCuentasAhorro;
    }

}