@SuppressWarnings("unchecked")
public List<MovimentoContabile> cercaMovimentiContabiliByDataRegistrazioneTipoMovimento(Date inizioEsercizio,
Date fineEsercizio, String tipoMovimento, String codiceSocietaVeicolo)
throws ImpossibileCercareMovimentoContabileException {
DetachedCriteria criteria = DetachedCriteria.forClass(MovimentoContabile.class);
Conjunction conj = Restrictions.conjunction();
conj.add(Restrictions.gt("dataRegistrazione", inizioEsercizio));
conj.add(Restrictions.le("dataRegistrazione", fineEsercizio));
conj.add(Restrictions.ne("tipoMovimento", tipoMovimento));
conj.add(Restrictions.eq("codiceSocietaVeicolo", codiceSocietaVeicolo));
conj.add(Restrictions.eq("legalEntity", legalEntity));
conj.add(Restrictions.eq("organizationUnit", organizationUnit));
criteria.add(conj);
criteria.addOrder(Property.forName("dataRegistrazione").asc());
criteria.addOrder(Property.forName("movimentoContabileId.numeroArticolo").asc());
criteria.addOrder(Property.forName("movimentoContabileId.progressivoRigaArticolo").asc());
try {