Example usage for org.hibernate Criteria createCriteria

List of usage examples for org.hibernate Criteria createCriteria

Introduction

In this page you can find the example usage for org.hibernate Criteria createCriteria.

Prototype

public Criteria createCriteria(String associationPath) throws HibernateException;

Source Link

Document

Create a new Criteria, "rooted" at the associated entity.

Usage

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 a v  a  2 s  .com*/
 * 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 w  ww . j  av a  2 s.c o  m*/
 * 
 * @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  a 2s  . 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.angebot.ejbfac.AngebotReportFacBean.java

License:Open Source License

private ReportAngebotsstatistikDto[] getReportAngebotsstatistik(
        ReportAngebotsstatistikKriterienDto reportAngebotsstatistikKriterienDtoI, TheClientDto theClientDto)
        throws EJBExceptionLP {

    ReportAngebotsstatistikDto[] aResult = null;
    SessionFactory factory = FLRSessionFactory.getFactory();
    Session session = null;// w w w .  j  a v  a  2 s .c  o m

    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(FLRAngebotpositionReport.class);

        // flranfragepositionlieferdatenReport > flranfragepositionReport >
        // flrartikel
        Criteria critArtikel = crit.createCriteria("flrartikel");

        // flranfragepositionReport > flranfrage
        Criteria critAngebot = crit.createCriteria("flrangebot");

        // Einschraenkung der Anfragen auf den aktuellen Mandanten
        critAngebot.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant()));

        critArtikel.add(Restrictions.eq("i_id", reportAngebotsstatistikKriterienDtoI.getArtikelIId()));

        // Einschraenkung nach Belegdatum von - bis
        if (reportAngebotsstatistikKriterienDtoI.getDVon() != null) {
            critAngebot.add(Restrictions.ge(AngebotFac.FLR_ANGEBOT_T_BELEGDATUM,
                    reportAngebotsstatistikKriterienDtoI.getDVon()));
        }

        if (reportAngebotsstatistikKriterienDtoI.getDBis() != null) {
            critAngebot.add(Restrictions.le(AngebotFac.FLR_ANGEBOT_T_BELEGDATUM,
                    reportAngebotsstatistikKriterienDtoI.getDBis()));
        }

        critAngebot.addOrder(Order.desc("c_nr"));
        crit.addOrder(Order.asc("i_sort"));

        List<?> list = crit.list();
        aResult = new ReportAngebotsstatistikDto[list.size()];
        int iIndex = 0;
        Iterator<?> it = list.iterator();
        ReportAngebotsstatistikDto reportDto = null;

        while (it.hasNext()) {
            FLRAngebotpositionReport flrangebotpositionlieferdaten = (FLRAngebotpositionReport) it.next();
            FLRAngebot flrangebot = flrangebotpositionlieferdaten.getFlrangebot();

            reportDto = new ReportAngebotsstatistikDto();
            reportDto.setAngebotCNr(flrangebot.getC_nr());
            reportDto.setKundenname(flrangebot.getFlrkunde().getFlrpartner().getC_name1nachnamefirmazeile1());

            Date datBelegdatum = new Date(flrangebot.getT_belegdatum().getTime());
            reportDto.setBelegdatumCNr(Helper.formatDatum(datBelegdatum, theClientDto.getLocUi()));

            reportDto.setIIndex(new Integer(iIndex));
            reportDto.setNAngebotenemenge(flrangebotpositionlieferdaten.getN_menge());

            // der Preis wird in Mandantenwaehrung angezeigt, es gilt der
            // hinterlegte Wechselkurs

            BigDecimal bdPreisinmandantenwaehrung = flrangebotpositionlieferdaten
                    .getN_nettogesamtpreisplusversteckteraufschlagminusrabatte();

            reportDto.setNAngebotenerpreis(bdPreisinmandantenwaehrung);
            reportDto.setNMaterialzuschlag(flrangebotpositionlieferdaten.getN_materialzuschlag());

            reportDto.setNAngebotenemenge(flrangebotpositionlieferdaten.getN_menge());

            aResult[iIndex] = reportDto;
            iIndex++;
        }
    } finally {
        closeSession(session);
    }
    return aResult;
}

From source file:com.lp.server.artikel.ejbfac.ArtikelbestelltFacBean.java

License:Open Source License

/**
 * Bestelltliste pruefen. 1. Bestehende Eintraege. 2. Bestellungen pruefen,
 * ob die Bestelltwerte richtig eingetragen sind.
 * /*from  w  ww  .jav  a 2  s.  c  om*/
 * @param theClientDto der aktuelle Benutzer 
 */

@TransactionAttribute(TransactionAttributeType.NEVER)
public void pruefeBestelltliste(TheClientDto theClientDto) {
    Session session = FLRSessionFactory.getFactory().openSession();
    try {

        session = FLRSessionFactory.getFactory().openSession();

        String hqlDelete = "delete FROM FLRArtikelbestellt";
        session.createQuery(hqlDelete).executeUpdate();

        session.close();

        // ------------------------------------------------------------------
        // ----
        // Alle Eintraege in den Bestellungen pruefen
        // ------------------------------------------------------------------
        // ----

        session = FLRSessionFactory.getFactory().openSession();
        org.hibernate.Criteria besPos = session.createCriteria(FLRBestellposition.class);
        org.hibernate.Criteria best = besPos
                .createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRBESTELLUNG);
        // Filter auf den Mandanten
        best.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_MANDANT_C_NR, theClientDto.getMandant()));
        // keine Rahmenbestellungen.
        best.add(Restrictions.not(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_BESTELLUNGART_C_NR,
                BestellungFac.BESTELLUNGART_RAHMENBESTELLUNG_C_NR)));
        // keine stornierten und erledigten.
        Collection<String> cStati = new LinkedList<String>();
        cStati.add(BestellungFac.BESTELLSTATUS_STORNIERT);
        cStati.add(BestellungFac.BESTELLSTATUS_ERLEDIGT);
        best.add(Restrictions.not(Restrictions.in(BestellungFac.FLR_BESTELLUNG_BESTELLUNGSTATUS_C_NR, cStati)));
        // Query ausfuehren
        List<?> besposList = besPos.list();
        Iterator<?> besposListIterator = besposList.iterator();
        while (besposListIterator.hasNext()) {
            FLRBestellposition bespos = (FLRBestellposition) besposListIterator.next();
            if (bespos.getBestellpositionart_c_nr().equals(BestellpositionFac.BESTELLPOSITIONART_IDENT)
                    || bespos.getBestellpositionart_c_nr()
                            .equals(BestellpositionFac.BESTELLPOSITIONART_HANDEINGABE)) {
                if (bespos.getBestellpositionstatus_c_nr() != null && (bespos.getBestellpositionstatus_c_nr()
                        .equals(BestellpositionFac.BESTELLPOSITIONSTATUS_OFFEN)
                        || bespos.getBestellpositionstatus_c_nr()
                                .equals(BestellpositionFac.BESTELLPOSITIONSTATUS_BESTAETIGT)
                        || bespos.getBestellpositionstatus_c_nr()
                                .equals(BestellpositionFac.BESTELLPOSITIONSTATUS_TEILGELIEFERT))) {

                    // nur fuer Artikel
                    if (bespos.getFlrartikel() != null) {
                        BigDecimal bdMenge = new BigDecimal(0);
                        if (bespos.getN_offenemenge() != null) {
                            bdMenge = bespos.getN_offenemenge();
                        } else {
                            bdMenge = bespos.getN_menge();
                        }
                        ArtikelbestelltDto artikelBestelltDto = new ArtikelbestelltDto();
                        artikelBestelltDto.setArtikelIId(bespos.getFlrartikel().getI_id());
                        artikelBestelltDto.setCBelegartnr(LocaleFac.BELEGART_BESTELLUNG);
                        artikelBestelltDto.setIBelegartpositionid(bespos.getI_id());
                        artikelBestelltDto.setNMenge(bdMenge);

                        if (bespos.getT_uebersteuerterliefertermin() != null) {
                            artikelBestelltDto.setTLiefertermin(
                                    new java.sql.Timestamp(bespos.getT_uebersteuerterliefertermin().getTime()));
                        } else {
                            artikelBestelltDto.setTLiefertermin(new java.sql.Timestamp(
                                    bespos.getFlrbestellung().getT_liefertermin().getTime()));
                        }

                        // anlegen, negative Mengen werden ignoriert
                        if (artikelBestelltDto.getNMenge().compareTo(new BigDecimal(0)) > 0) {
                            getArtikelbestelltFac().createArtikelbestellt(artikelBestelltDto);
                            myLogger.warn(theClientDto.getIDUser(),
                                    "Bestelltliste nachgetragen: " + artikelBestelltDto);
                        }
                    }

                }
            }
            // Fuer allen anderen Stati darf es keine Reservierungen geben.
            else {
                // Schaun, ob es eine Reservierung gibt
                ArtikelbestelltDto artikelBestelltDto = artikelbestelltFindByBelegartCNrBelegartPositionIIdOhneExc(
                        LocaleFac.BELEGART_BESTELLUNG, bespos.getI_id());
                // wenn ja, dann loeschen
                if (artikelBestelltDto != null) {
                    Artikelbestellt toRemove = em.find(Artikelbestellt.class, artikelBestelltDto.getIId());
                    if (toRemove == null) {
                        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_BEI_FINDBYPRIMARYKEY,
                                "Fehler beo prufeBestelltliste. Artikelbestellt das Aufgrund von reservierung gel\u00F6scht werden soll konnte nicht gefunden werden. iid "
                                        + artikelBestelltDto.getIId());
                    }
                    try {
                        em.remove(toRemove);
                        em.flush();
                    } catch (EntityExistsException er) {
                        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_BEIM_LOESCHEN, er);
                    }
                    myLogger.warn(theClientDto.getIDUser(),
                            "Bestellteintrag gel\u00F6scht: " + artikelBestelltDto);
                }
            }
        }
    } catch (RemoteException ex) {
        throwEJBExceptionLPRespectOld(ex);
    } finally {
        if (session != null) {
            session.close();
        }
    }

}

From source file:com.lp.server.artikel.ejbfac.ArtikelbestelltFacBean.java

License:Open Source License

public Hashtable getAnzahlRahmenbestellt(Integer artikelIId, TheClientDto theClientDto) throws EJBExceptionLP {
    BigDecimal bdReserviert = new BigDecimal(0);
    Hashtable<String, Object> retHashtable = new Hashtable<String, Object>();
    String sBestellungCNr = null;
    Collection<String> aBestellungsCNr = new ArrayList<String>();
    Session session = null;//from  w w  w. j a v  a2  s.c om
    try {
        SessionFactory factory = FLRSessionFactory.getFactory();
        session = factory.openSession();
        Criteria crit = session.createCriteria(FLRBestellpositionReport.class);
        Criteria critBestellung = crit.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRBESTELLUNG);

        Criteria critArtikel = crit.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRARTIKEL);
        // nur diesen Artikel
        critArtikel.add(Restrictions.eq("i_id", artikelIId));
        // Filter nach Mandant
        critBestellung
                .add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_MANDANT_C_NR, theClientDto.getMandant()));
        // keine stornierten oder erledigten Bestellungen.
        Collection<String> cStati = new LinkedList<String>();
        cStati.add(BestellungFac.BESTELLSTATUS_STORNIERT);
        cStati.add(BestellungFac.BESTELLSTATUS_ERLEDIGT);
        critBestellung.add(
                Restrictions.not(Restrictions.in(BestellungFac.FLR_BESTELLUNG_BESTELLUNGSTATUS_C_NR, cStati)));
        // Nur Rahmenbestellungen
        critBestellung.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_BESTELLUNGART_C_NR,
                BestellungFac.BESTELLUNGART_RAHMENBESTELLUNG_C_NR));
        // Query ausfuehren
        List<?> list = crit.list();
        FLRBestellpositionReport[] aResult = new FLRBestellpositionReport[list.size()];
        aResult = (FLRBestellpositionReport[]) list.toArray(aResult);
        for (int i = 0; i < aResult.length; i++) {
            // Rahmenbestellnr, Achtung nur einmal pro Positionen noetig.
            if (!aBestellungsCNr.contains(aResult[i].getFlrbestellung().getC_nr())) {
                aBestellungsCNr.add(aResult[i].getFlrbestellung().getC_nr());
            }
            // negative Rahmenreservierungen bleiben unberuecksichtigt.
            if (aResult[i].getN_offenemenge() != null && aResult[i].getN_offenemenge().doubleValue() > 0) {
                bdReserviert = bdReserviert.add(aResult[i].getN_offenemenge());
            }
        }

        if (bdReserviert != null) {
            retHashtable.put(ArtikelbestelltFac.KEY_RAHMENBESTELLT_ANZAHL, bdReserviert);
        }
        if (aBestellungsCNr.size() > 0) {
            retHashtable.put(ArtikelbestelltFac.KEY_RAHMENBESTELLT_BELEGCNR, aBestellungsCNr);
        }
    } finally {
        try {
            session.close();
        } catch (HibernateException he) {
            throw new EJBExceptionLP(EJBExceptionLP.FEHLER, he);
        }
    }
    return retHashtable;
}

From source file:com.lp.server.artikel.ejbfac.ArtikelReportFacBean.java

License:Open Source License

private RahmenbestelltReportDto[] getReportRahmenbestelltDto(Integer artikelIId, TheClientDto theClientDto)
        throws RemoteException {
    Session session;//w w  w  .j  av  a  2 s  . c o  m
    SessionFactory factory = FLRSessionFactory.getFactory();
    session = factory.openSession();
    Criteria crit = session.createCriteria(FLRBestellpositionReport.class);
    Criteria critBestellung = crit.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRBESTELLUNG);

    Criteria critArtikel = crit.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRARTIKEL);
    // nur diesen Artikel
    critArtikel.add(Restrictions.eq("i_id", artikelIId));
    // Filter nach Mandant
    critBestellung.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_MANDANT_C_NR, theClientDto.getMandant()));
    // keine stornierten oder erledigten Bestellungen.
    Collection<String> cStati = new LinkedList<String>();
    cStati.add(BestellungFac.BESTELLSTATUS_STORNIERT);
    cStati.add(BestellungFac.BESTELLSTATUS_ERLEDIGT);
    critBestellung
            .add(Restrictions.not(Restrictions.in(BestellungFac.FLR_BESTELLUNG_BESTELLUNGSTATUS_C_NR, cStati)));
    // Nur Rahmenbestellungen
    critBestellung.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_BESTELLUNGART_C_NR,
            BestellungFac.BESTELLUNGART_RAHMENBESTELLUNG_C_NR));
    // Query ausfuehren
    List<?> list = crit.list();

    Iterator<?> resultListIterator = list.iterator();
    int row = 0;

    RahmenbestelltReportDto[] dtos = new RahmenbestelltReportDto[list.size()];

    while (resultListIterator.hasNext()) {
        FLRBestellpositionReport besPos = (FLRBestellpositionReport) resultListIterator.next();

        RahmenbestelltReportDto dto = new RahmenbestelltReportDto();

        dto.setBestellnummer(besPos.getFlrbestellung().getC_nr());

        dto.setLieferant(
                besPos.getFlrbestellung().getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1());

        dto.setProjekt(besPos.getFlrbestellung().getC_bezprojektbezeichnung());

        if (besPos.getT_uebersteuerterliefertermin() != null) {
            dto.setTLiefertermin(besPos.getT_uebersteuerterliefertermin());

        } else {
            if (besPos.getFlrbestellung().getT_liefertermin() != null) {
                dto.setTLiefertermin(new Timestamp(besPos.getFlrbestellung().getT_liefertermin().getTime()));
            }
        }
        // Rahmenmenge ist die Menge der Rahmenposition
        dto.setRahmenmenge(besPos.getN_menge());

        BigDecimal bdOffen = besPos.getN_offenemenge();

        dto.setOffenmenge(bdOffen);
        // Nettoeinzelpreis

        dto.setPreis(besPos.getN_nettogesamtpreis());

        BestellpositionDto bestellpositionDto = getBestellpositionFac()
                .bestellpositionFindByPrimaryKey(besPos.getI_id());

        dto.setAbNummer(bestellpositionDto.getCABNummer());

        dto.settAbTermin(bestellpositionDto.getTAuftragsbestaetigungstermin());

        dto.setAbKommentar(bestellpositionDto.getCABKommentar());

        dtos[row] = dto;
        row++;
    }

    session.close();
    return dtos;
}

From source file:com.lp.server.artikel.ejbfac.ArtikelReportFacBean.java

License:Open Source License

/**
 * Diese Methode liefert eine Liste von allen Auftraegen zu einem bestimmten
 * Artikel, die nach den eingegebenen Kriterien des Benutzers
 * zusammengestellt wird. <br>//from w w w.j av  a2 s. co  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 ReportRahmenreservierungDto[] die Liste der Auftraege
 * @throws EJBExceptionLP
 *             Ausnahme
 */
public ReportRahmenreservierungDto[] getReportRahmenreservierung(ReportAnfragestatistikKriterienDto kritDtoI,
        TheClientDto theClientDto) throws EJBExceptionLP {
    ReportRahmenreservierungDto[] 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 critAuftragposition = session.createCriteria(FLRAuftragpositionReport.class);

        // flrauftragpositionreport > flrauftrag
        Criteria critAuftrag = critAuftragposition
                .createCriteria(AuftragpositionFac.FLR_AUFTRAGPOSITION_FLRAUFTRAG);

        // Einschraenken auf Rahmenauftraege des Mandanten
        critAuftrag.add(Restrictions.eq(AuftragFac.FLR_AUFTRAG_MANDANT_C_NR, theClientDto.getMandant()));
        critAuftrag.add(
                Restrictions.eq(AuftragFac.FLR_AUFTRAG_AUFTRAGART_C_NR, AuftragServiceFac.AUFTRAGART_RAHMEN));

        // keine stornierten oder erledigten Auftraege.
        Collection<String> cStati = new LinkedList<String>();
        cStati.add(AuftragServiceFac.AUFTRAGSTATUS_STORNIERT);
        cStati.add(AuftragServiceFac.AUFTRAGSTATUS_ERLEDIGT);
        critAuftrag.add(Restrictions.not(Restrictions.in(AuftragFac.FLR_AUFTRAG_AUFTRAGSTATUS_C_NR, cStati)));

        // Einschraenkung auf den gewaehlten Artikel
        if (kritDtoI.getArtikelIId() != null) {
            critAuftragposition.add(Restrictions.eq(AuftragpositionFac.FLR_AUFTRAGPOSITION_ARTIKEL_I_ID,
                    kritDtoI.getArtikelIId()));
        }
        /*
         * // die offene Menge muss != null > 0 sein
         * critAuftragposition.add(
         * Restrictions.isNotNull(AuftragpositionFac.
         * FLR_AUFTRAGPOSITION_N_MENGE));
         * critAuftragposition.add(Restrictions.gt(AuftragpositionFac.
         * FLR_AUFTRAGPOSITION_N_OFFENEMENGE, new BigDecimal(0)));
         */
        // Einschraenkung nach Rahmentermin von - bis
        if (kritDtoI.getDVon() != null) {
            critAuftragposition.add(Restrictions.ge(
                    AuftragpositionFac.FLR_AUFTRAGPOSITION_T_UEBERSTEUERTERLIEFERTERMIN, kritDtoI.getDVon()));
        }

        if (kritDtoI.getDBis() != null) {
            critAuftragposition.add(Restrictions.le(
                    AuftragpositionFac.FLR_AUFTRAGPOSITION_T_UEBERSTEUERTERLIEFERTERMIN, kritDtoI.getDBis()));
        }

        // es wird nach Belegnummer und Artikel sortiert
        critAuftrag.addOrder(Order.asc(AuftragFac.FLR_AUFTRAG_C_NR));

        List<?> list = critAuftrag.list();
        aResult = new ReportRahmenreservierungDto[list.size()];
        Iterator<?> it = list.iterator();
        int iIndex = 0;

        while (it.hasNext()) {
            FLRAuftragpositionReport flrauftragposition = (FLRAuftragpositionReport) it.next();
            FLRAuftragReport flrauftrag = flrauftragposition.getFlrauftrag();
            FLRPartner flrpartner = flrauftrag.getFlrkunde().getFlrpartner();

            ReportRahmenreservierungDto reportDto = new ReportRahmenreservierungDto();

            reportDto.setAuftragCNr(flrauftrag.getC_nr());
            reportDto.setAuftragIId(flrauftrag.getI_id());
            reportDto.setArtikelIId(flrauftragposition.getArtikel_i_id());
            reportDto.setCBez(flrauftrag.getC_bez());
            reportDto.setCKundenname(flrpartner.getC_name1nachnamefirmazeile1());
            reportDto.setTUebersteuerterLiefertermin(
                    new Timestamp(flrauftragposition.getT_uebersteuerterliefertermin().getTime()));
            reportDto.setNMenge(flrauftragposition.getN_menge());
            // offene (rahmenmenge-abgerufenemenge)
            reportDto.setNOffeneMenge(flrauftragposition.getN_offenerahmenmenge());
            // geliefert

            if (flrauftragposition.getN_offenerahmenmenge() != null) {
                reportDto.setNGelieferteMenge(
                        flrauftragposition.getN_menge().subtract(flrauftragposition.getN_offenerahmenmenge()));
            } else {
                reportDto.setNGelieferteMenge(flrauftragposition.getN_menge());
            }

            aResult[iIndex] = reportDto;
            iIndex++;
        }
    } finally {
        try {
            session.close();
        } catch (HibernateException he) {
            throw new EJBExceptionLP(EJBExceptionLP.FEHLER_HIBERNATE, he);
        }
    }
    return aResult;
}

From source file:com.lp.server.artikel.ejbfac.FehlmengeFacBean.java

License:Open Source License

public ArrayList getFehlmengen(Integer artikelIId, String mandantCNr, TheClientDto theClientDto)
        throws EJBExceptionLP {
    Session session = null;//from   w w  w  .j a  va 2 s  .  c o  m
    try {
        SessionFactory factory = FLRSessionFactory.getFactory();
        session = factory.openSession();
        Criteria c = session.createCriteria(FLRFehlmenge.class);
        // Filter nach Artikel
        c.add(Restrictions.eq(ArtikelFac.FLR_FEHLMENGE_ARTIKEL_I_ID, artikelIId));
        // Filter nach Mandant
        c.createCriteria(ArtikelFac.FLR_FEHLMENGE_FLRLOSSOLLMATERIAL)
                .createCriteria(FertigungFac.FLR_LOSSOLLMATERIAL_FLRLOS)
                .add(Restrictions.eq(FertigungFac.FLR_LOS_MANDANT_C_NR, mandantCNr));
        // Sortierung nach Liefertermin
        c.addOrder(Order.asc(ArtikelFac.FLR_FEHLMENGE_T_LIEFERTERMIN));
        List<?> list = c.list();
        return new ArrayList(list);
    } finally {
        if (session != null) {
            session.close();
        }
    }
}

From source file:com.lp.server.artikel.ejbfac.FehlmengeFacBean.java

License:Open Source License

/**
 * Fehlmengen komplett neu erzeugen/* ww w .j  a  v  a2  s . co  m*/
 * 
 * @param theClientDto der aktuelle Benutzer 
 * @throws EJBExceptionLP
 */
@TransactionAttribute(TransactionAttributeType.NEVER)
public void pruefeFehlmengen(TheClientDto theClientDto) throws EJBExceptionLP {
    Session session = null;
    try {
        session = FLRSessionFactory.getFactory().openSession();

        String hqlDelete = "delete FROM FLRFehlmenge";
        session.createQuery(hqlDelete).executeUpdate();

        session.close();
        session = FLRSessionFactory.getFactory().openSession();

        Criteria cLosmat = session.createCriteria(FLRLossollmaterial.class);
        Criteria cLos = cLosmat.createCriteria(FertigungFac.FLR_LOSSOLLMATERIAL_FLRLOS);
        // Filter nach Status
        Collection<String> cStati = new LinkedList<String>();
        cStati.add(FertigungFac.STATUS_AUSGEGEBEN);
        cStati.add(FertigungFac.STATUS_GESTOPPT);
        cStati.add(FertigungFac.STATUS_IN_PRODUKTION);
        cStati.add(FertigungFac.STATUS_TEILERLEDIGT);
        cLos.add(Restrictions.in(FertigungFac.FLR_LOS_STATUS_C_NR, cStati));

        // Query ausfuehren
        List<?> listLosmat = cLosmat.list();
        for (Iterator<?> iter = listLosmat.iterator(); iter.hasNext();) {
            FLRLossollmaterial item = (FLRLossollmaterial) iter.next();
            BigDecimal bdAusgegeben = getFertigungFac().getAusgegebeneMenge(item.getI_id(), null, theClientDto);
            BigDecimal bdFehlmenge = item.getN_menge().subtract(bdAusgegeben.abs());

            // gibt es ein Fehlmenge?
            if (bdFehlmenge.compareTo(new BigDecimal(0)) > 0) {
                // Eintrag suchen
                ArtikelfehlmengeDto fmDto = new ArtikelfehlmengeDto();
                fmDto.setArtikelIId(item.getFlrartikel().getI_id());
                fmDto.setCBelegartnr(LocaleFac.BELEGART_LOS);
                fmDto.setIBelegartpositionid(item.getI_id());
                fmDto.setNMenge(bdFehlmenge);
                fmDto.setTLiefertermin(new java.sql.Date(item.getFlrlos().getT_produktionsbeginn().getTime()));

                // PJ17994
                fmDto.setTLiefertermin(Helper.addiereTageZuDatum(
                        new java.sql.Date(item.getFlrlos().getT_produktionsbeginn().getTime()),
                        item.getI_beginnterminoffset()));

                context.getBusinessObject(FehlmengeFac.class).createArtikelfehlmenge(fmDto);
                myLogger.warn(theClientDto.getIDUser(), "Fehlmenge nachgetragen: " + fmDto);

            } else {

                BigDecimal fehlmenge = item.getN_menge().abs().subtract(bdAusgegeben.abs());

                if (fehlmenge.doubleValue() > 0) {
                    ArtikelfehlmengeDto fmDto = new ArtikelfehlmengeDto();
                    fmDto.setArtikelIId(item.getFlrartikel().getI_id());
                    fmDto.setCBelegartnr(LocaleFac.BELEGART_LOS);
                    fmDto.setIBelegartpositionid(item.getI_id());

                    fmDto.setNMenge(item.getN_menge().subtract(bdAusgegeben));
                    // PJ17994
                    fmDto.setTLiefertermin(Helper.addiereTageZuDatum(
                            new java.sql.Date(item.getFlrlos().getT_produktionsende().getTime()),
                            item.getI_beginnterminoffset()));

                    context.getBusinessObject(FehlmengeFac.class).createArtikelfehlmenge(fmDto);
                    myLogger.warn(theClientDto.getIDUser(), "Fehlmenge nachgetragen: " + fmDto);
                }
            }
        }
    } catch (RemoteException ex) {
        throwEJBExceptionLPRespectOld(ex);
    } finally {
        if (session != null) {
            session.close();
        }
    }
}