Example usage for org.hibernate.criterion Restrictions lt

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

Introduction

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

Prototype

public static SimpleExpression lt(String propertyName, Object value) 

Source Link

Document

Apply a "less than" constraint to the named property

Usage

From source file:com.lm.lic.manager.hibernate.LicenseVerifIncidentDAO.java

License:Open Source License

public Integer findNumIsvVerifs(String isvId, String licType, String respType, Date startDate, Date endDate) {
    Integer numVerifs = 0;/*from w  w w.j  a  v a2 s . co  m*/
    try {
        Long lisvid = Long.parseLong(isvId);
        Criteria mainCriteria = getSession().createCriteria(LicenseVerifIncident.class);
        mainCriteria.add(Restrictions.eq("isv.id", lisvid));
        Criteria prodCriteria = mainCriteria.createCriteria("product");
        prodCriteria.add(Restrictions.eq("deleted", false));

        addLicTypeRespTypeCrit(licType, respType, mainCriteria, prodCriteria);

        if (startDate != null && endDate != null)
            mainCriteria.add(Restrictions.between(TIME_REQUESTED, startDate, endDate));
        else {
            if (startDate != null)
                mainCriteria.add(Restrictions.gt(TIME_REQUESTED, startDate));
            if (endDate != null)
                mainCriteria.add(Restrictions.lt(TIME_REQUESTED, endDate));
        }

        mainCriteria.setProjection(Projections.rowCount());
        numVerifs = (Integer) mainCriteria.list().get(0);
    } catch (RuntimeException re) {
        log.error("find by property name failed", re);
        throw re;
    }
    return numVerifs;
}

From source file:com.lm.lic.manager.hibernate.LicenseVerifIncidentDAO.java

License:Open Source License

public Integer findNumProdVerifs(String prodId, String licType, String respType, Date startDate, Date endDate) {
    Integer numLics = 0;/*  w  w w .ja v  a  2 s .  c  o m*/
    try {
        Long lpid = Long.parseLong(prodId);
        Criteria mainCriteria = getSession().createCriteria(LicenseVerifIncident.class);
        mainCriteria.add(Restrictions.eq("product.id", lpid));
        Criteria prodCriteria = mainCriteria.createCriteria("product");
        prodCriteria.add(Restrictions.eq("deleted", false));

        addLicTypeRespTypeCrit(licType, respType, mainCriteria, prodCriteria);

        if (startDate != null && endDate != null)
            mainCriteria.add(Restrictions.between(TIME_REQUESTED, startDate, endDate));
        else {
            if (startDate != null)
                mainCriteria.add(Restrictions.gt(TIME_REQUESTED, startDate));
            if (endDate != null)
                mainCriteria.add(Restrictions.lt(TIME_REQUESTED, endDate));
        }

        mainCriteria.setProjection(Projections.rowCount());
        numLics = (Integer) mainCriteria.list().get(0);
    } catch (RuntimeException re) {
        log.error("find by property name failed", re);
        throw re;
    }
    return numLics;
}

From source file:com.lm.lic.manager.hibernate.LicenseVerifIncidentDAO.java

License:Open Source License

private void addLicTypeRespTypeCrit(String licType, String respType, Criteria mainCriteria,
        Criteria prodCriteria) {//from   www .  ja v a2 s. c o  m
    if (StringUtils.hasText(respType)) {
        if (respType.equals(LicenseVerificationStatus.YES_AUTHORIZED.value())) {
            Criterion afCrit = Restrictions.eq("verResp", LicenseVerificationStatus.AUTHORIZED_FOREVER.value());
            Criterion apCrit = Restrictions.eq("verResp",
                    LicenseVerificationStatus.AUTHORIZED_PERMANENT.value());
            Criterion atCrit = Restrictions.eq("verResp", LicenseVerificationStatus.AUTHORIZED_TRIAL.value());
            LogicalExpression orExp = Restrictions.or(afCrit, apCrit);
            orExp = Restrictions.or(orExp, atCrit);
            mainCriteria.add(orExp);
        } else
            mainCriteria.add(Restrictions.eq("verResp", respType));
    }

    if (CoarseLicenseType.isForever(licType))
        prodCriteria.add(Restrictions.gt("licLifeInDays", GenConst.YEAR_LIFE_LONG));
    else if (CoarseLicenseType.isPermanent(licType))
        prodCriteria.add(Restrictions.eq("licLifeInDays", GenConst.YEAR_LIFE_LONG));
    else if (CoarseLicenseType.isTrial(licType))
        prodCriteria.add(Restrictions.lt("licLifeInDays", GenConst.YEAR_LIFE_LONG));
}

From source file:com.lp.server.angebot.bl.AngebotUebersichtHandler.java

License:Open Source License

/**
 * Der Wert aller Angebote in Mandantenwaehrung, die lt. Belegdatum in einem
 * bestimmten Zeitraum angelegt wurden und deren Status != (Angelegt ||
 * Storniert) ist. Optional kann auch nach einem bestimmten Vertreter
 * ausgewertet werden./*from w  w  w .  ja  v  a2 s .co m*/
 * 
 * @param gcBerechnungsdatumVonI
 *            Belegdatum von
 * @param gcBerechnungsdatumBisI
 *            Belegdatum bis
 * @param iIdVertreterI
 *            der Vertreter, null erlaubt
 * @param iIndexSpaltentyp
 *            fuer welche Spalte soll die Berechnung erfolgen
 * @param cNrUserI
 *            der aktuelle Benutzer
 * @return BigDecimal der Gesamtwert in Mandantenwaehrung
 * @throws EJBExceptionLP
 *             Ausnahme
 */
private BigDecimal getWertInMandantenwaehrung(GregorianCalendar gcBerechnungsdatumVonI,
        GregorianCalendar gcBerechnungsdatumBisI, Integer iIdVertreterI, int iIndexSpaltentyp,
        TheClientDto theClientDto) throws EJBExceptionLP {
    BigDecimal nGesamtwertInMandantenwaehrung = new BigDecimal(0);

    Session session = null;

    try {
        // System.out.println("Spaltentyp: " + iIndexSpaltentyp);
        // System.out.println("Von: " +
        // Helper.formatDatum(gcBerechnungsdatumVonI.getTime(),
        // getTheClient(sCurrentUser).getLocUi()));
        // System.out.println("Bis: " +
        // Helper.formatDatum(gcBerechnungsdatumBisI.getTime(),
        // getTheClient(sCurrentUser).getLocUi()));

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

        // Criteria duerfen keine Texts oder Blobs enthalten!

        // Criteria anlegen
        Criteria critAngebotposition = session.createCriteria(FLRAngebotpositionReport.class);
        Criteria critAngebot = critAngebotposition
                .createCriteria(AngebotpositionFac.FLR_ANGEBOTPOSITION_FLRANGEBOT);

        // zuerst alle jene Einschraenkungen, die fuer alle Spaltentypen der
        // Uebersicht gelten
        critAngebot.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant()));

        if (iIdVertreterI != null) {
            critAngebot.add(Restrictions.eq(AngebotFac.FLR_ANGEBOT_VERTRETER_I_ID, iIdVertreterI));
        }

        // UW 22.03.06 alle nicht alternativen Positionen mit positiver
        // Menge
        critAngebotposition.add(Restrictions.isNotNull(AngebotpositionFac.FLR_ANGEBOTPOSITION_N_MENGE));
        critAngebotposition
                .add(Restrictions.gt(AngebotpositionFac.FLR_ANGEBOTPOSITION_N_MENGE, new BigDecimal(0)));
        critAngebotposition.add(
                Restrictions.eq(AngebotpositionFac.FLR_ANGEBOTPOSITION_B_ALTERNATIVE, new Short((short) 0)));

        // die folgenden Einschraenkungen sind vom Spaltentyp der Ubersicht
        // abhaengig
        // IDX_GESAMT: Basis ist Belegdatum, alle Angebote mit Status !=
        // (Angelegt || Storniert)
        // IDX_OFFEN: Basis ist Belegdatum, alle Angebote mit Status Offen
        // IDX_OFFENTERMINBEWERTET: Basis ist Realisierungstermin, alle
        // Angebote mit Status offen;
        // der Wert wird jeweils mit der Auftragswahrscheinlichkeit
        // multipliziert
        // IDX_BESTELLT: Basis ist Belegdatum, Erledigungsgrund == Auftrag
        // erhalten
        if (iIndexSpaltentyp == IDX_GESAMT) {
            critAngebot.add(Restrictions.ne(AngebotFac.FLR_ANGEBOT_ANGEBOTSTATUS_C_NR,
                    AngebotServiceFac.ANGEBOTSTATUS_ANGELEGT));
            critAngebot.add(Restrictions.ne(AngebotFac.FLR_ANGEBOT_ANGEBOTSTATUS_C_NR,
                    AngebotServiceFac.ANGEBOTSTATUS_STORNIERT));
        } else if (iIndexSpaltentyp == IDX_OFFEN || iIndexSpaltentyp == IDX_OFFENTERMINBEWERTET) {
            critAngebot.add(Restrictions.eq(AngebotFac.FLR_ANGEBOT_ANGEBOTSTATUS_C_NR,
                    AngebotServiceFac.ANGEBOTSTATUS_OFFEN));
        } else if (iIndexSpaltentyp == IDX_BESTELLT) {
            critAngebot.add(Restrictions.eq(AngebotFac.FLR_ANGEBOT_ANGEBOTSTATUS_C_NR,
                    AngebotServiceFac.ANGEBOTSTATUS_ERLEDIGT));
            critAngebot.add(Restrictions.eq(AngebotFac.FLR_ANGEBOT_ANGEBOTERLEDIGUNGSGRUND_C_NR,
                    AngebotServiceFac.ANGEBOTERLEDIGUNGSGRUND_AUFTRAGERHALTEN));
        }

        if (iIndexSpaltentyp == IDX_GESAMT || iIndexSpaltentyp == IDX_OFFEN
                || iIndexSpaltentyp == IDX_BESTELLT) {
            if (gcBerechnungsdatumVonI.getTime() != null) {
                critAngebot.add(
                        Restrictions.ge(AngebotFac.FLR_ANGEBOT_T_BELEGDATUM, gcBerechnungsdatumVonI.getTime()));
            }

            if (gcBerechnungsdatumBisI.getTime() != null) {
                critAngebot.add(
                        Restrictions.lt(AngebotFac.FLR_ANGEBOT_T_BELEGDATUM, gcBerechnungsdatumBisI.getTime()));
            }
        }

        if (iIndexSpaltentyp == IDX_OFFENTERMINBEWERTET) {
            if (gcBerechnungsdatumVonI.getTime() != null) {
                critAngebot.add(Restrictions.ge(AngebotFac.FLR_ANGEBOT_T_REALISIERUNGSTERMIN,
                        gcBerechnungsdatumVonI.getTime()));
            }

            if (gcBerechnungsdatumBisI.getTime() != null) {
                critAngebot.add(Restrictions.lt(AngebotFac.FLR_ANGEBOT_T_REALISIERUNGSTERMIN,
                        gcBerechnungsdatumBisI.getTime()));
            }
        }

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

        int iIndex = 0;
        Iterator<?> it = list.iterator();

        while (it.hasNext()) {
            FLRAngebotpositionReport flrangebotposition = (FLRAngebotpositionReport) it.next();

            // der Beitrag der einzelnen Position in Angebotswaehrung
            BigDecimal nBeitragDerPositionInAngebotswaehrung = flrangebotposition
                    .getN_nettogesamtpreisplusversteckteraufschlagminusrabatte()
                    .multiply(flrangebotposition.getN_menge());

            BigDecimal nBeitragDerPositionInMandantenwaehrung = nBeitragDerPositionInAngebotswaehrung
                    .multiply(Helper.getKehrwert(new BigDecimal(flrangebotposition.getFlrangebot()
                            .getF_wechselkursmandantwaehrungzuangebotswaehrung().doubleValue())));

            if (iIndexSpaltentyp == IDX_OFFENTERMINBEWERTET) {
                double dAuftragswahrscheinlichkeit = flrangebotposition.getFlrangebot()
                        .getF_auftragswahrscheinlichkeit().doubleValue();

                nBeitragDerPositionInMandantenwaehrung = nBeitragDerPositionInMandantenwaehrung
                        .multiply(new BigDecimal(dAuftragswahrscheinlichkeit).movePointLeft(2));
            }

            nBeitragDerPositionInMandantenwaehrung = Helper
                    .rundeKaufmaennisch(nBeitragDerPositionInMandantenwaehrung, 4);
            checkNumberFormat(nBeitragDerPositionInMandantenwaehrung);

            nGesamtwertInMandantenwaehrung = nGesamtwertInMandantenwaehrung
                    .add(nBeitragDerPositionInMandantenwaehrung);

            iIndex++;
        }
    } catch (Throwable t) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FLR, new Exception(t));
    } finally {
        try {
            session.close();
        } catch (HibernateException he) {
            throw new EJBExceptionLP(EJBExceptionLP.FEHLER_HIBERNATE, he);
        }
    }

    return nGesamtwertInMandantenwaehrung;
}

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

License:Open Source License

/**
 * getArtikelbestellt gibt eine List vom FLRArtikelbestellt zurueck. Achtung
 * casten notwendig.//from   w w w  . j a  va2 s.  c o m
 * 
 * @param artikelIId
 *            Integer
 * @param dVon
 *            Date
 * @param dBis
 *            Date
 * @return List
 * @throws EJBExceptionLP
 */
public Collection<FLRArtikelbestellt> getArtikelbestellt(Integer artikelIId, java.sql.Date dVon,
        java.sql.Date dBis) throws EJBExceptionLP {

    List<FLRArtikelbestellt> aFLRArtikelbestellt = new ArrayList<FLRArtikelbestellt>();

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

    org.hibernate.Criteria bestelltliste = session.createCriteria(FLRArtikelbestellt.class);
    bestelltliste.createAlias(ArtikelbestelltFac.FLR_ARTIKELBESTELLT_FLRARTIKEL, "a")
            .add(Restrictions.eq("a.i_id", artikelIId));
    if (dVon != null) {
        bestelltliste.add(Restrictions.ge(ArtikelbestelltFac.FLR_ARTIKELBESTELLT_D_LIEFERTERMIN, dVon));
    }
    if (dBis != null) {
        bestelltliste.add(Restrictions.lt(ArtikelbestelltFac.FLR_ARTIKELBESTELLT_D_LIEFERTERMIN, dBis));
    }

    bestelltliste.addOrder(Order.asc(ArtikelbestelltFac.FLR_ARTIKELBESTELLT_D_LIEFERTERMIN));

    List<?> resultList = bestelltliste.list();
    Iterator<?> resultListIterator = resultList.iterator();
    while (resultListIterator.hasNext()) {
        FLRArtikelbestellt artikelbestellt = (FLRArtikelbestellt) resultListIterator.next();
        aFLRArtikelbestellt.add(artikelbestellt);
    }

    return aFLRArtikelbestellt;
}

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

License:Open Source License

@TransactionAttribute(TransactionAttributeType.NEVER)
public JasperPrintLP printAuftragsseriennummern(Integer artikelIId, java.sql.Date dVon, java.sql.Date dBis,
        TheClientDto theClientDto) {/*  ww w.  j  ava 2s. c o  m*/

    sAktuellerReport = ArtikelReportFac.REPORT_AUFTRAGSSERIENNUMMERN;

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

    org.hibernate.Criteria bestelltliste = session.createCriteria(FLRAuftragseriennrn.class);
    bestelltliste.add(Restrictions.eq("artikel_i_id", artikelIId));

    bestelltliste.createAlias("flrauftragposition", "ap");
    bestelltliste.createAlias("ap.flrauftrag", "a");

    if (dVon != null) {
        bestelltliste.add(Restrictions.ge("a." + AuftragFac.FLR_AUFTRAG_D_BELEGDATUM, dVon));
    }
    if (dBis != null) {
        bestelltliste.add(Restrictions.lt("a." + AuftragFac.FLR_AUFTRAG_D_BELEGDATUM, dBis));
    }

    bestelltliste.addOrder(Order.desc("c_seriennr"));

    List<?> resultList = bestelltliste.list();
    Iterator<?> resultListIterator = resultList.iterator();

    data = new Object[resultList.size()][REPORT_AUFTRAGSERIENNR_ANZAHL_SPALTEN];
    int row = 0;
    while (resultListIterator.hasNext()) {
        FLRAuftragseriennrn auftser = (FLRAuftragseriennrn) resultListIterator.next();
        data[row][REPORT_AUFTRAGSERIENNR_SERIENNUMMER] = auftser.getC_seriennr();
        data[row][REPORT_AUFTRAGSERIENNR_AUFTRAG] = auftser.getFlrauftragposition().getFlrauftrag().getC_nr();
        data[row][REPORT_AUFTRAGSERIENNR_BELEGDATUM] = new Timestamp(
                auftser.getFlrauftragposition().getFlrauftrag().getT_belegdatum().getTime());
        data[row][REPORT_AUFTRAGSERIENNR_PROJEKT] = auftser.getFlrauftragposition().getFlrauftrag().getC_bez();

        String kunde = auftser.getFlrauftragposition().getFlrauftrag().getFlrkunde().getFlrpartner()
                .getC_name1nachnamefirmazeile1();
        if (auftser.getFlrauftragposition().getFlrauftrag().getFlrkunde().getFlrpartner()
                .getC_name2vornamefirmazeile2() != null) {
            kunde += " " + auftser.getFlrauftragposition().getFlrauftrag().getFlrkunde().getFlrpartner()
                    .getC_name2vornamefirmazeile2();
        }

        data[row][REPORT_AUFTRAGSERIENNR_KUNDE] = kunde;
        row++;

    }

    HashMap<String, Object> parameter = new HashMap<String, Object>();

    ArtikelDto dto = getArtikelFac().artikelFindByPrimaryKey(artikelIId, theClientDto);
    parameter.put("P_ARTIKEL", dto.formatArtikelbezeichnung());

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

    return getReportPrint();
}

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

License:Open Source License

@TransactionAttribute(TransactionAttributeType.NEVER)
public JasperPrintLP printArtikelbestellt(Integer artikelIId, java.sql.Date dVon, java.sql.Date dBis,
        TheClientDto theClientDto) {// w  ww  . jav a  2s.c om
    if (artikelIId == null) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FELD_DARF_NICHT_NULL_SEIN,
                new Exception("artikelIId == null"));
    }
    // Erstellung des Reports
    HashMap<String, Object> parameter = new HashMap<String, Object>();
    index = -1;
    sAktuellerReport = ArtikelReportFac.REPORT_ARTIKELBESTELLT;
    ArtikelDto dto = getArtikelFac().artikelFindByPrimaryKeySmall(artikelIId, theClientDto);
    parameter.put("P_ARTIKEL", dto.formatArtikelbezeichnung());
    parameter.put("P_EINHEIT", dto.getEinheitCNr().trim());
    parameter.put("P_BESTELLEINHEIT_INVERS", Helper.short2Boolean(dto.getbBestellmengeneinheitInvers()));
    if (dto.getEinheitCNrBestellung() != null) {
        parameter.put("P_BESTELLEINHEIT", dto.getEinheitCNrBestellung().trim());
    } else {
        parameter.put("P_BESTELLEINHEIT", "");
    }

    String eingeloggterMandant = theClientDto.getMandant();

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

    org.hibernate.Criteria bestelltliste = session.createCriteria(FLRArtikelbestellt.class);
    bestelltliste.createAlias(ArtikelbestelltFac.FLR_ARTIKELBESTELLT_FLRARTIKEL, "a")
            .add(Restrictions.eq("a.i_id", artikelIId));
    if (dVon != null) {
        bestelltliste.add(Restrictions.ge(ArtikelbestelltFac.FLR_ARTIKELBESTELLT_D_LIEFERTERMIN, dVon));
    }
    if (dBis != null) {
        bestelltliste.add(Restrictions.lt(ArtikelbestelltFac.FLR_ARTIKELBESTELLT_D_LIEFERTERMIN, dBis));
    }

    bestelltliste.addOrder(Order.asc(ArtikelbestelltFac.FLR_ARTIKELBESTELLT_D_LIEFERTERMIN));

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

    Object[][] dataHelp = new Object[resultList.size()][10];

    while (resultListIterator.hasNext()) {
        FLRArtikelbestellt artikelbestellt = (FLRArtikelbestellt) resultListIterator.next();

        String sBelegnummer = null;
        String sPartner = null;
        String sProjektbezeichnung = null;
        String sMandant = null;
        Date dAuftragbestliefertermin = null;

        BestellpositionDto bestellpositionDto = null;
        BestellungDto bestellungDto = null;
        if (artikelbestellt.getC_belegartnr().equals(LocaleFac.BELEGART_BESTELLUNG)) {
            try {
                bestellpositionDto = getBestellpositionFac()
                        .bestellpositionFindByPrimaryKey(artikelbestellt.getI_belegartpositionid());
                if (!bestellpositionDto.getBestellpositionstatusCNr()
                        .equals(BestellpositionFac.BESTELLPOSITIONSTATUS_ERLEDIGT)) {
                    bestellungDto = getBestellungFac()
                            .bestellungFindByPrimaryKey(bestellpositionDto.getBestellungIId());
                    sBelegnummer = bestellungDto.getCNr();
                    sMandant = bestellungDto.getMandantCNr();
                    sProjektbezeichnung = bestellungDto.getCBez();
                    dAuftragbestliefertermin = bestellpositionDto.getTAuftragsbestaetigungstermin();

                    sPartner = getLieferantFac()
                            .lieferantFindByPrimaryKey(bestellungDto.getLieferantIIdBestelladresse(),
                                    theClientDto)
                            .getPartnerDto().formatTitelAnrede();
                }
            } catch (RemoteException ex3) {
                throw new EJBExceptionLP(EJBExceptionLP.FEHLER, ex3);
            }
        }

        if (eingeloggterMandant.equals(sMandant)) {

            dataHelp[row][REPORT_BESTELLTLISTE_BESTELLUNG] = sBelegnummer;
            dataHelp[row][REPORT_BESTELLTLISTE_LIEFERANTENNAME] = sPartner;
            dataHelp[row][REPORT_BESTELLTLISTE_PROJEKTNAME] = sProjektbezeichnung;
            // Wenn
            if (dAuftragbestliefertermin != null) {
                dataHelp[row][REPORT_BESTELLTLISTE_LIEFERTERMIN] = dAuftragbestliefertermin;
            } else {
                dataHelp[row][REPORT_BESTELLTLISTE_LIEFERTERMIN] = artikelbestellt.getT_liefertermin();

            }

            if (dto.getEinheitCNrBestellung() != null) {

                if (Helper.short2boolean(dto.getbBestellmengeneinheitInvers()) == true) {
                    if (dto.getNUmrechnungsfaktor().doubleValue() != 0) {
                        dataHelp[row][REPORT_BESTELLTLISTE_BESTELLMENGE] = artikelbestellt.getN_menge()
                                .divide(dto.getNUmrechnungsfaktor(), 4, BigDecimal.ROUND_UP);
                    }
                } else {
                    dataHelp[row][REPORT_BESTELLTLISTE_BESTELLMENGE] = artikelbestellt.getN_menge()
                            .multiply(dto.getNUmrechnungsfaktor());
                }

            }

            if (artikelbestellt.getC_belegartnr().equals(LocaleFac.BELEGART_BESTELLUNG)) {
                dataHelp[row][REPORT_BESTELLTLISTE_MENGE] = bestellpositionDto.getNMenge();
                dataHelp[row][REPORT_BESTELLTLISTE_AB_NUMMER] = bestellpositionDto.getCABNummer();
                dataHelp[row][REPORT_BESTELLTLISTE_LIEFERTERMIN] = bestellpositionDto
                        .getTUebersteuerterLiefertermin();
                dataHelp[row][REPORT_BESTELLTLISTE_AB_TERMIN] = bestellpositionDto
                        .getTAuftragsbestaetigungstermin();
                dataHelp[row][REPORT_BESTELLTLISTE_OFFENEMENGE] = artikelbestellt.getN_menge();
                dataHelp[row][REPORT_BESTELLTLISTE_AB_KOMMENTAR] = bestellpositionDto.getCABKommentar();
            }

            row++;
        }

    }
    session.close();
    data = new Object[row][10];
    for (int i = 0; i < row; i++) {
        data[i] = dataHelp[i];
    }

    initJRDS(parameter, ArtikelbestelltFac.REPORT_MODUL, ArtikelReportFac.REPORT_ARTIKELBESTELLT,
            theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto);
    return getReportPrint();
}

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

License:Open Source License

public BigDecimal getAbgewertetenGestehungspreis(BigDecimal gestpreis, Integer artikelIId, Integer lagerIId,
        Timestamp tStichtag, int iMonate, double dProzent) {
    Session session = FLRSessionFactory.getFactory().openSession();

    org.hibernate.Criteria crit = session.createCriteria(FLRLagerbewegung.class);
    crit.add(Restrictions.eq(LagerFac.FLR_LAGERBEWEGUNG_ARTIKEL_I_ID, artikelIId));

    crit.add(Restrictions.eq(LagerFac.FLR_LAGERBEWEGUNG_B_HISTORIE, Helper.boolean2Short(false)));

    if (lagerIId != null) {
        crit.add(Restrictions.eq(LagerFac.FLR_LAGERBEWEGUNG_LAGER_I_ID, lagerIId));
    }/*from www .  j  a v a 2  s.  c  o  m*/

    if (tStichtag != null) {
        crit.add(Restrictions.le(LagerFac.FLR_LAGERBEWEGUNG_T_BELEGDATUM, tStichtag));
    } else {
        crit.add(Restrictions.lt(LagerFac.FLR_LAGERBEWEGUNG_T_BELEGDATUM,
                Helper.cutTimestamp(new Timestamp(System.currentTimeMillis() + 24 * 3600000))));
    }

    // CK: Kundenwunsch am 2009-03-04: Handbuchungen und
    // Inventurbuchungen
    // sollen nicht beruecksichtigt werden
    String[] belegarten = new String[2];
    belegarten[0] = LocaleFac.BELEGART_INVENTUR;
    belegarten[1] = LocaleFac.BELEGART_HAND;
    crit.add(Restrictions.not(Restrictions.in(LagerFac.FLR_LAGERBEWEGUNG_C_BELEGARTNR, belegarten)));

    // CK: Kundenwunsch am 2009-03-04: Es muessen sowohl
    // Zubuchungen, als auch Abbuchungen
    // beruecksichtigt werden
    // crit.add(Restrictions.eq(LagerFac.FLR_LAGERBEWEGUNG_B_ABGANG, Helper
    // .boolean2Short(false)));
    crit.addOrder(Order.desc(LagerFac.FLR_LAGERBEWEGUNG_T_BUCHUNGSZEIT));

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

    ArrayList<FLRLagerbewegung> alZugaenge = new ArrayList<FLRLagerbewegung>();

    while (resultListIterator.hasNext()) {
        FLRLagerbewegung lagerbewegung = (FLRLagerbewegung) resultListIterator.next();

        if (lagerbewegung.getN_menge().doubleValue() > 0) {
            // Datum des letzten Zugangs
            alZugaenge.add(lagerbewegung);
        }
    }

    if (alZugaenge.size() > 0) {
        // Lagerbewegungen nach Belegdatum sortieren
        for (int m = alZugaenge.size() - 1; m > 0; --m) {
            for (int n = 0; n < m; ++n) {
                FLRLagerbewegung o1 = (FLRLagerbewegung) alZugaenge.get(n);
                FLRLagerbewegung o2 = (FLRLagerbewegung) alZugaenge.get(n + 1);

                if (o1.getT_belegdatum().before(o2.getT_belegdatum())) {
                    alZugaenge.set(n, o2);
                    alZugaenge.set(n + 1, o1);
                }
            }
        }

        // nun zaehlt das juengste Belegdatum
        FLRLagerbewegung lagerbewegung = (FLRLagerbewegung) alZugaenge.get(0);

        java.util.Calendar cAbDemWirdAbgewertet = java.util.Calendar.getInstance();
        if (tStichtag != null) {
            cAbDemWirdAbgewertet.setTimeInMillis(tStichtag.getTime());
        }

        cAbDemWirdAbgewertet.set(java.util.Calendar.MONTH,
                cAbDemWirdAbgewertet.get(java.util.Calendar.MONTH) - iMonate);

        double dAbwertung = 0;
        while (dAbwertung < 100
                && lagerbewegung.getT_buchungszeit().getTime() < cAbDemWirdAbgewertet.getTimeInMillis()) {
            dAbwertung += dProzent;
            cAbDemWirdAbgewertet.set(java.util.Calendar.MONTH,
                    cAbDemWirdAbgewertet.get(java.util.Calendar.MONTH) - 1);
        }

        return Helper.rundeKaufmaennisch(gestpreis.multiply(new BigDecimal(1 - (dAbwertung / 100))), 4);

    }

    session.close();

    return new BigDecimal(0);
}

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

License:Open Source License

@TransactionAttribute(TransactionAttributeType.NEVER)
public JasperPrintLP printKundeumsatzstatistik(Timestamp tVon, Timestamp tBis, Integer iOptionKundengruppierung,
        boolean bUmsatz, Integer iOptionGruppierung, Integer iOptionSortierung, Integer iSortierbasisJahre,
        boolean bVerwendeStatistikadresse, boolean bMitNichtLagerbewertetenArtikeln, boolean ohneDBBetrachtung,
        TheClientDto theClientDto) throws EJBExceptionLP, RemoteException {
    List<String> gruppierung = new ArrayList<String>();

    tVon = Helper.cutTimestamp(tVon);//from  www . j  a  v  a 2  s.c om
    tBis = Helper.cutTimestamp(tBis);
    String[] monate = new DateFormatSymbols(theClientDto.getLocUi()).getMonths();
    try {
        if (iOptionGruppierung
                .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_ARTIKELKLASSE) {

            ArtklaDto[] artklDtos = getArtikelFac().artklaFindByMandantCNr(theClientDto);
            for (int i = 0; i < artklDtos.length; i++) {
                gruppierung.add(artklDtos[i].getCNr());
            }
        } else if (iOptionGruppierung
                .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_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_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_FERTIGUNGSGRUPPE) {

            FertigungsgruppeDto[] ftgruDtos = getStuecklisteFac()
                    .fertigungsgruppeFindByMandantCNr(theClientDto.getMandant(), theClientDto);
            for (int i = 0; i < ftgruDtos.length; i++) {
                gruppierung.add(ftgruDtos[i].getCBez());
            }
        } else if (iOptionGruppierung
                .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_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_KUNDEUMSATZSTATISTIK_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);

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

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

    org.hibernate.Criteria crit = session.createCriteria(FLRKunde.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()];
    int iKunde = 0;
    while (resultListIterator.hasNext()) {
        FLRKunde kunde = (FLRKunde) resultListIterator.next();
        iKunde++;
        System.out.println(iKunde + " von " + results.size());

        KundeDto kundeDto = getKundeFac().kundeFindByPrimaryKey(kunde.getI_id(), theClientDto);

        KundeUmsatzstatistikDto kdums = new KundeUmsatzstatistikDto(gruppierung.size() + 1);
        kdums.setSKunde(kunde.getFlrpartner().getC_name1nachnamefirmazeile1());
        kdums.setIZahlungsziel(kundeDto.getZahlungszielIId());
        kdums.setILieferart(kundeDto.getLieferartIId());
        kdums.setISpediteur(kundeDto.getSpediteurIId());
        kdums.setIKundennummer(kundeDto.getIKundennummer());

        if (kundeDto.getPartnerDto().getLandplzortDto() != null) {
            kdums.setSLkz(kundeDto.getPartnerDto().getLandplzortDto().getLandDto().getCLkz());
            kdums.setSPlz(kundeDto.getPartnerDto().getLandplzortDto().getCPlz());
        }

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

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

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

        org.hibernate.Criteria crit2 = session2.createCriteria(FLRRechnungPosition.class)
                .createAlias("flrrechnung", "r");

        if (bVerwendeStatistikadresse) {
            crit2.createAlias("r.flrstatistikadresse", "k");
        } else {
            crit2.createAlias("r.flrkunde", "k");
        }

        crit2.add(Restrictions.eq("k.i_id", kunde.getI_id())).createAlias("k.flrpartner", "p")
                .createAlias("r." + RechnungFac.FLR_RECHNUNG_FLRRECHNUNGART, "ra");

        // PJ 14808
        crit2.add(Restrictions.or(
                Restrictions.isNotNull(
                        RechnungFac.FLR_RECHNUNGPOSITION_N_NETTOEINZELPREIS_PLUS_AUFSCHLAG_MINUS_RABATT),
                Restrictions.eq(RechnungFac.FLR_RECHNUNGPOSITIONSART_POSITIONSART_C_NR,
                        RechnungFac.POSITIONSART_RECHNUNG_LIEFERSCHEIN)));

        // projekt 3568
        String[] arten = new String[2];
        arten[0] = RechnungFac.RECHNUNGART_ANZAHLUNG;
        arten[1] = RechnungFac.RECHNUNGART_PROFORMARECHNUNG;

        crit2.add(Restrictions.not(Restrictions.in("ra.c_nr", arten)));

        String[] stati = new String[2];
        stati[0] = RechnungFac.STATUS_ANGELEGT;
        stati[1] = RechnungFac.STATUS_STORNIERT;

        crit2.add(Restrictions.not(Restrictions.in("r." + RechnungFac.FLR_RECHNUNG_STATUS_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("r." + RechnungFac.FLR_RECHNUNG_D_BELEGDATUM, 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("r." + RechnungFac.FLR_RECHNUNG_D_BELEGDATUM, c.getTime()));

        // SP903
        crit2.add(Restrictions.isNull("position_i_id_artikelset"));

        crit2.addOrder(Order.asc("p.c_name1nachnamefirmazeile1"));

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

        int iPos = 0;
        while (resultListIterator2.hasNext()) {
            FLRRechnungPosition rechpos = (FLRRechnungPosition) resultListIterator2.next();

            iPos++;

            // 16882 Ohne Lagerbewertete Artikel
            if (rechpos.getPositionsart_c_nr().equals(LocaleFac.POSITIONSART_IDENT)
                    && rechpos.getFlrartikel() != null
                    && !Helper.short2boolean(rechpos.getFlrartikel().getB_lagerbewertet())) {

                if (bMitNichtLagerbewertetenArtikeln == false) {
                    continue;
                }
            }

            if (iPos % 100 == 0) {
                System.out.println(iPos + " von " + results2.size());
            }

            // Erstumsatz?
            Session sessionEU = FLRSessionFactory.getFactory().openSession();

            org.hibernate.Criteria critEU = session2.createCriteria(FLRRechnung.class)
                    .createAlias("flrkunde", "k").add(Restrictions.eq("k.i_id", kunde.getI_id()));

            critEU.add(Restrictions.lt(RechnungFac.FLR_RECHNUNG_D_BELEGDATUM, tVon));

            String[] statiErstumsatz = new String[1];
            statiErstumsatz[0] = RechnungFac.STATUS_STORNIERT;
            critEU.add(
                    Restrictions.not(Restrictions.in(RechnungFac.FLR_RECHNUNG_STATUS_C_NR, statiErstumsatz)));
            critEU.setFetchSize(1);
            List<?> resultsEU = critEU.list();
            if (resultsEU.size() < 1) {
                kdums.setBErstumsatz(true);
            }
            sessionEU.close();

            // ENDE Erstumsatz

            boolean bGutschrift = false;

            BigDecimal umsatz = rechpos.getN_nettoeinzelpreis_plus_aufschlag_minus_rabatt();
            // Gutschrift oder Wertgutschrift
            if (rechpos.getFlrrechnung().getFlrrechnungart().getC_nr()
                    .equals(RechnungFac.RECHNUNGART_GUTSCHRIFT)
                    || rechpos.getFlrrechnung().getFlrrechnungart().getC_nr()
                            .equals(RechnungFac.RECHNUNGART_WERTGUTSCHRIFT)) {
                bGutschrift = true;
                umsatz = new BigDecimal(0).subtract(umsatz);

            }

            // Mit Welchselkurs zu Mandantenwaehrung dividieren
            if (rechpos.getFlrrechnung().getN_kurs() != null
                    && rechpos.getFlrrechnung().getN_kurs().doubleValue() != 0
                    && !rechpos.getPositionsart_c_nr().equals(RechnungFac.POSITIONSART_RECHNUNG_LIEFERSCHEIN)) {
                umsatz = umsatz.divide(rechpos.getFlrrechnung().getN_kurs(), 4, BigDecimal.ROUND_HALF_EVEN);

            }

            // Bei Handeingabe ist Umsatz gleich Deckungsbeitrag und kommt
            // in die Kategorie Unbekannt
            if (rechpos.getPositionsart_c_nr().equals(LocaleFac.POSITIONSART_HANDEINGABE)
                    && iOptionGruppierung
                            .intValue() != LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHR
                    && iOptionGruppierung
                            .intValue() != LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_MONAT) {
                umsatz = umsatz.multiply(rechpos.getN_menge());
                kdums.getSubSummeUmsatz()[0] = kdums.getSubSummeUmsatz()[0].add(umsatz);
                kdums.getSubSummeDeckungsbeitrag()[0] = kdums.getSubSummeDeckungsbeitrag()[0].add(umsatz);
                // GESAMTSUMME
                kdums.setBdUmsatz(kdums.getBdUmsatz().add(umsatz));
                kdums.setBdDeckungsbeitrag(kdums.getBdDeckungsbeitrag().add(umsatz));

            } else if (rechpos.getPositionsart_c_nr().equals(LocaleFac.POSITIONSART_IDENT) || (rechpos
                    .getPositionsart_c_nr().equals(LocaleFac.POSITIONSART_HANDEINGABE)
                    && iOptionGruppierung
                            .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHR)
                    || (rechpos.getPositionsart_c_nr().equals(LocaleFac.POSITIONSART_HANDEINGABE)
                            && iOptionGruppierung
                                    .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_MONAT)) {

                if (rechpos.getPosition_i_id_artikelset() == null) {

                    umsatz = umsatz.multiply(rechpos.getN_menge());
                    BigDecimal gestwert = new BigDecimal(0);

                    BigDecimal deckungsbeitrag = new BigDecimal(0);
                    if (ohneDBBetrachtung == false) {
                        if (!rechpos.getPositionsart_c_nr().equals(LocaleFac.POSITIONSART_HANDEINGABE)) {

                            if (rechpos.getSetartikel_set().size() == 0) {
                                gestwert = getGestpreisFuerUmsatzStatistik(rechpos, bGutschrift);
                            } else {
                                Iterator it = rechpos.getSetartikel_set().iterator();
                                while (it.hasNext()) {
                                    gestwert = gestwert.add(getGestpreisFuerUmsatzStatistik(
                                            (FLRRechnungPosition) it.next(), bGutschrift));
                                }
                            }
                        }

                        // Mit Welchselkurs zu Mandantenwaehrung dividieren
                        if (rechpos.getFlrrechnung().getN_kurs() != null
                                && rechpos.getFlrrechnung().getN_kurs().doubleValue() != 0) {
                            gestwert = gestwert.divide(rechpos.getFlrrechnung().getN_kurs(), 4,
                                    BigDecimal.ROUND_HALF_EVEN);
                        }

                        deckungsbeitrag = umsatz.subtract(gestwert);
                    }

                    // GESAMTSUMME
                    if (rechpos.getPositionsart_c_nr().equals(LocaleFac.POSITIONSART_HANDEINGABE)) {
                        deckungsbeitrag = umsatz;
                    }

                    kdums.setBdDeckungsbeitrag(kdums.getBdDeckungsbeitrag().add(deckungsbeitrag));

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

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

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

                            for (int j = 0; j < gruppierung.size(); j++) {
                                if (gruppierung.get(j)
                                        .equals(rechpos.getFlrartikel().getFlrartikelgruppe().getC_nr())) {
                                    kdums.getSubSummeUmsatz()[j + 1] = kdums.getSubSummeUmsatz()[j + 1]
                                            .add(umsatz);
                                    kdums.getSubSummeDeckungsbeitrag()[j
                                            + 1] = kdums.getSubSummeDeckungsbeitrag()[j + 1]
                                                    .add(deckungsbeitrag);
                                    bSpalteAndrucken[j] = true;
                                }
                            }
                        } else {
                            kdums.getSubSummeUmsatz()[0] = kdums.getSubSummeUmsatz()[0].add(umsatz);
                            kdums.getSubSummeDeckungsbeitrag()[0] = kdums.getSubSummeDeckungsbeitrag()[0]
                                    .add(deckungsbeitrag);
                        }
                    } else if (iOptionGruppierung
                            .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_FERTIGUNGSGRUPPE) {

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

                        String queryString = "SELECT stkl.flrfertigungsgruppe FROM FLRStueckliste AS stkl"
                                + " WHERE stkl.artikel_i_id= " + rechpos.getFlrartikel().getI_id();

                        Query query = sessionFTGruppe.createQuery(queryString);
                        List<?> resultList = query.list();
                        Iterator<?> resultListIteratorFTGruppe = resultList.iterator();
                        if (resultListIteratorFTGruppe.hasNext()) {
                            FLRFertigungsgruppe gru = (FLRFertigungsgruppe) resultListIteratorFTGruppe.next();

                            if (gru != null) {
                                // Bei richtiger Gruppe einfuegen
                                for (int j = 0; j < gruppierung.size(); j++) {
                                    if (gruppierung.get(j).equals(gru.getC_bez())) {
                                        kdums.getSubSummeUmsatz()[j + 1] = kdums.getSubSummeUmsatz()[j + 1]
                                                .add(umsatz);
                                        kdums.getSubSummeDeckungsbeitrag()[j
                                                + 1] = kdums.getSubSummeDeckungsbeitrag()[j + 1]
                                                        .add(deckungsbeitrag);
                                        bSpalteAndrucken[j] = true;
                                    }
                                }
                            } else {
                                kdums.getSubSummeUmsatz()[0] = kdums.getSubSummeUmsatz()[0].add(umsatz);
                                kdums.getSubSummeDeckungsbeitrag()[0] = kdums.getSubSummeDeckungsbeitrag()[0]
                                        .add(deckungsbeitrag);
                            }
                            sessionFTGruppe.close();
                        }
                    } else if (iOptionGruppierung
                            .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHR) {

                        Calendar cZeile = Calendar.getInstance();
                        cZeile.setTimeInMillis(rechpos.getFlrrechnung().getD_belegdatum().getTime());
                        String jahr = cZeile.get(Calendar.YEAR) + "";

                        // Bei richtiger Gruppe einfuegen
                        for (int j = 0; j < gruppierung.size(); j++) {
                            if (gruppierung.get(j).equals(jahr)) {
                                kdums.getSubSummeUmsatz()[j + 1] = kdums.getSubSummeUmsatz()[j + 1].add(umsatz);
                                kdums.getSubSummeDeckungsbeitrag()[j
                                        + 1] = kdums.getSubSummeDeckungsbeitrag()[j + 1].add(deckungsbeitrag);
                                bSpalteAndrucken[j] = true;
                            }
                        }

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

                        Calendar cZeile = Calendar.getInstance();
                        cZeile.setTimeInMillis(rechpos.getFlrrechnung().getD_belegdatum().getTime());
                        String jahrMonat = monate[cZeile.get(Calendar.MONTH)] + " " + cZeile.get(Calendar.YEAR);

                        // Bei richtiger Gruppe einfuegen
                        for (int j = 0; j < gruppierung.size(); j++) {
                            if (gruppierung.get(j).equals(jahrMonat)) {
                                kdums.getSubSummeUmsatz()[j + 1] = kdums.getSubSummeUmsatz()[j + 1].add(umsatz);
                                kdums.getSubSummeDeckungsbeitrag()[j
                                        + 1] = kdums.getSubSummeDeckungsbeitrag()[j + 1].add(deckungsbeitrag);
                                bSpalteAndrucken[j] = true;
                            }
                        }

                    }
                }
            }
            // Wenn Rechnungsposition ein LS ist, dann dessen Positionen
            // verwenden
            else if (rechpos.getPositionsart_c_nr().equals(LocaleFac.POSITIONSART_LIEFERSCHEIN)) {
                Integer lieferscheinIId = rechpos.getFlrlieferschein().getI_id();

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

                org.hibernate.Criteria crit3 = session3.createCriteria(FLRLieferscheinposition.class);
                crit3.createAlias("flrlieferschein", "l");
                crit3.add(Restrictions.eq("l.i_id", lieferscheinIId));
                // SP903
                crit3.add(Restrictions.isNull("position_i_id_artikelset"));
                crit3.add(Restrictions
                        .isNotNull(LieferscheinpositionFac.FLR_LIEFERSCHEINPOSITION_N_NETTOGESAMTPREIS));
                crit3.add(Restrictions.not(Restrictions
                        .eq(LieferscheinpositionFac.FLR_LIEFERSCHEINPOSITION_N_MENGE, new BigDecimal(0))));

                List<?> results3 = crit3.list();
                Iterator<?> resultListIterator3 = results3.iterator();
                while (resultListIterator3.hasNext()) {
                    FLRLieferscheinposition lieferscheinpos = (FLRLieferscheinposition) resultListIterator3
                            .next();

                    // 16882 Ohne Lagerbewertete Artikel
                    if (lieferscheinpos.getPositionsart_c_nr().equals(LocaleFac.POSITIONSART_IDENT)
                            && lieferscheinpos.getFlrartikel() != null
                            && !Helper.short2boolean(lieferscheinpos.getFlrartikel().getB_lagerbewertet())) {
                        if (bMitNichtLagerbewertetenArtikeln == false) {
                            continue;
                        }
                    }

                    // PJ 14525
                    BigDecimal umsatzLs = lieferscheinpos
                            .getN_nettogesamtpreisplusversteckteraufschlagminusrabatt()
                            .divide(rechpos.getFlrrechnung().getN_kurs(), 4, BigDecimal.ROUND_HALF_EVEN);
                    umsatzLs = umsatzLs.multiply(lieferscheinpos.getN_menge());

                    if (lieferscheinpos.getPositionsart_c_nr().equals(LocaleFac.POSITIONSART_HANDEINGABE)
                            && iOptionGruppierung
                                    .intValue() != LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHR
                            && iOptionGruppierung
                                    .intValue() != LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_MONAT) {
                        kdums.getSubSummeUmsatz()[0] = kdums.getSubSummeUmsatz()[0].add(umsatzLs);
                        kdums.getSubSummeDeckungsbeitrag()[0] = kdums.getSubSummeDeckungsbeitrag()[0]
                                .add(umsatzLs);
                        // GESAMTSUMME
                        kdums.setBdUmsatz(kdums.getBdUmsatz().add(umsatzLs));
                        kdums.setBdDeckungsbeitrag(kdums.getBdDeckungsbeitrag().add(umsatzLs));

                    } else if (lieferscheinpos.getPositionsart_c_nr().equals(LocaleFac.POSITIONSART_IDENT)
                            || (lieferscheinpos.getPositionsart_c_nr()
                                    .equals(LocaleFac.POSITIONSART_HANDEINGABE)
                                    && iOptionGruppierung
                                            .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHR)
                            || (lieferscheinpos.getPositionsart_c_nr()
                                    .equals(LocaleFac.POSITIONSART_HANDEINGABE)
                                    && iOptionGruppierung
                                            .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_MONAT)) {
                        BigDecimal gestpreis = new BigDecimal(0);
                        BigDecimal deckungsbeitrag = new BigDecimal(0);
                        if (ohneDBBetrachtung == false) {
                            try {

                                /**
                                 * @todo Berechnung fuer negative
                                 *       Lieferscheinpositionen einbauen
                                 */
                                if (lieferscheinpos.getN_menge().doubleValue() < 0) {
                                    if (umsatz != null) {
                                        gestpreis = umsatz;
                                    }
                                } else {

                                    if (!rechpos.getPositionsart_c_nr()
                                            .equals(LocaleFac.POSITIONSART_HANDEINGABE)) {

                                        // PJ 16882
                                        if (lieferscheinpos.getFlrartikel() != null
                                                && Helper.short2boolean(lieferscheinpos.getFlrartikel()
                                                        .getB_lagerbewirtschaftet()) == false
                                                && !lieferscheinpos.getFlrartikel().getArtikelart_c_nr()
                                                        .equals(ArtikelFac.ARTIKELART_ARBEITSZEIT)) {
                                            gestpreis = new BigDecimal(0);
                                        } else {
                                            gestpreis = getLagerFac()
                                                    .getGemittelterGestehungspreisEinerAbgangsposition(
                                                            LocaleFac.BELEGART_LIEFERSCHEIN,
                                                            lieferscheinpos.getI_id());
                                            gestpreis = gestpreis.multiply(lieferscheinpos.getN_menge());
                                        }

                                    }
                                }
                            } catch (RemoteException ex2) {
                                if (ex2.getCause() instanceof EJBExceptionLP) {
                                    if (((EJBExceptionLP) ex2.getCause())
                                            .getCode() == EJBExceptionLP.ARTIKEL_KEINE_LAGERBUCHUNG_VORHANDEN) {
                                        // DANN ALLES OK
                                    } else {
                                        throwEJBExceptionLPRespectOld(ex2);
                                    }
                                } else {
                                    throwEJBExceptionLPRespectOld(ex2);
                                }
                            }
                            deckungsbeitrag = umsatzLs.subtract(gestpreis);
                        }

                        // GESAMTSUMME

                        if (rechpos.getPositionsart_c_nr().equals(LocaleFac.POSITIONSART_HANDEINGABE)) {
                            deckungsbeitrag = umsatzLs;
                        }

                        kdums.setBdUmsatz(kdums.getBdUmsatz().add(umsatzLs));
                        kdums.setBdDeckungsbeitrag(kdums.getBdDeckungsbeitrag().add(deckungsbeitrag));

                        if (iOptionGruppierung
                                .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_ARTIKELKLASSE) {
                            if (lieferscheinpos.getFlrartikel().getFlrartikelklasse() != null) {
                                // Bei richtiger Artikelklasse einfuegen

                                for (int j = 0; j < gruppierung.size(); j++) {
                                    if (gruppierung.get(j).equals(
                                            lieferscheinpos.getFlrartikel().getFlrartikelklasse().getC_nr())) {
                                        kdums.getSubSummeUmsatz()[j + 1] = kdums.getSubSummeUmsatz()[j + 1]
                                                .add(umsatzLs);
                                        kdums.getSubSummeDeckungsbeitrag()[j
                                                + 1] = kdums.getSubSummeDeckungsbeitrag()[j + 1]
                                                        .add(deckungsbeitrag);
                                        bSpalteAndrucken[j] = true;

                                    }
                                }
                            } else {
                                kdums.getSubSummeUmsatz()[0] = kdums.getSubSummeUmsatz()[0].add(umsatzLs);
                                kdums.getSubSummeDeckungsbeitrag()[0] = kdums.getSubSummeDeckungsbeitrag()[0]
                                        .add(deckungsbeitrag);
                            }
                        } else if (iOptionGruppierung
                                .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_ARTIKELGRUPPE) {
                            if (lieferscheinpos.getFlrartikel().getFlrartikelgruppe() != null) {
                                // Bei richtiger Gruppe einfuegen

                                for (int j = 0; j < gruppierung.size(); j++) {
                                    if (gruppierung.get(j).equals(
                                            lieferscheinpos.getFlrartikel().getFlrartikelgruppe().getC_nr())) {
                                        kdums.getSubSummeUmsatz()[j + 1] = kdums.getSubSummeUmsatz()[j + 1]
                                                .add(umsatzLs);
                                        kdums.getSubSummeDeckungsbeitrag()[j
                                                + 1] = kdums.getSubSummeDeckungsbeitrag()[j + 1]
                                                        .add(deckungsbeitrag);
                                        bSpalteAndrucken[j] = true;

                                    }
                                }
                            } else {
                                kdums.getSubSummeUmsatz()[0] = kdums.getSubSummeUmsatz()[0].add(umsatzLs);
                                kdums.getSubSummeDeckungsbeitrag()[0] = kdums.getSubSummeDeckungsbeitrag()[0]
                                        .add(deckungsbeitrag);
                            }
                        } else if (iOptionGruppierung
                                .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_FERTIGUNGSGRUPPE) {

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

                            String queryString = "SELECT stkl.flrfertigungsgruppe FROM FLRStueckliste AS stkl"
                                    + " WHERE stkl.artikel_i_id= " + lieferscheinpos.getFlrartikel().getI_id();

                            Query query = sessionFTGruppe.createQuery(queryString);
                            List<?> resultList = query.list();
                            Iterator<?> resultListIteratorFTGruppe = resultList.iterator();

                            if (resultListIteratorFTGruppe.hasNext()) {
                                FLRFertigungsgruppe gru = (FLRFertigungsgruppe) resultListIteratorFTGruppe
                                        .next();

                                if (gru != null) {
                                    // Bei richtiger Gruppe einfuegen
                                    for (int j = 0; j < gruppierung.size(); j++) {
                                        if (gruppierung.get(j).equals(gru.getC_bez())) {
                                            kdums.getSubSummeUmsatz()[j + 1] = kdums.getSubSummeUmsatz()[j + 1]
                                                    .add(umsatzLs);
                                            kdums.getSubSummeDeckungsbeitrag()[j
                                                    + 1] = kdums.getSubSummeDeckungsbeitrag()[j + 1]
                                                            .add(deckungsbeitrag);
                                            bSpalteAndrucken[j] = true;
                                        }
                                    }
                                } else {
                                    kdums.getSubSummeUmsatz()[0] = kdums.getSubSummeUmsatz()[0].add(umsatzLs);
                                    kdums.getSubSummeDeckungsbeitrag()[0] = kdums
                                            .getSubSummeDeckungsbeitrag()[0].add(deckungsbeitrag);
                                }
                                sessionFTGruppe.close();
                            }
                        } else if (iOptionGruppierung
                                .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHR) {

                            Calendar cZeile = Calendar.getInstance();
                            cZeile.setTimeInMillis(rechpos.getFlrrechnung().getD_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(umsatzLs);
                                    kdums.getSubSummeDeckungsbeitrag()[j
                                            + 1] = kdums.getSubSummeDeckungsbeitrag()[j + 1]
                                                    .add(deckungsbeitrag);
                                    bSpalteAndrucken[j] = true;
                                }
                            }
                        } else if (iOptionGruppierung
                                .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_MONAT) {

                            Calendar cZeile = Calendar.getInstance();
                            cZeile.setTimeInMillis(rechpos.getFlrrechnung().getD_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(umsatzLs);
                                    kdums.getSubSummeDeckungsbeitrag()[j
                                            + 1] = kdums.getSubSummeDeckungsbeitrag()[j + 1]
                                                    .add(deckungsbeitrag);
                                    bSpalteAndrucken[j] = true;
                                }
                            }
                        }
                    }

                }
                session3.close();

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

            gesamtUmsatz = gesamtUmsatz.add(kdums.getBdUmsatz());
            gesamtDeckungsbeitrag = gesamtDeckungsbeitrag.add(kdums.getBdDeckungsbeitrag());
        }
    }
    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++) {

            if (bUmsatz == true) {

                double a = ((KundeUmsatzstatistikDto) gesamtListe.get(j)).getBdUmsatz().doubleValue();
                double b = ((KundeUmsatzstatistikDto) gesamtListe.get(j + 1)).getBdUmsatz().doubleValue();

                if (iOptionGruppierung == REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHR
                        && iOptionSortierung == REPORT_KUNDEUMSATZSTATISTIK_OPTION_SORTIERUNG_UMSATZ) {
                    if (iSortierbasisJahre == REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHRE_SORTIERBASIS_UMSATZ_AKTUELLESJAHR) {
                        a = ((KundeUmsatzstatistikDto) gesamtListe.get(j))
                                .getSubSummeUmsatz()[((KundeUmsatzstatistikDto) gesamtListe.get(j))
                                        .getSubSummeUmsatz().length - 1].doubleValue();
                        b = ((KundeUmsatzstatistikDto) gesamtListe.get(j + 1))
                                .getSubSummeUmsatz()[((KundeUmsatzstatistikDto) gesamtListe.get(j))
                                        .getSubSummeUmsatz().length - 1].doubleValue();
                    } else if (iSortierbasisJahre == REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHRE_SORTIERBASIS_UMSATZ_VORJAHR
                            && ((KundeUmsatzstatistikDto) gesamtListe.get(j)).getSubSummeUmsatz().length > 1) {
                        a = ((KundeUmsatzstatistikDto) gesamtListe.get(j))
                                .getSubSummeUmsatz()[((KundeUmsatzstatistikDto) gesamtListe.get(j))
                                        .getSubSummeUmsatz().length - 2].doubleValue();
                        b = ((KundeUmsatzstatistikDto) gesamtListe.get(j + 1))
                                .getSubSummeUmsatz()[((KundeUmsatzstatistikDto) gesamtListe.get(j))
                                        .getSubSummeUmsatz().length - 2].doubleValue();
                    }
                }

                if (a < b) {
                    temp = gesamtListe.get(j);
                    gesamtListe.set(j, gesamtListe.get(j + 1));
                    gesamtListe.set(j + 1, temp);
                }
            } else {
                double a = ((KundeUmsatzstatistikDto) gesamtListe.get(j)).getBdDeckungsbeitrag().doubleValue();
                double b = ((KundeUmsatzstatistikDto) gesamtListe.get(j + 1)).getBdDeckungsbeitrag()
                        .doubleValue();

                if (iOptionGruppierung == REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHR
                        && iOptionSortierung == REPORT_KUNDEUMSATZSTATISTIK_OPTION_SORTIERUNG_UMSATZ) {
                    if (iSortierbasisJahre == REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHRE_SORTIERBASIS_UMSATZ_AKTUELLESJAHR) {
                        a = ((KundeUmsatzstatistikDto) gesamtListe.get(j))
                                .getSubSummeDeckungsbeitrag()[((KundeUmsatzstatistikDto) gesamtListe.get(j))
                                        .getSubSummeDeckungsbeitrag().length - 1].doubleValue();
                        b = ((KundeUmsatzstatistikDto) gesamtListe.get(j + 1))
                                .getSubSummeDeckungsbeitrag()[((KundeUmsatzstatistikDto) gesamtListe.get(j))
                                        .getSubSummeDeckungsbeitrag().length - 1].doubleValue();
                    } else if (iSortierbasisJahre == REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHRE_SORTIERBASIS_UMSATZ_VORJAHR
                            && ((KundeUmsatzstatistikDto) gesamtListe.get(j))
                                    .getSubSummeDeckungsbeitrag().length > 1) {
                        a = ((KundeUmsatzstatistikDto) gesamtListe.get(j))
                                .getSubSummeDeckungsbeitrag()[((KundeUmsatzstatistikDto) gesamtListe.get(j))
                                        .getSubSummeDeckungsbeitrag().length - 2].doubleValue();
                        b = ((KundeUmsatzstatistikDto) gesamtListe.get(j + 1))
                                .getSubSummeDeckungsbeitrag()[((KundeUmsatzstatistikDto) gesamtListe.get(j))
                                        .getSubSummeDeckungsbeitrag().length - 2].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();
    double dTempDeckungsbeitrag = gesamtDeckungsbeitrag.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)));

    BigDecimal paramBDeckungsbeitrag = gesamtDeckungsbeitrag
            .multiply((new BigDecimal(mandantparameterB.getCWert()).divide(new BigDecimal(100), 4,
                    BigDecimal.ROUND_HALF_EVEN)));

    BigDecimal paramADeckungsbeitrag = gesamtDeckungsbeitrag
            .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 (bUmsatz == true) {
            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();
        } else {
            if (dTempDeckungsbeitrag < gesamtDeckungsbeitrag.doubleValue()
                    - (paramADeckungsbeitrag.doubleValue() + paramBDeckungsbeitrag.doubleValue())) {
                dto.setAbcKlassifizierung("C");
            } else if (dTempDeckungsbeitrag < paramBDeckungsbeitrag.doubleValue()) {
                dto.setAbcKlassifizierung("B");
            } else {
                dto.setAbcKlassifizierung("A");
            }

            dTempDeckungsbeitrag = dTempDeckungsbeitrag - dto.getBdDeckungsbeitrag().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);
                }
            }
        }
    }

    else if (iOptionSortierung.intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_SORTIERUNG_LKZ) {
        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)).getSLkz();
                String b = ((KundeUmsatzstatistikDto) gesamtListe.get(j + 1)).getSLkz();
                if (a.compareTo(b) > 0) {
                    temp = gesamtListe.get(j);
                    gesamtListe.set(j, gesamtListe.get(j + 1));
                    gesamtListe.set(j + 1, temp);
                } else if (a.compareTo(b) == 0) {
                    String plz1 = ((KundeUmsatzstatistikDto) gesamtListe.get(j)).getSPlz();
                    String plz2 = ((KundeUmsatzstatistikDto) gesamtListe.get(j + 1)).getSPlz();

                    if (plz1.compareTo(plz2) > 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;
        if (bUmsatz == true) {
            sAktuellerReport = LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK;
        } else {
            sAktuellerReport = LagerReportFac.REPORT_KUNDEDBSTATISTIK;
        }
        data = new Object[gesamtListe.size()][28];
        for (int j = 0; j < gesamtListe.size(); j++) {
            KundeUmsatzstatistikDto dto = (KundeUmsatzstatistikDto) gesamtListe.get(j);
            data[j][REPORT_KUNDEUMSATZSTATISTIK_KUNDENGRUPPIERUNG] = dto.getSKundengruppierung();
            data[j][REPORT_KUNDEUMSATZSTATISTIK_KUNDE] = dto.getSKunde();
            data[j][REPORT_KUNDEUMSATZSTATISTIK_UMSATZ] = dto.getBdUmsatz();
            data[j][REPORT_KUNDEUMSATZSTATISTIK_PLZ] = dto.getSPlz();
            data[j][REPORT_KUNDEUMSATZSTATISTIK_LKZ] = dto.getSLkz();
            data[j][REPORT_KUNDEUMSATZSTATISTIK_KUNDENNUMMER] = dto.getIKundennummer();
            data[j][REPORT_KUNDEUMSATZSTATISTIK_DECKUNGSBEITRAG] = dto.getBdDeckungsbeitrag();
            data[j][REPORT_KUNDEUMSATZSTATISTIK_ERSTUMSATZ] = new Boolean(dto.isBErstumsatz());
            data[j][REPORT_KUNDEUMSATZSTATISTIK_ABCKLASSE] = dto.getAbcKlassifizierung();
            data[j][REPORT_KUNDEUMSATZSTATISTIK_ZAHLUNGSZIEL] = getMandantFac()
                    .zahlungszielFindByIIdLocaleOhneExc(dto.getIZahlungsziel(), theClientDto.getLocMandant(),
                            theClientDto);
            data[j][REPORT_KUNDEUMSATZSTATISTIK_LIEFERART] = getLocaleFac().lieferartFindByIIdLocaleOhneExc(
                    dto.getILieferart(), theClientDto.getLocMandant(), theClientDto);
            data[j][REPORT_KUNDEUMSATZSTATISTIK_SPEDITEUR] = getMandantFac()
                    .spediteurFindByPrimaryKey(dto.getISpediteur()).getCNamedesspediteurs();

            try {
                if (i == 0) {
                    data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE1] = dto.getSubSummeUmsatz()[0];
                    data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE1DB] = dto.getSubSummeDeckungsbeitrag()[0];
                } else {
                    data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE1] = dto
                            .getSubSummeUmsatz()[spaltenDrucken[0 + (i * 8)]];
                    data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE1DB] = dto
                            .getSubSummeDeckungsbeitrag()[spaltenDrucken[0 + (i * 8)]];
                }
                data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE2] = dto
                        .getSubSummeUmsatz()[spaltenDrucken[1 + (i * 8)]];
                data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE2DB] = dto
                        .getSubSummeDeckungsbeitrag()[spaltenDrucken[1 + (i * 8)]];
                data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE3] = dto
                        .getSubSummeUmsatz()[spaltenDrucken[2 + (i * 8)]];
                data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE3DB] = dto
                        .getSubSummeDeckungsbeitrag()[spaltenDrucken[2 + (i * 8)]];
                data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE4] = dto
                        .getSubSummeUmsatz()[spaltenDrucken[3 + (i * 8)]];
                data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE4DB] = dto
                        .getSubSummeDeckungsbeitrag()[spaltenDrucken[3 + (i * 8)]];
                data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE5] = dto
                        .getSubSummeUmsatz()[spaltenDrucken[4 + (i * 8)]];
                data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE5DB] = dto
                        .getSubSummeDeckungsbeitrag()[spaltenDrucken[4 + (i * 8)]];
                data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE6] = dto
                        .getSubSummeUmsatz()[spaltenDrucken[5 + (i * 8)]];
                data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE6DB] = dto
                        .getSubSummeDeckungsbeitrag()[spaltenDrucken[5 + (i * 8)]];
                data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE7] = dto
                        .getSubSummeUmsatz()[spaltenDrucken[6 + (i * 8)]];
                data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE7DB] = dto
                        .getSubSummeDeckungsbeitrag()[spaltenDrucken[6 + (i * 8)]];
                data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE8] = dto
                        .getSubSummeUmsatz()[spaltenDrucken[7 + (i * 8)]];
                data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE8DB] = dto
                        .getSubSummeDeckungsbeitrag()[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 (bUmsatz == true) {
            parameter.put("P_UMSATZ", new Boolean(true));
        } else {
            parameter.put("P_UMSATZ", new Boolean(false));
        }

        if (iOptionKundengruppierung
                .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_KUNDENGRUPPIERUNG_BRANCHE) {
            parameter.put("P_GRUPPIERUNGKUNDE",
                    getTextRespectUISpr("lp.branche", theClientDto.getMandant(), theClientDto.getLocUi()));
        } else if (iOptionKundengruppierung
                .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_KUNDENGRUPPIERUNG_PARTNERKLASSE) {
            parameter.put("P_GRUPPIERUNGKUNDE", "Partnerklasse");
        }

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

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

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

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

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

        } else if (iOptionSortierung
                .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_SORTIERUNG_LKZ) {
            parameter.put("P_SORTIERUNG",
                    getTextRespectUISpr("lp.lkzplz", theClientDto.getMandant(), theClientDto.getLocUi()));

        }
        parameter.put("P_STATISTIKADRESSE", new Boolean(bVerwendeStatistikadresse));

        parameter.put("P_MITNICHTLAGERBEWERTETENARTIKELN", new Boolean(bMitNichtLagerbewertetenArtikeln));
        parameter.put("P_OHNE_DBBETRACHTUNG", new Boolean(ohneDBBetrachtung));

        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;

}

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

License:Open Source License

@TransactionAttribute(TransactionAttributeType.NEVER)
public JasperPrintLP printWarenbewegungsjournal(Integer artikelIId, Integer lagerIId, Timestamp dVon,
        Timestamp dBis, TheClientDto theClientDto) {

    if (artikelIId == null) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FELD_DARF_NICHT_NULL_SEIN,
                new Exception("artikelIId == null"));
    }//from   www . ja  v a2s.  c o  m
    ArtikelDto dto = getArtikelFac().artikelFindByPrimaryKeySmall(artikelIId, theClientDto);

    boolean darfEinkaufspreisSehen = getTheJudgeFac().hatRecht(RechteFac.RECHT_LP_DARF_PREISE_SEHEN_EINKAUF,
            theClientDto);
    boolean darfVerkaufspreisSehen = getTheJudgeFac().hatRecht(RechteFac.RECHT_LP_DARF_PREISE_SEHEN_VERKAUF,
            theClientDto);

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

    // Testfunktion AD
    // recalcGestehungspreisKomplett(artikelIId, session, true);

    org.hibernate.Criteria crit = session.createCriteria(FLRLagerbewegung.class).createAlias("flrartikel", "a")
            .add(Restrictions.eq("a.i_id", artikelIId)).createAlias("flrlager", "l")
            .add(Restrictions.eq("l.mandant_c_nr", theClientDto.getMandant()))
            .add(Restrictions.not(Restrictions.eq("l.lagerart_c_nr", LagerFac.LAGERART_WERTGUTSCHRIFT)))
            .add(Restrictions.eq(LagerFac.FLR_LAGERBEWEGUNG_B_ABGANG, Helper.boolean2Short(false)))
            .add(Restrictions.eq(LagerFac.FLR_LAGERBEWEGUNG_B_HISTORIE, Helper.boolean2Short(false)))
            .addOrder(Order.desc(LagerFac.FLR_LAGERBEWEGUNG_T_BELEGDATUM))
            .addOrder(Order.desc(LagerFac.FLR_LAGERBEWEGUNG_T_BUCHUNGSZEIT));

    if (lagerIId != null) {
        crit.add(Restrictions.eq("l.i_id", lagerIId));
    }

    if (dVon != null) {
        crit.add(Restrictions.ge(LagerFac.FLR_LAGERBEWEGUNG_T_BUCHUNGSZEIT, Helper.cutTimestamp(dVon)));
    }
    if (dBis != null) {
        Timestamp tsBis = new Timestamp(dBis.getTime());
        tsBis.setTime(tsBis.getTime() + 24 * 3600000);

        crit.add(Restrictions.lt(LagerFac.FLR_LAGERBEWEGUNG_T_BUCHUNGSZEIT, Helper.cutTimestamp(tsBis)));
    }

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

    index = -1;
    sAktuellerReport = LagerReportFac.REPORT_WARENBEWEGUNGSJOURNAL;

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

    while (resultListIterator.hasNext()) {
        FLRLagerbewegung lagerbewegung = (FLRLagerbewegung) resultListIterator.next();
        if (lagerbewegung.getN_menge().doubleValue() != 0) {
            Object[] dataHelp = new Object[20];

            try {
                BelegInfos infosZugang = getLagerFac().getBelegInfos(lagerbewegung.getC_belegartnr(),
                        lagerbewegung.getI_belegartid(), lagerbewegung.getI_belegartpositionid(), theClientDto);

                dataHelp[REPORT_WARENBEWEGUNGSJOURNAL_ZUGANG_WER_HAT_GEBUCHT] = lagerbewegung.getFlrpersonal()
                        .getC_kurzzeichen();

                dataHelp[REPORT_WARENBEWEGUNGSJOURNAL_ZUGANGSBELEG] = lagerbewegung.getFlrbelegart().getC_kbez()
                        + infosZugang.getBelegnummer();
                dataHelp[REPORT_WARENBEWEGUNGSJOURNAL_LAGER] = lagerbewegung.getFlrlager().getC_nr();

                dataHelp[REPORT_WARENBEWEGUNGSJOURNAL_SNR] = lagerbewegung.getC_seriennrchargennr();

                dataHelp[REPORT_WARENBEWEGUNGSJOURNAL_ZUBUCHUNGSZEITPUNKT] = lagerbewegung.getT_buchungszeit();
                if (darfEinkaufspreisSehen) {
                    dataHelp[REPORT_WARENBEWEGUNGSJOURNAL_EINSTANDSPREIS] = lagerbewegung.getN_einstandspreis();
                }

                if (lagerbewegung.getFlrhersteller() != null) {
                    dataHelp[REPORT_WARENBEWEGUNGSJOURNAL_HERSTELLER] = lagerbewegung.getFlrhersteller()
                            .getC_nr();
                }
                if (lagerbewegung.getFlrland() != null) {
                    dataHelp[REPORT_WARENBEWEGUNGSJOURNAL_URSPRUNGSLAND] = lagerbewegung.getFlrland()
                            .getC_lkz();
                }

                dataHelp[REPORT_WARENBEWEGUNGSJOURNAL_WE_REFERENZ] = getLagerFac()
                        .getWareneingangsreferenzSubreport(lagerbewegung.getC_belegartnr(),
                                lagerbewegung.getI_belegartpositionid(), lagerbewegung.getC_seriennrchargennr(),
                                false, theClientDto);

                dataHelp[REPORT_WARENBEWEGUNGSJOURNAL_ZUGANGSMENGE] = lagerbewegung.getN_menge();

                dataHelp[REPORT_WARENBEWEGUNGSJOURNAL_ZUGANGFIRMAKOMMENTAR] = infosZugang.getKundeLieferant();

                dataHelp[REPORT_WARENBEWEGUNGSJOURNAL_ZUGANGSDATUM] = infosZugang.getBelegdatum();

                Session sessionSub = FLRSessionFactory.getFactory().openSession();
                String queryString = "FROM FLRLagerabgangursprung AS lagerabgangursprung WHERE lagerabgangursprung.compId.i_lagerbewegungidursprung="
                        + lagerbewegung.getI_id_buchung() + " AND lagerabgangursprung.n_verbrauchtemenge>0";
                Query querySub = sessionSub.createQuery(queryString);
                List<?> subResults = querySub.list();
                Iterator<?> subResultListIterator = subResults.iterator();
                if (subResults.size() == 0) {

                    // CK: Projekt 8200
                    if (darfEinkaufspreisSehen) {
                        dataHelp[REPORT_WARENBEWEGUNGSJOURNAL_GESTPREIS] = getLagerFac()
                                .getGemittelterGestehungspreisEinesLagers(artikelIId,
                                        lagerbewegung.getFlrlager().getI_id(), theClientDto);
                    }

                    al.add(dataHelp);
                } else {
                    while (subResultListIterator.hasNext()) {
                        FLRLagerabgangursprung lagerabgangursprung = (FLRLagerabgangursprung) subResultListIterator
                                .next();

                        Session sessionAbgang = FLRSessionFactory.getFactory().openSession();
                        org.hibernate.Criteria critAbgang = sessionAbgang
                                .createCriteria(FLRLagerbewegung.class);
                        critAbgang.add(Restrictions.eq(LagerFac.FLR_LAGERBEWEGUNG_I_ID_BUCHUNG,
                                lagerabgangursprung.getCompId().getI_lagerbewegungid()));

                        critAbgang.add(Restrictions.eq(LagerFac.FLR_LAGERBEWEGUNG_B_HISTORIE,
                                Helper.boolean2Short(false)));

                        critAbgang.addOrder(Order.desc(LagerFac.FLR_LAGERBEWEGUNG_T_BUCHUNGSZEIT));
                        List<?> resultsAbgang = critAbgang.list();
                        try {
                            FLRLagerbewegung flrLagerbewegungAbgang = (FLRLagerbewegung) resultsAbgang
                                    .iterator().next();

                            BelegInfos infosAbgang = getLagerFac().getBelegInfos(
                                    flrLagerbewegungAbgang.getC_belegartnr(),
                                    flrLagerbewegungAbgang.getI_belegartid(),
                                    lagerbewegung.getI_belegartpositionid(), theClientDto);
                            dataHelp[REPORT_WARENBEWEGUNGSJOURNAL_ABGANG_WER_HAT_GEBUCHT] = flrLagerbewegungAbgang
                                    .getFlrpersonal().getC_kurzzeichen();
                            dataHelp[REPORT_WARENBEWEGUNGSJOURNAL_ABGANGSBELEG] = flrLagerbewegungAbgang
                                    .getFlrbelegart().getC_kbez() + infosAbgang.getBelegnummer();

                            dataHelp[REPORT_WARENBEWEGUNGSJOURNAL_ZUGANGSBELEG] = lagerbewegung.getFlrbelegart()
                                    .getC_kbez() + infosZugang.getBelegnummer();

                            dataHelp[REPORT_WARENBEWEGUNGSJOURNAL_ABGANGFIRMAKOMMENTAR] = infosAbgang
                                    .getKundeLieferant();
                            dataHelp[REPORT_WARENBEWEGUNGSJOURNAL_ABGANGSDATUM] = infosAbgang.getBelegdatum();

                            dataHelp[REPORT_WARENBEWEGUNGSJOURNAL_ABBUCHUNGSZEITPUNKT] = flrLagerbewegungAbgang
                                    .getT_buchungszeit();

                            if (darfEinkaufspreisSehen) {
                                dataHelp[REPORT_WARENBEWEGUNGSJOURNAL_GESTPREIS] = lagerabgangursprung
                                        .getN_gestehungspreis();
                            }
                            if (darfVerkaufspreisSehen) {
                                dataHelp[REPORT_WARENBEWEGUNGSJOURNAL_VKPREIS] = flrLagerbewegungAbgang
                                        .getN_verkaufspreis();
                            }
                            dataHelp[REPORT_WARENBEWEGUNGSJOURNAL_ABGANGSMENGE] = lagerabgangursprung
                                    .getN_verbrauchtemenge();
                            al.add(dataHelp);
                        } catch (java.util.NoSuchElementException e) {
                            dataHelp[REPORT_WARENBEWEGUNGSJOURNAL_ABGANGSBELEG] = "FEHLER:";
                            dataHelp[REPORT_WARENBEWEGUNGSJOURNAL_ABGANGFIRMAKOMMENTAR] = "KEINE INFORMATIONEN";
                            al.add(dataHelp);
                        }
                        dataHelp = new Object[20];
                        sessionAbgang.close();
                    }
                }
                sessionSub.close();
            } catch (RemoteException ex1) {
                throwEJBExceptionLPRespectOld(ex1);
            }
        }

    }
    session.close();

    Object[][] returnArray = new Object[al.size()][18];
    data = (Object[][]) al.toArray(returnArray);

    HashMap<String, Object> parameter = new HashMap<String, Object>();
    parameter.put("P_ARTIKEL", dto.formatArtikelbezeichnung());
    parameter.put("P_RECHT_LP_DARF_PREISE_SEHEN_EINKAUF", darfEinkaufspreisSehen);
    parameter.put("P_RECHT_LP_DARF_PREISE_SEHEN_VERKAUF", darfVerkaufspreisSehen);
    if (dVon != null) {
        parameter.put("P_VON", dVon);
    }
    if (dBis != null) {
        parameter.put("P_BIS", dBis);
    }
    if (lagerIId != null) {
        try {
            LagerDto lagerDto = getLagerFac().lagerFindByPrimaryKey(lagerIId);
            parameter.put("P_LAGER", lagerDto.getCNr());
        } catch (RemoteException ex1) {
            throwEJBExceptionLPRespectOld(ex1);
        }
    }

    initJRDS(parameter, LagerReportFac.REPORT_MODUL, LagerReportFac.REPORT_WARENBEWEGUNGSJOURNAL,
            theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto);

    return getReportPrint();

}