List of usage examples for org.hibernate.criterion Restrictions ne
public static SimpleExpression ne(String propertyName, Object value)
From source file:com.klistret.cmdb.utility.hibernate.XPathCriteria.java
License:Open Source License
/** * /*ww w. ja v a 2 s .com*/ * @param predicate * @return */ protected Criterion getRestriction(Expr predicate, HibernateStep context) { logger.debug("Adding restrictions by predicate to context [{}]", context); switch (predicate.getType()) { case Or: /** * Recursively breaks down the OrExpr by translating on the first * and second operands */ if (((OrExpr) predicate).getOperands().size() != 2) throw new ApplicationException( String.format("OrExpr expression [%s] expects 2 operands", predicate)); return Restrictions.or(getRestriction(((OrExpr) predicate).getOperands().get(0), context), getRestriction(((OrExpr) predicate).getOperands().get(1), context)); case And: /** * Recursively breaks down the AndExpr by translating on the first * and second operands */ if (((AndExpr) predicate).getOperands().size() != 2) throw new ApplicationException( String.format("AndExpr expression [%s] expects 2 operands", predicate)); return Restrictions.and(getRestriction(((AndExpr) predicate).getOperands().get(0), context), getRestriction(((AndExpr) predicate).getOperands().get(1), context)); case Comparison: /** * Find the literal */ LiteralExpr literal = getLiteralOperand(((ComparisonExpr) predicate).getOperands()); /** * Find the relative path making a Hibernate relative path */ RelativePathExpr rpe = getRelativePathOperand(((ComparisonExpr) predicate).getOperands()); HibernateRelativePath hRPath = process(rpe, context); build(hRPath); HibernateStep last = hRPath.getLastHibernateStep(); /** * Property name with alias prefix */ String alias = last.getPrevious() == null ? aliasCache.get(context.getPath()) : aliasCache.get(last.getPrevious().getPath()); String propertyName = alias == null ? last.getName() : String.format("%s.%s", alias, last.getName()); /** * Paths with XML properties (always the last step if present) * return a XPath restriction. */ if (hRPath.hasXML()) { if (!hRPath.isTruncated()) throw new ApplicationException(String.format( "Predicate relative path ending in an XML property [%s] must be truncated", last)); /** * Last Hibernate step of the Hibernate path marks the property * which the restriction acts on. */ StepExpr step = (StepExpr) last.getStep(); /** * A new XPath is created from the last step downwards till the * step prior to the ending step. */ String xpath = null; for (int depth = step.getDepth(); depth < step.getRelativePath().getDepth() - 1; depth++) { Expr expr = step.getRelativePath().getExpr(depth); xpath = xpath == null ? expr.getXPath() : String.format("%s/%s", xpath, expr.getXPath()); } Step ending = (Step) step.getRelativePath().getLastExpr(); /** * A new comparison is generated */ List<Expr> operands = new ArrayList<Expr>(); operands.add(ending); operands.add(literal); xpath = String.format("%s[%s]", xpath, ComparisonExpr.getXPath(((ComparisonExpr) predicate).getOperator(), operands, false)); xpath = String.format("%s%s", context.getBaseExpression().getProlog(), xpath); PathExpression other = new PathExpression(xpath); return new XPathRestriction(propertyName, (Step) other.getRelativePath().getFirstExpr()); } if (((StepExpr) last.getStep()).hasPredicates()) throw new ApplicationException(String.format( "Comparisons against Hibernate properties may not have an underlying step [] with predicates", last.getStep())); logger.debug("Predicate is comparison [{}] against property [{}]", ((ComparisonExpr) predicate).getOperator().name(), propertyName); switch (((ComparisonExpr) predicate).getOperator()) { case ValueEquals: logger.debug("Value: {}", literal.getValue().getJavaValue()); return Restrictions.eq(propertyName, literal.getValue().getJavaValue()); case ValueGreaterThan: logger.debug("Value: {}", literal.getValue().getJavaValue()); return Restrictions.gt(propertyName, literal.getValue().getJavaValue()); case ValueGreaterThanOrEquals: logger.debug("Value: {}", literal.getValue().getJavaValue()); return Restrictions.ge(propertyName, literal.getValue().getJavaValue()); case ValueLessThan: logger.debug("Value: {}", literal.getValue().getJavaValue()); return Restrictions.lt(propertyName, literal.getValue().getJavaValue()); case ValueLessThanOrEquals: logger.debug("Value: {}", literal.getValue().getJavaValue()); return Restrictions.le(propertyName, literal.getValue().getJavaValue()); case ValueNotEquals: logger.debug("Value: {}", literal.getValue().getJavaValue()); return Restrictions.ne(propertyName, literal.getValue().getJavaValue()); case GeneralEquals: /** * If atomic (not a sequence) then the 'in' restriction is not * usable (defaults to 'eq' restriction) since the argument is * an array of objects. */ if (literal.isAtomic()) { logger.debug("Value: {}", literal.getValue().getJavaValue()); return Restrictions.eq(propertyName, literal.getValue().getJavaValue()); } logger.debug("Values: {}", literal.getValues()); Object[] javaValues = new Object[literal.getValues().length]; for (int index = 0; index < literal.getValues().length; index++) javaValues[index] = ((com.klistret.cmdb.utility.saxon.Value) literal.getValues()[index]) .getJavaValue(); return Restrictions.in(propertyName, javaValues); case Matches: if (((ComparisonExpr) predicate).getOperands().size() != 2) throw new ApplicationException( String.format("Matches function [%s] expects 2 operands", predicate)); logger.debug("Value: {}", literal.getValue().getText()); return Restrictions.ilike(propertyName, literal.getValue().getText(), MatchMode.EXACT); case Exists: if (((ComparisonExpr) predicate).getOperands().size() != 1) throw new ApplicationException( String.format("Exists function [%s] expects only 1 operand", predicate)); return Restrictions.isNotNull(propertyName); case Empty: if (((ComparisonExpr) predicate).getOperands().size() != 1) throw new ApplicationException( String.format("Empty function [%s] expects only 1 operand", predicate)); return Restrictions.isNull(propertyName); default: throw new ApplicationException( String.format("Unexpected comparison operator [%s] handling predicates", ((ComparisonExpr) predicate).getOperator())); } default: throw new ApplicationException(String.format("Unexpected expr [%s] type for predicate", predicate)); } }
From source file:com.kodemore.hibernate.criteria.KmAbstractCriteria.java
License:Open Source License
public void addNotEqual(String property, Object value) { if (value == null) addIsNotNull(property);//ww w.j av a2 s. c om else _add(Restrictions.ne(property, value)); }
From source file:com.krawler.common.util.BuildCriteria.java
License:Open Source License
private static Criterion getCriteriaByCondition(Object value, Integer criteriaVal, String propertyname) { Criterion Criteriaobj;// w w w . j a v a 2 s .c o m switch (criteriaVal) { case ISNOTNULL: Criteriaobj = Restrictions.isNotNull(propertyname); break; case NOTIN: String[] strArr = String.valueOf(value).split(","); List ls = Arrays.asList(strArr); Criteriaobj = Restrictions.not(Restrictions.in(propertyname, ls)); break; case LIKE: Criteriaobj = Restrictions.or(Restrictions.like(propertyname, value + "%"), Restrictions.like(propertyname, "% " + value + "%")); break; case LE: Criteriaobj = Restrictions.le(propertyname, value); break; case GE: Criteriaobj = Restrictions.ge(propertyname, value); break; case ISNULL: Criteriaobj = Restrictions.isNull(propertyname); break; case IN: strArr = String.valueOf(value).split(","); ls = Arrays.asList(strArr); Criteriaobj = Restrictions.in(propertyname, ls); break; case NE: Criteriaobj = Restrictions.ne(propertyname, value); break; case LT: Criteriaobj = Restrictions.lt(propertyname, value); break; case GT: Criteriaobj = Restrictions.gt(propertyname, value); break; case EQ: default: Criteriaobj = Restrictions.eq(propertyname, value); break; } return Criteriaobj; }
From source file:com.lm.lic.manager.hibernate.LicenseDAO.java
License:Open Source License
/** * Find the number of licenses who are credited (paid for) but not yet used. * //from w w w . java 2 s . co m * @param isvId * @param prodId * @return */ public Integer findNumCreditedLics(Long isvId, Long prodId) { Integer numLics = 0; try { Criteria criteria = getSession().createCriteria(License.class); criteria.add(Restrictions.eq("isv.id", isvId)); criteria.add(Restrictions.eq("product.id", prodId)); criteria.add(Restrictions.eq("inUse", false)); criteria.add(Restrictions.eq("decom", false)); criteria.add(Restrictions.ne("paymentStatus", LicensePaymentStatus.OVERDRAFT.name())); criteria.setProjection(Projections.rowCount()); numLics = (Integer) criteria.list().get(0); } catch (RuntimeException re) { log.error("find by property name failed", re); throw re; } return numLics; }
From source file:com.lm.lic.manager.hibernate.LicenseDAO.java
License:Open Source License
public Integer findNumLeftLics(String isvId, String prodId) { Integer numLics = 0;/*from w w w.ja v a 2 s . co m*/ try { Long lpid = Long.parseLong(prodId); Long lisvid = Long.parseLong(isvId); Criteria criteria = getSession().createCriteria(License.class); criteria.add(Restrictions.eq("isv.id", lisvid)); criteria.add(Restrictions.eq("product.id", lpid)); criteria.add(Restrictions.ne("paymentStatus", LicensePaymentStatus.OVERDRAFT.name())); criteria.add(Restrictions.eq("inUse", true)); criteria.add(Restrictions.eq("decom", false)); criteria.setProjection(Projections.rowCount()); numLics = (Integer) criteria.list().get(0); } catch (RuntimeException re) { log.error("find by property name failed", re); throw re; } return numLics; }
From source file:com.lp.server.anfrage.ejbfac.AnfrageReportFacBean.java
License:Open Source License
/** * Diese Methode liefert eine Liste von allen Anfragen zu einem bestimmten * Artikel, die nach den eingegebenen Kriterien des Benutzers * zusammengestellt wird. <br>// www . java 2 s .c om * Achtung: Hibernate verwendet lazy initialization, d.h. der Zugriff auf * Collections muss innerhalb der Session erfolgen. * * @param reportAnfragestatistikKriterienDtoI * die Kriterien des Benutzers * @param theClientDto * der aktuelle Benutzer * @return ReportAnfragestatistikDto[] die Liste der Anfragen * @throws EJBExceptionLP * Ausnahme */ private ReportAnfragestatistikDto[] getReportAnfragestatistik( ReportAnfragestatistikKriterienDto reportAnfragestatistikKriterienDtoI, TheClientDto theClientDto) throws EJBExceptionLP { ReportAnfragestatistikDto[] aResult = null; SessionFactory factory = FLRSessionFactory.getFactory(); Session session = null; try { session = factory.openSession(); // Hiberante Criteria fuer alle Tabellen ausgehend von meiner // Haupttabelle anlegen, // nach denen ich filtern und sortieren kann Criteria crit = session.createCriteria(FLRAnfragepositionlieferdatenReport.class); // flranfragepositionlieferdatenReport > flranfragepositionReport Criteria critAnfragepositionReport = crit.createCriteria( AnfragepositionFac.FLR_ANFRAGEPOSITIONLIEFERDATENREPORT_FLRANFRAGEPOSITIONREPORT); // flranfragepositionlieferdatenReport > flranfragepositionReport > // flrartikel Criteria critArtikel = critAnfragepositionReport .createCriteria(AnfragepositionFac.FLR_ANFRAGEPOSITION_FLRARTIKEL); // flranfragepositionReport > flranfrage Criteria critAnfrage = critAnfragepositionReport .createCriteria(AnfragepositionFac.FLR_ANFRAGEPOSITION_FLRANFRAGE); // Einschraenkung auf den gewaehlten Artikel if (reportAnfragestatistikKriterienDtoI.getArtikelIId() != null) { critArtikel.add(Restrictions.eq("i_id", reportAnfragestatistikKriterienDtoI.getArtikelIId())); } // Einschraenkung der Anfragen auf den aktuellen Mandanten critAnfrage.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant())); // Einschraenken nach Status critAnfrage.add(Restrictions.ne(AnfrageFac.FLR_ANFRAGE_ANFRAGESTATUS_C_NR, AnfrageServiceFac.ANFRAGESTATUS_ANGELEGT)); critAnfrage.add(Restrictions.ne(AnfrageFac.FLR_ANFRAGE_ANFRAGESTATUS_C_NR, AnfrageServiceFac.ANFRAGESTATUS_STORNIERT)); // Einschraenken nach Anfrageart critAnfrage.add(Restrictions.ne(AnfrageFac.FLR_ANFRAGE_ANFRAGEART_C_NR, AnfrageServiceFac.ANFRAGEART_LIEFERGRUPPE)); // Einschraenkung nach Belegdatum von - bis if (reportAnfragestatistikKriterienDtoI.getDVon() != null) { critAnfrage.add(Restrictions.ge(AnfrageFac.FLR_ANFRAGE_T_BELEGDATUM, reportAnfragestatistikKriterienDtoI.getDVon())); } if (reportAnfragestatistikKriterienDtoI.getDBis() != null) { critAnfrage.add(Restrictions.le(AnfrageFac.FLR_ANFRAGE_T_BELEGDATUM, reportAnfragestatistikKriterienDtoI.getDBis())); } // es wird nach der Belegnummer sortiert critAnfrage.addOrder(Order.asc("c_nr")); List<?> list = crit.list(); aResult = new ReportAnfragestatistikDto[list.size()]; int iIndex = 0; Iterator<?> it = list.iterator(); ReportAnfragestatistikDto reportDto = null; while (it.hasNext()) { FLRAnfragepositionlieferdatenReport flranfragepositionlieferdaten = (FLRAnfragepositionlieferdatenReport) it .next(); FLRAnfragepositionReport flranfrageposition = flranfragepositionlieferdaten .getFlranfragepositionreport(); FLRAnfrage flranfrage = flranfrageposition.getFlranfrage(); reportDto = new ReportAnfragestatistikDto(); reportDto.setAnfrageCNr(flranfrage.getC_nr()); reportDto.setKundenname( flranfrage.getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1()); Date datBelegdatum = flranfrage.getT_belegdatum(); reportDto.setBelegdatumCNr(Helper.formatDatum(datBelegdatum, theClientDto.getLocUi())); reportDto.setIIndex(new Integer(iIndex)); reportDto.setNAngebotenemenge(flranfragepositionlieferdaten.getN_anliefermenge()); reportDto.setILieferzeit(flranfragepositionlieferdaten.getI_anlieferzeit()); // der Preis wird in Mandantenwaehrung angezeigt, es gilt der // hinterlegte Wechselkurs Double ddWechselkurs = flranfrage.getF_wechselkursmandantwaehrungzuanfragewaehrung(); BigDecimal bdPreisinmandantenwaehrung = flranfragepositionlieferdaten .getN_nettogesamtpreisminusrabatt().multiply(new BigDecimal(ddWechselkurs.doubleValue())); bdPreisinmandantenwaehrung = Helper.rundeKaufmaennisch(bdPreisinmandantenwaehrung, 4); checkNumberFormat(bdPreisinmandantenwaehrung); reportDto.setNAngebotenerpreis(bdPreisinmandantenwaehrung); reportDto.setNAngefragtemenge(flranfrageposition.getN_menge()); aResult[iIndex] = reportDto; iIndex++; } } finally { closeSession(session); } return aResult; }
From source file:com.lp.server.anfrage.ejbfac.AnfrageReportFacBean.java
License:Open Source License
/** * Diese Methode liefert eine Liste von allen Lieferdaten der Anfragen eines * Mandanten, die nach den eingegebenen Kriterien des Benutzers * zusammengestellt wird. <br>/*from w w w . j av a 2 s .c o m*/ * Achtung: Hibernate verwendet lazy initialization, d.h. der Zugriff auf * Collections muss innerhalb der Session erfolgen. * * @param kritDtoI * die Kriterien des Benutzers * @param theClientDto * der aktuelle Benutzer * @return ReportAnfrageLieferdatenuebersichtDto[] alle gewuenschten * Lieferdaten * @throws EJBExceptionLP * Ausnahme */ public ReportAnfrageLieferdatenuebersichtDto[] getListeReportAnfrageLiederdatenuebersicht( ReportAnfragelieferdatenuebersichtKriterienDto kritDtoI, TheClientDto theClientDto) throws EJBExceptionLP { ReportAnfrageLieferdatenuebersichtDto[] aResult = null; Session session = null; try { SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); // Criteria duerfen keine Texts oder Blobs enthalten! // Criteria anlegen fuer flranfragepositionlieferdatenreport > // flranfragepositionreport > flranfrage Criteria crit = session.createCriteria(FLRAnfragepositionlieferdatenReport.class); Criteria critAnfrageposition = crit.createCriteria( AnfragepositionFac.FLR_ANFRAGEPOSITIONLIEFERDATENREPORT_FLRANFRAGEPOSITIONREPORT); Criteria critAnfrage = critAnfrageposition .createCriteria(AnfragepositionFac.FLR_ANFRAGEPOSITION_FLRANFRAGE); // Einschraenken nach Mandant critAnfrage.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant())); // Einschraenken nach Status critAnfrage.add(Restrictions.ne(AnfrageFac.FLR_ANFRAGE_ANFRAGESTATUS_C_NR, AnfrageServiceFac.ANFRAGESTATUS_ANGELEGT)); critAnfrage.add(Restrictions.ne(AnfrageFac.FLR_ANFRAGE_ANFRAGESTATUS_C_NR, AnfrageServiceFac.ANFRAGESTATUS_STORNIERT)); // Einschraenken nach Anfrageart critAnfrage.add(Restrictions.ne(AnfrageFac.FLR_ANFRAGE_ANFRAGEART_C_NR, AnfrageServiceFac.ANFRAGEART_LIEFERGRUPPE)); // Belegdatum von bis: flranfragepositionlieferdatenreport > // flranfragepositionreport > flranfrage.t_belegdatum if (kritDtoI.getDVon() != null) { critAnfrage.add(Restrictions.ge(AnfrageFac.FLR_ANFRAGE_T_BELEGDATUM, kritDtoI.getDVon())); } if (kritDtoI.getDBis() != null) { critAnfrage.add(Restrictions.le(AnfrageFac.FLR_ANFRAGE_T_BELEGDATUM, kritDtoI.getDBis())); } // SK: Sortierung nach Bezeichnung und Bezeichnung2 critAnfrageposition.addOrder(Property.forName("c_bez").asc()); critAnfrageposition.addOrder(Property.forName("c_zbez").asc()); // Artikelcnr von bis: flranfragepositionlieferdaten > // flranfrageposition > flrartikel.c_nr Criteria critArtikel = critAnfrageposition .createCriteria(AnfragepositionFac.FLR_ANFRAGEPOSITION_FLRARTIKEL); if (kritDtoI.getArtikelCNrVon() != null || kritDtoI.getArtikelCNrBis() != null) { String cNrIdentvon = kritDtoI.getArtikelCNrVon(); String cNrIdentbis = kritDtoI.getArtikelCNrBis(); if (cNrIdentvon != null && cNrIdentvon.length() > 0 && cNrIdentbis != null && cNrIdentbis.length() > 0) { critArtikel.add(Restrictions.between("c_nr", cNrIdentvon, cNrIdentbis)); } else if (cNrIdentvon != null && cNrIdentvon.length() > 0) { critArtikel.add(Restrictions.ge("c_nr", cNrIdentvon)); } else if (cNrIdentbis != null && cNrIdentbis.length() > 0) { critArtikel.add(Restrictions.le("c_nr", cNrIdentbis)); } } // nur Projekt if (kritDtoI.getBNurProjekt()) { critAnfrage.add(Restrictions.eq("c_bez", kritDtoI.getProjektCBez())); } // inklusive Lieferdaten == null; Hibernate: per default null valued // properties are included // aber: aufgrund der Implementierung gilt: inklusive Lieferdaten == // 0 if (!kritDtoI.getBMitLiefermengenNull()) { crit.add(Restrictions.ne(AnfragepositionFac.FLR_ANFRAGEPOSITIONLIEFERDATEN_N_ANLIEFERMENGE, new BigDecimal(0))); } // Sortierung nach Projekt if (kritDtoI.getBSortierungNachProjekt()) { critAnfrage.addOrder(Property.forName("c_bez").asc()); } else { // per default wird nach der Artikelcnr sortiert critArtikel.addOrder(Property.forName("c_nr").asc()); } List<?> list = crit.list(); aResult = new ReportAnfrageLieferdatenuebersichtDto[list.size()]; int iIndex = 0; Iterator<?> it = list.iterator(); ReportAnfrageLieferdatenuebersichtDto reportDto = null; while (it.hasNext()) { FLRAnfragepositionlieferdatenReport flranfragepositionlieferdaten = (FLRAnfragepositionlieferdatenReport) it .next(); FLRAnfragepositionReport flranfrageposition = flranfragepositionlieferdaten .getFlranfragepositionreport(); FLRArtikel flrartikel = flranfrageposition.getFlrartikel(); FLRAnfrage flranfrage = flranfrageposition.getFlranfrage(); reportDto = new ReportAnfrageLieferdatenuebersichtDto(); reportDto.setCNrArtikelcnr(flranfrageposition.getFlrartikel().getC_nr()); reportDto.setNLiefermenge(flranfragepositionlieferdaten.getN_anliefermenge()); reportDto.setEinheitCNr(flrartikel.getEinheit_c_nr().trim()); reportDto.setArtikelIId(flrartikel.getI_id()); reportDto.setNLieferpreisInAnfragewaehrung( flranfragepositionlieferdaten.getN_nettogesamtpreisminusrabatt()); reportDto.setAnfrageIId(flranfrage.getI_id()); reportDto.setIAnlieferzeit(flranfragepositionlieferdaten.getI_anlieferzeit()); reportDto.setLieferantName( flranfrage.getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1()); reportDto.setAnfrageCNr(flranfrage.getC_nr()); reportDto.setAnfrageCBez(flranfrage.getC_bez()); reportDto.setWaehrungCNr(flranfrage.getWaehrung_c_nr_anfragewaehrung()); reportDto.setFWechselkursMandantwaehrungZuAnfragewaehrung( flranfrage.getF_wechselkursmandantwaehrungzuanfragewaehrung()); aResult[iIndex] = reportDto; iIndex++; } } finally { closeSession(session); } return aResult; }
From source file:com.lp.server.angebot.bl.AngebotUebersichtHandler.java
License:Open Source License
/** * Der Wert aller Angebote in Mandantenwaehrung, die lt. Belegdatum in einem * bestimmten Zeitraum angelegt wurden und deren Status != (Angelegt || * Storniert) ist. Optional kann auch nach einem bestimmten Vertreter * ausgewertet werden.//from ww w. j a va 2 s . c om * * @param gcBerechnungsdatumVonI * Belegdatum von * @param gcBerechnungsdatumBisI * Belegdatum bis * @param iIdVertreterI * der Vertreter, null erlaubt * @param iIndexSpaltentyp * fuer welche Spalte soll die Berechnung erfolgen * @param cNrUserI * der aktuelle Benutzer * @return BigDecimal der Gesamtwert in Mandantenwaehrung * @throws EJBExceptionLP * Ausnahme */ private BigDecimal getWertInMandantenwaehrung(GregorianCalendar gcBerechnungsdatumVonI, GregorianCalendar gcBerechnungsdatumBisI, Integer iIdVertreterI, int iIndexSpaltentyp, TheClientDto theClientDto) throws EJBExceptionLP { BigDecimal nGesamtwertInMandantenwaehrung = new BigDecimal(0); Session session = null; try { // System.out.println("Spaltentyp: " + iIndexSpaltentyp); // System.out.println("Von: " + // Helper.formatDatum(gcBerechnungsdatumVonI.getTime(), // getTheClient(sCurrentUser).getLocUi())); // System.out.println("Bis: " + // Helper.formatDatum(gcBerechnungsdatumBisI.getTime(), // getTheClient(sCurrentUser).getLocUi())); SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); // Criteria duerfen keine Texts oder Blobs enthalten! // Criteria anlegen Criteria critAngebotposition = session.createCriteria(FLRAngebotpositionReport.class); Criteria critAngebot = critAngebotposition .createCriteria(AngebotpositionFac.FLR_ANGEBOTPOSITION_FLRANGEBOT); // zuerst alle jene Einschraenkungen, die fuer alle Spaltentypen der // Uebersicht gelten critAngebot.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant())); if (iIdVertreterI != null) { critAngebot.add(Restrictions.eq(AngebotFac.FLR_ANGEBOT_VERTRETER_I_ID, iIdVertreterI)); } // UW 22.03.06 alle nicht alternativen Positionen mit positiver // Menge critAngebotposition.add(Restrictions.isNotNull(AngebotpositionFac.FLR_ANGEBOTPOSITION_N_MENGE)); critAngebotposition .add(Restrictions.gt(AngebotpositionFac.FLR_ANGEBOTPOSITION_N_MENGE, new BigDecimal(0))); critAngebotposition.add( Restrictions.eq(AngebotpositionFac.FLR_ANGEBOTPOSITION_B_ALTERNATIVE, new Short((short) 0))); // die folgenden Einschraenkungen sind vom Spaltentyp der Ubersicht // abhaengig // IDX_GESAMT: Basis ist Belegdatum, alle Angebote mit Status != // (Angelegt || Storniert) // IDX_OFFEN: Basis ist Belegdatum, alle Angebote mit Status Offen // IDX_OFFENTERMINBEWERTET: Basis ist Realisierungstermin, alle // Angebote mit Status offen; // der Wert wird jeweils mit der Auftragswahrscheinlichkeit // multipliziert // IDX_BESTELLT: Basis ist Belegdatum, Erledigungsgrund == Auftrag // erhalten if (iIndexSpaltentyp == IDX_GESAMT) { critAngebot.add(Restrictions.ne(AngebotFac.FLR_ANGEBOT_ANGEBOTSTATUS_C_NR, AngebotServiceFac.ANGEBOTSTATUS_ANGELEGT)); critAngebot.add(Restrictions.ne(AngebotFac.FLR_ANGEBOT_ANGEBOTSTATUS_C_NR, AngebotServiceFac.ANGEBOTSTATUS_STORNIERT)); } else if (iIndexSpaltentyp == IDX_OFFEN || iIndexSpaltentyp == IDX_OFFENTERMINBEWERTET) { critAngebot.add(Restrictions.eq(AngebotFac.FLR_ANGEBOT_ANGEBOTSTATUS_C_NR, AngebotServiceFac.ANGEBOTSTATUS_OFFEN)); } else if (iIndexSpaltentyp == IDX_BESTELLT) { critAngebot.add(Restrictions.eq(AngebotFac.FLR_ANGEBOT_ANGEBOTSTATUS_C_NR, AngebotServiceFac.ANGEBOTSTATUS_ERLEDIGT)); critAngebot.add(Restrictions.eq(AngebotFac.FLR_ANGEBOT_ANGEBOTERLEDIGUNGSGRUND_C_NR, AngebotServiceFac.ANGEBOTERLEDIGUNGSGRUND_AUFTRAGERHALTEN)); } if (iIndexSpaltentyp == IDX_GESAMT || iIndexSpaltentyp == IDX_OFFEN || iIndexSpaltentyp == IDX_BESTELLT) { if (gcBerechnungsdatumVonI.getTime() != null) { critAngebot.add( Restrictions.ge(AngebotFac.FLR_ANGEBOT_T_BELEGDATUM, gcBerechnungsdatumVonI.getTime())); } if (gcBerechnungsdatumBisI.getTime() != null) { critAngebot.add( Restrictions.lt(AngebotFac.FLR_ANGEBOT_T_BELEGDATUM, gcBerechnungsdatumBisI.getTime())); } } if (iIndexSpaltentyp == IDX_OFFENTERMINBEWERTET) { if (gcBerechnungsdatumVonI.getTime() != null) { critAngebot.add(Restrictions.ge(AngebotFac.FLR_ANGEBOT_T_REALISIERUNGSTERMIN, gcBerechnungsdatumVonI.getTime())); } if (gcBerechnungsdatumBisI.getTime() != null) { critAngebot.add(Restrictions.lt(AngebotFac.FLR_ANGEBOT_T_REALISIERUNGSTERMIN, gcBerechnungsdatumBisI.getTime())); } } List<?> list = critAngebotposition.list(); int iIndex = 0; Iterator<?> it = list.iterator(); while (it.hasNext()) { FLRAngebotpositionReport flrangebotposition = (FLRAngebotpositionReport) it.next(); // der Beitrag der einzelnen Position in Angebotswaehrung BigDecimal nBeitragDerPositionInAngebotswaehrung = flrangebotposition .getN_nettogesamtpreisplusversteckteraufschlagminusrabatte() .multiply(flrangebotposition.getN_menge()); BigDecimal nBeitragDerPositionInMandantenwaehrung = nBeitragDerPositionInAngebotswaehrung .multiply(Helper.getKehrwert(new BigDecimal(flrangebotposition.getFlrangebot() .getF_wechselkursmandantwaehrungzuangebotswaehrung().doubleValue()))); if (iIndexSpaltentyp == IDX_OFFENTERMINBEWERTET) { double dAuftragswahrscheinlichkeit = flrangebotposition.getFlrangebot() .getF_auftragswahrscheinlichkeit().doubleValue(); nBeitragDerPositionInMandantenwaehrung = nBeitragDerPositionInMandantenwaehrung .multiply(new BigDecimal(dAuftragswahrscheinlichkeit).movePointLeft(2)); } nBeitragDerPositionInMandantenwaehrung = Helper .rundeKaufmaennisch(nBeitragDerPositionInMandantenwaehrung, 4); checkNumberFormat(nBeitragDerPositionInMandantenwaehrung); nGesamtwertInMandantenwaehrung = nGesamtwertInMandantenwaehrung .add(nBeitragDerPositionInMandantenwaehrung); iIndex++; } } catch (Throwable t) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FLR, new Exception(t)); } finally { try { session.close(); } catch (HibernateException he) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_HIBERNATE, he); } } return nGesamtwertInMandantenwaehrung; }
From source file:com.lp.server.angebot.ejbfac.AngebotReportFacBean.java
License:Open Source License
/** * reportflr: 2 Diese Methode liefert eine Liste von allen * Angebotspositionen eines Mandanten, die nach den eingegebenen Kriterien * des Benutzers zusammengestellt wird. <br> * Achtung: Hibernate verwendet lazy initialization, d.h. der Zugriff auf * Collections muss innerhalb der Session erfolgen. * /*ww w. j a v a2s .c o m*/ * @param kritDtoI * die Filter- und Sortierkriterien * @param cAktuellerReport * wird fuer alle und offene Angebote verwendet * @param theClientDto * der aktuelle Benutzer * @return ReportAngebotpositionDto[] die Liste aller Positionen. * @throws EJBExceptionLP * Ausnahme */ private ReportAngebotpositionJournalDto[] getListeAngebotpositionenJournal( ReportAngebotJournalKriterienDto kritDtoI, String erledigungsgrundCNr, String cAktuellerReport, TheClientDto theClientDto) throws EJBExceptionLP { ReportAngebotpositionJournalDto[] aResult = null; Session session = null; // es gilt das Locale des Benutzers Locale locDruck = theClientDto.getLocUi(); try { SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); // Criteria duerfen keine Texts oder Blobs enthalten! // Criteria anlegen fuer alle referenzierten Objekte anlegen Criteria crit = session.createCriteria(FLRAngebotpositionReport.class); Criteria critAngebot = crit.createCriteria(AngebotpositionFac.FLR_ANGEBOTPOSITION_FLRANGEBOT); // Einschraenken nach Mandant critAngebot.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant())); // Einschraenken nach Status if (cAktuellerReport.equals(AngebotReportFac.REPORT_ANGEBOT_JOURNAL_ALLE)) { if (kritDtoI.getBNurErledigteAngebote()) { critAngebot.add(Restrictions.eq(AngebotFac.FLR_ANGEBOT_ANGEBOTSTATUS_C_NR, AngebotServiceFac.ANGEBOTSTATUS_ERLEDIGT)); if (erledigungsgrundCNr != null) { critAngebot.add(Restrictions.eq(AngebotFac.FLR_ANGEBOT_ANGEBOTERLEDIGUNGSGRUND_C_NR, erledigungsgrundCNr)); } } else { // PJ 07/0011040 /* * critAngebot.add(Restrictions.ne( * AngebotFac.FLR_ANGEBOT_ANGEBOTSTATUS_C_NR, * AngebotServiceFac.ANGEBOTSTATUS_ANGELEGT)); */ critAngebot.add(Restrictions.ne(AngebotFac.FLR_ANGEBOT_ANGEBOTSTATUS_C_NR, AngebotServiceFac.ANGEBOTSTATUS_STORNIERT)); } } else if (cAktuellerReport.equals(AngebotReportFac.REPORT_ANGEBOT_JOURNAL_OFFENE)) { critAngebot.add(Restrictions.eq(AngebotFac.FLR_ANGEBOT_ANGEBOTSTATUS_C_NR, AngebotServiceFac.ANGEBOTSTATUS_OFFEN)); } // UW 22.03.06 alle nicht alternativen Positionen mit positiver // Menge crit.add(Restrictions.isNotNull(AngebotpositionFac.FLR_ANGEBOTPOSITION_N_MENGE)); crit.add(Restrictions.gt(AngebotpositionFac.FLR_ANGEBOTPOSITION_N_MENGE, new BigDecimal(0))); crit.add(Restrictions.eq(AngebotpositionFac.FLR_ANGEBOTPOSITION_B_ALTERNATIVE, new Short((short) 0))); // Einschraenkung nach einer bestimmten Kostenstelle if (kritDtoI.kostenstelleIId != null) { critAngebot .add(Restrictions.eq(AngebotFac.FLR_ANGEBOT_KOSTENSTELLE_I_ID, kritDtoI.kostenstelleIId)); } // Einschraenkung nach einem bestimmten Kunden if (kritDtoI.kundeIId != null) { critAngebot .add(Restrictions.eq(AngebotFac.FLR_ANGEBOT_KUNDE_I_ID_ANGEBOTSADRESSE, kritDtoI.kundeIId)); } // Einschraenkung nach einem bestimmten Vertreter if (kritDtoI.vertreterIId != null) { critAngebot.add(Restrictions.eq(AngebotFac.FLR_ANGEBOT_VERTRETER_I_ID, kritDtoI.vertreterIId)); } /* * // Belegdatum von bis: flrangebotposition > * flrangebot.t_belegdatum if (kritDtoI.dVon != null) { * critAngebot.add(Restrictions.ge( * AngebotFac.FLR_ANGEBOT_T_BELEGDATUM, kritDtoI.dVon)); } * * if (kritDtoI.dBis != null) { critAngebot.add(Restrictions.le( * AngebotFac.FLR_ANGEBOT_T_BELEGDATUM, kritDtoI.dBis)); } */ if (kritDtoI.dVon != null && kritDtoI.dBis != null) { Calendar cal = Calendar.getInstance(); Timestamp von = null; cal.setTimeInMillis(kritDtoI.dVon.getTime()); cal.set(Calendar.MINUTE, 0); cal.set(Calendar.SECOND, 0); cal.set(Calendar.HOUR_OF_DAY, 0); cal.set(Calendar.MILLISECOND, 0); von = new Timestamp(cal.getTimeInMillis()); Timestamp bis = null; cal.setTimeInMillis(kritDtoI.dBis.getTime()); cal.set(Calendar.MINUTE, 59); cal.set(Calendar.SECOND, 59); cal.set(Calendar.HOUR_OF_DAY, 23); bis = new Timestamp(cal.getTimeInMillis()); critAngebot.add(Restrictions.between(AngebotFac.FLR_ANGEBOT_T_BELEGDATUM, von, bis)); } // Einschraenkung nach Belegnummer von - bis LpBelegnummerFormat f = getBelegnummerGeneratorObj().getBelegnummernFormat(theClientDto.getMandant()); Integer iGeschaeftsjahr = getParameterFac().getGeschaeftsjahr(theClientDto.getMandant()); String sMandantKuerzel = getParameterFac().getMandantparameter(theClientDto.getMandant(), ParameterFac.KATEGORIE_ALLGEMEIN, ParameterFac.PARAMETER_BELEGNUMMER_MANDANTKENNUNG).getCWert(); if (kritDtoI.sBelegnummerVon != null) { critAngebot.add(Restrictions.ge("c_nr", HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr, sMandantKuerzel, kritDtoI.sBelegnummerVon))); } if (kritDtoI.sBelegnummerBis != null) { critAngebot.add(Restrictions.le("c_nr", HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr, sMandantKuerzel, kritDtoI.sBelegnummerBis))); } // Sortierung nach Kostenstelle ist immer die erste Sortierung if (kritDtoI.bSortiereNachKostenstelle) { critAngebot.createCriteria(AngebotFac.FLR_ANGEBOT_FLRKOSTENSTELLE).addOrder(Order.asc("c_nr")); } // Sortierung nach Kunde, eventuell innerhalb der Kostenstelle if (kritDtoI.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) { critAngebot.createCriteria(AngebotFac.FLR_ANGEBOT_FLRKUNDE).createCriteria(KundeFac.FLR_PARTNER) .addOrder(Order.asc(PartnerFac.FLR_PARTNER_NAME1NACHNAMEFIRMAZEILE1)); } // Sortierung nach Vertreter, eventuell innerhalb der Kostenstelle if (kritDtoI.iSortierung == ReportAngebotJournalKriterienDto.KRIT_SORT_NACH_VERTRETER) { critAngebot.createCriteria(AngebotFac.FLR_ANGEBOT_FLRVERTRETER) .addOrder(Order.asc(PersonalFac.FLR_PERSONAL_C_KURZZEICHEN)); } if (cAktuellerReport.equals(AngebotReportFac.REPORT_ANGEBOT_JOURNAL_ALLE)) { if (kritDtoI.getBNurErledigteAngebote()) { critAngebot.addOrder(Order.asc(AngebotFac.FLR_ANGEBOT_ANGEBOTERLEDIGUNGSGRUND_C_NR)); } else { critAngebot.addOrder(Order.asc("c_nr")); } } else { // es wird in jedem Fall nach der Belegnummer sortiert critAngebot.addOrder(Order.asc("c_nr")); } List<?> list = crit.list(); aResult = new ReportAngebotpositionJournalDto[list.size()]; int iIndex = 0; Iterator<?> it = list.iterator(); ReportAngebotpositionJournalDto reportDto = null; while (it.hasNext()) { FLRAngebotpositionReport flrangebotposition = (FLRAngebotpositionReport) it.next(); FLRAngebot flrangebot = flrangebotposition.getFlrangebot(); FLRArtikel flrartikel = flrangebotposition.getFlrartikel(); reportDto = new ReportAngebotpositionJournalDto(); reportDto.setIId(flrangebot.getI_id()); reportDto.setCNr(flrangebot.getC_nr()); if (flrangebot.getAngeboterledigungsgrund_c_nr() != null) { AngeboterledigungsgrundDto angeboterledigungsgrundDto = getAngebotServiceFac() .angeboterledigungsgrundFindByPrimaryKey(flrangebot.getAngeboterledigungsgrund_c_nr(), theClientDto); reportDto.setAngeboterledigungsgrundCNr(angeboterledigungsgrundDto.getBezeichnung()); } reportDto.setKundeCName1(flrangebot.getFlrkunde().getFlrpartner().getC_name1nachnamefirmazeile1()); reportDto.setKundeCName2(flrangebot.getFlrkunde().getFlrpartner().getC_name2vornamefirmazeile2()); reportDto.setKundeCName3(flrangebot.getFlrkunde().getFlrpartner().getC_name3vorname2abteilung()); reportDto.setKundeStrasse(flrangebot.getFlrkunde().getFlrpartner().getC_strasse()); if (flrangebot.getFlrkunde().getFlrpartner().getFlrlandplzort() != null) { reportDto.setKundePlz(flrangebot.getFlrkunde().getFlrpartner().getFlrlandplzort().getC_plz()); reportDto.setKundeLkz( flrangebot.getFlrkunde().getFlrpartner().getFlrlandplzort().getFlrland().getC_lkz()); reportDto.setKundeOrt( flrangebot.getFlrkunde().getFlrpartner().getFlrlandplzort().getFlrort().getC_name()); } reportDto.setKundeEmail(flrangebot.getFlrkunde().getFlrpartner().getC_email()); reportDto.setKundeFax(flrangebot.getFlrkunde().getFlrpartner().getC_fax()); reportDto.setKundeTelefon(flrangebot.getFlrkunde().getFlrpartner().getC_telefon()); AngebotDto angebotDto = getAngebotFac().angebotFindByPrimaryKey(flrangebot.getI_id(), theClientDto); if (angebotDto.getAnsprechpartnerIIdKunde() != null) { AnsprechpartnerDto ansprechpartnerDto = getAnsprechpartnerFac() .ansprechpartnerFindByPrimaryKey(angebotDto.getAnsprechpartnerIIdKunde(), theClientDto); reportDto.setAnsprechpartnerNachname( ansprechpartnerDto.getPartnerDto().getCName1nachnamefirmazeile1()); reportDto.setAnsprechpartnerVorname( ansprechpartnerDto.getPartnerDto().getCName2vornamefirmazeile2()); reportDto.setAnsprechpartnerAnrede(ansprechpartnerDto.getPartnerDto().getAnredeCNr()); reportDto.setAnsprechpartnerTitel(ansprechpartnerDto.getPartnerDto().getCTitel()); reportDto.setAnsprechpartnerFax(ansprechpartnerDto.getCDirektfax()); reportDto.setAnsprechpartnerFaxDw(ansprechpartnerDto.getCFax()); reportDto.setAnsprechpartnerTelefon(ansprechpartnerDto.getCHandy()); reportDto.setAnsprechpartnerTelefonDw(ansprechpartnerDto.getCTelefon()); reportDto.setAnsprechpartnerEmail(ansprechpartnerDto.getCEmail()); } reportDto.setKostenstelleCNr(flrangebot.getFlrkostenstelle().getC_nr()); reportDto.setVertreterCName1( getPersonalFac().personalFindByPrimaryKey(flrangebot.getVertreter_i_id(), theClientDto) .getPartnerDto().formatFixName2Name1()); reportDto.setProjektBez(flrangebot.getC_bez()); reportDto.setRealisierungstermin( Helper.formatDatum(flrangebot.getT_realisierungstermin(), theClientDto.getLocUi())); if (flrangebot.getAngeboterledigungsgrund_c_nr() != null) if (flrangebot.getAngeboterledigungsgrund_c_nr() .equals(AngebotServiceFac.ANGEBOTERLEDIGUNGSGRUND_AUFTRAGERHALTEN)) { AuftragDto[] auftrag = getAuftragFac().auftragFindByAngebotIId(flrangebot.getI_id(), theClientDto); if (auftrag != null && auftrag.length > 0) { reportDto.setErledigungsgrundABNr(auftrag[0].getCNr()); } } // UW 08.03.06 Es kann sich um eine Ident, Handeingabe oder // AGStueckliste handeln String identCNr = null; String identCBez = null; if (flrangebotposition.getAngebotpositionart_c_nr() .equals(AngebotServiceFac.ANGEBOTPOSITIONART_IDENT)) { identCNr = flrartikel.getC_nr(); identCBez = getArtikelFac().formatArtikelbezeichnungEinzeiligOhneExc(flrartikel.getI_id(), theClientDto.getLocUi()); } else if (flrangebotposition.getAngebotpositionart_c_nr() .equals(AngebotServiceFac.ANGEBOTPOSITIONART_AGSTUECKLISTE)) { identCBez = flrangebotposition.getFlragstkl().getC_bez(); } else if (flrangebotposition.getAngebotpositionart_c_nr() .equals(AngebotServiceFac.ANGEBOTPOSITIONART_HANDEINGABE)) { identCBez = getArtikelFac().formatArtikelbezeichnungEinzeiligOhneExc(flrartikel.getI_id(), theClientDto.getLocUi()); } reportDto.setArtikelCNr(identCNr); reportDto.setArtikelCBez(identCBez); reportDto.setNMenge(flrangebotposition.getN_menge()); reportDto.setEinheitCNr(flrangebotposition.getEinheit_c_nr() == null ? "" : flrangebotposition.getEinheit_c_nr().trim()); reportDto.setDAuftragwahrscheinlichkeit(flrangebot.getF_auftragswahrscheinlichkeit()); reportDto.setNWert(flrangebot.getN_gesamtangebotswertinangebotswaehrung()); // Umrechnen in Mandantenwaehrung, Positionspreise sind in // Belegwaehrung abgelegt BigDecimal nPreisAmDruck = flrangebotposition .getN_nettogesamtpreisplusversteckteraufschlagminusrabatte(); nPreisAmDruck = getBetragMalWechselkurs(nPreisAmDruck, Helper.getKehrwert(new BigDecimal( flrangebot.getF_wechselkursmandantwaehrungzuangebotswaehrung().doubleValue()))); reportDto.setNPreis(nPreisAmDruck); aResult[iIndex] = reportDto; iIndex++; } } catch (Throwable t) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FLR, new Exception(t)); } finally { try { session.close(); } catch (HibernateException he) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_HIBERNATE, he); } } return aResult; }
From source file:com.lp.server.artikel.ejbfac.ReservierungFacBean.java
License:Open Source License
/** * Reservierungen pruefen. 1. Bestehende Reservierungseintraege aus * Auftrag/Los 2. Lose pruefen, ob die Reservierungen richtig eingetragen * sind. 3. Auftraege pruefen, ob die Reservierungen richtig eingetragen * sind.//from ww w .j a v a 2s .com * * @param theClientDto * String * @throws EJBExceptionLP */ public void pruefeReservierungen(TheClientDto theClientDto) throws EJBExceptionLP { Session session = FLRSessionFactory.getFactory().openSession(); String hqlDelete = "delete FROM FLRArtikelreservierung"; session.createQuery(hqlDelete).executeUpdate(); session.close(); // Lose session = FLRSessionFactory.getFactory().openSession(); org.hibernate.Criteria lossollmaterial = session.createCriteria(FLRLossollmaterial.class); lossollmaterial.createCriteria(FertigungFac.FLR_LOSSOLLMATERIAL_FLRLOS) .add(Restrictions.eq(FertigungFac.FLR_LOS_STATUS_C_NR, FertigungFac.STATUS_ANGELEGT)); // Query ausfuehren List<?> lossollList = lossollmaterial.list(); Iterator<?> lossollListIterator = lossollList.iterator(); while (lossollListIterator.hasNext()) { FLRLossollmaterial lossollmat = (FLRLossollmaterial) lossollListIterator.next(); // Fuer angelegte Lose MUSS es einen Reservierungseintrag geben. // nur fuer Artikel if (lossollmat.getFlrartikel() != null) { ArtikelreservierungDto resDto = new ArtikelreservierungDto(); resDto.setArtikelIId(lossollmat.getFlrartikel().getI_id()); resDto.setCBelegartnr(LocaleFac.BELEGART_LOS); resDto.setIBelegartpositionid(lossollmat.getI_id()); resDto.setNMenge(lossollmat.getN_menge()); // PJ17994 resDto.setTLiefertermin(Helper.addiereTageZuTimestamp( new java.sql.Timestamp(lossollmat.getFlrlos().getT_produktionsbeginn().getTime()), lossollmat.getI_beginnterminoffset())); // anlegen createArtikelreservierung(resDto); myLogger.warn(theClientDto.getIDUser(), "Reservierung nachgetragen: " + resDto); } } session.close(); // Auftraege session = FLRSessionFactory.getFactory().openSession(); org.hibernate.Criteria abPosCrit = session.createCriteria(FLRAuftragposition.class); // nur Artikel-Positionen abPosCrit.add(Restrictions.isNotNull(AuftragpositionFac.FLR_AUFTRAGPOSITION_FLRARTIKEL)); org.hibernate.Criteria abCrit = abPosCrit.createCriteria(AuftragpositionFac.FLR_AUFTRAGPOSITION_FLRAUFTRAG); // Rahmenauftraege werden ignoriert, da diese keine Reservierungen // ausloesen. abCrit.add(Restrictions.ne(AuftragFac.FLR_AUFTRAG_AUFTRAGART_C_NR, AuftragServiceFac.AUFTRAGART_RAHMEN)); // Nur Sataus Offen und Teilerledigt String[] stati = new String[3]; stati[0] = AuftragServiceFac.AUFTRAGSTATUS_OFFEN; stati[1] = AuftragServiceFac.AUFTRAGSTATUS_TEILERLEDIGT; stati[2] = AuftragServiceFac.AUFTRAGSTATUS_ANGELEGT; abCrit.add(Restrictions.in(AuftragFac.FLR_AUFTRAG_AUFTRAGSTATUS_C_NR, stati)); // Query ausfuehren List<?> abposList = abPosCrit.list(); Iterator<?> abPosListIterator = abposList.iterator(); while (abPosListIterator.hasNext()) { FLRAuftragposition abPos = (FLRAuftragposition) abPosListIterator.next(); // Fuer offene Auftraege MUSS es einen Reservierungseintrag geben. // (ausser positionsstatus = erledigt) // nur fuer noch nicht erledigte Auftragspositionen mit offener // Menge != 0 if (abPos.getN_offenemenge().compareTo(new BigDecimal(0)) != 0 && !abPos.getAuftragpositionstatus_c_nr() .equals(AuftragServiceFac.AUFTRAGPOSITIONSTATUS_ERLEDIGT)) { ArtikelreservierungDto resDto = new ArtikelreservierungDto(); resDto.setArtikelIId(abPos.getFlrartikel().getI_id()); resDto.setCBelegartnr(LocaleFac.BELEGART_AUFTRAG); resDto.setIBelegartpositionid(abPos.getI_id()); resDto.setNMenge(abPos.getN_offenemenge()); java.sql.Timestamp tLiefertermin; if (abPos.getN_offenemenge().compareTo(new BigDecimal(0)) < 0) { // Negative Menge -> Finaltermin tLiefertermin = new java.sql.Timestamp(abPos.getFlrauftrag().getT_finaltermin().getTime()); } else { // Positive Menge -> Liefertermin AuftragpositionDto abPosDto = null; try { abPosDto = getAuftragpositionFac().auftragpositionFindByPrimaryKey(abPos.getI_id()); } catch (RemoteException ex2) { throwEJBExceptionLPRespectOld(ex2); } tLiefertermin = abPosDto.getTUebersteuerbarerLiefertermin(); } resDto.setTLiefertermin(tLiefertermin); // anlegen createArtikelreservierung(resDto); myLogger.warn(theClientDto.getIDUser(), "Reservierung nachgetragen: " + resDto); } } session.close(); // Auftraege session = FLRSessionFactory.getFactory().openSession(); org.hibernate.Criteria speiseplan = session.createCriteria(FLRSpeiseplanposition.class); speiseplan.createCriteria("flrspeiseplan") .add(Restrictions.ge("t_datum", Helper.cutTimestamp(new Timestamp(System.currentTimeMillis())))); // Query ausfuehren List<?> speiseplanList = speiseplan.list(); Iterator<?> speiseplanListIterator = speiseplanList.iterator(); while (speiseplanListIterator.hasNext()) { FLRSpeiseplanposition flrSpeiseplanposition = (FLRSpeiseplanposition) speiseplanListIterator.next(); if (flrSpeiseplanposition.getN_menge().doubleValue() > 0) { ArtikelreservierungDto resDto = new ArtikelreservierungDto(); resDto.setArtikelIId(flrSpeiseplanposition.getArtikel_i_id()); resDto.setCBelegartnr(LocaleFac.BELEGART_KUECHE); resDto.setIBelegartpositionid(flrSpeiseplanposition.getI_id()); resDto.setNMenge(flrSpeiseplanposition.getN_menge()); resDto.setTLiefertermin( new Timestamp(flrSpeiseplanposition.getFlrspeiseplan().getT_datum().getTime())); createArtikelreservierung(resDto); myLogger.warn(theClientDto.getIDUser(), "Reservierung nachgetragen: " + resDto); } } session.close(); myLogger.exit("Reservierungspr\u00FCfung abgeschlossen"); }