package banco.DAO;
import java.util.List;
import javax.persistence.Query;
import banco.connection.EclipseLinkConnection;
import banco.modelo.Caixa;
import banco.utils.CaixaUtils;
public class CaixaDAO extends EclipseLinkConnection implements CaixaUtils{
@Override
public void saveOrUpdate(Caixa modelo) {
if(modelo.getId() != null)
merge(modelo);
else
persist(modelo);
}
@Override
public void delete(Caixa modelo) {
remove(modelo);
}
@Override
public Caixa find(Long id) {
Query q = getEntityManager().createQuery("select c from Caixa c where c.id = :id");
q.setParameter("id", id);
return (Caixa)q.getSingleResult();
}
@SuppressWarnings("unchecked")
@Override
public List<Caixa> findAll() {
Query q = getEntityManager().createQuery("select c from Caixa c");
return q.getResultList();
}
@Override
public Caixa findUltimoCaixaByStatus(Boolean status) {
try{
Query q = getEntityManager().createQuery("select c from Caixa c where c.id = (select max(ca.id) from Caixa ca " +
"where (:status is null) or (ca.dataFechamento is null and :status is true) " +
"or (ca.dataFechamento is not null and :status is false))");
q.setParameter("status", status);
return (Caixa) q.getSingleResult();
}catch(Exception e){
return null;
}
}
}