Example usage for org.hibernate.criterion Restrictions gt

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

Introduction

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

Prototype

public static SimpleExpression gt(String propertyName, Object value) 

Source Link

Document

Apply a "greater than" constraint to the named property

Usage

From source file:com.lp.server.rechnung.ejbfac.RechnungReportFacBean.java

License:Open Source License

public JasperPrintLP printRechnungenOffene(ReportRechnungJournalKriterienDto krit, TheClientDto theClientDto)
        throws EJBExceptionLP {
    Session session = null;// w w  w. j a v a  2 s  .c o m
    try {
        Map<String, Object> mapParameter = new TreeMap<String, Object>();

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

        this.useCase = UC_REPORT_RECHNUNGEN_OFFENE;
        SessionFactory factory = FLRSessionFactory.getFactory();
        session = factory.openSession();
        // Kunde oder Statistikadresse verwenden
        final String critKundeIId;
        final String critFLRKunde;
        if (krit.getBVerwendeStatistikAdresse()) {
            critKundeIId = RechnungFac.FLR_RECHNUNG_KUNDE_I_ID_STATISTIKADRESSE;
            critFLRKunde = RechnungFac.FLR_RECHNUNG_FLRSTATISTIKADRESSE;
        } else {
            critKundeIId = RechnungFac.FLR_RECHNUNG_KUNDE_I_ID;
            critFLRKunde = RechnungFac.FLR_RECHNUNG_FLRKUNDE;
        }

        List<Integer> kundenIIds = new ArrayList<Integer>();

        if (krit.kundeIId != null) {
            kundenIIds.add(krit.kundeIId);
        } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) {
            Iterator<?> iter = session.createCriteria(FLRKunde.class).createAlias("flrpartner", "p")
                    .addOrder(Order.asc("p.c_name1nachnamefirmazeile1"))
                    .add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant())).list().iterator();
            while (iter.hasNext())
                kundenIIds.add(((FLRKunde) iter.next()).getI_id());
        } else {
            kundenIIds.add(null);
        }

        List<Object[]> dataList = new ArrayList<Object[]>();

        for (Integer kndIId : kundenIIds) {

            Criteria c = session.createCriteria(FLRRechnungReport.class);
            // Filter nach Mandant
            c.add(Restrictions.eq(RechnungFac.FLR_RECHNUNG_MANDANT_C_NR, theClientDto.getMandant()));
            // Rechnungstypen
            Collection<String> cRechnungstyp = new LinkedList<String>();
            cRechnungstyp.add(RechnungFac.RECHNUNGTYP_RECHNUNG);
            if (krit.getBGutschriftenBeruecksichtigen()) {
                cRechnungstyp.add(RechnungFac.RECHNUNGTYP_GUTSCHRIFT);
            }
            c.createCriteria(RechnungFac.FLR_RECHNUNG_FLRRECHNUNGART)
                    .add(Restrictions.in(RechnungFac.FLR_RECHNUNGART_RECHNUNGTYP_C_NR, cRechnungstyp));
            // Kostenstelle
            if (krit.kostenstelleIId != null) {
                c.add(Restrictions.eq(RechnungFac.FLR_RECHNUNG_KOSTENSTELLE_I_ID, krit.kostenstelleIId));
            }
            if (kndIId != null) {
                c.add(Restrictions.eq(critKundeIId, kndIId));
                KundeDto kundeDto = getKundeFac().kundeFindByPrimaryKey(kndIId, theClientDto);
                mapParameter.put("P_KUNDE", kundeDto.getPartnerDto().formatTitelAnrede());
            }
            // Filter nach einem Vertrter
            if (krit.vertreterIId != null) {
                c.add(Restrictions.eq(RechnungFac.FLR_RECHNUNG_FLRVERTRETER + ".i_id", krit.vertreterIId));
            }
            String sVon = null;
            String sBis = null;
            if (krit.dVon != null) {
                c.add(Restrictions.ge(RechnungFac.FLR_RECHNUNG_D_BELEGDATUM, krit.dVon));
                sVon = Helper.formatDatum(krit.dVon, theClientDto.getLocUi());
            }
            if (krit.dBis != null) {
                c.add(Restrictions.le(RechnungFac.FLR_RECHNUNG_D_BELEGDATUM, krit.dBis));
                sBis = Helper.formatDatum(krit.dBis, theClientDto.getLocUi());
            }
            LpBelegnummerFormat f = getBelegnummerGeneratorObj()
                    .getBelegnummernFormat(theClientDto.getMandant());
            Integer iGeschaeftsjahr = getParameterFac().getGeschaeftsjahr(theClientDto.getMandant());
            String sMandantKuerzel = getParameterFac().getMandantparameter(theClientDto.getMandant(),
                    ParameterFac.KATEGORIE_ALLGEMEIN, ParameterFac.PARAMETER_BELEGNUMMER_MANDANTKENNUNG)
                    .getCWert();
            if (krit.sBelegnummerVon != null) {
                sVon = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr,
                        sMandantKuerzel, krit.sBelegnummerVon);
                c.add(Restrictions.ge(RechnungFac.FLR_RECHNUNG_C_NR, sVon));
            }
            if (krit.sBelegnummerBis != null) {
                sBis = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr,
                        sMandantKuerzel, krit.sBelegnummerBis);
                c.add(Restrictions.le(RechnungFac.FLR_RECHNUNG_C_NR, sBis));
            }
            // Alle Stati ausser Angelegt, Bezahlt, Storniert
            Collection<String> cStati = new LinkedList<String>();
            cStati.add(RechnungFac.STATUS_ANGELEGT);
            cStati.add(RechnungFac.STATUS_STORNIERT);

            c.add(Restrictions.not(Restrictions.in(RechnungFac.FLR_RECHNUNG_STATUS_C_NR, cStati)));

            c.add(Restrictions.or(Restrictions.gt("t_bezahltdatum", krit.getTStichtag()),
                    Restrictions.isNull("t_bezahltdatum")));

            boolean mitNichtZugeordnetenBelegen = false;
            // Sortierung nach Kostenstelle
            if (krit.bSortiereNachKostenstelle) {
                c.createCriteria(RechnungFac.FLR_RECHNUNG_FLRKOSTENSTELLE).addOrder(Order.asc("c_nr"));
            }
            // Sortierung nach Kunde
            if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) {
                c.createCriteria(critFLRKunde).createCriteria(KundeFac.FLR_PARTNER)
                        .addOrder(Order.asc(PartnerFac.FLR_PARTNER_NAME1NACHNAMEFIRMAZEILE1));
                c.addOrder(Order.asc(RechnungFac.FLR_RECHNUNG_C_NR));
                mitNichtZugeordnetenBelegen = krit.getBMitNichtZugeordnetendBelegen();
            }
            // Sortierung nach Belegnummer
            else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_BELEGNUMMER) {
                c.addOrder(Order.asc(RechnungFac.FLR_RECHNUNG_C_NR));
            } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_VERTRETER) {
                c.createCriteria(RechnungFac.FLR_RECHNUNG_FLRVERTRETER)
                        .addOrder(Order.asc(PersonalFac.FLR_PERSONAL_C_KURZZEICHEN));
            } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_FAELLIGKEIT) {
                c.addOrder(Order.asc(RechnungFac.FLR_RECHNUNG_T_FAELLIGKEIT))
                        .addOrder(Order.asc(RechnungFac.FLR_RECHNUNG_C_NR));
            }
            // stichtag ab belegdatum
            c.add(Restrictions.le(RechnungFac.FLR_RECHNUNG_D_BELEGDATUM, krit.getTStichtag()));
            List<?> firstResultList = c.list();
            Iterator<?> firstResultListIterator = firstResultList.iterator();
            List<FLRRechnungReport> resultList = new LinkedList<FLRRechnungReport>();
            while (firstResultListIterator.hasNext()) {
                FLRRechnungReport re = (FLRRechnungReport) firstResultListIterator.next();
                // stichtag bereits bezahlt?
                if (re.getT_bezahltdatum() == null || !krit.getTStichtag().after(re.getT_bezahltdatum())) {
                    resultList.add(re);
                }
            }
            Iterator<?> resultListIterator = resultList.iterator();
            int row = 0;
            Object[][] tempData = new Object[resultList.size()][OFFENE_ANZAHL_SPALTEN];

            KundeDto kundeDto = null;
            if (kndIId != null)
                kundeDto = getKundeFac().kundeFindByPrimaryKey(kndIId, theClientDto);

            if (mitNichtZugeordnetenBelegen && kundeDto.getIidDebitorenkonto() != null) {

                // TODO: nur FLRFinanzBuchungDetail holen
                Query query = session.createQuery(
                        "SELECT buchungdetail from FLRFinanzBuchungDetail buchungdetail LEFT OUTER JOIN buchungdetail.flrbuchung AS buchung"
                                + " WHERE"
                                + BuchungDetailQueryBuilder.buildNurOffeneBuchungDetails("buchungdetail")
                                + "AND"
                                + BuchungDetailQueryBuilder.buildNichtZuordenbareVonKonto("buchungdetail",
                                        "buchung", kundeDto.getIidDebitorenkonto())
                                + (krit.getTStichtag() == null ? ""
                                        : (" AND buchung.d_buchungsdatum<='"
                                                + Helper.formatDateWithSlashes(krit.getTStichtag()) + "'")));

                @SuppressWarnings("unchecked")
                List<FLRFinanzBuchungDetail> bdList = query.list();
                if (bdList.size() > 0) {
                    if (tempData.length < 1) {
                        tempData = new Object[1][OFFENE_ANZAHL_SPALTEN];
                        String sFirma = kundeDto.getPartnerDto().getCName1nachnamefirmazeile1();
                        tempData[row][OFFENE_FELD_FIRMA] = sFirma;
                        tempData[row][OFFENE_FELD_DEBITORENNR] = kundeDto.getIidDebitorenkonto() != null
                                ? getFinanzFac().kontoFindByPrimaryKey(kundeDto.getIidDebitorenkonto()).getCNr()
                                : null;
                    }
                    tempData[0][OFFENE_SUBREPORT_OFFENE_BUCHUNGEN] = FinanzSubreportGenerator
                            .createBuchungsdetailSubreport(bdList, true);
                }
            }

            while (resultListIterator.hasNext()) {
                FLRRechnungReport re = (FLRRechnungReport) resultListIterator.next();
                RechnungDto reDto = getRechnungFac().rechnungFindByPrimaryKey(re.getI_id());
                // Kunde oder Statistikadresse?
                final Integer kundeIId, kundeIIdStatistik;
                if (krit.getBVerwendeStatistikAdresse()) {
                    kundeIId = reDto.getKundeIIdStatistikadresse();
                } else {
                    kundeIId = reDto.getKundeIId();
                    // Statistikdaten wenn nicht Kriterium Statistikadresse
                    kundeIIdStatistik = reDto.getKundeIIdStatistikadresse();

                    KundeDto kundeDtoStatistik = getKundeFac().kundeFindByPrimaryKey(kundeIIdStatistik,
                            theClientDto);
                    String sFirmaStatistik = kundeDtoStatistik.getPartnerDto().getCName1nachnamefirmazeile1();

                    String sKundeLKZStatistik = null;
                    if (kundeDtoStatistik.getPartnerDto().getLandplzortDto() != null) {
                        sKundeLKZStatistik = kundeDtoStatistik.getPartnerDto().getLandplzortDto().getLandDto()
                                .getCLkz();
                    }
                    tempData[row][OFFENE_FELD_FIRMA_STATISTIK] = sFirmaStatistik;
                    tempData[row][OFFENE_FELD_FIRMA_LKZ_STATISTIK] = sKundeLKZStatistik;

                }

                if (kundeDto == null || kundeDto.getIId() != kundeIId) {
                    kundeDto = getKundeFac().kundeFindByPrimaryKey(kundeIId, theClientDto);
                }

                String sFirma = kundeDto.getPartnerDto().getCName1nachnamefirmazeile1();

                String sKundeLKZ = null;
                if (kundeDto.getPartnerDto().getLandplzortDto() != null) {
                    sKundeLKZ = kundeDto.getPartnerDto().getLandplzortDto().getLandDto().getCLkz();
                }
                tempData[row][OFFENE_FELD_RECHNUNGART] = re.getFlrrechnungart().getRechnungtyp_c_nr();
                tempData[row][OFFENE_FELD_RECHNUNGSNUMMER] = reDto.getCNr();
                tempData[row][OFFENE_FELD_FIRMA] = sFirma;
                tempData[row][OFFENE_FELD_FIRMA_LKZ] = sKundeLKZ;
                tempData[row][OFFENE_FELD_RECHNUNGSDATUM] = re.getD_belegdatum();

                tempData[row][OFFENE_FELD_KURS] = re.getN_kurs();
                tempData[row][OFFENE_FELD_WAEHRUNG] = re.getWaehrung_c_nr();
                tempData[row][OFFENE_FELD_DEBITORENNR] = kundeDto.getIidDebitorenkonto() != null
                        ? getFinanzFac().kontoFindByPrimaryKey(kundeDto.getIidDebitorenkonto()).getCNr()
                        : null;

                // Vertreter
                if (re.getFlrvertreter() != null) {
                    if (re.getFlrvertreter().getFlrpartner().getC_name2vornamefirmazeile2() != null) {
                        tempData[row][OFFENE_FELD_VERTRETER] = re.getFlrvertreter().getFlrpartner()
                                .getC_name1nachnamefirmazeile1() + " "
                                + re.getFlrvertreter().getFlrpartner().getC_name2vornamefirmazeile2();
                    } else {
                        tempData[row][OFFENE_FELD_VERTRETER] = re.getFlrvertreter().getFlrpartner()
                                .getC_name1nachnamefirmazeile1();
                    }
                }
                // datum der letzten zahlung bis zum stichtag ermitteln
                RechnungzahlungDto[] zahlungen = getRechnungFac().zahlungFindByRechnungIId(re.getI_id());
                java.sql.Date dZahldatum = null;
                for (int i = 0; i < zahlungen.length; i++) {
                    if ((dZahldatum == null || zahlungen[i].getDZahldatum().after(dZahldatum))
                            && !zahlungen[i].getDZahldatum().after(krit.getTStichtag())) {
                        dZahldatum = new Date(zahlungen[i].getDZahldatum().getTime());
                    }
                }
                // Zahlungsbetrag bis zum Stichtag ermitteln
                BigDecimal bdBezahlt = new BigDecimal(0);
                for (int i = 0; i < zahlungen.length; i++) {
                    if (!zahlungen[i].getDZahldatum().after(krit.getTStichtag())) {
                        bdBezahlt = bdBezahlt.add(zahlungen[i].getNBetrag());
                    }
                }
                if (reDto.getKostenstelleIId() != null) {
                    KostenstelleDto kstDto = getSystemFac()
                            .kostenstelleFindByPrimaryKey(reDto.getKostenstelleIId());
                    tempData[row][OFFENE_FELD_KOSTENSTELLE] = kstDto.getCNr();
                }

                if (reDto.getNWert() == null) {
                    EJBExceptionLP ex = new EJBExceptionLP(EJBExceptionLP.FEHLER_RECHNUNG_HAT_KEINEN_WERT, "");
                    ArrayList<Object> alInfo = new ArrayList<Object>();
                    alInfo.add("ID: " + reDto.getIId());
                    alInfo.add("Nr: " + reDto.getCNr());
                    ex.setAlInfoForTheClient(alInfo);
                    throw ex;
                }
                BigDecimal bdWertBrutto = reDto.getNWert().add(reDto.getNWertust());
                BigDecimal bdWertNetto = reDto.getNWert();

                BigDecimal bdWertBruttoFW = reDto.getNWertfw().add(reDto.getNWertustfw());
                BigDecimal bdWertNettoFW = reDto.getNWertfw();

                BigDecimal bdBezahltUst = getRechnungFac().getBereitsBezahltWertVonRechnungUst(reDto.getIId(),
                        null, krit.getTStichtag());
                BigDecimal bdBezahltNetto = getRechnungFac().getBereitsBezahltWertVonRechnung(reDto.getIId(),
                        null, krit.getTStichtag());

                BigDecimal bdBezahltUstFw = getRechnungFac()
                        .getBereitsBezahltWertVonRechnungUstFw(reDto.getIId(), null, krit.getTStichtag());
                BigDecimal bdBezahltNettoFw = getRechnungFac()
                        .getBereitsBezahltWertVonRechnungFw(reDto.getIId(), null, krit.getTStichtag());

                BigDecimal bdNettoOffenFw = reDto.getNWertfw().subtract(bdBezahltNettoFw);

                BigDecimal bdUstOffenFw = reDto.getNWertustfw().subtract(bdBezahltUstFw);

                BigDecimal bdNettoOffenMandWhg = getLocaleFac().rechneUmInAndereWaehrungZuDatum(bdNettoOffenFw,
                        reDto.getWaehrungCNr(), theClientDto.getSMandantenwaehrung(), krit.getTStichtag(),
                        theClientDto);
                BigDecimal bdUstOffenMandWhg = getLocaleFac().rechneUmInAndereWaehrungZuDatum(bdUstOffenFw,
                        reDto.getWaehrungCNr(), theClientDto.getSMandantenwaehrung(), krit.getTStichtag(),
                        theClientDto);

                BigDecimal bdUstAnzahlungMandWhg = new BigDecimal(0);
                BigDecimal bdNettoAnzahlungMandWhg = new BigDecimal(0);
                BigDecimal bdUstAnzahlungFW = new BigDecimal(0);
                BigDecimal bdNettoAnzahlungFW = new BigDecimal(0);
                if (reDto.getAuftragIId() != null
                        && reDto.getRechnungartCNr().equals(RechnungFac.RECHNUNGART_SCHLUSSZAHLUNG)) {
                    bdNettoAnzahlungMandWhg = getLocaleFac().rechneUmInAndereWaehrungZuDatum(
                            getRechnungFac().getAnzahlungenZuSchlussrechnungFw(reDto.getIId()),
                            reDto.getWaehrungCNr(), theClientDto.getSMandantenwaehrung(), krit.getTStichtag(),
                            theClientDto);
                    bdUstAnzahlungMandWhg = getLocaleFac().rechneUmInAndereWaehrungZuDatum(
                            getRechnungFac().getAnzahlungenZuSchlussrechnungUstFw(reDto.getIId()),
                            reDto.getWaehrungCNr(), theClientDto.getSMandantenwaehrung(), krit.getTStichtag(),
                            theClientDto);

                }

                tempData[row][OFFENE_FELD_WERT_BRUTTO_ANZAHLUNGEN] = bdNettoAnzahlungMandWhg
                        .add(bdUstAnzahlungMandWhg);
                tempData[row][OFFENE_FELD_WERT_NETTO_ANZAHLUNGEN] = bdNettoAnzahlungMandWhg;
                tempData[row][OFFENE_FELD_WERT_BRUTTO_ANZAHLUNGEN_FW] = bdNettoAnzahlungFW
                        .add(bdUstAnzahlungFW);
                tempData[row][OFFENE_FELD_WERT_NETTO_ANZAHLUNGEN_FW] = bdNettoAnzahlungFW;

                // SP554
                bdNettoOffenMandWhg = bdNettoOffenMandWhg.subtract(bdNettoAnzahlungMandWhg);
                bdUstOffenMandWhg = bdUstOffenMandWhg.subtract(bdUstAnzahlungMandWhg);

                if (re.getFlrrechnungart().getRechnungtyp_c_nr().equals(RechnungFac.RECHNUNGTYP_RECHNUNG)) {
                    tempData[row][OFFENE_FELD_WERT_BRUTTO] = bdWertBrutto;
                    tempData[row][OFFENE_FELD_WERT_NETTO] = bdWertNetto;
                    tempData[row][OFFENE_FELD_WERT_BRUTTO_OFFEN] = bdNettoOffenMandWhg.add(bdUstOffenMandWhg);
                    tempData[row][OFFENE_FELD_WERT_NETTO_OFFEN] = bdNettoOffenMandWhg;

                    // FW
                    tempData[row][OFFENE_FELD_WERT_BRUTTO_FW] = bdWertBruttoFW;
                    tempData[row][OFFENE_FELD_WERT_NETTO_FW] = bdWertNettoFW;
                    tempData[row][OFFENE_FELD_WERT_BRUTTO_OFFEN_FW] = bdNettoOffenFw.add(bdUstOffenFw);
                    tempData[row][OFFENE_FELD_WERT_NETTO_OFFEN_FW] = bdNettoOffenFw;

                } else if (re.getFlrrechnungart().getRechnungtyp_c_nr()
                        .equals(RechnungFac.RECHNUNGTYP_GUTSCHRIFT)) {
                    tempData[row][OFFENE_FELD_WERT_BRUTTO] = bdWertBrutto.negate();
                    tempData[row][OFFENE_FELD_WERT_NETTO] = bdWertNetto.negate();
                    tempData[row][OFFENE_FELD_WERT_BRUTTO_OFFEN] = bdNettoOffenMandWhg.add(bdUstOffenMandWhg)
                            .negate();
                    tempData[row][OFFENE_FELD_WERT_NETTO_OFFEN] = bdNettoOffenMandWhg.negate();

                    // FW
                    tempData[row][OFFENE_FELD_WERT_BRUTTO_FW] = bdWertBruttoFW.negate();
                    tempData[row][OFFENE_FELD_WERT_NETTO_FW] = bdWertNettoFW.negate();
                    tempData[row][OFFENE_FELD_WERT_BRUTTO_OFFEN_FW] = bdNettoOffenFw.add(bdUstOffenFw).negate();
                    tempData[row][OFFENE_FELD_WERT_NETTO_OFFEN_FW] = bdNettoOffenFw.negate();

                }

                tempData[row][OFFENE_FELD_MAHNDATUM] = getMahnwesenFac()
                        .getAktuellesMahndatumEinerRechnung(reDto.getIId(), theClientDto);
                tempData[row][OFFENE_FELD_MAHNSTUFE] = getMahnwesenFac()
                        .getAktuelleMahnstufeEinerRechnung(reDto.getIId(), theClientDto);
                tempData[row][OFFENE_FELD_MAHNSPERRE] = reDto.getTMahnsperrebis();
                // Faelligkeitsdatum
                // java.sql.Date dFaellig;
                // if (reDto.getZahlungszielIId() != null) {
                // dFaellig =
                // getMandantFac().berechneZielDatumFuerBelegdatum(reDto
                // .getTBelegdatum(),
                // reDto.getZahlungszielIId(), theClientDto);
                // }
                // else {
                // dFaellig = new
                // java.sql.Date(reDto.getTBelegdatum().getTime());
                // }
                if (re.getT_faelligkeit() != null) {
                    tempData[row][OFFENE_FELD_FAELLIGKEITSDATUM] = new java.util.Date(
                            re.getT_faelligkeit().getTime());
                } else {
                    throw new EJBExceptionLP(EJBExceptionLP.FEHLER_RECHNUNG_FAELLIGKEIT_NICHT_BERECHENBAR,
                            new Exception("Faelligkeit nicht berechenbar"));
                }
                // Differenz in Tagen: Stichtag - Faelligkeitsdatum
                tempData[row][OFFENE_FELD_TAGE_BIS_FAELLIGKEITSDATUM] = Helper
                        .getDifferenzInTagen(krit.getTStichtag(), re.getT_faelligkeit());
                row++;
            }
            dataList.addAll(Arrays.asList(tempData));
        }

        data = dataList.toArray(new Object[0][]);

        // Waehrung
        mapParameter.put(LPReport.P_WAEHRUNG, mandantDto.getWaehrungCNr());
        mapParameter.put("P_STICHTAG", Helper.formatDatum(krit.getTStichtag(), theClientDto.getLocUi()));
        StringBuffer sSortierung = new StringBuffer();
        if (krit.bSortiereNachKostenstelle) {
            sSortierung.append(
                    getTextRespectUISpr("lp.kostenstelle", theClientDto.getMandant(), theClientDto.getLocUi()));
            sSortierung.append(", ");
        }
        if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) {
            if (krit.getBVerwendeStatistikAdresse()) {
                sSortierung.append(getTextRespectUISpr("rech.statistikadresse", theClientDto.getMandant(),
                        theClientDto.getLocUi()));
            } else {
                sSortierung.append(
                        getTextRespectUISpr("lp.kunde", theClientDto.getMandant(), theClientDto.getLocUi()));
            }
        } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_BELEGNUMMER) {
            sSortierung.append(getTextRespectUISpr("rechnung.rechnungsnummer", theClientDto.getMandant(),
                    theClientDto.getLocUi()));
        } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_VERTRETER) {
            sSortierung.append(
                    getTextRespectUISpr("lp.vertreter", theClientDto.getMandant(), theClientDto.getLocUi()));
        } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_FAELLIGKEIT) {
            sSortierung.append(
                    getTextRespectUISpr("lp.faelligkeit", theClientDto.getMandant(), theClientDto.getLocUi()));
        }
        mapParameter.put(LPReport.P_SORTIERUNG, sSortierung.toString());
        mapParameter.put(LPReport.P_SORTIERENACHKOSTENSTELLE, new Boolean(krit.bSortiereNachKostenstelle));
        mapParameter.put(LPReport.P_SORTIERENACHKUNDE,
                new Boolean(krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER));
        mapParameter.put(LPReport.P_SORTIERENACHVERTRETER,
                new Boolean(krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_VERTRETER));

        String sZessionstext = null;
        sZessionstext = getParameterFac().parametermandantFindByPrimaryKey(ParameterFac.PARAMETER_ZESSIONSTEXT,
                ParameterFac.KATEGORIE_ALLGEMEIN, theClientDto.getMandant()).getCWert();
        if (sZessionstext != null) {
            mapParameter.put("P_ZESSIONSTEXT", sZessionstext);
        }
        /**
         * @todo zinsen PJ 4538
         */

        initJRDS(mapParameter, RechnungReportFac.REPORT_MODUL, RechnungReportFac.REPORT_RECHNUNGEN_OFFENE,
                theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto);
        return getReportPrint();
        // }
        // catch (FinderException ex) {
        // { // @ToDo FinderException
        // throw new EJBExceptionLP(EJBExceptionLP.FEHLER_BEIM_DRUCKEN,
        // null);
        // }
        // throw new EJBExceptionLP(EJBExceptionLP.FEHLER_BEIM_DRUCKEN, ex);
    } catch (RemoteException ex) {
        throwEJBExceptionLPRespectOld(ex);
        return null;
    } finally {
        try {
            session.close();
        } catch (HibernateException he) {
            throw new EJBExceptionLP(EJBExceptionLP.FEHLER, he);
        }
    }
}

From source file:com.lp.server.rechnung.ejbfac.RechnungReportFacBean.java

License:Open Source License

private JasperPrintLP buildWarenausgangsjournal(ReportRechnungJournalKriterienDto krit,
        TheClientDto theClientDto) throws EJBExceptionLP {
    Session session = null;// w  w w.  j ava2s.  c  o m
    try {

        String querySelect = "SELECT R.C_NR AS R_C_NR," + "R.T_BELEGDATUM AS R_T_BELEGDATUM," + "COALESCE "
                + "(LP.N_NETTOGESAMTPREISPLUSVERSTECKTERAUFSCHLAGMINUSRABATT, P.N_NETTOEINZELPREISPLUSAUFSCHLAGMINUSRABATT, P.N_NETTOEINZELPREIS ) "
                + "AS P_N_NETTOEINZELPREISPLUSAUFSCHLAGMINUSRABATT,"
                + "PN.C_NAME1NACHNAMEFIRMAZEILE1 AS PN_C_NAME1NACHNAMEFIRMAZEILE1,"
                + "KN.I_KUNDENNUMMER AS KN_I_KUNDENNUMMER," + "AR.C_NR AS AR_C_NR," + "ARS.C_BEZ AS ARS_C_BEZ,"
                + "ARK.C_NR AS ARK_C_NR," + "ARG.C_NR AS ARG_C_NR," + "LA.C_LKZ AS LA_C_LKZ,"
                + "AR.C_WARENVERKEHRSNUMMER AS AR_C_WARENVERKEHRSNUMMER,"
                + "COALESCE (LP.N_MENGE, P.N_MENGE) AS P_N_MENGE,"
                + "COALESCE (cast (LP.EINHEIT_C_NR AS VARCHAR), cast (P.EINHEIT_C_NR AS VARCHAR)) AS P_EINHEIT_C_NR,"
                + "ARS.C_ZBEZ AS ARS_C_ZBEZ," + "R.N_PROVISION AS R_N_PROVISION,"
                + "PE.C_KURZZEICHEN AS PE_C_KURZZEICHEN," + "KNTE.C_NR AS KNTE_C_NR,"
                + "KNTD.C_NR AS KNTD_C_NR," + "LPO.C_PLZ AS LPO_C_PLZ," + "LA2.C_LKZ AS LA2_C_LKZ,"
                + "PN.C_STRASSE AS PN_C_STRASSE,"
                + "COALESCE (LSPOSMWSTSATZ.F_MWSTSATZ, POSMWSTSATZ.F_MWSTSATZ, MWSTSATZ.F_MWSTSATZ) AS MWSTSATZ_F_MWSTSATZ,"
                + "BRANCH.C_NR AS BRANCH_C_NR," + "cast (PARTKL.C_NR AS VARCHAR) AS PARTKL_C_NR,"
                + "LA2.C_LKZ AS LA2_C_LKZ," + "L.C_NR AS L_C_NR," + "L.T_BELEGDATUM AS L_T_BELEGDATUM,"
                + "PARTNER_STATISTIK.I_ID AS PART_STATISTIK_I_ID,"
                + "cast (PARTNER_STATISTIK.ANREDE_C_NR AS VARCHAR) AS PART_STATISTIK_ANREDE_C_NR,"
                + "PARTNER_STATISTIK.C_NAME1NACHNAMEFIRMAZEILE1 AS PARTNER_STATISTIK_C_NAME1,"
                + "PARTNER_STATISTIK.C_NAME2VORNAMEFIRMAZEILE2 AS PARTNER_STATISTIK_C_NAME2,"
                + "PARTNER_STATISTIK.C_NAME3VORNAME2ABTEILUNG AS PARTNER_STATISTIK_C_NAME3_ABTEILUNG,"
                + "PARTNER_STATISTIK.C_STRASSE AS PARTNER_STATISTIK_C_STRASSE,"
                + "PARTNER_STATISTIK_LAND.C_LKZ AS PARTNER_STATISTIK_C_LKZ,"
                + "PARTNER_STATISTIK_ORT.C_NAME AS PARTNER_STATISTIK_C_ORT,"
                + "PARTNER_STATISTIK_LPO.C_PLZ AS PARTNER_STATISTIK_C_PLZ," + "PN.I_ID AS PARTNER_I_ID,"
                + "cast (R.WAEHRUNG_C_NR AS VARCHAR)AS R_WAEHRUNG_C_NR," + "R.N_KURS AS R_N_KURS,"
                + "R.RECHNUNGART_C_NR AS R_RECHNUNGART_C_NR,"
                + "R.RECHNUNG_I_ID_ZURECHNUNG AS R_RECHNUNG_I_ID_ZURECHNUNG,"
                + "AR.F_VERTRETERPROVISIONMAX AS AR_F_VERTRETERPROVISIONMAX,"
                + "COALESCE (R.C_BESTELLNUMMER,L.C_BESTELLNUMMER) AS R_BESTELLNUMMER,"
                + "KNRECHNUNGSADRESSELS.I_KUNDENNUMMER AS KN_RECHNUNGSADRESSELS_I_KUNDENNUMMER,"
                + "PARTNERRECHNUNGSADRESSELS.C_NAME1NACHNAMEFIRMAZEILE1 AS PARTNERRECHNUNGSADRESSELSBEZEICHNUNG,"
                + "PARTNERRECHNUNGSADRESSELS.C_KBEZ AS PARTNERRECHNUNGSADRESSELSKBEZ,"
                + "KN.C_HINWEISEXTERN AS KUNDEHINWEISEXTERN," + "KN.C_HINWEISINTERN AS KUNDEHINWEISINTERN,"
                + "PEPROVISION.C_KURZZEICHEN AS PEPROVISION_C_KURZZEICHEN,"
                + "AR.F_GEWICHTKG AS ARTIKELGEWICHTKG," + "RELAGER.C_NR AS RELAGERCNR,"
                + "LSLAGER.C_NR AS LSLAGERCNR," + "LSZIELLAGER.C_NR AS LSZIELLAGERCNR,"
                + "KNLIEFERADRESSELS.I_KUNDENNUMMER AS KN_KNLIEFERADRESSELS_I_KUNDENNUMMER,"
                + "cast(COALESCE (P.X_TEXTINHALT,LP.X_TEXTINHALT) AS VARCHAR) AS R_TEXTINHALT, "
                + "PLIEFERADRESSELS.C_ILN AS C_ILNLIEFERADRESSELS, " + "PN.C_ILN AS C_ILNPARTNER, "
                + "PLIEFERADRESSELS.I_ID AS PART_STATISTIK_I_ID,"
                + "cast (PLIEFERADRESSELS.ANREDE_C_NR AS VARCHAR) AS PLIEFERADRESSELS_ANREDE_C_NR,"
                + "PLIEFERADRESSELS.C_NAME1NACHNAMEFIRMAZEILE1 AS PLIEFERADRESSELS_C_NAME1,"
                + "PLIEFERADRESSELS.C_NAME2VORNAMEFIRMAZEILE2 AS PLIEFERADRESSELS_C_NAME2,"
                + "PLIEFERADRESSELS.C_NAME3VORNAME2ABTEILUNG AS PLIEFERADRESSELS_C_NAME3_ABTEILUNG,"
                + "PLIEFERADRESSELS.C_STRASSE AS PLIEFERADRESSELS_C_STRASSE,"
                + "PLIEFERADRESSELS_LAND.C_LKZ AS PLIEFERADRESSELS_C_LKZ,"
                + "PLIEFERADRESSELS_ORT.C_NAME AS PLIEFERADRESSELS_C_ORT,"
                + "PLIEFERADRESSELS_LPO.C_PLZ AS PLIEFERADRESSELS_C_PLZ, " + "BEGR.C_NR AS BEGR_C_NR, "
                + "ABP.T_UEBERSTEUERTERLIEFERTERMIN AS UEBERSTEUERTERLIEFERTERMIN, "
                + "KN.I_LIEFERDAUER AS LIEFERDAUER, " + "AB.C_NR AS AUFTRAGSNUMMER, "
                + "ABG.C_NR AS AUFTRGABEGRUENDUNG, "
                + " COALESCE ( (SELECT AVG(N_GESTEHUNGSPREIS) FROM WW_LAGERBEWEGUNG WHERE I_BELEGARTPOSITIONID=P.I_ID AND C_BELEGARTNR=R.RECHNUNGART_C_NR AND B_HISTORIE=0),(SELECT AVG(N_GESTEHUNGSPREIS) FROM WW_LAGERBEWEGUNG WHERE I_BELEGARTPOSITIONID=LP.I_ID AND C_BELEGARTNR='Lieferschein' AND B_HISTORIE=0)) AS GESTPREIS,"
                + " KT.C_BEZ, " + "CASE WHEN LP.POSITION_I_ID_ARTIKELSET IS NULL THEN "
                + " CASE WHEN (SELECT COUNT(*) FROM LS_LIEFERSCHEINPOSITION WHERE POSITION_I_ID_ARTIKELSET=LP.I_ID) > 0 THEN 'Kopf' "
                + " ELSE NULL END "
                + "ELSE 'Position' END AS ARTIKELSETART, COALESCE (R.C_BEZ,L.C_BEZ) AS R_BEZ ";

        String queryFrom = "FROM RECH_RECHNUNG R "
                + "INNER JOIN RECH_RECHNUNGPOSITION P ON P.RECHNUNG_I_ID=R.I_ID "
                + "LEFT OUTER JOIN LS_LIEFERSCHEIN L ON L.I_ID=P.LIEFERSCHEIN_I_ID "
                + "LEFT OUTER JOIN LS_LIEFERSCHEINPOSITION LP ON LP.LIEFERSCHEIN_I_ID=P.LIEFERSCHEIN_I_ID "
                + "LEFT OUTER JOIN PART_KUNDE KN ON KN.I_ID=R.KUNDE_I_ID "
                + "LEFT OUTER JOIN PART_PARTNER PN ON PN.I_ID=KN.PARTNER_I_ID "
                + "LEFT OUTER JOIN WW_ARTIKEL AR ON AR.I_ID=COALESCE(LP.ARTIKEL_I_ID, P.ARTIKEL_I_ID) "
                + "LEFT OUTER JOIN WW_ARTKLA ARK ON ARK.I_ID=AR.ARTKLA_I_ID "
                + "LEFT OUTER JOIN WW_ARTGRU ARG ON ARG.I_ID=AR.ARTGRU_I_ID "
                + "LEFT OUTER JOIN LP_LAND LA ON LA.I_ID=AR.LAND_I_ID_URSPRUNGSLAND "
                + "LEFT OUTER JOIN PERS_PERSONAL PE ON PE.I_ID=R.PERSONAL_I_ID_VERTRETER "
                + "LEFT OUTER JOIN FB_KONTO KNTE ON KNTE.I_ID=KN.KONTO_I_ID_ERLOESEKONTO "
                + "LEFT OUTER JOIN FB_KONTO KNTD ON KNTD.I_ID=KN.KONTO_I_ID_DEBITORENKONTO "
                + "LEFT OUTER JOIN LP_LANDPLZORT LPO ON LPO.I_ID=PN.LANDPLZORT_I_ID "
                + "LEFT OUTER JOIN LP_LAND LA2 ON LA2.I_ID=LPO.LAND_I_ID "
                + "LEFT OUTER JOIN LP_MWSTSATZ MWSTSATZ ON MWSTSATZ.I_ID=R.MWSTSATZ_I_ID "
                + "LEFT OUTER JOIN LP_MWSTSATZ POSMWSTSATZ ON POSMWSTSATZ.I_ID=P.MWSTSATZ_I_ID "
                + "LEFT OUTER JOIN LP_MWSTSATZ LSPOSMWSTSATZ ON LSPOSMWSTSATZ.I_ID=LP.MWSTSATZ_I_ID "
                + "LEFT OUTER JOIN PART_BRANCHE BRANCH ON BRANCH.I_ID=PN.BRANCHE_I_ID "
                + "LEFT OUTER JOIN PART_PARTNERKLASSE PARTKL ON PARTKL.I_ID=PN.PARTNERKLASSE_I_ID "
                + "LEFT OUTER JOIN PART_KUNDE KNSTATISTIK ON KNSTATISTIK.I_ID=R.KUNDE_I_ID_STATISTIKADRESSE "
                + "LEFT OUTER JOIN PART_PARTNER PARTNER_STATISTIK ON PARTNER_STATISTIK.I_ID = KNSTATISTIK.PARTNER_I_ID "
                + "LEFT OUTER JOIN LP_LANDPLZORT PARTNER_STATISTIK_LPO ON PARTNER_STATISTIK_LPO.I_ID=PARTNER_STATISTIK.LANDPLZORT_I_ID "
                + "LEFT OUTER JOIN LP_LAND PARTNER_STATISTIK_LAND ON PARTNER_STATISTIK_LAND.I_ID=PARTNER_STATISTIK_LPO.LAND_I_ID "
                + "LEFT OUTER JOIN LP_ORT PARTNER_STATISTIK_ORT ON PARTNER_STATISTIK_ORT.I_ID=PARTNER_STATISTIK_LPO.ORT_I_ID "
                + "LEFT OUTER JOIN PART_KUNDE KNRECHNUNGSADRESSELS ON KNRECHNUNGSADRESSELS.I_ID=L.KUNDE_I_ID_RECHNUNGSADRESSE "
                + "LEFT OUTER JOIN PART_PARTNER PARTNERRECHNUNGSADRESSELS ON PARTNERRECHNUNGSADRESSELS.I_ID=KNRECHNUNGSADRESSELS.PARTNER_I_ID "
                + "LEFT OUTER JOIN PERS_PERSONAL PEPROVISION ON PEPROVISION.I_ID=KN.PERSONAL_I_ID_BEKOMMEPROVISION "
                + "LEFT OUTER JOIN WW_LAGER RELAGER ON RELAGER.I_ID=R.LAGER_I_ID "
                + "LEFT OUTER JOIN WW_LAGER LSLAGER ON LSLAGER.I_ID=L.LAGER_I_ID "
                + "LEFT OUTER JOIN WW_LAGER LSZIELLAGER ON LSZIELLAGER.I_ID=L.ZIELLAGER_I_ID "
                + "LEFT OUTER JOIN PART_KUNDE KNLIEFERADRESSELS ON KNLIEFERADRESSELS.I_ID=L.KUNDE_I_ID_LIEFERADRESSE "
                + "LEFT OUTER JOIN PART_PARTNER PLIEFERADRESSELS ON PLIEFERADRESSELS.I_ID=KNLIEFERADRESSELS.PARTNER_I_ID "
                + "LEFT OUTER JOIN LP_LANDPLZORT PLIEFERADRESSELS_LPO ON PLIEFERADRESSELS_LPO.I_ID=PLIEFERADRESSELS.LANDPLZORT_I_ID "
                + "LEFT OUTER JOIN LP_LAND PLIEFERADRESSELS_LAND ON PLIEFERADRESSELS_LAND.I_ID=PLIEFERADRESSELS_LPO.LAND_I_ID "
                + "LEFT OUTER JOIN LP_ORT PLIEFERADRESSELS_ORT ON PLIEFERADRESSELS_ORT.I_ID=PLIEFERADRESSELS_LPO.ORT_I_ID "
                + "LEFT OUTER JOIN LS_BEGRUENDUNG BEGR ON BEGR.I_ID=L.BEGRUENDUNG_I_ID "
                + "LEFT OUTER JOIN AUFT_AUFTRAGPOSITION ABP ON ABP.I_ID=LP.AUFTRAGPOSITION_I_ID "
                + "LEFT OUTER JOIN AUFT_AUFTRAG AB ON AB.I_ID=ABP.AUFTRAG_I_ID "
                + "LEFT OUTER JOIN AUFT_AUFTRAGBEGRUENDUNG ABG ON ABG.I_ID=AB.AUFTRAGBEGRUENDUNG_I_ID "
                + "LEFT OUTER JOIN LP_KOSTENTRAEGER KT ON KT.I_ID=COALESCE(LP.KOSTENTRAEGER_I_ID, P.KOSTENTRAEGER_I_ID) "
                + "LEFT OUTER JOIN WW_ARTIKELSPR ARS ON ARS.ARTIKEL_I_ID=AR.I_ID AND ARS.LOCALE_C_NR='"
                + theClientDto.getLocUiAsString() + "' ";

        String queryWhere = "";
        if (krit.dVon != null && krit.dBis != null) {
            queryWhere = "WHERE R.T_BELEGDATUM BETWEEN '" + Helper.formatDateWithSlashes(krit.dVon) + "' AND '"
                    + Helper.formatDateWithSlashes(krit.dBis) + "' ";
        } else {
            if (krit.sBelegnummerVon != null && krit.sBelegnummerBis != null) {
                queryWhere = "WHERE R.C_NR BETWEEN '" + krit.sBelegnummerVon + "' AND '" + krit.sBelegnummerBis
                        + "' ";
            }
        }

        queryWhere = queryWhere + "AND (POSITIONSART_C_NR='"
                + RechnungFac.POSITIONSART_RECHNUNG_HANDEINGABE.trim() + "' " + "OR P.POSITIONSART_C_NR='"
                + RechnungFac.POSITIONSART_RECHNUNG_IDENT.trim() + "' " + "OR P.POSITIONSART_C_NR='"
                + RechnungFac.POSITIONSART_RECHNUNG_LIEFERSCHEIN.trim() + "' " + "OR P.POSITIONSART_C_NR='"
                + RechnungFac.POSITIONSART_RECHNUNG_TEXTEINGABE.trim() + "') ";
        String[] sRechnungsarten = null;
        if (krit.getBGutschriftenBeruecksichtigen()) {
            sRechnungsarten = new String[5];
            sRechnungsarten[0] = LocaleFac.BELEGART_RECHNUNG;
            sRechnungsarten[1] = LocaleFac.BELEGART_GUTSCHRIFT;
            sRechnungsarten[2] = RechnungFac.RECHNUNGART_WERTGUTSCHRIFT;
            sRechnungsarten[3] = RechnungFac.RECHNUNGART_ANZAHLUNG;
            sRechnungsarten[4] = RechnungFac.RECHNUNGART_SCHLUSSZAHLUNG;
        } else {
            sRechnungsarten = new String[3];
            sRechnungsarten[0] = LocaleFac.BELEGART_RECHNUNG;
            sRechnungsarten[1] = RechnungFac.RECHNUNGART_ANZAHLUNG;
            sRechnungsarten[2] = RechnungFac.RECHNUNGART_SCHLUSSZAHLUNG;
        }
        queryWhere = queryWhere + "AND R.MANDANT_C_NR = '" + theClientDto.getMandant() + "' ";
        boolean bFirstRechnungArt = true;
        for (int i = 0; i < sRechnungsarten.length; i++) {
            if (bFirstRechnungArt) {
                queryWhere = queryWhere + "AND RECHNUNGART_C_NR IN (";
                bFirstRechnungArt = false;
            } else {
                queryWhere = queryWhere + ", ";
            }
            queryWhere = queryWhere + "'" + sRechnungsarten[i].trim() + "'";
        }
        queryWhere = queryWhere + ")";
        queryWhere = queryWhere + "AND STATUS_C_NR NOT LIKE '" + RechnungFac.STATUS_STORNIERT + "' ";
        if (krit.kundeIId != null) {
            queryWhere = queryWhere + "AND R.KUNDE_I_ID = " + krit.kundeIId + " ";
        }
        if (krit.vertreterIId != null) {
            queryWhere = queryWhere + "AND R.PERSONAL_I_ID_VERTRETER = " + krit.vertreterIId + " ";
        }
        if (!krit.getBMitTexteingaben()) {
            // das OR muss wegen Gutschriften rein
            queryWhere = queryWhere
                    + "AND (LP.LIEFERSCHEINPOSITIONART_C_NR != 'Texteingabe' OR LP.LIEFERSCHEINPOSITIONART_C_NR IS NULL) ";
        }
        if (krit.kostenstelleIId != null) {
            queryWhere = queryWhere + "AND R.KOSTENSTELLE_I_ID = " + krit.kostenstelleIId + " ";
        }
        String queryOrder = "ORDER BY ";
        if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) {
            queryOrder = queryOrder + "PN.C_NAME1NACHNAMEFIRMAZEILE1";
        } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_BELEGNUMMER) {
            queryOrder = queryOrder + "R.C_NR";
        } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_VERTRETER) {
            queryOrder = queryOrder + "R.PERSONAL_I_ID_VERTRETER";
        } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_IDENT) {
            queryOrder = queryOrder + "AR.C_NR";
        }
        if (krit.getBVerwendeStatistikAdresse()) {
            queryOrder = queryOrder + ", PARTNER_STATISTIK.I_ID";
        }
        String queryString = querySelect + queryFrom + queryWhere + queryOrder;
        this.useCase = UC_REPORT_WARENAUSGANGSJOURNAL;
        SessionFactory factory = FLRSessionFactory.getFactory();
        session = factory.openSession();
        Query query = session.createSQLQuery(queryString);
        List<?> list = query.list();
        Map<Integer, Object> tmData = new TreeMap<Integer, Object>();
        int i = 0;
        for (Iterator<?> iter = list.iterator(); iter.hasNext();) {
            tmData.put(i, iter.next());
            i++;
        }
        // Lieferscheine ohne Rechnung hinten anhaengen
        // Alle Lieferscheine ohne Rechnung Kriterien
        List<?> LsList = null;
        if (krit.dVon != null || krit.dBis != null) {
            Criteria cLsPosCrit = session.createCriteria(FLRLieferscheinposition.class);
            Criteria cLs = cLsPosCrit
                    .createCriteria(LieferscheinpositionFac.FLR_LIEFERSCHEINPOSITION_FLRLIEFERSCHEIN);
            // Filter nach Mandant
            cLs.add(Restrictions.eq(LieferscheinFac.FLR_LIEFERSCHEIN_MANDANT_C_NR, theClientDto.getMandant()));
            // Filter nach Status (keine stornierten)
            cLs.add(Restrictions
                    .not(Restrictions.eq(LieferscheinFac.FLR_LIEFERSCHEIN_LIEFERSCHEINSTATUS_STATUS_C_NR,
                            LieferscheinFac.LSSTATUS_STORNIERT)));
            // Filter nach Datum
            if (krit.dVon != null) {
                cLs.add(Restrictions.ge(LieferscheinFac.FLR_LIEFERSCHEIN_D_BELEGDATUM, krit.dVon));
            }
            if (krit.dBis != null) {
                cLs.add(Restrictions.le(LieferscheinFac.FLR_LIEFERSCHEIN_D_BELEGDATUM, krit.dBis));
            }

            cLsPosCrit.add(Restrictions.gt(LieferscheinpositionFac.FLR_LIEFERSCHEINPOSITION_N_MENGE,
                    new BigDecimal(0)));

            // Filter nach Kunde
            if (krit.kundeIId != null) {
                cLs.add(Restrictions.eq(LieferscheinFac.FLR_LIEFERSCHEIN_KUNDE_I_ID_RECHNUNGSADRESSE,
                        krit.kundeIId));
            }
            // Filter nach Vertreter
            if (krit.vertreterIId != null) {
                cLs.add(Restrictions.eq(LieferscheinFac.FLR_LIEFERSCHEIN_PERSONAL_I_ID_VERTRETER,
                        krit.vertreterIId));
            }
            // Filter nach Kostenstelle
            if (krit.kostenstelleIId != null) {
                cLs.add(Restrictions.eq(LieferscheinFac.FLR_LIEFERSCHEIN_KOSTENSTELLE_I_ID,
                        krit.kostenstelleIId));
            }
            if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_BELEGNUMMER) {
                cLs.addOrder(Order.asc(LieferscheinFac.FLR_LIEFERSCHEIN_C_NR));
            }

            if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) {
                cLs.createAlias("flrkunde", "k").createAlias("k.flrpartner", "p")
                        .addOrder(Order.asc("p.c_name1nachnamefirmazeile1"));

            }
            if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_VERTRETER) {
                cLs.addOrder(Order.asc(LieferscheinFac.FLR_LIEFERSCHEIN_PERSONAL_I_ID_VERTRETER));
            }
            if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_IDENT) {
                cLsPosCrit.createAlias("flrartikel", "a").addOrder(Order.asc("a.c_nr"));
            }

            if (krit.getBNurOffene()) {
                Collection<String> cStati = new LinkedList<String>();
                cStati.add(LieferscheinFac.LSSTATUS_ANGELEGT);
                cStati.add(LieferscheinFac.LSSTATUS_OFFEN);
                cStati.add(LieferscheinFac.LSSTATUS_ERLEDIGT);
                cStati.add(LieferscheinFac.LSSTATUS_GELIEFERT);
            }
            cLs.add(Restrictions.isNull(LieferscheinFac.FLR_LIEFERSCHEIN_FLRRECHNUNG));
            LsList = cLsPosCrit.list();
        }
        // befuellen
        if (LsList != null) {
            for (Iterator<?> iter = LsList.iterator(); iter.hasNext();) {
                FLRLieferscheinposition lspos = (FLRLieferscheinposition) iter.next();
                Object[] dataRow = new Object[REPORT_WARENAUSGANG_ANZAHL_SPALTEN];
                dataRow[FELD_WARENAUSGANG_LIEFERSCHEINNUMMER] = lspos.getFlrlieferschein().getC_nr();
                dataRow[FELD_WARENAUSGANG_LIEFERSCHEINDATUM] = lspos.getFlrlieferschein().getD_belegdatum();

                if (lspos.getFlrlieferschein().getFlrbegruendung() != null) {
                    dataRow[FELD_WARENAUSGANG_GRUNDNICHTEINGEHALTEN] = lspos.getFlrlieferschein()
                            .getFlrbegruendung().getC_nr();

                    if (lspos.getFlrlieferschein().getFlrbegruendung().getC_bez() != null) {
                        dataRow[FELD_WARENAUSGANG_GRUNDNICHTEINGEHALTEN] = lspos.getFlrlieferschein()
                                .getFlrbegruendung().getC_bez();
                    }

                }

                dataRow[FELD_WARENAUSGANG_KUNDENBEZEICHNUNG] = lspos.getFlrlieferschein().getFlrkunde()
                        .getFlrpartner().getC_name1nachnamefirmazeile1();
                dataRow[FELD_WARENAUSGANG_TEXTEINGABE] = lspos.getC_textinhalt();
                dataRow[FELD_WARENAUSGANG_ILN_LIEFERADRESSE] = lspos.getFlrlieferschein().getFlrkunde()
                        .getFlrpartner().getC_iln();
                dataRow[FELD_WARENAUSGANG_KUNDENNUMMER_LIEFERADRESSE_LS] = lspos.getFlrlieferschein()
                        .getFlrkunde().getI_kundennummer();
                dataRow[FELD_WARENAUSGANG_KUNDENNUMMER] = lspos.getFlrlieferschein().getFlrkunde()
                        .getI_kundennummer();
                dataRow[FELD_WARENAUSGANG_PARTNER_I_ID] = lspos.getFlrlieferschein().getFlrkunde()
                        .getFlrpartner().getI_id();
                if (lspos.getFlrartikel() != null) {
                    dataRow[FELD_WARENAUSGANG_ARTIKELNUMMER] = lspos.getFlrartikel().getC_nr();
                    dataRow[FELD_WARENAUSGANG_ARTIKELPROVISION] = lspos.getFlrartikel()
                            .getF_vertreterprovisionmax();

                    if (lspos.getFlrartikel().getI_id() != null) {
                        ArtikelDto artikelDto = getArtikelFac()
                                .artikelFindByPrimaryKeySmall(lspos.getFlrartikel().getI_id(), theClientDto);
                        dataRow[FELD_WARENAUSGANG_ARTIKELBEZEICHNUNG] = artikelDto.formatArtikelbezeichnung();
                        dataRow[FELD_WARENAUSGANG_ARTIKEL_GEWICHTKG] = artikelDto.getFGewichtkg();
                        if (artikelDto.formatArtikelbezeichnung().length() > 1) {
                            if (artikelDto.formatBezeichnung() != null) {
                                // Comment out SK.. funktioniert so nicht
                                // ???
                                // data[i][
                                // FELD_WARENAUSGANG_ARTIKELBEZEICHNUNG2] =
                                // artikelDto.
                                // formatBezeichnung().substring(artikelDto.
                                // formatArtikelbezeichnung().
                                // length() - 1);
                            } else {
                                // data[i][
                                // FELD_WARENAUSGANG_ARTIKELBEZEICHNUNG2] =
                                // artikelDto.formatBezeichnung();
                            }
                        } else {
                            dataRow[FELD_WARENAUSGANG_ARTIKELBEZEICHNUNG2] = "";
                        }
                    } else {
                        dataRow[FELD_WARENAUSGANG_ARTIKELBEZEICHNUNG] = "";
                        dataRow[FELD_WARENAUSGANG_ARTIKELBEZEICHNUNG2] = "";
                    }
                    if (lspos.getFlrartikel().getFlrartikelklasse() != null) {
                        dataRow[FELD_WARENAUSGANG_ARTIKELKLASSE] = lspos.getFlrartikel().getFlrartikelklasse()
                                .getC_nr();
                    } else {
                        dataRow[FELD_WARENAUSGANG_ARTIKELKLASSE] = "";
                    }
                    if (lspos.getFlrartikel().getFlrartikelgruppe() != null) {
                        dataRow[FELD_WARENAUSGANG_ARTIKELGRUPPE] = lspos.getFlrartikel().getFlrartikelgruppe()
                                .getC_nr();
                    } else {
                        dataRow[FELD_WARENAUSGANG_ARTIKELGRUPPE] = "";
                    }
                    dataRow[FELD_WARENAUSGANG_EINHEIT] = lspos.getFlrartikel().getEinheit_c_nr();
                }

                dataRow[FELD_WARENAUSGANG_URSPRUNGSLAND] = "";
                dataRow[FELD_WARENAUSGANG_WARENVERKEHRSNUMMER] = "";
                dataRow[FELD_WARENAUSGANG_MENGE] = lspos.getN_menge();
                dataRow[FELD_WARENAUSGANG_POSITIONSPREIS] = lspos
                        .getN_nettogesamtpreisplusversteckteraufschlagminusrabatt();
                dataRow[FELD_WARENAUSGANG_GESTPREIS] = getLagerFac()
                        .getGemittelterGestehungspreisEinerAbgangsposition(LocaleFac.BELEGART_LIEFERSCHEIN,
                                lspos.getI_id());

                if (lspos.getFlrkostentraeger() != null) {
                    dataRow[FELD_WARENAUSGANG_KOSTENTRAEGER] = lspos.getFlrkostentraeger().getC_bez();
                }

                dataRow[FELD_WARENAUSGANG_TEXTEINGABE] = lspos.getC_textinhalt();
                dataRow[FELD_WARENAUSGANG_RECHNUNGSPROVISION] = null;
                if (lspos.getFlrlieferschein().getPersonal_i_id_vertreter() != null) {
                    PersonalDto persDto = getPersonalFac().personalFindByPrimaryKey(
                            lspos.getFlrlieferschein().getPersonal_i_id_vertreter(), theClientDto);
                    dataRow[FELD_WARENAUSGANG_PROVISIONSEMPFAENGER] = persDto.getCKurzzeichen();
                }
                if (lspos.getFlrmwstsatz() != null) {
                    dataRow[FELD_WARENAUSGANG_MWST] = lspos.getFlrmwstsatz().getF_mwstsatz();
                }
                dataRow[FELD_WARENAUSGANG_ERLOESKONTO] = null;
                dataRow[FELD_WARENAUSGANG_DEBITORENKONTO] = null;
                if (lspos.getFlrlieferschein().getFlrkunde().getFlrpartner().getFlrlandplzort() == null) {
                    dataRow[FELD_WARENAUSGANG_PLZ] = "";
                    dataRow[FELD_WARENAUSGANG_LKZ] = "";
                    dataRow[FELD_WARENAUSGANG_STATISTIKADRESSE_ORT] = "";
                } else {
                    dataRow[FELD_WARENAUSGANG_PLZ] = lspos.getFlrlieferschein().getFlrkunde().getFlrpartner()
                            .getFlrlandplzort().getC_plz();
                    dataRow[FELD_WARENAUSGANG_LKZ] = lspos.getFlrlieferschein().getFlrkunde().getFlrpartner()
                            .getFlrlandplzort().getFlrland().getC_lkz();
                    dataRow[FELD_WARENAUSGANG_STATISTIKADRESSE_ORT] = lspos.getFlrlieferschein().getFlrkunde()
                            .getFlrpartner().getFlrlandplzort().getFlrort().getC_name();
                    dataRow[FELD_WARENAUSGANG_LIEFERADRESSE_ORT] = lspos.getFlrlieferschein().getFlrkunde()
                            .getFlrpartner().getFlrlandplzort().getFlrort().getC_name();
                }
                dataRow[FELD_WARENAUSGANG_ADRESSE] = lspos.getFlrlieferschein().getFlrkunde().getFlrpartner()
                        .getC_strasse();
                dataRow[FELD_WARENAUSGANG_STATISTIKADRESSE_PARTNER_I_ID] = dataRow[FELD_WARENAUSGANG_PARTNER_I_ID];
                dataRow[FELD_WARENAUSGANG_STATISTIKADRESSE_ANREDE_C_NR] = lspos.getFlrlieferschein()
                        .getFlrkunde().getFlrpartner().getAnrede_c_nr();
                dataRow[FELD_WARENAUSGANG_STATISTIKADRESSE_C_NAME1] = lspos.getFlrlieferschein().getFlrkunde()
                        .getFlrpartner().getC_name1nachnamefirmazeile1();
                dataRow[FELD_WARENAUSGANG_STATISTIKADRESSE_C_NAME2] = lspos.getFlrlieferschein().getFlrkunde()
                        .getFlrpartner().getC_name2vornamefirmazeile2();
                dataRow[FELD_WARENAUSGANG_STATISTIKADRESSE_C_NAME3ABTEILUNG] = lspos.getFlrlieferschein()
                        .getFlrkunde().getFlrpartner().getC_name3vorname2abteilung();
                dataRow[FELD_WARENAUSGANG_STATISTIKADRESSE_C_STRASSE] = lspos.getFlrlieferschein().getFlrkunde()
                        .getFlrpartner().getC_strasse();
                dataRow[FELD_WARENAUSGANG_STATISTIKADRESSE_LAND] = dataRow[FELD_WARENAUSGANG_LKZ];
                dataRow[FELD_WARENAUSGANG_STATISTIKADRESSE_PLZ] = dataRow[FELD_WARENAUSGANG_PLZ];
                dataRow[FELD_WARENAUSGANG_LIEFERADRESSE_PARTNER_I_ID] = dataRow[FELD_WARENAUSGANG_PARTNER_I_ID];
                dataRow[FELD_WARENAUSGANG_LIEFERADRESSE_ANREDE_C_NR] = lspos.getFlrlieferschein().getFlrkunde()
                        .getFlrpartner().getAnrede_c_nr();
                dataRow[FELD_WARENAUSGANG_LIEFERADRESSE_C_NAME1] = lspos.getFlrlieferschein().getFlrkunde()
                        .getFlrpartner().getC_name1nachnamefirmazeile1();
                dataRow[FELD_WARENAUSGANG_LIEFERADRESSE_C_NAME2] = lspos.getFlrlieferschein().getFlrkunde()
                        .getFlrpartner().getC_name2vornamefirmazeile2();
                dataRow[FELD_WARENAUSGANG_LIEFERADRESSE_C_NAME3ABTEILUNG] = lspos.getFlrlieferschein()
                        .getFlrkunde().getFlrpartner().getC_name3vorname2abteilung();
                dataRow[FELD_WARENAUSGANG_LIEFERADRESSE_C_STRASSE] = lspos.getFlrlieferschein().getFlrkunde()
                        .getFlrpartner().getC_strasse();
                dataRow[FELD_WARENAUSGANG_LIEFERADRESSE_LAND] = dataRow[FELD_WARENAUSGANG_LKZ];
                dataRow[FELD_WARENAUSGANG_LIEFERADRESSE_PLZ] = dataRow[FELD_WARENAUSGANG_PLZ];

                Integer brancheIId = lspos.getFlrlieferschein().getFlrkunde().getFlrpartner().getBranche_i_id();
                if (brancheIId != null) {
                    dataRow[FELD_WARENAUSGANG_BRANCHE] = getPartnerServicesFac()
                            .brancheFindByPrimaryKey(brancheIId, theClientDto).getCNr();
                }
                Integer partnerklIId = lspos.getFlrlieferschein().getFlrkunde().getFlrpartner()
                        .getPartnerklasse_i_id();
                if (partnerklIId != null) {
                    dataRow[FELD_WARENAUSGANG_PARTNERKLASSE] = getPartnerFac()
                            .partnerklasseFindByPrimaryKey(partnerklIId, theClientDto).getCNr();
                }
                dataRow[FELD_WARENAUSGANG_USTLAND] = null;
                dataRow[FELD_WARENAUSGANG_WAEHRUNG] = lspos.getFlrlieferschein()
                        .getWaehrung_c_nr_lieferscheinwaehrung();
                dataRow[FELD_WARENAUSGANG_KURS] = new BigDecimal(
                        lspos.getFlrlieferschein().getF_wechselkursmandantwaehrungzulieferscheinwaehrung());
                dataRow[FELD_WARENAUSGANG_BESTELLNUMMER] = lspos.getFlrlieferschein().getC_bestellnummer();
                dataRow[FELD_WARENAUSGANG_PROJEKT] = lspos.getFlrlieferschein().getC_bez_projektbezeichnung();
                if (lspos.getFlrlieferschein().getFlrkunderechnungsadresse() != null) {
                    dataRow[FELD_WARENAUSGANG_KUNDENNUMMER_RECHNUNGSADRESSE_LS] = lspos.getFlrlieferschein()
                            .getFlrkunderechnungsadresse().getI_kundennummer();
                    dataRow[FELD_WARENAUSGANG_KUNDENBEZEICHNUNG_RECHNUNGSADRESSE_LS] = lspos
                            .getFlrlieferschein().getFlrkunderechnungsadresse().getFlrpartner()
                            .getC_name1nachnamefirmazeile1();
                    dataRow[FELD_WARENAUSGANG_KUNDEKURZBEZEICHNUNG_RECHNUNGSADRESSE_LS] = lspos
                            .getFlrlieferschein().getFlrkunderechnungsadresse().getFlrpartner().getC_kbez();
                } else {
                    dataRow[FELD_WARENAUSGANG_KUNDENNUMMER_RECHNUNGSADRESSE_LS] = "";
                    dataRow[FELD_WARENAUSGANG_KUNDENBEZEICHNUNG_RECHNUNGSADRESSE_LS] = "";
                    dataRow[FELD_WARENAUSGANG_KUNDEKURZBEZEICHNUNG_RECHNUNGSADRESSE_LS] = "";
                }
                dataRow[FELD_WARENAUSGANG_KUNDE_HINWEISEXT] = lspos.getFlrlieferschein().getFlrkunde()
                        .getC_hinweisextern();
                dataRow[FELD_WARENAUSGANG_KUNDE_HINWEISINT] = lspos.getFlrlieferschein().getFlrkunde()
                        .getC_hinweisintern();

                if (lspos.getPosition_i_id_artikelset() != null) {

                    dataRow[FELD_WARENAUSGANG_SETARTIKEL_TYP] = ArtikelFac.SETARTIKEL_TYP_POSITION;

                } else {
                    if (lspos.getSetartikel_set().size() > 0) {
                        dataRow[FELD_WARENAUSGANG_SETARTIKEL_TYP] = ArtikelFac.SETARTIKEL_TYP_KOPF;
                    }
                }

                if (lspos.getFlrlieferschein().getFlrauftrag() != null) {
                    dataRow[FELD_WARENAUSGANG_KUNDE_LIEFERDAUER] = lspos.getFlrlieferschein().getFlrauftrag()
                            .getFlrkunde().getI_lieferdauer();

                    dataRow[FELD_WARENAUSGANG_AUFTRAG_NUMMER] = lspos.getFlrlieferschein().getFlrauftrag()
                            .getC_nr();

                    if (lspos.getFlrlieferschein().getFlrauftrag().getFlrbegruendung() != null) {
                        String bez = lspos.getFlrlieferschein().getFlrauftrag().getFlrbegruendung().getC_nr();

                        if (lspos.getFlrlieferschein().getFlrauftrag().getFlrbegruendung().getC_bez() != null) {
                            bez += " "
                                    + lspos.getFlrlieferschein().getFlrauftrag().getFlrbegruendung().getC_bez();
                        }

                        dataRow[FELD_WARENAUSGANG_AUFTRAG_BEGRUENDUNG] = bez;
                    }
                }
                if (lspos.getFlrpositionensichtauftrag() != null) {
                    dataRow[FELD_WARENAUSGANG_GEPLANTER_LIEFERTERMIN] = lspos.getFlrpositionensichtauftrag()
                            .getT_uebersteuerterliefertermin();
                }

                if (lspos.getFlrlieferschein().getFlrkunde().getFlrpersonal() != null) {
                    dataRow[FELD_WARENAUSGANG_KUNDE_PROVISIONSEMPFAENGER_KURZZEICHEN] = lspos
                            .getFlrlieferschein().getFlrkunde().getFlrpersonal().getC_kurzzeichen();
                } else {
                    dataRow[FELD_WARENAUSGANG_KUNDE_PROVISIONSEMPFAENGER_KURZZEICHEN] = "";
                }
                dataRow[FELD_WARENAUSGANG_LAGER_RECHNUNG] = "";
                if (lspos.getFlrlieferschein().getFlrlager() != null) {
                    dataRow[FELD_WARENAUSGANG_LAGER_LIEFERSCHEIN] = lspos.getFlrlieferschein().getFlrlager()
                            .getC_nr();
                } else {
                    dataRow[FELD_WARENAUSGANG_LAGER_LIEFERSCHEIN] = "";
                }
                if (lspos.getFlrlieferschein().getFlrziellager() != null) {
                    dataRow[FELD_WARENAUSGANG_ZIELLAGER_LIEFERSCHEIN] = lspos.getFlrlieferschein()
                            .getFlrziellager().getC_nr();
                } else {
                    dataRow[FELD_WARENAUSGANG_ZIELLAGER_LIEFERSCHEIN] = "";
                }
                if (lspos.getFlrlieferschein().getFlrkunderechnungsadresse() != null) {
                    dataRow[FELD_WARENAUSGANG_ILN_RECHNUNGSADRESSE] = lspos.getFlrlieferschein()
                            .getFlrkunderechnungsadresse().getFlrpartner().getC_iln();
                }

                tmData.put(i, dataRow);
                i++;
            }
        }

        // tmData in Object[][] umwandeln
        data = new Object[tmData.size()][REPORT_WARENAUSGANG_ANZAHL_SPALTEN];
        for (int y = 0; y < data.length; y++) {
            data[y] = (Object[]) tmData.get(y);
            if (RechnungFac.RECHNUNGART_GUTSCHRIFT.equals(data[y][FELD_WARENAUSGANG_RECHNUNGSART])
                    || RechnungFac.RECHNUNGART_WERTGUTSCHRIFT.equals(data[y][FELD_WARENAUSGANG_RECHNUNGSART])) {
                BigDecimal bdMenge = (BigDecimal) data[y][FELD_WARENAUSGANG_MENGE];
                if (bdMenge != null) {
                    data[y][FELD_WARENAUSGANG_MENGE] = bdMenge.multiply(new BigDecimal(-1));
                } else {
                    data[y][FELD_WARENAUSGANG_MENGE] = new BigDecimal(0);
                }
                // SK: Achtung bremst
                if (data[y][FELD_WARENAUSGANG_ZURECHNUNG] != null) {
                    RechnungDto rechDto = getRechnungFac()
                            .rechnungFindByPrimaryKey((Integer) data[y][FELD_WARENAUSGANG_ZURECHNUNG]);
                    data[y][FELD_WARENAUSGANG_ZURECHNUNG] = rechDto.getCNr();
                    data[y][FELD_WARENAUSGANG_LIEFERSCHEINDATUM] = rechDto.getTBelegdatum();
                }
            }

            // Dauert so zu lange.. Felder werden einzeln uebergeben
            /*
             * Integer partnerIId = (Integer)
             * data[y][FELD_WARENAUSGANG_STATISTIKADRESSE];
             * if(partnerIId!=null){ PartnerDto helper =
             * getPartnerFac().partnerFindByPrimaryKey(partnerIId ,
             * theClientDto); data[y][FELD_WARENAUSGANG_STATISTIKADRESSE]=
             * helper.formatFixTitelName1Name2(); }
             */
        }
        Map<String, Object> mapParameter = new TreeMap<String, Object>();
        StringBuffer sSortierung = new StringBuffer();

        mapParameter.put("P_MITTEXTEINGABEN", krit.getBMitTexteingaben());
        if (krit.bSortiereNachKostenstelle) {
            sSortierung.append(
                    getTextRespectUISpr("lp.kostenstelle", theClientDto.getMandant(), theClientDto.getLocUi()));
            sSortierung.append(", ");
        }
        if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) {
            if (krit.getBVerwendeStatistikAdresse()) {
                sSortierung.append(getTextRespectUISpr("rech.statistikadresse", theClientDto.getMandant(),
                        theClientDto.getLocUi()));
            } else {
                sSortierung.append(
                        getTextRespectUISpr("lp.kunde", theClientDto.getMandant(), theClientDto.getLocUi()));
            }
        } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_BELEGNUMMER) {
            sSortierung.append(
                    getTextRespectUISpr("bes.belegnummer", theClientDto.getMandant(), theClientDto.getLocUi()));
        } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_VERTRETER) {
            sSortierung.append(
                    getTextRespectUISpr("lp.vertreter", theClientDto.getMandant(), theClientDto.getLocUi()));
        } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_IDENT) {
            sSortierung.append(
                    getTextRespectUISpr("lp.artikel", theClientDto.getMandant(), theClientDto.getLocUi()));
        }
        mapParameter.put(LPReport.P_SORTIERUNG, sSortierung.toString());
        if (krit.dBis != null && krit.dVon != null) {
            mapParameter.put(PARAMETER_WARENAUSGANG_BIS, krit.dBis.toString());
            mapParameter.put(PARAMETER_WARENAUSGANG_VON, krit.dVon.toString());
        }
        if (krit.sBelegnummerBis != null && krit.sBelegnummerVon != null) {
            mapParameter.put(PARAMETER_WARENAUSGANG_BIS, krit.sBelegnummerBis);
            mapParameter.put(PARAMETER_WARENAUSGANG_VON, krit.sBelegnummerVon);
        }
        mapParameter.put(PARAMETER_WARENAUSGNAG_GRUPPIERUNGNACHSTATISTIK, krit.getBVerwendeStatistikAdresse());
        mapParameter.put(PARAMETER_WARENAUSGANG_MANDANTENWAEHRUNG, theClientDto.getSMandantenwaehrung());
        initJRDS(mapParameter, RechnungReportFac.REPORT_MODUL, RechnungReportFac.REPORT_WARENAUSGANGSJOURNAL,
                theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto);
        return getReportPrint();
    } catch (RemoteException ex) {
        throwEJBExceptionLPRespectOld(ex);
        return null;
    } finally {
        if (session != null) {
            session.close();
        }
    }

}

From source file:com.lushapp.common.orm.hibernate.HibernateDao.java

License:Apache License

/**
 * ??Criterion,./*  w w  w  .  jav a 2  s  . c o  m*/
 */
protected Criterion buildCriterion(final String propertyName, final Object propertyValue,
        final MatchType matchType) {
    Assert.hasText(propertyName, "propertyName?");
    Criterion criterion = null;
    String value;
    Character ESCAPE = '!';
    // ?MatchTypecriterion
    switch (matchType) {
    case EQ:
        criterion = Restrictions.eq(propertyName, propertyValue);
        break;
    case NE:
        criterion = Restrictions.ne(propertyName, propertyValue);
        break;
    case LIKE:
        // 
        value = (String) propertyValue;
        if ((ESCAPE.toString()).equals(value)) {
            criterion = Restrictions.like(propertyName, (String) propertyValue, MatchMode.ANYWHERE);
        } else {
            criterion = new LikeExpression(propertyName, (String) propertyValue, MatchMode.ANYWHERE, ESCAPE,
                    true);
        }
        break;
    case SLIKE:
        // 
        value = (String) propertyValue;
        if ((ESCAPE.toString()).equals(value)) {
            criterion = Restrictions.like(propertyName, (String) propertyValue, MatchMode.START);
        } else {
            criterion = new LikeExpression(propertyName, (String) propertyValue, MatchMode.START, ESCAPE, true);
        }
        break;
    case ELIKE:
        // 
        value = (String) propertyValue;
        if ((ESCAPE.toString()).equals(value)) {
            criterion = Restrictions.like(propertyName, (String) propertyValue, MatchMode.END);
        } else {
            criterion = new LikeExpression(propertyName, (String) propertyValue, MatchMode.END, ESCAPE, true);
        }
        break;
    case LE:
        criterion = Restrictions.le(propertyName, propertyValue);
        break;
    case LT:
        criterion = Restrictions.lt(propertyName, propertyValue);
        break;
    case GE:
        criterion = Restrictions.ge(propertyName, propertyValue);
        break;
    case GT:
        criterion = Restrictions.gt(propertyName, propertyValue);
        break;
    case ISNULL:
        criterion = Restrictions.isNull(propertyName);
    }
    return criterion;
}

From source file:com.maharishi_inn.daoImpl.AbstractDao.java

public T find(Long id) {
    Criteria cr = getSession().createCriteria(entityClass);
    return (T) cr.add(Restrictions.gt("id", id)).list().get(0);
}

From source file:com.maydesk.base.dao.DaoUser.java

License:Mozilla Public License

public String findNewestPresenceStatus(String jabberId) {
    // find the time of last acknowledgement
    Session session = PDHibernateFactory.getSession();
    Criteria criteria = session.createCriteria(MPresenceAcknowledge.class);
    criteria.add(Restrictions.eq("jabberId", jabberId));
    criteria.add(Restrictions.eq("acknowledgedBy", PDUserSession.getInstance().getUser()));
    MPresenceAcknowledge acknowledgement = (MPresenceAcknowledge) criteria.uniqueResult();
    Date acknowledgeTime = null;/*from w  w  w  . j a  va2  s  .co  m*/
    if (acknowledgement != null) {
        acknowledgeTime = acknowledgement.getAcknowledgeTime();
    }

    criteria = session.createCriteria(MPresence.class);
    criteria.add(Restrictions.eq("jabberId", jabberId));
    if (acknowledgeTime != null) {
        criteria.add(Restrictions.gt("time", acknowledgeTime));
    }
    MPresence newestPresence = (MPresence) criteria.uniqueResult();
    if (newestPresence == null) {
        return null;
    }
    return newestPresence.getStatus();
}

From source file:com.metropolitan.methotels727.dao.RezervacijaDAOImpl.java

@Override
public boolean aktivnaRezervacijaKorisnika(Korisnik korisnik) {
    Date sad = Calendar.getInstance().getTime();
    return !(session.createCriteria(Rezervacija.class).add(Restrictions.eq("korId", korisnik))
            .add(Restrictions.lt("datumPrijave", sad)).add(Restrictions.gt("datumOdjave", sad)).list()
            .isEmpty());// w w w . j  av a2 s .co m
}

From source file:com.mil.randommenu.dao.WeekItemDao.java

public List<WeekItem> getWeekItems() {
    Criteria criteria = sessionFactory.getCurrentSession().createCriteria(WeekItem.class);
    criteria.add(Restrictions.gt("quantity", 0));
    return criteria.list();
}

From source file:com.ponysdk.hibernate.query.decorator.AbstractCriteriaDecorator.java

License:Apache License

@SuppressWarnings("rawtypes")
@Override//from   w w  w.ja v a2 s. c om
public void render(final CriteriaContext context) {
    final Criterion field = context.getCriterion();
    Criteria criteria = context.getOrderingCriteria();

    final List<String> propertyNamePath = Arrays.asList(field.getPojoProperty().split(REGEX_SPLIT));
    final Iterator<String> iter = propertyNamePath.iterator();
    String key = null;
    String associationPath = null;
    if (propertyNamePath.size() == 1) {
        associationPath = iter.next();
    } else
        while (iter.hasNext()) {
            key = iter.next();
            if (associationPath == null) {
                associationPath = new String(key);
            } else {
                associationPath += "." + key;
            }
            if (iter.hasNext()) {
                criteria = criteria.createCriteria(associationPath, key, CriteriaSpecification.INNER_JOIN);
                associationPath = new String(key);
            }
        }

    final T value = getObjectValue(field);
    ComparatorType comparator = field.getComparator();

    if (value != null) {
        if (value.toString().contains("%")) {
            comparator = ComparatorType.LIKE;
        }
    }

    if (field.getValue() != null || field.getComparator() == ComparatorType.IS_NULL
            || field.getComparator() == ComparatorType.IS_NOT_NULL) {

        switch (comparator) {
        case EQ:
            criteria.add(Restrictions.eq(associationPath, value));
            break;
        case GE:
            criteria.add(Restrictions.ge(associationPath, value));
            break;
        case GT:
            criteria.add(Restrictions.gt(associationPath, value));
            break;
        case LE:
            criteria.add(Restrictions.le(associationPath, value));
            break;
        case LT:
            criteria.add(Restrictions.lt(associationPath, value));
            break;
        case NE:
            criteria.add(Restrictions.ne(associationPath, value));
            break;
        case LIKE:
            criteria.add(Restrictions.ilike(associationPath, value));
            break;
        case IS_NULL:
            criteria.add(Restrictions.isNull(associationPath));
            break;
        case IS_NOT_NULL:
            criteria.add(Restrictions.isNotNull(associationPath));
            break;
        case IN:
            if (value instanceof Collection) {
                criteria.add(Restrictions.in(associationPath, (Collection) value));
            } else if (value instanceof Object[]) {
                criteria.add(Restrictions.in(associationPath, (Object[]) value));
            } else {
                log.warn("Type not allowed for IN clause: " + value.getClass() + ", value: " + value);
            }
            break;

        default:
            log.warn("Restriction not supported: " + comparator);
            break;
        }
    }

    switch (field.getSortingType()) {
    case ASCENDING:
        criteria.addOrder(Order.asc(associationPath));
        break;
    case DESCENDING:
        criteria.addOrder(Order.desc(associationPath));
        break;
    case NONE:
        break;
    }

}

From source file:com.qcadoo.model.api.search.SearchRestrictions.java

License:Open Source License

/**
 * Creates criterion which checks if field is greater than given value.
 * //from w  ww  .  j  a  v  a  2 s  . c  om
 * @param field
 *            field
 * @param value
 *            value
 * @return criterion
 */
public static SearchCriterion gt(final String field, final Object value) {
    return new SearchCriterionImpl(Restrictions.gt(field, value));
}

From source file:com.reignite.parser.QueryParser.java

License:Open Source License

private Criterion processField(JSONObject where) throws ParserException {
    String field = JSONObject.getNames(where)[0];
    JSONObject exp;/*from  w  ww  .  j a  v  a  2 s . co m*/
    try {
        exp = where.getJSONObject(field);
    } catch (JSONException e) {
        throw new ParserException("field expressions must be JSON Object: " + field);
    }
    ExpressionType type = ExpressionType.get(JSONObject.getNames(exp)[0]);
    Object value = null;
    // if the field is a join
    if (field.indexOf(".") > -1) {
        String join = field.substring(0, field.indexOf("."));
        query.createJoin(join);
    }
    switch (type) {
    case IN:
    case NOT_IN:
        try {
            value = createArray(exp.getJSONArray(type.getName()));
        } catch (JSONException e) {
            throw new ParserException("in and not in expressions must be arrays: " + exp);
        }
        break;
    default:
        try {
            value = createValue(exp.get(type.getName()));
        } catch (JSONException e) {
            throw new ParserException("expressions must have a value: " + exp);
        }
    }

    switch (type) {
    case GREATER_THAN:
        return Restrictions.gt(field, value);
    case IN:
        return Restrictions.in(field, (Object[]) value);
    case LESS_THAN:
        return Restrictions.lt(field, value);
    case LIKE:
        MatchMode match = MatchMode.EXACT;
        String toMatch = value.toString();
        if (value.toString().startsWith("%")) {
            match = MatchMode.END;
            toMatch = toMatch.substring(1);
        }
        if (value.toString().endsWith("%")) {
            toMatch = toMatch.substring(0, toMatch.length() - 1);
            if (match == MatchMode.END) {
                match = MatchMode.ANYWHERE;
            } else {
                match = MatchMode.START;
            }
        }
        return Restrictions.ilike(field, toMatch, match);
    case NOT_EQUAL:
        if (value == null) {
            return Restrictions.isNotNull(field);
        }
        return Restrictions.ne(field, value);
    case NOT_IN:
        return Restrictions.not(Restrictions.in(field, (Object[]) value));
    case EQUAL:
    default:
        if (value == null) {
            return Restrictions.isNull(field);
        }
        return Restrictions.eq(field, value);
    }

}