Example usage for org.hibernate.criterion Restrictions ne

List of usage examples for org.hibernate.criterion Restrictions ne

Introduction

In this page you can find the example usage for org.hibernate.criterion Restrictions ne.

Prototype

public static SimpleExpression ne(String propertyName, Object value) 

Source Link

Document

Apply a "not equal" constraint to the named property

Usage

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");

}