Example usage for org.hibernate.criterion Restrictions isNotNull

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

Introduction

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

Prototype

public static Criterion isNotNull(String propertyName) 

Source Link

Document

Apply an "is not null" constraint to the named property

Usage

From source file:com.liferay.portal.workflow.jbpm.dao.CustomSession.java

License:Open Source License

protected List<TaskInstance> getTasksInstancesBySubmittingUser(long companyId, long userId, Boolean completed,
        int start, int end, OrderByComparator orderByComparator) {

    List<TaskInstance> taskInstances = new ArrayList<TaskInstance>();

    try {//from w  w  w  . j  ava2s  . co  m
        Criteria criteria = _session.createCriteria(TaskInstance.class);

        criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

        if (completed != null) {
            if (completed.booleanValue()) {
                criteria.add(Restrictions.isNotNull("end"));
            } else {
                criteria.add(Restrictions.isNull("end"));
            }
        }

        addOrder(criteria, orderByComparator);

        for (TaskInstance taskInstance : (List<TaskInstance>) criteria.list()) {

            ProcessInstance processInstance = taskInstance.getProcessInstance();

            ContextInstance contextInstance = processInstance.getContextInstance();

            long taskInstanceUserId = GetterUtil.getLong((String) contextInstance.getVariable("userId"));

            if (userId == taskInstanceUserId) {
                taskInstances.add(taskInstance);
            }
        }
    } catch (Exception e) {
        throw new JbpmException(e);
    }

    if ((end != QueryUtil.ALL_POS) && (taskInstances.size() > end)) {
        taskInstances = ListUtil.subList(taskInstances, start, end);
    }

    return taskInstances;
}

From source file:com.lp.server.anfrage.ejbfac.AnfrageFacBean.java

License:Open Source License

/**
 * Die Liste der Bestellvorschlaege holen, die den Kriterien des Benutzers
 * entsprechen./*w w  w  .  ja va 2s  .  c o m*/
 * 
 * @param kritDtoI
 *            die Kriterien des Benutzers
 * @param theClientDto
 *            der aktuelle Benutzer
 * @return BestellvorschlagDto[] die Bestellvorschlaege
 * @throws EJBExceptionLP
 *             Ausnahme
 */
private BestellvorschlagDto[] getListeBestellvorschlaege(BestellvorschlagUeberleitungKriterienDto kritDtoI,
        TheClientDto theClientDto) throws EJBExceptionLP {

    BestellvorschlagDto[] aBestellvorschlagDto = null;

    Session session = null;

    try {
        SessionFactory factory = FLRSessionFactory.getFactory();
        session = factory.openSession();

        // Criteria duerfen keine Texts oder Blobs enthalten!

        // Criteria anlegen fuer flrbestellvorschlag
        Criteria crit = session.createCriteria(FLRBestellvorschlag.class);
        Criteria critArtikel = crit.createCriteria("flrartikel"); // UW->JE
        // Konstante

        // Einschraenken nach Mandant
        crit.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant()));

        // der Lieferant muss gesetzt sein
        crit.add(Restrictions.isNotNull("lieferant_i_id"));

        if (kritDtoI.getBBelegeinlieferant()) {
            // alle Bestellvorschlaege zu einem bestimmten Lieferanten
            crit.add(Restrictions.eq("lieferant_i_id", kritDtoI.getBelegeinlieferantLieferantIId())); // UW->JE
            // Kosntante

            critArtikel.addOrder(Property.forName("c_nr").asc());
        } else if (kritDtoI.getBBelegeinlieferanteintermin()) {
            // alle Bestellvorschlaege zu einem bestimmten Lieferanten und
            // einem bestimmten Termin
            crit.add(Restrictions.eq("lieferant_i_id", kritDtoI.getBelegeinlieferanteinterminLieferantIId())); // UW->JE
            // Konstante
            crit.add(Restrictions.eq(BestellvorschlagFac.FLR_BESTELLVORSCHLAG_T_LIEFERTERMIN,
                    kritDtoI.getTBelegeinlieferanteinterminTermin())); // UW
            // -
            // >
            // JE
            // Konstante

            critArtikel.addOrder(Property.forName("c_nr").asc());
        } else if (kritDtoI.getBBelegprolieferant()) {
            // fuer jeden Lieferanten alle seine Bestellvorschlaege
            crit.addOrder(Property.forName("lieferant_i_id").asc()); // UW->JE
            // Konstante
            critArtikel.addOrder(Property.forName("c_nr").asc());
        } else if (kritDtoI.getBBelegprolieferantprotermin()) {
            // fuer jeden Lieferanten alle seine Bestellvorschlaege zu einem
            // bestimmten Termin
            crit.addOrder(Property.forName("lieferant_i_id").asc()); // UW->JE
            // Konstante
            crit.addOrder(Property.forName(BestellvorschlagFac.FLR_BESTELLVORSCHLAG_T_LIEFERTERMIN).asc()); // UW->JE Konstante
            critArtikel.addOrder(Property.forName("c_nr").asc());
        }

        List<?> list = crit.list();

        aBestellvorschlagDto = new BestellvorschlagDto[list.size()];
        int iIndex = 0;
        Iterator<?> it = list.iterator();
        BestellvorschlagDto bestellvorschlagDto = null;

        while (it.hasNext()) {
            FLRBestellvorschlag flrbestellvorschlag = (FLRBestellvorschlag) it.next();

            bestellvorschlagDto = new BestellvorschlagDto();

            bestellvorschlagDto.setIId(flrbestellvorschlag.getI_id());
            bestellvorschlagDto.setCMandantCNr(flrbestellvorschlag.getMandant_c_nr());
            bestellvorschlagDto.setIArtikelId(flrbestellvorschlag.getArtikel_i_id());
            bestellvorschlagDto.setNZubestellendeMenge(flrbestellvorschlag.getN_zubestellendemenge());
            bestellvorschlagDto.setTLiefertermin((Timestamp) flrbestellvorschlag.getT_liefertermin());
            bestellvorschlagDto.setCBelegartCNr(flrbestellvorschlag.getBelegart_c_nr());
            bestellvorschlagDto.setIBelegartId(flrbestellvorschlag.getI_belegartid());
            bestellvorschlagDto.setILieferantId(flrbestellvorschlag.getLieferant_i_id());
            bestellvorschlagDto.setNNettoeinzelpreis(flrbestellvorschlag.getN_nettoeinzelpreis());
            // bestellvorschlagDto.setDRabattsatz(flrbestellvorschlag.
            // getFRabattsatz()); UW->JE
            bestellvorschlagDto.setNRabattbetrag(flrbestellvorschlag.getN_rabattbetrag());

            bestellvorschlagDto.setNNettogesamtpreis(flrbestellvorschlag.getN_nettogesamtpreis());

            aBestellvorschlagDto[iIndex] = bestellvorschlagDto;
            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 aBestellvorschlagDto;
}

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.//  w  ww  . ja va 2  s . com
 * 
 * @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.AngebotFacBean.java

License:Open Source License

/**
 * Ueber Hibernate alle berechnungsrelevanten Positionen eines Angebots
 * holen. <br>/*  w w  w .j a va2 s  .  co m*/
 * Diese Methode mu&szlig; innerhalb einer offenen Hibernate Session aufgerufen
 * werden. <br>
 * 
 * @todo diese Methode muesste eigentlich in der AngebotpositionFac
 *       sitzen... PJ 3790
 * 
 * @param sessionI
 *            die Hibernate Session
 * @param iIdAngebotI
 *            PK des Angebots
 * @param bNurMengenbehafteteI
 *            nur mengenbehaftete Positionen beruecksichtigen
 * @param bNurPositiveMengenI
 *            nur positive Mengen beruecksichtigen; wird bei
 *            !bNurMengenbehafteteI nicht ausgewertet
 * @param bOhneAlternativenI
 *            alternative Positionen werden nicht beruecksichtigt
 * @return FLRAngebotpositionReport[] die berechnungsrelevanten Positionen
 * @throws EJBExceptionLP
 *             Ausnahme
 */
private FLRAngebotpositionReport[] holeAngebotpositionen(Session sessionI, Integer iIdAngebotI,
        boolean bNurMengenbehafteteI, boolean bNurPositiveMengenI, boolean bOhneAlternativenI)
        throws EJBExceptionLP {
    FLRAngebotpositionReport[] aFLRAngebotpositionReport = null;

    try {
        Criteria crit = sessionI.createCriteria(FLRAngebotpositionReport.class);

        crit.add(Restrictions.eq(AngebotpositionFac.FLR_ANGEBOTPOSITION_ANGEBOT_I_ID, iIdAngebotI));

        if (bNurMengenbehafteteI) {
            crit.add(Restrictions.isNotNull(AngebotpositionFac.FLR_ANGEBOTPOSITION_N_MENGE));

            if (bNurPositiveMengenI) {
                crit.add(Restrictions.gt(AngebotpositionFac.FLR_ANGEBOTPOSITION_N_MENGE, new BigDecimal(0)));
            }
        }

        // nur Positionen beruecksichtigen, die keine Alternative sind
        if (bOhneAlternativenI) {
            crit.add(Restrictions.eq(AngebotpositionFac.FLR_ANGEBOTPOSITION_B_ALTERNATIVE,
                    new Short((short) 0)));
        }

        crit.addOrder(Order.asc("i_sort"));

        // Liste aller Positionen, die behandelt werden sollen
        List<?> list = crit.list();
        aFLRAngebotpositionReport = new FLRAngebotpositionReport[list.size()];
        aFLRAngebotpositionReport = (FLRAngebotpositionReport[]) list.toArray(aFLRAngebotpositionReport);
    } catch (HibernateException he) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_HIBERNATE, new Exception(he));
    } catch (Throwable t) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER, new Exception(t));
    }

    return aFLRAngebotpositionReport;
}

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.
 * //www.  j  a  va2s .  c  om
 * @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

/**
 * Alle abgelehnte Angebote drucken./*from www.ja v a2  s .c om*/
 * 
 * @param kritDtoI
 *            die Filter- und Sortierkriterien
 * @param theClientDto
 *            der atkuelle Benutzer
 * @return JasperPrint der Druck
 * @throws EJBExceptionLP
 *             Ausnahme
 */
public JasperPrintLP printAngebotAbgelehnte(ReportAngebotJournalKriterienDto kritDtoI,
        TheClientDto theClientDto) throws EJBExceptionLP {

    JasperPrintLP oPrint = null;
    StringBuffer buff = null;
    StringBuffer zbuff = null;
    cAktuellerReport = AngebotReportFac.REPORT_ANGEBOT_JOURNAL_ABGELEHNTE;
    try {
        Session session = null;
        try {
            SessionFactory factory = FLRSessionFactory.getFactory();
            session = factory.openSession();
            // Criteria anlegen fuer alle referenzierten Objekte anlegen
            Criteria crit = session.createCriteria(FLRAngebot.class);
            // Einschraenken nach Mandant
            crit.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant()));
            // Einschraenken nach Status
            crit.add(Restrictions.eq(AngebotFac.FLR_ANGEBOT_ANGEBOTSTATUS_C_NR,
                    AngebotServiceFac.ANGEBOTSTATUS_ERLEDIGT));
            crit.add(Restrictions.isNotNull(AngebotFac.FLR_ANGEBOT_T_MANUELLERLEDIGT));
            crit.add(Restrictions.isNotNull(AngebotFac.FLR_ANGEBOT_ANGEBOTERLEDIGUNGSGRUND_C_NR));
            // Einschraenkung nach einem bestimmten Kunden
            if (kritDtoI.kundeIId != null) {
                crit.add(Restrictions.eq(AngebotFac.FLR_ANGEBOT_KUNDE_I_ID_ANGEBOTSADRESSE, kritDtoI.kundeIId));
            }
            if (kritDtoI.dVon != null) {
                crit.add(Restrictions.ge(AngebotFac.FLR_ANGEBOT_T_MANUELLERLEDIGT, kritDtoI.dVon));
            }

            if (kritDtoI.dBis != null) {
                crit.add(Restrictions.le(AngebotFac.FLR_ANGEBOT_T_MANUELLERLEDIGT, kritDtoI.dBis));
            }
            // es wird in jedem Fall nach der Belegnummer sortiert

            crit.addOrder(Order.asc(AngebotFac.FLR_ANGEBOT_ANGEBOTERLEDIGUNGSGRUND_C_NR));
            crit.addOrder(Order.asc("c_nr"));

            int iIndex = 0;
            List<?> list = crit.list();
            Iterator<?> it = list.iterator();
            int iAnzahlZeilen = list.size(); // Anzahl der Positionen
            int iAnzahlSpalten = 12; // Anzahl der Spalten in der Gruppe
            data = new Object[iAnzahlZeilen][iAnzahlSpalten];
            HashMap<String, Integer> hm = new HashMap<String, Integer>();
            while (it.hasNext()) {
                FLRAngebot flrangebot = (FLRAngebot) it.next();
                // erledigungsgruende zaehlen
                String erledigungsgrund = flrangebot.getAngeboterledigungsgrund_c_nr();
                Integer value = hm.get(erledigungsgrund);
                if (value == null) {
                    hm.put(erledigungsgrund, 1);
                } else {
                    hm.put(erledigungsgrund, value + 1); // wird ersetzt
                }
                // Daten fuer den Report
                data[iIndex][AngebotReportFac.REPORT_ANGEBOT_JOURNAL_ABGELEHNTE_ANGEBOTCNR] = flrangebot
                        .getC_nr();
                data[iIndex][AngebotReportFac.REPORT_ANGEBOT_JOURNAL_ABGELEHNTE_KUNDECNAME1] = flrangebot
                        .getFlrkunde().getFlrpartner().getC_name1nachnamefirmazeile1();
                data[iIndex][AngebotReportFac.REPORT_ANGEBOT_JOURNAL_ABGELEHNTE_KOSTENSTELLECNR] = flrangebot
                        .getFlrkostenstelle().getC_nr();
                data[iIndex][AngebotReportFac.REPORT_ANGEBOT_JOURNAL_ABGELEHNTE_VERTRETERCNAME1] = flrangebot
                        .getFlrvertreter().getFlrpartner().getC_name1nachnamefirmazeile1();
                if (flrangebot.getC_bez() != null) {
                    data[iIndex][AngebotReportFac.REPORT_ANGEBOT_JOURNAL_ABGELEHNTE_PROJEKTBEZ] = flrangebot
                            .getC_bez();
                }
                data[iIndex][AngebotReportFac.REPORT_ANGEBOT_JOURNAL_ABGELEHNTE_REALISIERUNGSTERMIN] = Helper
                        .formatDatum(flrangebot.getT_realisierungstermin(), theClientDto.getLocUi());
                data[iIndex][AngebotReportFac.REPORT_ANGEBOT_JOURNAL_ABGELEHNTE_ANGEBOTERLEDIGUNGSGRUND] = flrangebot
                        .getAngeboterledigungsgrund_c_nr();
                if (flrangebot.getAngeboterledigungsgrund_c_nr() != null)
                    if (flrangebot.getAngeboterledigungsgrund_c_nr()
                            .equals(AngebotServiceFac.ANGEBOTERLEDIGUNGSGRUND_AUFTRAGERHALTEN)) {
                        AuftragDto[] auftrag = getAuftragFac().auftragFindByAngebotIId(flrangebot.getI_id(),
                                theClientDto);
                        data[iIndex][AngebotReportFac.REPORT_ANGEBOT_JOURNAL_ABGELEHNTE_ERLEDIGUNGSGRUND_AB_NR] = auftrag[0]
                                .getCNr();
                    }
                data[iIndex][AngebotReportFac.REPORT_ANGEBOT_JOURNAL_ABGELEHNTE_GESAMTANGEBOTSWERT] = flrangebot
                        .getN_gesamtangebotswertinangebotswaehrung();
                data[iIndex][AngebotReportFac.REPORT_ANGEBOT_JOURNAL_ABGELEHNTE_INTERNERKOMMENTAR] = flrangebot
                        .getX_internerkommentar();
                data[iIndex][AngebotReportFac.REPORT_ANGEBOT_JOURNAL_ABGELEHNTE_EXTERNERKOMMENTAR] = flrangebot
                        .getX_externerkommentar();

                iIndex++;
            }
            // erledigungsgruende nach der anzahl sortieren
            buff = new StringBuffer("");
            zbuff = new StringBuffer("");
            Map<Integer, String> sortedMap = new TreeMap<Integer, String>();
            for (Iterator<String> it3 = hm.keySet().iterator(); it3.hasNext();) {
                String cGrund = (String) it3.next();
                sortedMap.put(-hm.get(cGrund), cGrund); // negieren, damit
                // die reihenfolge
                // stimmt (die
                // grossen zahlen
                // zuerst), muss
                // nachher wieder
                // umgedreht werden
                buff.append(cGrund);
                buff.append("\n");
                zbuff.append(hm.get(cGrund));
                zbuff.append("\n");
            }
        } 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);
            }
        }
        // Erstellung des Report
        HashMap<String, Object> parameter = new HashMap<String, Object>();
        // die Parameter dem Report uebergeben
        parameter.put(LPReport.P_SORTIERUNG, buildSortierungAngebotJournal(kritDtoI, theClientDto));
        parameter.put(LPReport.P_FILTER, buildFilterAngebotJournal(kritDtoI, theClientDto));

        if (kritDtoI.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) {
            parameter.put(LPReport.P_SORTIERENACHKUNDE, new Boolean(true));
        } else {
            parameter.put(LPReport.P_SORTIERENACHKUNDE, new Boolean(false));
        }

        parameter.put("P_TITLE", getTextRespectUISpr("angb.print.abgelehnte", theClientDto.getMandant(),
                theClientDto.getLocUi()));
        String cBuffer = buff.toString().trim();
        parameter.put("P_STATISTIK_SPALTE1", cBuffer);
        parameter.put("P_STATISTIK_SPALTE2", zbuff.toString());
        parameter.put(P_MANDANTWAEHRUNG, theClientDto.getSMandantenwaehrung());

        initJRDS(parameter, AngebotReportFac.REPORT_MODUL, AngebotReportFac.REPORT_ANGEBOT_JOURNAL_ABGELEHNTE,
                theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto);

        oPrint = getReportPrint();
    } catch (Throwable t) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_BEIM_DRUCKEN, new Exception(t));
    }

    return oPrint;
}

From source file:com.lp.server.angebot.ejbfac.AngebotReportFacBean.java

License:Open Source License

/**
 * Die Vorkalkulation eines Angebots drucken. <br>
 * Beruecksichtigt werden nur preisbehaftete Positionen.
 * //w w w .ja v a  2s  . c  o m
 * @param iIdAngebotI
 *            PK des Angebots
 * @param theClientDto
 *            der aktuelle Benutzer
 * @return JasperPrint der Druck
 * @throws EJBExceptionLP
 *             Ausnahme
 */
public JasperPrintLP printAngebotVorkalkulation(Integer iIdAngebotI, TheClientDto theClientDto)
        throws EJBExceptionLP {
    JasperPrintLP oPrint = null;
    cAktuellerReport = AngebotReportFac.REPORT_VORKALKULATION;
    Session session = null;

    try {
        AngebotDto angebotDto = getAngebotFac().angebotFindByPrimaryKey(iIdAngebotI, theClientDto);

        // UW 29.03.06 Tiefe der Stuecklistenaufloeseung bestimmen
        ParametermandantDto parametermandantDto = getParameterFac().getMandantparameter(
                theClientDto.getMandant(), ParameterFac.KATEGORIE_ANGEBOT,
                ParameterFac.PARAMETER_ANGEBOT_AGVORKALK_STKL_AUFLOESUNG_TIEFE);

        ParametermandantDto parameterGestpreisBerechnung = null;
        parameterGestpreisBerechnung = (ParametermandantDto) getParameterFac().getMandantparameter(
                theClientDto.getMandant(), ParameterFac.KATEGORIE_ALLGEMEIN,
                ParameterFac.PARAMETER_GESTPREISBERECHNUNG_HAUPTLAGER);

        boolean bGestpreisberechnungHauptlager = ((Boolean) parameterGestpreisBerechnung.getCWertAsObject())
                .booleanValue();

        int iStuecklisteaufloesungTiefe = ((Integer) parametermandantDto.getCWertAsObject()).intValue();

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

        Criteria crit = session.createCriteria(FLRAngebotpositionReport.class);
        crit.add(Restrictions.eq(AngebotpositionFac.FLR_ANGEBOTPOSITION_FLRANGEBOT + ".i_id", iIdAngebotI));

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

        crit.addOrder(Order.asc(AngebotpositionFac.FLR_ANGEBOTPOSITION_I_SORT));

        // Liste aller Positionen, die behandelt werden sollen
        List<?> list = crit.list();

        Iterator itListe = list.iterator();

        ArrayList<Object[]> alDaten = new ArrayList<Object[]>();

        // Der Index der aktuell verarbeiteten Angebotposition, Index laeuft
        // ueber die Unterpositionen!
        int row = 0;

        while (itListe.hasNext()) { // iterieren ueber die
            row++;
            // gesamte Datenmatrix
            FLRAngebotpositionReport flrangebotposition = (FLRAngebotpositionReport) itListe.next();

            if (flrangebotposition.getAngebotpositionart_c_nr()
                    .equals(AngebotServiceFac.ANGEBOTPOSITIONART_IDENT)) {

                boolean bSetArtikel = false;
                StuecklisteDto stuecklisteDto = getStuecklisteFac()
                        .stuecklisteFindByMandantCNrArtikelIIdOhneExc(flrangebotposition.getArtikel_i_id(),
                                theClientDto);

                // wenn die aktuelle Artikelposition eine Stueckliste ist
                if (stuecklisteDto != null && stuecklisteDto.getStuecklisteartCNr()
                        .equals(StuecklisteFac.STUECKLISTEART_SETARTIKEL)) {
                    bSetArtikel = true;
                }

                // PJ15141

                // zum Befuellen der Preisinformationen muss bekannt sein,
                // ob es Stuecklistenpositionen gibt
                StuecklisteInfoDto stuecklisteInfoDto = getStuecklisteFac().getStrukturdatenEinesArtikels(
                        flrangebotposition.getArtikel_i_id(), false, null, // in die Rekursion mit einer
                        // leeren Listen einsteigen
                        0, // in die Rekursion mit Ebene 0
                        // einsteigen
                        iStuecklisteaufloesungTiefe, // alle
                        // Stuecklisten
                        // lt.
                        // Parameter
                        // aufloesen
                        true, // Basis sind die Einheiten der
                        // Stueckliste
                        flrangebotposition.getN_menge(), // Basis
                        // sind
                        // n
                        // Einheiten
                        // der
                        // Stueckliste
                        false, // Fremdfertigung nicht aufloesen
                        theClientDto);

                if (bSetArtikel == false && stuecklisteInfoDto.getIiAnzahlPositionen().intValue() > 0
                        && (!Helper.short2boolean(stuecklisteInfoDto.getBIstFremdfertigung())
                                || iStuecklisteaufloesungTiefe != 0)) {
                    alDaten.add(befuelleZeileVKMitIdentMitSTKLAusAngebotposition(flrangebotposition,
                            angebotDto.getTRealisierungstermin(), theClientDto));

                    if (stuecklisteInfoDto.getIiAnzahlPositionen().intValue() > 0) {
                        ArrayList<?> alStuecklisteAufgeloest = stuecklisteInfoDto.getAlStuecklisteAufgeloest();
                        Iterator<?> it = alStuecklisteAufgeloest.iterator();

                        while (it.hasNext()) {
                            alDaten.add(befuelleZeileVorkalkulationMitStuecklistenposition(
                                    flrangebotposition.getArtikel_i_id(), // eine
                                    // Zwischensumme
                                    // fuer den
                                    // uebergeordneten
                                    // Artikel
                                    // bilden
                                    "", (StuecklisteMitStrukturDto) it.next(),
                                    flrangebotposition.getFlrangebot().getWaehrung_c_nr_angebotswaehrung(),
                                    flrangebotposition.getN_menge(), flrangebotposition.getEinheit_c_nr(),
                                    iStuecklisteaufloesungTiefe, bGestpreisberechnungHauptlager,
                                    angebotDto.getTRealisierungstermin(), theClientDto));
                        }
                    }
                } else {
                    // UW 29.03.06 Eine STKL wird wie ein normaler Artikel
                    // angedruckt, wenn...
                    // ...es sich um eine Fremdfertigung handelt
                    // ...es keine Positionen gibt
                    // ...die gewuenschte Aufloesungstiefe lt. Parameter 0
                    // ist
                    alDaten.add(befuelleZeileVKMitIdentOhneSTKLAusAngebotposition(flrangebotposition,
                            angebotDto.getTRealisierungstermin(), theClientDto, angebotDto.getWaehrungCNr()));
                }

                // PJ 16216
                StuecklisteDto stklDto = getStuecklisteFac().stuecklisteFindByMandantCNrArtikelIIdOhneExc(
                        flrangebotposition.getArtikel_i_id(), theClientDto);
                if (stklDto != null && (!Helper.short2boolean(stklDto.getBFremdfertigung())
                        || iStuecklisteaufloesungTiefe != 0)) {

                    StuecklistearbeitsplanDto[] stuecklistearbeitsplanDtos = getStuecklisteFac()
                            .stuecklistearbeitsplanFindByStuecklisteIId(stklDto.getIId(), theClientDto);

                    for (int i = 0; i < stuecklistearbeitsplanDtos.length; i++) {
                        StuecklistearbeitsplanDto stuecklistearbeitsplanDto = stuecklistearbeitsplanDtos[i];

                        if (stklDto.getIErfassungsfaktor() != 0) {
                            stuecklistearbeitsplanDto.setLStueckzeit(stuecklistearbeitsplanDto.getLStueckzeit()
                                    / stklDto.getIErfassungsfaktor());
                        }

                        if (!Helper.short2boolean(stuecklistearbeitsplanDto.getBNurmaschinenzeit())) {

                            alDaten.add(befuelleZeileVorkalkulationMitStuecklistearbeitsplan(
                                    flrangebotposition.getArtikel_i_id(), // eine
                                    // Zwischensumme
                                    // fuer den
                                    // uebergeordneten
                                    // Artikel
                                    // bilden
                                    "", stuecklistearbeitsplanDto,
                                    flrangebotposition.getFlrangebot().getWaehrung_c_nr_angebotswaehrung(),
                                    flrangebotposition.getN_menge(), flrangebotposition.getEinheit_c_nr(),
                                    iStuecklisteaufloesungTiefe, bGestpreisberechnungHauptlager,
                                    angebotDto.getTRealisierungstermin(), stklDto, theClientDto, false));
                        }
                        if (stuecklistearbeitsplanDto.getMaschineIId() != null) {

                            alDaten.add(befuelleZeileVorkalkulationMitStuecklistearbeitsplan(
                                    flrangebotposition.getArtikel_i_id(), // eine
                                    // Zwischensumme
                                    // fuer den
                                    // uebergeordneten
                                    // Artikel
                                    // bilden
                                    "", stuecklistearbeitsplanDto,
                                    flrangebotposition.getFlrangebot().getWaehrung_c_nr_angebotswaehrung(),
                                    flrangebotposition.getN_menge(), flrangebotposition.getEinheit_c_nr(),
                                    iStuecklisteaufloesungTiefe, bGestpreisberechnungHauptlager,
                                    angebotDto.getTRealisierungstermin(), stklDto, theClientDto, true));
                        }

                    }

                }

            } else if (flrangebotposition.getAngebotpositionart_c_nr()
                    .equals(AngebotServiceFac.ANGEBOTPOSITIONART_HANDEINGABE)) {
                alDaten.add(befuelleZeileVKMitHandAusAngebotposition(flrangebotposition, theClientDto));

            } else if (flrangebotposition.getAngebotpositionart_c_nr()
                    .equals(AngebotServiceFac.ANGEBOTPOSITIONART_AGSTUECKLISTE)) {
                // jede Zeile muss als INDEX_GRUPPE die AGSTKL cNr haben!
                alDaten.add(befuelleZeileVKMitAGSTKLPosition(flrangebotposition, theClientDto));

                AgstklpositionDto[] aAgstklpositionDto = getAngebotstklpositionFac()
                        .agstklpositionFindByAgstklIIdOhneExc(flrangebotposition.getAgstkl_i_id(),
                                theClientDto);

                // Einrueckungsebene gegenueber der AGSTKL
                String cEinrueckung = "    ";

                for (int j = 0; j < aAgstklpositionDto.length; j++) {
                    // AGPosition ist dieselbe, aber die naechste Zeile
                    // im data[][] befuellen

                    ArtikelDto artikelDtoAgstklposition = getArtikelFac()
                            .artikelFindByPrimaryKeySmall(aAgstklpositionDto[j].getArtikelIId(), theClientDto);

                    if (artikelDtoAgstklposition.getArtikelartCNr().equals(ArtikelFac.ARTIKELART_HANDARTIKEL)) {

                        alDaten.add(befuelleZeileVKMitHandAusAGSTKLPosition(aAgstklpositionDto[j],
                                flrangebotposition.getN_menge(), flrangebotposition.getEinheit_c_nr(),
                                theClientDto, cEinrueckung));
                    } else {
                        // jeder Artikel koennte selbst wieder ein
                        // Stueckliste mit Unterpositionen sein
                        StuecklisteInfoDto stuecklisteInfoDto = getStuecklisteFac()
                                .getStrukturdatenEinesArtikels(aAgstklpositionDto[j].getArtikelIId(), false,
                                        null, // in die Rekursion mit
                                        // einer
                                        // leeren Listen einsteigen
                                        0, // in die Rekursion mit Ebene 0
                                        // einsteigen
                                        iStuecklisteaufloesungTiefe, // alle
                                        // Stuecklisten
                                        // lt
                                        // .
                                        // Parameter
                                        // aufloesen
                                        true, // Basis sind die n Einheiten
                                        // der AGSTKL
                                        flrangebotposition.getN_menge()
                                                .multiply(aAgstklpositionDto[j].getNMenge()), // Basismenge
                                        false, // Fremdfertigung nicht
                                        // aufloesen
                                        theClientDto);

                        // wenn die Identposition selbst eine echte STKL ist
                        if (stuecklisteInfoDto.getIiAnzahlPositionen().intValue() > 0
                                && (!Helper.short2boolean(stuecklisteInfoDto.getBIstFremdfertigung())
                                        || iStuecklisteaufloesungTiefe != 0)) {
                            alDaten.add(befuelleZeileVKMitIdentMitSTKLAusAGSTKLPosition(aAgstklpositionDto[j],
                                    flrangebotposition.getN_menge(), flrangebotposition.getEinheit_c_nr(),
                                    angebotDto.getTRealisierungstermin(), theClientDto, cEinrueckung));
                            ArrayList<?> alStuecklisteAufgeloest = stuecklisteInfoDto
                                    .getAlStuecklisteAufgeloest();
                            Iterator<?> it = alStuecklisteAufgeloest.iterator();

                            while (it.hasNext()) {
                                StuecklisteMitStrukturDto stuktDto = (StuecklisteMitStrukturDto) it.next();

                                alDaten.add(befuelleZeileVorkalkulationMitStuecklistenposition(
                                        flrangebotposition.getAgstkl_i_id(), cEinrueckung, stuktDto,
                                        flrangebotposition.getFlrangebot().getWaehrung_c_nr_angebotswaehrung(),
                                        aAgstklpositionDto[j].getNMenge(),
                                        aAgstklpositionDto[j].getEinheitCNr(), iStuecklisteaufloesungTiefe,
                                        bGestpreisberechnungHauptlager, angebotDto.getTRealisierungstermin(),
                                        theClientDto));
                            }

                        } else {
                            alDaten.add(befuelleZeileVKMitIdentOhneSTKLAusAGSTKLPosition(aAgstklpositionDto[j],
                                    flrangebotposition.getN_menge(), flrangebotposition.getEinheit_c_nr(),
                                    theClientDto, angebotDto.getTRealisierungstermin(), cEinrueckung));
                        }
                    }
                }

            }
        }
        data = new Object[alDaten.size()][AngebotReportFac.REPORT_ANGEBOT_ANZAHL_SPALTEN];
        data = (Object[][]) alDaten.toArray(data);

        // Erstellung des Report
        HashMap<String, Object> parameter = new HashMap<String, Object>();

        // es gilt das Locale des Benutzers
        Locale locDruck = theClientDto.getLocUi();

        KundeDto kundeDto = getKundeFac().kundeFindByPrimaryKey(angebotDto.getKundeIIdAngebotsadresse(),
                theClientDto);

        AnsprechpartnerDto ansprechpartnerDto = null;

        if (angebotDto.getAnsprechpartnerIIdKunde() != null) {
            ansprechpartnerDto = getAnsprechpartnerFac()
                    .ansprechpartnerFindByPrimaryKey(angebotDto.getAnsprechpartnerIIdKunde(), theClientDto);
        }

        MandantDto mandantDto = getMandantFac().mandantFindByPrimaryKey(theClientDto.getMandant(),
                theClientDto);

        parameter.put(LPReport.P_ADRESSBLOCK,
                formatAdresseFuerAusdruck(kundeDto.getPartnerDto(), ansprechpartnerDto, mandantDto, locDruck));
        parameter.put("P_ANGEBOTNUMMER", angebotDto.getCNr());

        parameter.put("P_KOMMENTAR_INTERN", angebotDto.getXInternerkommentar());
        parameter.put("P_KOMMENTAR_EXTERN", angebotDto.getXExternerkommentar());

        parameter.put("P_ANGEBOTCBEZ", angebotDto.getCBez() != null ? angebotDto.getCBez() : "");
        parameter.put("P_LIEFERART", getLocaleFac()
                .lieferartFindByIIdLocaleOhneExc(angebotDto.getLieferartIId(), locDruck, theClientDto));

        // Lieferzeit in hinterlegter Einheit
        Integer iiLieferzeit = getAngebotServiceFac().getLieferzeitInAngeboteinheit(angebotDto.getIId(),
                angebotDto.getAngeboteinheitCNr(), theClientDto);

        parameter.put("P_ANGEBOTEINHEIT",
                getSystemFac().formatEinheit(angebotDto.getAngeboteinheitCNr(), locDruck, theClientDto));

        parameter.put("P_LIEFERZEIT", iiLieferzeit);
        parameter.put("P_BELEGWAEHRUNG", angebotDto.getWaehrungCNr());
        parameter.put("P_MANDANTENWAEHRUNG", theClientDto.getSMandantenwaehrung());
        parameter.put("P_WECHSELKURSMANDANTZUBELEG",
                angebotDto.getFWechselkursmandantwaehrungzubelegwaehrung());

        // das Zahlungsziel
        parameter.put("P_ZAHLUNGSZIEL", getMandantFac()
                .zahlungszielFindByIIdLocaleOhneExc(angebotDto.getZahlungszielIId(), locDruck, theClientDto));
        parameter.put("P_BELEGDATUM", angebotDto.getTBelegdatum());
        parameter.put("P_ANGEBOTSGUELTIGKEIT", angebotDto.getTAngebotsgueltigkeitbis());

        parameter.put("P_ALLGEMEINERRABATT", angebotDto.getFAllgemeinerRabattsatz());
        parameter.put("P_ALLGEMEINERRABATT_STRING",
                Helper.formatZahl(angebotDto.getFAllgemeinerRabattsatz(), locDruck));
        parameter.put("P_PROJEKT_RABATT", angebotDto.getFProjektierungsrabattsatz());
        parameter.put("P_PROJEKT_RABATT_STRING",
                Helper.formatZahl(angebotDto.getFProjektierungsrabattsatz(), locDruck));
        parameter.put("P_VERSTECKTER_AUFSCHLAG", angebotDto.getFVersteckterAufschlag());
        parameter.put("P_VERSTECKTER_AUFSCHLAG_STRING",
                Helper.formatZahl(angebotDto.getFVersteckterAufschlag(), locDruck));
        parameter.put("P_REALISIERUNGSTERMIN", angebotDto.getTRealisierungstermin());

        initJRDS(parameter, AngebotReportFac.REPORT_MODUL, AngebotReportFac.REPORT_VORKALKULATION,
                theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto);

        oPrint = getReportPrint();
    } catch (RemoteException ex) {
        throwEJBExceptionLPRespectOld(ex);
    } finally {
        try {
            session.close();
        } catch (HibernateException he) {
            throw new EJBExceptionLP(EJBExceptionLP.FEHLER_HIBERNATE, he);
        }
    }

    return oPrint;
}

From source file:com.lp.server.angebot.ejbfac.AngebotReportFacBean.java

License:Open Source License

/**
 * Ueber Hibernate alle berechnungsrelevanten Positionen eines Angebots
 * holen. <br>//w  w w  .j a va 2s.c o  m
 * Diese Methode mu&szlig; innerhalb einer offenen Hibernate Session aufgerufen
 * werden. <br>
 * 
 * @todo diese Methode muesste eigentlich in der AngebotpositionFac
 *       sitzen... PJ 3799
 * 
 * @param sessionI
 *            die Hibernate Session
 * @param iIdAngebotI
 *            PK des Angebots
 * @param bNurMengenbehafteteI
 *            nur mengenbehaftete Positionen beruecksichtigen
 * @param bNurPositiveMengenI
 *            nur positive Mengen beruecksichtigen; wird bei
 *            !bNurMengenbehafteteI nicht ausgewertet
 * @param bOhneAlternativenI
 *            alternative Positionen werden nicht beruecksichtigt
 * @return FLRAngebotpositionReport[] die berechnungsrelevanten Positionen
 * @throws EJBExceptionLP
 *             Ausnahme
 */
private FLRAngebotpositionReport[] holeAngebotpositionen(Session sessionI, Integer iIdAngebotI,
        boolean bNurMengenbehafteteI, boolean bNurPositiveMengenI, boolean bOhneAlternativenI)
        throws EJBExceptionLP {
    FLRAngebotpositionReport[] aFLRAngebotpositionReport = null;

    try {
        Criteria crit = sessionI.createCriteria(FLRAngebotpositionReport.class);

        crit.add(Restrictions.eq(AngebotpositionFac.FLR_ANGEBOTPOSITION_ANGEBOT_I_ID, iIdAngebotI));

        if (bNurMengenbehafteteI) {
            crit.add(Restrictions.isNotNull(AngebotpositionFac.FLR_ANGEBOTPOSITION_N_MENGE));

            if (bNurPositiveMengenI) {
                crit.add(Restrictions.gt(AngebotpositionFac.FLR_ANGEBOTPOSITION_N_MENGE, new BigDecimal(0)));
            }
        }

        // nur Positionen beruecksichtigen, die keine Alternative sind
        if (bOhneAlternativenI) {
            crit.add(Restrictions.eq(AngebotpositionFac.FLR_ANGEBOTPOSITION_B_ALTERNATIVE,
                    new Short((short) 0)));
        }
        crit.addOrder(Order.asc("i_sort"));

        // Liste aller Positionen, die behandelt werden sollen
        java.util.List<?> list = crit.list();
        aFLRAngebotpositionReport = new FLRAngebotpositionReport[list.size()];
        aFLRAngebotpositionReport = (FLRAngebotpositionReport[]) list.toArray(aFLRAngebotpositionReport);
    } catch (HibernateException he) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_HIBERNATE, new Exception(he));
    } catch (Throwable t) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER, new Exception(t));
    }

    return aFLRAngebotpositionReport;
}

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

License:Open Source License

@TransactionAttribute(TransactionAttributeType.NEVER)
public JasperPrintLP printNaechsteWartungen(TheClientDto theClientDto) {

    // Erstellung des Reports
    HashMap<String, Object> parameter = new HashMap<String, Object>();
    index = -1;/*from   www .  ja  v a  2s.c  o  m*/
    sAktuellerReport = ArtikelReportFac.REPORT_NAECHSTE_WARTUNGEN;

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

    org.hibernate.Criteria crit = session.createCriteria(FLRArtikel.class);
    crit.add(Restrictions.isNotNull(ArtikelFac.FLR_ARTIKEL_I_WARTUNGSINTERVALL));
    crit.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant()));
    crit.addOrder(Order.asc("c_nr"));
    List<?> results = crit.list();
    Iterator<?> resultListIterator = results.iterator();

    ArrayList alDaten = new ArrayList();

    while (resultListIterator.hasNext()) {
        FLRArtikel flrartikel = (FLRArtikel) resultListIterator.next();

        Object[] zeile = new Object[REPORT_NAECHSTE_WARTUNGEN_ANZAHL_SPALTEN];

        ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKeySmall(flrartikel.getI_id(),
                theClientDto);

        Timestamp tFaelligSeit = null;
        if (artikelDto.getTLetztewartung() != null) {

            zeile[REPORT_NAECHSTE_WARTUNGEN_LETZTE_WARTUNG] = artikelDto.getTLetztewartung();

            Calendar cWartungFaellig = Calendar.getInstance();
            cWartungFaellig.setTimeInMillis(artikelDto.getTLetztewartung().getTime());
            cWartungFaellig.add(Calendar.MONTH, artikelDto.getIWartungsintervall());

            tFaelligSeit = new Timestamp(cWartungFaellig.getTimeInMillis());

        }

        if (tFaelligSeit == null || tFaelligSeit.getTime() < System.currentTimeMillis()) {

            zeile[REPORT_NAECHSTE_WARTUNGEN_FAELLIG_SEIT] = tFaelligSeit;

            zeile[REPORT_NAECHSTE_WARTUNGEN_ARTIKEL] = flrartikel.getC_nr();

            if (artikelDto.getArtikelsprDto() != null) {
                zeile[REPORT_NAECHSTE_WARTUNGEN_BEZEICHNUNG] = artikelDto.getArtikelsprDto().getCBez();
                zeile[REPORT_NAECHSTE_WARTUNGEN_KURZBEZEICHNUNG] = artikelDto.getArtikelsprDto().getCKbez();
                zeile[REPORT_NAECHSTE_WARTUNGEN_ZUSATZBEZEICHNUNG] = artikelDto.getArtikelsprDto().getCZbez();
                zeile[REPORT_NAECHSTE_WARTUNGEN_ZUSATZBEZEICHNUNG2] = artikelDto.getArtikelsprDto().getCZbez2();
            }

            zeile[REPORT_NAECHSTE_WARTUNGEN_REVISION] = artikelDto.getCRevision();
            zeile[REPORT_NAECHSTE_WARTUNGEN_INDEX] = artikelDto.getCIndex();
            zeile[REPORT_NAECHSTE_WARTUNGEN_REFERENZNUMMER] = artikelDto.getCReferenznr();

            if (flrartikel.getFlrartikelgruppe() != null) {
                zeile[REPORT_NAECHSTE_WARTUNGEN_ARTIKELGRUPPE] = flrartikel.getFlrartikelgruppe().getC_nr();
            }
            if (flrartikel.getFlrartikelklasse() != null) {
                zeile[REPORT_NAECHSTE_WARTUNGEN_ARTIKELKLASSE] = flrartikel.getFlrartikelklasse().getC_nr();
            }

            zeile[REPORT_NAECHSTE_WARTUNGEN_WARTUNGSINTERVALL] = artikelDto.getIWartungsintervall();

            ArtikellagerplaetzeDto artikellagerplaetzeDto = getLagerFac()
                    .getErstenArtikellagerplatz(flrartikel.getI_id(), theClientDto);
            if (artikellagerplaetzeDto != null) {

                String lagerplatz = artikellagerplaetzeDto.getLagerplatzDto().getCLagerplatz();

                if (artikellagerplaetzeDto.isbEsGibtMehrereLagerplaetze() == true) {
                    lagerplatz += " ++";
                }

                zeile[REPORT_NAECHSTE_WARTUNGEN_LAGERPLATZ] = lagerplatz;

                try {
                    zeile[REPORT_NAECHSTE_WARTUNGEN_LAGER_LAGERPLATZ] = getLagerFac()
                            .lagerFindByPrimaryKey(artikellagerplaetzeDto.getLagerplatzDto().getLagerIId())
                            .getCNr();
                } catch (RemoteException e) {
                    throwEJBExceptionLPRespectOld(e);
                }

            }

            alDaten.add(zeile);
        }
    }
    session.close();

    Object[][] dataTemp = new Object[alDaten.size()][REPORT_NAECHSTE_WARTUNGEN_ANZAHL_SPALTEN];
    data = (Object[][]) alDaten.toArray(dataTemp);

    initJRDS(parameter, ArtikelReportFac.REPORT_MODUL, ArtikelReportFac.REPORT_NAECHSTE_WARTUNGEN,
            theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto);

    return getReportPrint();
}

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

License:Open Source License

public JasperPrintLP printLieferantumsatzstatistik(Timestamp tVon, Timestamp tBis,
        boolean bWareneingangspositionen, Integer iOptionKundengruppierung, Integer iOptionGruppierung,
        Integer iOptionSortierung, TheClientDto theClientDto) throws EJBExceptionLP, RemoteException {
    List<String> gruppierung = new ArrayList<String>();

    String[] monate = new DateFormatSymbols(theClientDto.getLocUi()).getMonths();

    if (iOptionGruppierung
            .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_ARTIKELKLASSE) {

        ArtklaDto[] artklDtos = getArtikelFac().artklaFindByMandantCNr(theClientDto);
        for (int i = 0; i < artklDtos.length; i++) {
            gruppierung.add(artklDtos[i].getCNr());
        }/*from  w ww  .j a  va2  s.  c o m*/
    } else if (iOptionGruppierung
            .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_ARTIKELGRUPPE) {

        ArtgruDto[] artgruDtos = getArtikelFac().artgruFindByMandantCNr(theClientDto);
        for (int i = 0; i < artgruDtos.length; i++) {
            gruppierung.add(artgruDtos[i].getCNr());
        }
    } else if (iOptionGruppierung
            .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHR) {

        Calendar c = Calendar.getInstance();
        c.setTimeInMillis(tVon.getTime());
        c.set(Calendar.DAY_OF_YEAR, 1);
        while (c.getTime().before(tBis)) {
            gruppierung.add(c.get(Calendar.YEAR) + "");
            c.set(Calendar.YEAR, c.get(Calendar.YEAR) + 1);

        }

    } else if (iOptionGruppierung
            .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_MONAT) {

        Calendar c = Calendar.getInstance();
        c.setTimeInMillis(tVon.getTime());
        c.set(Calendar.MONTH, 1);
        while (c.getTime().before(tBis)) {

            gruppierung.add(monate[c.get(Calendar.MONTH)] + " " + c.get(Calendar.YEAR));
            c.set(Calendar.MONTH, c.get(Calendar.MONTH) + 1);

        }

    }

    tVon = Helper.cutTimestamp(tVon);
    tBis = Helper.cutTimestamp(tBis);

    BigDecimal gesamtUmsatz = new BigDecimal(0);
    Session session = FLRSessionFactory.getFactory().openSession();

    org.hibernate.Criteria crit = session.createCriteria(FLRLieferant.class);
    crit.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant()));

    List<?> results = crit.list();
    Iterator<?> resultListIterator = results.iterator();

    ArrayList<Object> gesamtListe = new ArrayList<Object>();

    // Leere Spalten entfernen

    boolean[] bSpalteAndrucken = new boolean[gruppierung.size()];

    while (resultListIterator.hasNext()) {
        FLRLieferant lieferant = (FLRLieferant) resultListIterator.next();

        LieferantDto lieferantDto = getLieferantFac().lieferantFindByPrimaryKey(lieferant.getI_id(),
                theClientDto);

        KundeUmsatzstatistikDto kdums = new KundeUmsatzstatistikDto(gruppierung.size() + 1);
        kdums.setSKunde(lieferant.getFlrpartner().getC_name1nachnamefirmazeile1());
        kdums.setIZahlungsziel(lieferantDto.getZahlungszielIId());
        kdums.setILieferart(lieferantDto.getLieferartIId());
        kdums.setISpediteur(lieferantDto.getIdSpediteur());

        kdums.setSKundengruppierung("");
        // Branche/Partnerklasse hinzufuegen

        if (iOptionKundengruppierung
                .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_KUNDENGRUPPIERUNG_BRANCHE
                && lieferant.getFlrpartner().getBranche_i_id() != null) {
            kdums.setSKundengruppierung(getPartnerServicesFac()
                    .brancheFindByPrimaryKey(lieferant.getFlrpartner().getBranche_i_id(), theClientDto)
                    .getBezeichnung());
        } else if (iOptionKundengruppierung
                .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_KUNDENGRUPPIERUNG_PARTNERKLASSE
                && lieferant.getFlrpartner().getPartnerklasse_i_id() != null) {
            kdums.setSKundengruppierung(getPartnerFac().partnerklasseFindByPrimaryKey(
                    lieferant.getFlrpartner().getPartnerklasse_i_id(), theClientDto).getBezeichnung());
        }

        if (bWareneingangspositionen) {
            Session session2 = FLRSessionFactory.getFactory().openSession();

            org.hibernate.Criteria crit2 = session2.createCriteria(FLRWareneingangspositionen.class)
                    .createAlias("flrwareneingang", "w").createAlias("w.flrbestellung", "b")
                    .createAlias("b.flrlieferant", "l").add(Restrictions.eq("l.i_id", lieferant.getI_id()))
                    .createAlias("l.flrpartner", "p");
            crit2.add(Restrictions.isNotNull(WareneingangFac.FLR_WEPOS_N_EINSTANDSPREIS));

            // SP1115
            crit2.createAlias("flrbestellposition", "bp")
                    .add(Restrictions.isNull("bp.position_i_id_artikelset"));

            String[] stati = new String[2];
            stati[0] = BestellungFac.BESTELLSTATUS_ANGELEGT;
            stati[1] = BestellungFac.BESTELLSTATUS_STORNIERT;

            crit2.add(Restrictions
                    .not(Restrictions.in("b." + BestellungFac.FLR_BESTELLUNG_BESTELLUNGSTATUS_C_NR, stati)));

            Calendar c = Calendar.getInstance();
            c.setTime(tVon);
            c.set(Calendar.HOUR_OF_DAY, 0);
            c.set(Calendar.MINUTE, 0);
            c.set(Calendar.SECOND, 0);
            c.set(Calendar.MILLISECOND, 0);
            crit2.add(Restrictions.ge("w." + WareneingangFac.FLR_WE_T_WARENEINGANGSDATUM, c.getTime()));

            c.setTime(tBis);
            c.set(Calendar.HOUR_OF_DAY, 23);
            c.set(Calendar.MINUTE, 59);
            c.set(Calendar.SECOND, 59);
            c.set(Calendar.MILLISECOND, 999);
            crit2.add(Restrictions.le("w." + WareneingangFac.FLR_WE_T_WARENEINGANGSDATUM, c.getTime()));
            crit2.addOrder(Order.asc("p.c_name1nachnamefirmazeile1"));

            List<?> results2 = crit2.list();
            Iterator<?> resultListIterator2 = results2.iterator();
            while (resultListIterator2.hasNext()) {
                FLRWareneingangspositionen wepos = (FLRWareneingangspositionen) resultListIterator2.next();

                BigDecimal umsatz = wepos.getN_einstandspreis();

                // Mit Welchselkurs zu Mandantenwaehrung multiplizieren
                if (wepos.getFlrwareneingang().getN_wechselkurs() != null
                        && wepos.getFlrwareneingang().getN_wechselkurs().doubleValue() != 0) {
                    umsatz = umsatz.divide(wepos.getFlrwareneingang().getN_wechselkurs(), 4,
                            BigDecimal.ROUND_HALF_EVEN);

                }

                // Bei Handeingabe ist Umsatz gleich Deckungsbeitrag und
                // kommt in die Kategorie Unbekannt
                if (wepos.getFlrbestellposition().getBestellpositionart_c_nr()
                        .equals(LocaleFac.POSITIONSART_HANDEINGABE)
                        && iOptionGruppierung
                                .intValue() != LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHR
                        && iOptionGruppierung
                                .intValue() != LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_MONAT) {
                    umsatz = umsatz.multiply(wepos.getN_geliefertemenge());
                    kdums.getSubSummeUmsatz()[0] = kdums.getSubSummeUmsatz()[0].add(umsatz);
                    // GESAMTSUMME
                    kdums.setBdUmsatz(kdums.getBdUmsatz().add(umsatz));
                } else if (wepos.getFlrbestellposition().getBestellpositionart_c_nr()
                        .equals(LocaleFac.POSITIONSART_IDENT)
                        || (wepos.getFlrbestellposition().getBestellpositionart_c_nr()
                                .equals(LocaleFac.POSITIONSART_HANDEINGABE)
                                && ((iOptionGruppierung
                                        .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHR)
                                        || iOptionGruppierung
                                                .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_MONAT))) {
                    umsatz = umsatz.multiply(wepos.getN_geliefertemenge());

                    // GESAMTSUMME
                    kdums.setBdUmsatz(kdums.getBdUmsatz().add(umsatz));

                    // Aufteilen auf Gruppe
                    if (iOptionGruppierung
                            .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_ARTIKELKLASSE) {
                        if (wepos.getFlrbestellposition().getFlrartikel().getFlrartikelklasse() != null) {
                            // Bei richtiger Artikelklasse einfuegen

                            for (int j = 0; j < gruppierung.size(); j++) {
                                if (gruppierung.get(j).equals(wepos.getFlrbestellposition().getFlrartikel()
                                        .getFlrartikelklasse().getC_nr())) {
                                    kdums.getSubSummeUmsatz()[j + 1] = kdums.getSubSummeUmsatz()[j + 1]
                                            .add(umsatz);
                                    bSpalteAndrucken[j] = true;
                                }
                            }
                        } else {
                            kdums.getSubSummeUmsatz()[0] = kdums.getSubSummeUmsatz()[0].add(umsatz);
                        }
                    } else if (iOptionGruppierung
                            .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_ARTIKELGRUPPE) {
                        if (wepos.getFlrbestellposition().getFlrartikel().getFlrartikelgruppe() != null) {
                            // Bei richtiger Gruppe einfuegen

                            for (int j = 0; j < gruppierung.size(); j++) {
                                if (gruppierung.get(j).equals(wepos.getFlrbestellposition().getFlrartikel()
                                        .getFlrartikelgruppe().getC_nr())) {

                                    kdums.getSubSummeUmsatz()[j + 1] = kdums.getSubSummeUmsatz()[j + 1]
                                            .add(umsatz);
                                    bSpalteAndrucken[j] = true;
                                }
                            }
                        } else {
                            kdums.getSubSummeUmsatz()[0] = kdums.getSubSummeUmsatz()[0].add(umsatz);
                        }
                    } else if (iOptionGruppierung
                            .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHR) {

                        Calendar cZeile = Calendar.getInstance();
                        cZeile.setTimeInMillis(wepos.getFlrwareneingang().getT_wareneingansdatum().getTime());
                        String jahr = cZeile.get(Calendar.YEAR) + "";

                        for (int j = 0; j < gruppierung.size(); j++) {
                            if (gruppierung.get(j).equals(jahr)) {

                                kdums.getSubSummeUmsatz()[j + 1] = kdums.getSubSummeUmsatz()[j + 1].add(umsatz);
                                bSpalteAndrucken[j] = true;
                            }
                        }

                    } else if (iOptionGruppierung
                            .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_MONAT) {
                        Calendar cZeile = Calendar.getInstance();
                        cZeile.setTimeInMillis(wepos.getFlrwareneingang().getT_wareneingansdatum().getTime());
                        String jahrMonat = monate[cZeile.get(Calendar.MONTH)] + " " + cZeile.get(Calendar.YEAR);

                        for (int j = 0; j < gruppierung.size(); j++) {
                            if (gruppierung.get(j).equals(jahrMonat)) {

                                kdums.getSubSummeUmsatz()[j + 1] = kdums.getSubSummeUmsatz()[j + 1].add(umsatz);
                                bSpalteAndrucken[j] = true;
                            }
                        }
                    }
                }
            }
            session2.close();

            if (results2.size() > 0) {
                gesamtListe.add(kdums);

                gesamtUmsatz = gesamtUmsatz.add(kdums.getBdUmsatz());
            }
        } else {
            // Eingangsrechnung
            Session session2 = FLRSessionFactory.getFactory().openSession();

            org.hibernate.Criteria crit2 = session2.createCriteria(FLREingangsrechnungReport.class)
                    .createAlias("flrlieferant", "l");
            crit2.add(Restrictions.eq("l.i_id", lieferant.getI_id()));
            crit2.add(Restrictions.ge(EingangsrechnungFac.FLR_ER_D_BELEGDATUM, Helper.cutTimestamp(tVon)));

            Calendar c = Calendar.getInstance();
            c.setTime(tBis);
            c.set(Calendar.HOUR_OF_DAY, 23);
            c.set(Calendar.MINUTE, 59);
            c.set(Calendar.SECOND, 59);
            c.set(Calendar.MILLISECOND, 999);
            crit2.add(Restrictions.le(EingangsrechnungFac.FLR_ER_D_BELEGDATUM, c.getTime()));

            List<?> results2 = crit2.list();
            Iterator<?> resultListIterator2 = results2.iterator();

            while (resultListIterator2.hasNext()) {
                FLREingangsrechnungReport er = (FLREingangsrechnungReport) resultListIterator2.next();

                if (iOptionGruppierung
                        .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHR) {

                    Calendar cZeile = Calendar.getInstance();
                    cZeile.setTimeInMillis(er.getT_belegdatum().getTime());
                    String jahr = cZeile.get(Calendar.YEAR) + "";

                    for (int j = 0; j < gruppierung.size(); j++) {
                        if (gruppierung.get(j).equals(jahr)) {

                            kdums.getSubSummeUmsatz()[j + 1] = kdums.getSubSummeUmsatz()[j + 1]
                                    .add(er.getN_betrag().subtract(er.getN_ustbetrag()));

                            kdums.setBdUmsatz(
                                    kdums.getBdUmsatz().add(er.getN_betrag().subtract(er.getN_ustbetrag())));

                            bSpalteAndrucken[j] = true;
                        }
                    }

                } else if (iOptionGruppierung
                        .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_MONAT) {

                    Calendar cZeile = Calendar.getInstance();
                    cZeile.setTimeInMillis(er.getT_belegdatum().getTime());

                    String jahrMonat = monate[cZeile.get(Calendar.MONTH)] + " " + cZeile.get(Calendar.YEAR);

                    for (int j = 0; j < gruppierung.size(); j++) {
                        if (gruppierung.get(j).equals(jahrMonat)) {

                            kdums.getSubSummeUmsatz()[j + 1] = kdums.getSubSummeUmsatz()[j + 1]
                                    .add(er.getN_betrag().subtract(er.getN_ustbetrag()));

                            kdums.setBdUmsatz(
                                    kdums.getBdUmsatz().add(er.getN_betrag().subtract(er.getN_ustbetrag())));

                            bSpalteAndrucken[j] = true;
                        }
                    }

                } else {

                    kdums.getSubSummeUmsatz()[0] = kdums.getSubSummeUmsatz()[0]
                            .add(er.getN_betrag().subtract(er.getN_ustbetrag()));
                    kdums.setBdUmsatz(kdums.getBdUmsatz().add(er.getN_betrag().subtract(er.getN_ustbetrag())));
                }
            }

            if (results2.size() > 0) {
                gesamtListe.add(kdums);

                gesamtUmsatz = gesamtUmsatz.add(kdums.getBdUmsatz());
            }

        }
    }
    session.close();

    JasperPrintLP print = null;

    // NACH UMSATZ SORTIEREN
    int n = gesamtListe.size();
    Object temp;
    for (int i = 0; i < n - 1; i++) {
        for (int j = 0; j < n - 1 - i; j++) {
            double a = ((KundeUmsatzstatistikDto) gesamtListe.get(j)).getBdUmsatz().doubleValue();
            double b = ((KundeUmsatzstatistikDto) gesamtListe.get(j + 1)).getBdUmsatz().doubleValue();
            if (a < b) {
                temp = gesamtListe.get(j);
                gesamtListe.set(j, gesamtListe.get(j + 1));
                gesamtListe.set(j + 1, temp);
            }

        }
    }

    // ABC-Klassifizierung
    // A=80%
    // B=15%
    // C=5%

    double dTempUmsatz = gesamtUmsatz.doubleValue();

    ParametermandantDto mandantparameterA = null;
    ParametermandantDto mandantparameterB = null;
    try {
        mandantparameterA = getParameterFac().getMandantparameter(theClientDto.getMandant(),
                ParameterFac.KATEGORIE_KUNDEN, ParameterFac.PARAMETER_KUNDENBEWERTUNG_WERT_A);
        mandantparameterB = getParameterFac().getMandantparameter(theClientDto.getMandant(),
                ParameterFac.KATEGORIE_KUNDEN, ParameterFac.PARAMETER_KUNDENBEWERTUNG_WERT_B);

    } catch (RemoteException ex3) {
        throwEJBExceptionLPRespectOld(ex3);
    }

    BigDecimal paramBUmsatz = gesamtUmsatz.multiply((new BigDecimal(mandantparameterB.getCWert())
            .divide(new BigDecimal(100), 4, BigDecimal.ROUND_HALF_EVEN)));

    BigDecimal paramAUmsatz = gesamtUmsatz.multiply((new BigDecimal(mandantparameterA.getCWert())
            .divide(new BigDecimal(100), 4, BigDecimal.ROUND_HALF_EVEN)));

    for (int i = 0; i < gesamtListe.size(); i++) {
        KundeUmsatzstatistikDto dto = (KundeUmsatzstatistikDto) gesamtListe.get(i);

        if (dTempUmsatz < gesamtUmsatz.doubleValue()
                - (paramAUmsatz.doubleValue() + paramBUmsatz.doubleValue())) {
            dto.setAbcKlassifizierung("C");
        } else if (dTempUmsatz < paramBUmsatz.doubleValue()) {
            dto.setAbcKlassifizierung("B");
        } else {
            dto.setAbcKlassifizierung("A");
        }

        dTempUmsatz = dTempUmsatz - dto.getBdUmsatz().doubleValue();

        gesamtListe.set(i, dto);
    }

    // Nach Name sortieren

    // NACH NAME SORTIEREN, Wenn angegeben

    if (iOptionSortierung
            .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_SORTIERUNG_FIRMANNAME) {
        n = gesamtListe.size();
        for (int i = 0; i < n - 1; i++) {
            for (int j = 0; j < n - 1 - i; j++) {
                String a = ((KundeUmsatzstatistikDto) gesamtListe.get(j)).getSKunde();
                String b = ((KundeUmsatzstatistikDto) gesamtListe.get(j + 1)).getSKunde();
                if (a.compareTo(b) > 0) {
                    temp = gesamtListe.get(j);
                    gesamtListe.set(j, gesamtListe.get(j + 1));
                    gesamtListe.set(j + 1, temp);
                }
            }
        }
    }

    // Nach Branche/Partnerklasse Gruppieren

    if (iOptionKundengruppierung
            .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_KUNDENGRUPPIERUNG_BRANCHE
            || iOptionKundengruppierung
                    .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_KUNDENGRUPPIERUNG_PARTNERKLASSE) {
        n = gesamtListe.size();
        for (int i = 0; i < n - 1; i++) {
            for (int j = 0; j < n - 1 - i; j++) {
                String a = ((KundeUmsatzstatistikDto) gesamtListe.get(j)).getSKundengruppierung();
                String b = ((KundeUmsatzstatistikDto) gesamtListe.get(j + 1)).getSKundengruppierung();
                if (a.compareTo(b) > 0) {
                    temp = gesamtListe.get(j);
                    gesamtListe.set(j, gesamtListe.get(j + 1));
                    gesamtListe.set(j + 1, temp);
                }
            }
        }

    }

    // SPALTENHEADER entfernen, wenn Spalte leer
    for (int i = bSpalteAndrucken.length; i > 0; i--) {
        if (bSpalteAndrucken[i - 1] == false) {
            gruppierung.remove(i - 1);
        }
    }

    int[] spaltenDrucken = new int[gruppierung.size() + 1];
    spaltenDrucken[0] = 0;
    int x = 1;
    for (int i = 1; i < bSpalteAndrucken.length + 1; i++) {
        if (bSpalteAndrucken[i - 1] == true) {
            spaltenDrucken[x] = i;
            x++;
        }
    }

    int seiten_breite = (gruppierung.size() / 8) + 1;

    for (int i = 0; i < seiten_breite; i++) {
        index = -1;

        sAktuellerReport = LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK;

        data = new Object[gesamtListe.size()][15];
        for (int j = 0; j < gesamtListe.size(); j++) {
            KundeUmsatzstatistikDto dto = (KundeUmsatzstatistikDto) gesamtListe.get(j);
            data[j][REPORT_LIEFERANTUMSATZSTATISTIK_LIEFERANTGRUPPIERUNG] = dto.getSKundengruppierung();
            data[j][REPORT_LIEFERANTUMSATZSTATISTIK_LIEFERANT] = dto.getSKunde();
            data[j][REPORT_LIEFERANTUMSATZSTATISTIK_UMSATZ] = dto.getBdUmsatz();
            data[j][REPORT_LIEFERANTUMSATZSTATISTIK_ABCKLASSE] = dto.getAbcKlassifizierung();
            data[j][REPORT_LIEFERANTUMSATZSTATISTIK_ZAHLUNGSZIEL] = getMandantFac()
                    .zahlungszielFindByIIdLocaleOhneExc(dto.getIZahlungsziel(), theClientDto.getLocMandant(),
                            theClientDto);
            data[j][REPORT_LIEFERANTUMSATZSTATISTIK_LIEFERART] = getLocaleFac().lieferartFindByIIdLocaleOhneExc(
                    dto.getILieferart(), theClientDto.getLocMandant(), theClientDto);
            data[j][REPORT_LIEFERANTUMSATZSTATISTIK_SPEDITEUR] = getMandantFac()
                    .spediteurFindByPrimaryKey(dto.getISpediteur()).getCNamedesspediteurs();

            try {
                if (i == 0) {
                    data[j][REPORT_LIEFERANTUMSATZSTATISTIK_SPALTE1] = dto.getSubSummeUmsatz()[0];
                } else {
                    data[j][REPORT_LIEFERANTUMSATZSTATISTIK_SPALTE1] = dto
                            .getSubSummeUmsatz()[spaltenDrucken[0 + (i * 8)]];
                }
                data[j][REPORT_LIEFERANTUMSATZSTATISTIK_SPALTE2] = dto
                        .getSubSummeUmsatz()[spaltenDrucken[1 + (i * 8)]];
                data[j][REPORT_LIEFERANTUMSATZSTATISTIK_SPALTE3] = dto
                        .getSubSummeUmsatz()[spaltenDrucken[2 + (i * 8)]];
                data[j][REPORT_LIEFERANTUMSATZSTATISTIK_SPALTE4] = dto
                        .getSubSummeUmsatz()[spaltenDrucken[3 + (i * 8)]];
                data[j][REPORT_LIEFERANTUMSATZSTATISTIK_SPALTE5] = dto
                        .getSubSummeUmsatz()[spaltenDrucken[4 + (i * 8)]];
                data[j][REPORT_LIEFERANTUMSATZSTATISTIK_SPALTE6] = dto
                        .getSubSummeUmsatz()[spaltenDrucken[5 + (i * 8)]];
                data[j][REPORT_LIEFERANTUMSATZSTATISTIK_SPALTE7] = dto
                        .getSubSummeUmsatz()[spaltenDrucken[6 + (i * 8)]];
                data[j][REPORT_LIEFERANTUMSATZSTATISTIK_SPALTE8] = dto
                        .getSubSummeUmsatz()[spaltenDrucken[7 + (i * 8)]];
            } catch (ArrayIndexOutOfBoundsException ex1) {
                // nothing
            }

        }

        HashMap<String, Object> parameter = new HashMap<String, Object>();
        parameter.put("P_VON", tVon);
        parameter.put("P_BIS", tBis);

        if (bWareneingangspositionen) {
            parameter.put("P_BASIS", getTextRespectUISpr("bes.wareneingangsposition", theClientDto.getMandant(),
                    theClientDto.getLocUi()));
        } else {
            parameter.put("P_BASIS", getTextRespectUISpr("er.eingangsrechnung", theClientDto.getMandant(),
                    theClientDto.getLocUi()));

        }

        if (iOptionKundengruppierung
                .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_KUNDENGRUPPIERUNG_BRANCHE) {
            parameter.put("P_GRUPPIERUNGLIEFERANT",
                    getTextRespectUISpr("lp.branche", theClientDto.getMandant(), theClientDto.getLocUi()));
        } else if (iOptionKundengruppierung
                .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_KUNDENGRUPPIERUNG_PARTNERKLASSE) {
            parameter.put("P_GRUPPIERUNGLIEFERANT", "Partnerklasse");
        }

        if (iOptionGruppierung
                .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_ARTIKELKLASSE) {
            parameter.put("P_GRUPPIERUNG", getTextRespectUISpr("lp.artikelklasse", theClientDto.getMandant(),
                    theClientDto.getLocUi()));
        } else if (iOptionGruppierung
                .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_ARTIKELGRUPPE) {
            parameter.put("P_GRUPPIERUNG", getTextRespectUISpr("lp.artikelgruppe", theClientDto.getMandant(),
                    theClientDto.getLocUi()));

        } else if (iOptionGruppierung
                .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHR) {
            parameter.put("P_GRUPPIERUNG",
                    getTextRespectUISpr("lp.jahr", theClientDto.getMandant(), theClientDto.getLocUi()));

        } else if (iOptionGruppierung
                .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_MONAT) {
            parameter.put("P_GRUPPIERUNG",
                    getTextRespectUISpr("lp.monat", theClientDto.getMandant(), theClientDto.getLocUi()));

        }
        if (iOptionSortierung
                .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_SORTIERUNG_FIRMANNAME) {
            parameter.put("P_SORTIERUNG", "Firmenname");
        } else if (iOptionSortierung
                .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_SORTIERUNG_UMSATZ) {
            parameter.put("P_SORTIERUNG",
                    getTextRespectUISpr("er.umsatz", theClientDto.getMandant(), theClientDto.getLocUi()));

        }

        try {

            parameter.put("P_GRUPPEA", mandantparameterA.getCWertAsObject());
            parameter.put("P_GRUPPEB", mandantparameterB.getCWertAsObject());

            if (i == 0) {
                parameter.put("Spalte1", "Unbekannt");
                parameter.put("Spalte2", gruppierung.get(0 + (i * 8)));
                parameter.put("Spalte3", gruppierung.get(1 + (i * 8)));
                parameter.put("Spalte4", gruppierung.get(2 + (i * 8)));
                parameter.put("Spalte5", gruppierung.get(3 + (i * 8)));
                parameter.put("Spalte6", gruppierung.get(4 + (i * 8)));
                parameter.put("Spalte7", gruppierung.get(5 + (i * 8)));
                parameter.put("Spalte8", gruppierung.get(6 + (i * 8)));

            } else {

                parameter.put("Spalte1", gruppierung.get(7 + (i * 8) - 8));
                parameter.put("Spalte2", gruppierung.get(8 + (i * 8) - 8));
                parameter.put("Spalte3", gruppierung.get(1 + (i * 8)));
                parameter.put("Spalte4", gruppierung.get(2 + (i * 8)));
                parameter.put("Spalte5", gruppierung.get(3 + (i * 8)));
                parameter.put("Spalte6", gruppierung.get(4 + (i * 8)));
                parameter.put("Spalte7", gruppierung.get(5 + (i * 8)));
                parameter.put("Spalte8", gruppierung.get(6 + (i * 80)));

            }

        } catch (IndexOutOfBoundsException ex1) {
            // nothing
        }
        initJRDS(parameter, LagerReportFac.REPORT_MODUL, sAktuellerReport, theClientDto.getMandant(),
                theClientDto.getLocUi(), theClientDto);

        if (print == null) {
            print = getReportPrint();
        } else {
            print = Helper.addReport2Report(print, getReportPrint().getPrint());
        }
    }

    return print;

}