StringBuffer q = new StringBuffer();
List<SearchCriteria> criteria = new ArrayList<SearchCriteria>();
criteria.add(new SearchCriteria("tipoBollato", tipoBollato));
criteria.add(new SearchCriteria("dataUltimaStampaLibroIVA", dataUltimaStampaLibroIva));
criteria.add(new SearchCriteria("legalEntity", legalEntity));
criteria.add(new SearchCriteria("organizationUnit", organizationUnit));
if (!dataLibroIVA.before(dataInizioEsCorr) && !dataLibroIVA.after(dataFineEsCorr)) {
q.append(" SELECT MAX( MOVCONT.CG01_NR_PROTOCOLLO ) as numeroProtocollo ");
q.append(" FROM MOVCONT, ");
q.append(" MOVIVA ");
q.append(" WHERE MOVCONT.CG01_NR_ARTICOLO = MOVIVA.CG06_NR_ARTICOLO ");
q.append(" AND MOVCONT.CG01_PGR_RIGA_ART = MOVIVA.CG06_PGR_RIGA_ART ");
q.append(" AND MOVIVA.CG06_TP_BOLLATO_IVA = :tipoBollato ");
q.append(" AND MOVCONT.CG01_DT_REG BETWEEN :dataInizioEsCorr ");
q.append(" AND :dataUltimaStampaLibroIVA ");
q.append(" AND MOVCONT.CG01_COD_SOCIETA_VEICOLO = :codiceSocietaVeicolo ");
q.append(" AND MOVCONT.CG01_LEGAL_ENTITY = :legalEntity ");
q.append(" AND MOVCONT.CG01_ORG_UNIT = :organizationUnit ");
q.append(" AND MOVCONT.CG01_LEGAL_ENTITY = MOVIVA.CG06_LEGAL_ENTITY ");
q.append(" AND MOVCONT.CG01_ORG_UNIT = MOVIVA.CG06_ORG_UNIT ");
criteria.add(new SearchCriteria("codiceSocietaVeicolo", codiceSocietaVeicolo));
criteria.add(new SearchCriteria("dataInizioEsCorr", dataInizioEsCorr));
} else if (!dataLibroIVA.before(dataInizioEsSucc) && !dataLibroIVA.after(dataFineEsSucc)) {
q.append(" SELECT max(MOVCONT.CG01_NR_PROTOCOLLO) as numeroProtocollo ");
q.append(" FROM MOVCONT, ");
q.append(" MOVIVA ");
q.append(" WHERE MOVCONT.CG01_NR_ARTICOLO = MOVIVA.CG06_NR_ARTICOLO ");
q.append(" AND MOVCONT.CG01_PGR_RIGA_ART = MOVIVA.CG06_PGR_RIGA_ART ");
q.append(" AND MOVIVA.CG06_TP_BOLLATO_IVA = :tipoBollato ");
q.append(" AND MOVCONT.CG01_DT_REG BETWEEN :dataInizioEsSucc ");
q.append(" AND :dataUltimaStampaLibroIVA ");
q.append(" AND MOVCONT.CG01_LEGAL_ENTITY = :legalEntity ");
q.append(" AND MOVCONT.CG01_ORG_UNIT = :organizationUnit ");
q.append(" AND MOVCONT.CG01_LEGAL_ENTITY = MOVIVA.CG06_LEGAL_ENTITY ");
q.append(" AND MOVCONT.CG01_ORG_UNIT = MOVIVA.CG06_ORG_UNIT ");
criteria.add(new SearchCriteria("dataInizioEsSucc", dataInizioEsSucc));
}
List<?> list;
try {
list = this.getHibernateTemplate()
.executeFind(new ContabilitaHibernateBindCallback(q.toString(), criteria));
} catch (DataAccessException e) {
log("Impossibile leggere numero protocollo " + e);
e.printStackTrace();
throw new ImpossibileLeggereNumeroProtocolloException();
}
if (list != null && list.size() > 0) {
for (int r = 0; r < list.size(); r++) {
Object o;
o = (Object) list.get(r);
BigDecimal grup = (BigDecimal) o;
if (grup != null)
numeroProtocollo = new Long(grup.longValue());
}
}
if (numeroProtocollo == null) {
q = new StringBuffer();
criteria = new ArrayList<SearchCriteria>();
criteria.add(new SearchCriteria("tipoBollato", tipoBollato));
criteria.add(new SearchCriteria("legalEntity", legalEntity));
criteria.add(new SearchCriteria("organizationUnit", organizationUnit));
q.append(" SELECT DISTINCT TAB_TIPI_PROTOCOLLO.CG14_NR_PROT_INIZIO_ANNO as numeroProtocollo ");
q.append(" FROM CAUS_OPER, ");
q.append(" DET_CAUS_OPER , ");
q.append(" TAB_TIPI_PROTOCOLLO ");