com.miraflorescarwash.dao.LavadaDAOImpl.java Source code

Java tutorial

Introduction

Here is the source code for com.miraflorescarwash.dao.LavadaDAOImpl.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.miraflorescarwash.dao;

import com.miraflorescarwash.controller.Constantes;
import com.miraflorescarwash.model.Lavada;
import com.miraflorescarwash.model.ObjetoCustodia;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Hibernate;
import org.hibernate.SQLQuery;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Repository;

@Repository("lavadaDAO")
public class LavadaDAOImpl extends AbstractDao<Long, Lavada> implements LavadaDAO {

    @Override
    public Lavada findById(Long id) {
        return super.getByKey(id);
    }

    @Override
    public List<Lavada> findAll() {
        Criteria criteria = super.createEntityCriteria().addOrder(Order.desc("fechaLavado"));
        return (List<Lavada>) criteria.list();
    }

    @Override
    public void save(Lavada lavada) {
        for (ObjetoCustodia obj : lavada.getObjetosEnCustodia()) {
            obj.setLavada(lavada);
        }
        super.save(lavada);
    }

    @Override
    public void update(Lavada lavada) {
        super.update(lavada);
    }

    @Override
    public void delete(Long id) {
        Lavada c;
        c = this.findById(id);
        super.delete(c);
    }

    @Override
    public List<Double> obtenerLista(int tipo, int cantidadRegistros) {
        List<Object> lista;
        List<Double> out;
        SQLQuery sql;
        Object[] a;

        out = new ArrayList<>();
        switch (tipo) {
        case Constantes.REPORTE_LAVADA_DIARIO:
            sql = super.getSession().createSQLQuery("SELECT * FROM public.ventas_pordia (:cantidad);");
            sql.setParameter("cantidad", cantidadRegistros);
            lista = sql.list();
            //                lista = super.execProdecure("", cantidadRegistros);
            break;
        case Constantes.REPORTE_LAVADA_SEMANAL:
            sql = super.getSession().createSQLQuery("SELECT * FROM public.ventas_porsemana (:cantidad);");
            sql.setParameter("cantidad", cantidadRegistros);
            lista = sql.list();
            //                lista = super.execProdecure("ventas_porsemana", cantidadRegistros);
            break;
        case Constantes.REPORTE_LAVADA_MENSUAL:
            sql = super.getSession().createSQLQuery("SELECT * FROM public.ventas_pormes (:cantidad);");
            sql.setParameter("cantidad", cantidadRegistros);
            lista = sql.list();
            //                lista = super.execProdecure("ventas_pormes", cantidadRegistros);
            break;
        default:
            lista = null;
            break;
        }
        if (lista != null) {
            for (Object val : lista) {
                out.add(Double.valueOf(val.toString()));
            }
        }
        return out;
    }

    @Override
    public List<Lavada> verLavadasPendientes() {
        Criteria criteria = super.createEntityCriteria().add(Restrictions.eq("estado", Constantes.LAVADA_PENDIENTE))
                .addOrder(Order.desc("fechaLavado"));
        return (List<Lavada>) criteria.list();
    }

    @Override
    public void iniciarRelacionesLazy(Lavada lavada) {
        Lavada aux;

        aux = super.getByKey(lavada.getId());

        Hibernate.initialize(aux.getObjetosEnCustodia());
        System.out.println(aux.getObjetosEnCustodia());
        lavada.setObjetosEnCustodia(aux.getObjetosEnCustodia());

    }
}