Example usage for org.hibernate Criteria createCriteria

List of usage examples for org.hibernate Criteria createCriteria

Introduction

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

Prototype

public Criteria createCriteria(String associationPath) throws HibernateException;

Source Link

Document

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

Usage

From source file:com.lp.server.finanz.ejbfac.FibuExportFacBean.java

License:Open Source License

private FLRRechnung[] getVerbuchbareGutschriften(java.sql.Date dStichtag, TheClientDto theClientDto)
        throws EJBExceptionLP {
    Session session = null;/*  w  w  w .j a va  2s .  c om*/
    try {
        pruefeAufAngelegte(dStichtag, theClientDto, RechnungFac.RECHNUNGTYP_GUTSCHRIFT);
        SessionFactory factory = FLRSessionFactory.getFactory();
        session = factory.openSession();
        Criteria c = session.createCriteria(FLRRechnung.class);
        // nur Rechnungen
        c.createCriteria(RechnungFac.FLR_RECHNUNG_FLRRECHNUNGART).add(Restrictions
                .eq(RechnungFac.FLR_RECHNUNGART_RECHNUNGTYP_C_NR, RechnungFac.RECHNUNGTYP_GUTSCHRIFT));
        // Filter nach Mandant
        c.add(Restrictions.eq(RechnungFac.FLR_RECHNUNG_MANDANT_C_NR, theClientDto.getMandant()));
        // Noch nicht verbuchte
        c.add(Restrictions.isNull(RechnungFac.FLR_RECHNUNG_T_FIBUUEBERNAHME));
        // Stichtag
        c.add(Restrictions.le(RechnungFac.FLR_RECHNUNG_D_BELEGDATUM, dStichtag));
        // Und nach status
        Collection<String> coll = new LinkedList<String>();
        coll.add(RechnungFac.STATUS_BEZAHLT);
        coll.add(RechnungFac.STATUS_OFFEN);
        coll.add(RechnungFac.STATUS_TEILBEZAHLT);
        coll.add(RechnungFac.STATUS_VERBUCHT);
        c.add(Restrictions.in(RechnungFac.FLR_RECHNUNG_STATUS_C_NR, coll));
        // zu exportierende Belege holen
        List<?> list = c.list();
        FLRRechnung[] reArray = new FLRRechnung[list.size()];
        int i = 0;
        for (Iterator<?> iter = list.iterator(); iter.hasNext(); i++) {
            FLRRechnung re = (FLRRechnung) iter.next();
            reArray[i] = re;
        }
        return reArray;
    } finally {
        if (session != null) {
            session.close();
        }
    }
}

From source file:com.lp.server.finanz.ejbfac.FibuExportFacBean.java

License:Open Source License

public void nehmeExportlaufZurueckUndLoescheIhn(Integer exportlaufIId, TheClientDto theClientDto)
        throws EJBExceptionLP {
    Session session = null;//from   www.java  2s  .  c  o  m
    // es darf nur der letzte geloescht werden
    Integer iIdLetzter = exportlaufFindLetztenExportlauf(theClientDto.getMandant());
    if (!iIdLetzter.equals(exportlaufIId)) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FINANZ_EXPORT_ES_DARF_NUR_DER_LETZTE_GELOESCHT_WERDEN,
                new Exception("Exportlauf " + exportlaufIId + " darf nicht gel\u00F6scht werden, " + iIdLetzter
                        + " ist der letzte"));
    }
    try {
        SessionFactory factory = FLRSessionFactory.getFactory();
        session = factory.openSession();
        Criteria c = session.createCriteria(FLRFinanzExportdaten.class);
        c.createCriteria(FinanzFac.FLR_EXPORTDATEN_FLREXPORTLAUF)
                .add(Restrictions.eq(FinanzFac.FLR_EXPORTLAUF_I_ID, exportlaufIId));
        List<?> list = c.list();
        int i = 0;
        for (Iterator<?> iter = list.iterator(); iter.hasNext(); i++) {
            FLRFinanzExportdaten ex = (FLRFinanzExportdaten) iter.next();
            removeExportdaten(ex.getI_id(), theClientDto);
        }
        // nun den exportlauf loeschen
        removeExportlauf(exportlaufIId);
    } finally {
        if (session != null) {
            session.close();
        }
    }
}

From source file:com.lp.server.finanz.ejbfac.FibuExportFacBean.java

License:Open Source License

@TransactionTimeout(20000)
public ArrayList<IntrastatDto> getIntrastatDatenWareneingang(java.sql.Date dVon, java.sql.Date dBis,
        BigDecimal bdTransportkosten, TheClientDto theClientDto) throws EJBExceptionLP {
    ArrayList<IntrastatDto> daten = new ArrayList<IntrastatDto>();
    Session session = null;/*from   www .  j ava2  s .  c  o m*/
    try {
        SessionFactory factory = FLRSessionFactory.getFactory();
        session = factory.openSession();
        Criteria c = session.createCriteria(FLRWareneingangspositionen.class);
        Criteria cWE = c.createCriteria(WareneingangFac.FLR_WEPOS_FLRWARENEINGANG);
        Criteria cBesPos = c.createCriteria(WareneingangFac.FLR_WEPOS_FLRBESTELLPOSITION);
        Criteria cBes = cBesPos.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRBESTELLUNG);
        Criteria cLieferant = cBes.createCriteria(BestellungFac.FLR_BESTELLUNG_FLRLIEFERANT);
        Criteria cPartner = cLieferant.createCriteria(LieferantFac.FLR_PARTNER);
        Criteria cLandPLZOrt = cPartner.createCriteria(PartnerFac.FLR_PARTNER_FLRLANDPLZORT);
        Criteria cLand = cLandPLZOrt.createCriteria(SystemFac.FLR_LP_FLRLAND);
        // Nur auslaendische
        MandantDto mandantDto = getMandantFac().mandantFindByPrimaryKey(theClientDto.getMandant(),
                theClientDto);
        //und die die eine UID-Nummer haben
        cPartner.add(Restrictions.isNotNull(PartnerFac.FLR_PARTNER_C_UID));

        cLand.add(Restrictions.ne(SystemFac.FLR_LP_LANDLKZ,
                mandantDto.getPartnerDto().getLandplzortDto().getLandDto().getCLkz()));
        // Filter nach Mandant
        cBes.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_MANDANT_C_NR, theClientDto.getMandant()));
        // Filter: Nur Ident-Positionen
        cBesPos.add(Restrictions.eq(BestellpositionFac.FLR_BESTELLPOSITION_BESTELLPOSITIONART_C_NR,
                BestellpositionFac.BESTELLPOSITIONART_IDENT));
        // Wareneingangsdatum von - bis
        cWE.add(Restrictions.ge(WareneingangFac.FLR_WE_T_WARENEINGANGSDATUM, dVon)); // von
        // 00
        // :
        // 00
        // :
        // 00
        cWE.add(Restrictions.lt(WareneingangFac.FLR_WE_T_WARENEINGANGSDATUM, dBis)); // bis
        // 23
        // :
        // 59
        // :
        // 59

        List<?> list = c.list();
        for (Iterator<?> iter = list.iterator(); iter.hasNext();) {
            FLRWareneingangspositionen wePos = (FLRWareneingangspositionen) iter.next();
            IntrastatDto iDto = new IntrastatDto();
            iDto.setArtikelDto(getArtikelFac().artikelFindByPrimaryKey(
                    wePos.getFlrbestellposition().getFlrartikel().getI_id(), theClientDto));
            iDto.setBelegart("BS");
            iDto.setBelegnummer(wePos.getFlrbestellposition().getFlrbestellung().getC_nr());
            // Einstandspreis in Mandantenwaehrung
            BigDecimal bdEinstandspreis;
            if (wePos.getN_einstandspreis() != null) {
                bdEinstandspreis = getLocaleFac().rechneUmInMandantenWaehrung(wePos.getN_einstandspreis(),
                        wePos.getFlrwareneingang().getN_wechselkurs());
            } else {
                bdEinstandspreis = new BigDecimal(0);
            }
            iDto.setEinzelpreis(bdEinstandspreis);
            iDto.setMenge(
                    wePos.getN_geliefertemenge() != null ? wePos.getN_geliefertemenge() : new BigDecimal(0));
            // Wert = Menge * Preis
            iDto.setWert(iDto.getMenge().multiply(iDto.getEinzelpreis()));
            // Zur Aufteilung der Transportkosten den Gesamtwert des
            // Wareneingangs berechnen
            BigDecimal bdGesamtwertDesWareneingangs = new BigDecimal(0);
            WareneingangspositionDto[] wePositionen = getWareneingangFac()
                    .wareneingangspositionFindByWareneingangIId(wePos.getWareneingang_i_id());
            for (int i = 0; i < wePositionen.length; i++) {
                if (wePositionen[i].getNGeliefertemenge() != null
                        && wePositionen[i].getNEinstandspreis() != null) {
                    bdGesamtwertDesWareneingangs = bdGesamtwertDesWareneingangs
                            .add(getLocaleFac().rechneUmInMandantenWaehrung(
                                    wePositionen[i].getNGeliefertemenge()
                                            .multiply(wePositionen[i].getNEinstandspreis()),
                                    wePos.getFlrwareneingang().getN_wechselkurs()));
                }
            }
            BigDecimal bdAnteiligeTransportkosten;
            if (bdGesamtwertDesWareneingangs.compareTo(new BigDecimal(0)) > 0) {
                bdAnteiligeTransportkosten = bdGesamtwertDesWareneingangs.divide(
                        bdGesamtwertDesWareneingangs.add(bdTransportkosten),
                        FinanzReportFac.INTRASTAT_NACHKOMMASTELLEN_PREISE, BigDecimal.ROUND_HALF_EVEN);
                if (bdAnteiligeTransportkosten.compareTo(new BigDecimal(0)) == 0) {
                    bdAnteiligeTransportkosten = new BigDecimal(1);
                }
                iDto.setStatistischerWert(iDto.getWert().divide(bdAnteiligeTransportkosten,
                        FinanzReportFac.INTRASTAT_NACHKOMMASTELLEN_PREISE, BigDecimal.ROUND_HALF_EVEN));
            } else {
                // kann nicht aufgeteilt werden
                bdAnteiligeTransportkosten = bdTransportkosten;
                iDto.setStatistischerWert(iDto.getWert().add(bdAnteiligeTransportkosten));
            }

            iDto.setPartnerDto(getPartnerFac().partnerFindByPrimaryKey(wePos.getFlrbestellposition()
                    .getFlrbestellung().getFlrlieferant().getFlrpartner().getI_id(), theClientDto));
            WarenverkehrsnummerDto wvk = null;
            if (iDto.getArtikelDto().getCWarenverkehrsnummer() != null) {
                wvk = getFinanzServiceFac().warenverkehrsnummerFindByPrimaryKeyOhneExc(
                        iDto.getArtikelDto().getCWarenverkehrsnummer());
            }
            BigDecimal bdGewicht = null;
            iDto.setWarenverkehrsnummerDto(wvk);
            if (iDto.getArtikelDto().getFGewichtkg() != null) {
                bdGewicht = iDto.getMenge().multiply(new BigDecimal(iDto.getArtikelDto().getFGewichtkg()));
            } else {
                bdGewicht = new BigDecimal(0);
            }
            iDto.setGewichtInKg(bdGewicht);
            daten.add(iDto);
        }
    } catch (RemoteException ex) {
        throwEJBExceptionLPRespectOld(ex);
    } finally {
        closeSession(session);
    }
    return daten;
}

From source file:com.lp.server.finanz.ejbfac.FibuExportFacBean.java

License:Open Source License

@TransactionTimeout(20000)
public ArrayList<IntrastatDto> getIntrastatDatenVersand(java.sql.Date dVon, java.sql.Date dBis,
        BigDecimal bdTransportkosten, TheClientDto theClientDto) throws EJBExceptionLP {
    ArrayList<IntrastatDto> daten = new ArrayList<IntrastatDto>();
    Session session = null;// w  ww . jav  a  2s  .  c o  m
    try {
        SessionFactory factory = FLRSessionFactory.getFactory();
        session = factory.openSession();
        // Lieferscheinpositionen
        Criteria cLSPos = session.createCriteria(FLRLieferscheinposition.class);
        Criteria cLS = cLSPos.createCriteria(LieferscheinpositionFac.FLR_LIEFERSCHEINPOSITION_FLRLIEFERSCHEIN);
        Criteria cLSKunde = cLS.createCriteria(LieferscheinFac.FLR_LIEFERSCHEIN_FLRKUNDE);
        Criteria cLSPartner = cLSKunde.createCriteria(LieferantFac.FLR_PARTNER);
        Criteria cLSLandPLZOrt = cLSPartner.createCriteria(PartnerFac.FLR_PARTNER_FLRLANDPLZORT);
        Criteria cLSLand = cLSLandPLZOrt.createCriteria(SystemFac.FLR_LP_FLRLAND);
        // Nur auslaendische
        MandantDto mandantDto = getMandantFac().mandantFindByPrimaryKey(theClientDto.getMandant(),
                theClientDto);

        //und die die eine UID-Nummer haben
        cLSPartner.add(Restrictions.isNotNull(PartnerFac.FLR_PARTNER_C_UID));

        cLSLand.add(Restrictions.ne(SystemFac.FLR_LP_LANDLKZ,
                mandantDto.getPartnerDto().getLandplzortDto().getLandDto().getCLkz()));
        // Filter nach Mandant
        cLS.add(Restrictions.eq(LieferscheinFac.FLR_LIEFERSCHEIN_MANDANT_C_NR, theClientDto.getMandant()));
        // Filter: Nur Ident-Positionen
        cLSPos.add(
                Restrictions.eq(LieferscheinpositionFac.FLR_LIEFERSCHEINPOSITION_LIEFERSCHEINPOSITIONART_C_NR,
                        LieferscheinpositionFac.LIEFERSCHEINPOSITIONSART_IDENT));
        // Belegdatum von - bis
        cLS.add(Restrictions.ge(LieferscheinFac.FLR_LIEFERSCHEIN_D_BELEGDATUM, dVon)); // von
        // 00
        // :
        // 00
        // :
        // 00
        cLS.add(Restrictions.lt(LieferscheinFac.FLR_LIEFERSCHEIN_D_BELEGDATUM, dBis)); // bis
        // 23
        // :
        // 59
        // :
        // 59

        List<?> listLSPos = cLS.list();
        for (Iterator<?> iter = listLSPos.iterator(); iter.hasNext();) {
            FLRLieferscheinposition lsPos = (FLRLieferscheinposition) iter.next();
            IntrastatDto iDto = new IntrastatDto();
            iDto.setArtikelDto(
                    getArtikelFac().artikelFindByPrimaryKey(lsPos.getFlrartikel().getI_id(), theClientDto));
            iDto.setBelegart("LS");
            iDto.setBelegnummer(lsPos.getFlrlieferschein().getC_nr());
            /**
             * @todo MB ist das der richtige Preis?
             * @todo MB Wechselkurs beruecksichtigen
             */
            iDto.setEinzelpreis(lsPos.getN_nettogesamtpreisplusversteckteraufschlagminusrabatt() != null
                    ? lsPos.getN_nettogesamtpreisplusversteckteraufschlagminusrabatt()
                    : new BigDecimal(0));
            iDto.setMenge(lsPos.getN_menge() != null ? lsPos.getN_menge() : new BigDecimal(0));
            iDto.setPartnerDto(getPartnerFac().partnerFindByPrimaryKey(
                    lsPos.getFlrlieferschein().getFlrkunde().getFlrpartner().getI_id(), theClientDto));
            /**
             * @todo das mit den Transportkosten noch besser loesen
             */
            BigDecimal bdGesamtwertDesWareneingangs = new BigDecimal(0);
            LieferscheinpositionDto[] lsPositionen = getLieferscheinpositionFac()
                    .lieferscheinpositionFindByLieferscheinIId(lsPos.getFlrlieferschein().getI_id());
            for (int i = 0; i < lsPositionen.length; i++) {
                if (lsPositionen[i].getNMenge() != null
                        && lsPositionen[i].getNEinzelpreisplusversteckteraufschlag() != null) {
                    bdGesamtwertDesWareneingangs = bdGesamtwertDesWareneingangs
                            .add(getLocaleFac().rechneUmInMandantenWaehrung(
                                    lsPositionen[i].getNMenge().multiply(
                                            lsPositionen[i].getNEinzelpreisplusversteckteraufschlag()),
                                    new BigDecimal(lsPos.getFlrlieferschein()
                                            .getF_wechselkursmandantwaehrungzulieferscheinwaehrung())));
                }
            }

            iDto.setWert(iDto.getMenge().multiply(iDto.getEinzelpreis()));
            /*
             * iDto .setStatistischerWert(iDto.getWert().add(
             * bdTransportkosten));
             */
            BigDecimal bdAnteiligeTransportkosten;
            if (bdGesamtwertDesWareneingangs.compareTo(new BigDecimal(0)) > 0) {
                bdAnteiligeTransportkosten = bdGesamtwertDesWareneingangs.divide(
                        bdGesamtwertDesWareneingangs.add(bdTransportkosten),
                        FinanzReportFac.INTRASTAT_NACHKOMMASTELLEN_PREISE, BigDecimal.ROUND_HALF_EVEN);
                if (bdAnteiligeTransportkosten.compareTo(new BigDecimal(0)) == 0) {
                    bdAnteiligeTransportkosten = new BigDecimal(1);
                }
                iDto.setStatistischerWert(iDto.getWert().divide(bdAnteiligeTransportkosten,
                        FinanzReportFac.INTRASTAT_NACHKOMMASTELLEN_PREISE, BigDecimal.ROUND_HALF_EVEN));
            } else {
                // kann nicht aufgeteilt werden
                bdAnteiligeTransportkosten = bdTransportkosten;
                iDto.setStatistischerWert(iDto.getWert().add(bdAnteiligeTransportkosten));
            }
            WarenverkehrsnummerDto wvk = null;
            if (iDto.getArtikelDto().getCWarenverkehrsnummer() != null) {
                wvk = getFinanzServiceFac().warenverkehrsnummerFindByPrimaryKeyOhneExc(
                        iDto.getArtikelDto().getCWarenverkehrsnummer());
            }
            iDto.setWarenverkehrsnummerDto(wvk);
            BigDecimal bdGewicht = null;
            iDto.setWarenverkehrsnummerDto(wvk);
            if (iDto.getArtikelDto().getFGewichtkg() != null) {
                bdGewicht = iDto.getMenge().multiply(new BigDecimal(iDto.getArtikelDto().getFGewichtkg()));
            } else {
                bdGewicht = new BigDecimal(0);
            }
            iDto.setGewichtInKg(bdGewicht);
            daten.add(iDto);
        }

        // Rechnungspositionen
        Criteria cREPos = session.createCriteria(FLRRechnungPosition.class);
        Criteria cRE = cREPos.createCriteria(RechnungFac.FLR_RECHNUNGPOSITION_FLRRECHNUNG);
        Criteria cREArt = cRE.createCriteria(RechnungFac.FLR_RECHNUNG_FLRRECHNUNGART);
        Criteria cREKunde = cRE.createCriteria(RechnungFac.FLR_RECHNUNG_FLRKUNDE);
        Criteria cREPartner = cREKunde.createCriteria(LieferantFac.FLR_PARTNER);
        Criteria cRELandPLZOrt = cREPartner.createCriteria(PartnerFac.FLR_PARTNER_FLRLANDPLZORT);
        Criteria cRELand = cRELandPLZOrt.createCriteria(SystemFac.FLR_LP_FLRLAND);
        // Nur auslaendische
        cRELand.add(Restrictions.ne(SystemFac.FLR_LP_LANDLKZ,
                mandantDto.getPartnerDto().getLandplzortDto().getLandDto().getCLkz()));
        // Filter nach Mandant
        cRE.add(Restrictions.eq(RechnungFac.FLR_RECHNUNG_MANDANT_C_NR, theClientDto.getMandant()));
        // Filter: Nur Ident-Positionen
        cREPos.add(Restrictions.eq(RechnungFac.FLR_RECHNUNGPOSITION_POSITIONSART_C_NR,
                RechnungFac.POSITIONSART_RECHNUNG_IDENT));
        // keine stornierten
        cRE.add(Restrictions.ne(RechnungFac.FLR_RECHNUNG_STATUS_C_NR, RechnungFac.STATUS_STORNIERT));
        // Belegdatum von - bis
        cRE.add(Restrictions.ge(RechnungFac.FLR_RECHNUNG_D_BELEGDATUM, dVon)); // von
        // 00:
        // 00:00
        cRE.add(Restrictions.lt(RechnungFac.FLR_RECHNUNG_D_BELEGDATUM, dBis)); // bis
        // 23:
        // 59:59
        // nur Rechnungen
        cREArt.add(Restrictions.eq(RechnungFac.FLR_RECHNUNGART_RECHNUNGTYP_C_NR,
                RechnungFac.RECHNUNGTYP_RECHNUNG));
        // Query
        List<?> listREPos = cREPos.list();
        for (Iterator<?> iter = listREPos.iterator(); iter.hasNext();) {
            FLRRechnungPosition rePos = (FLRRechnungPosition) iter.next();
            // Die Rechnung muss aktiviert sein
            if (rePos.getFlrrechnung().getStatus_c_nr().equals(RechnungFac.STATUS_ANGELEGT)) {
                throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FINANZ_EXPORT_BELEG_IST_NOCH_NICHT_AKTIVIERT,
                        new Exception("Rechnung " + rePos.getFlrrechnung().getC_nr()));
            }
            IntrastatDto iDto = new IntrastatDto();
            iDto.setArtikelDto(
                    getArtikelFac().artikelFindByPrimaryKey(rePos.getFlrartikel().getI_id(), theClientDto));
            iDto.setBelegart("RE");
            iDto.setBelegnummer(rePos.getFlrrechnung().getC_nr());
            /**
             * @todo MB ist das der richtige Preis?
             * @todo MB Wechselkurs beruecksichtigen
             */
            iDto.setEinzelpreis(rePos.getN_nettoeinzelpreis_plus_aufschlag_minus_rabatt() != null
                    ? rePos.getN_nettoeinzelpreis_plus_aufschlag_minus_rabatt()
                    : new BigDecimal(0));
            iDto.setMenge(rePos.getN_menge() != null ? rePos.getN_menge() : new BigDecimal(0));
            iDto.setPartnerDto(getPartnerFac().partnerFindByPrimaryKey(
                    rePos.getFlrrechnung().getFlrkunde().getFlrpartner().getI_id(), theClientDto));
            /**
             * @todo das mit den Transportkosten noch besser loesen
             */
            BigDecimal bdGesamtwertDesWareneingangs = new BigDecimal(0);
            RechnungPositionDto[] rsPositionen = getRechnungFac()
                    .rechnungPositionFindByRechnungIId(rePos.getFlrrechnung().getI_id());
            try {
                for (int i = 0; i < rsPositionen.length; i++) {
                    if (rsPositionen[i].getNMenge() != null
                            && rsPositionen[i].getNEinzelpreisplusversteckteraufschlag() != null) {
                        bdGesamtwertDesWareneingangs = bdGesamtwertDesWareneingangs
                                .add(getLocaleFac()
                                        .rechneUmInMandantenWaehrung(
                                                rsPositionen[i].getNMenge()
                                                        .multiply(rsPositionen[i]
                                                                .getNEinzelpreisplusversteckteraufschlag()),

                                                rePos.getFlrrechnung().getN_kurs()));
                    }
                }
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            iDto.setWert(iDto.getMenge().multiply(iDto.getEinzelpreis()));
            /*
             * iDto .setStatistischerWert(iDto.getWert().add(
             * bdTransportkosten));
             */
            BigDecimal bdAnteiligeTransportkosten;
            if (bdGesamtwertDesWareneingangs.compareTo(new BigDecimal(0)) > 0) {
                bdAnteiligeTransportkosten = bdGesamtwertDesWareneingangs.divide(
                        bdGesamtwertDesWareneingangs.add(bdTransportkosten),
                        FinanzReportFac.INTRASTAT_NACHKOMMASTELLEN_PREISE, BigDecimal.ROUND_HALF_EVEN);
                if (bdAnteiligeTransportkosten.compareTo(new BigDecimal(0)) == 0) {
                    bdAnteiligeTransportkosten = new BigDecimal(1);
                }
                iDto.setStatistischerWert(iDto.getWert().divide(bdAnteiligeTransportkosten,
                        FinanzReportFac.INTRASTAT_NACHKOMMASTELLEN_PREISE, BigDecimal.ROUND_HALF_EVEN));
            } else {
                // kann nicht aufgeteilt werden
                bdAnteiligeTransportkosten = bdTransportkosten;
                iDto.setStatistischerWert(iDto.getWert().add(bdAnteiligeTransportkosten));
            }
            WarenverkehrsnummerDto wvk = null;
            if (iDto.getArtikelDto().getCWarenverkehrsnummer() != null) {
                wvk = getFinanzServiceFac().warenverkehrsnummerFindByPrimaryKeyOhneExc(
                        iDto.getArtikelDto().getCWarenverkehrsnummer());
            }
            iDto.setWarenverkehrsnummerDto(wvk);
            BigDecimal bdGewicht = null;
            iDto.setWarenverkehrsnummerDto(wvk);
            if (iDto.getArtikelDto().getFGewichtkg() != null) {
                bdGewicht = iDto.getMenge().multiply(new BigDecimal(iDto.getArtikelDto().getFGewichtkg()));
            } else {
                bdGewicht = new BigDecimal(0);
            }
            iDto.setGewichtInKg(bdGewicht);
            daten.add(iDto);
        }
    } catch (RemoteException ex) {
        throwEJBExceptionLPRespectOld(ex);
    } finally {
        closeSession(session);
    }
    return daten;
}

From source file:com.lp.server.finanz.ejbfac.FinanzReportFacBean.java

License:Open Source License

public JasperPrintLP printMahnlauf(ReportJournalKriterienDto krit, Integer mahnlaufIId,
        TheClientDto theClientDto) throws EJBExceptionLP {
    Session session = null;/*from  w  w w. ja v  a  2  s.  c  om*/
    try {
        this.useCase = UC_MAHNLAUF;
        this.index = -1;
        // Mahnlauf holen
        MahnlaufDto mahnlaufDto = getMahnwesenFac().mahnlaufFindByPrimaryKey(mahnlaufIId);
        // Hibernate-Abfrage
        SessionFactory factory = FLRSessionFactory.getFactory();
        session = factory.openSession();
        Criteria c = session.createCriteria(FLRFinanzMahnung.class);
        Criteria crit = c.createCriteria(FinanzFac.FLR_MAHNUNG_FLRRECHNUNGREPORT);
        // Filter nach Mandant
        c.add(Restrictions.eq(FinanzFac.FLR_MAHNUNG_MAHNLAUF_I_ID, mahnlaufIId));
        // Filter nach einem Kunde
        if (krit.kundeIId != null) {
            crit.add(Restrictions.eq(RechnungFac.FLR_RECHNUNG_KUNDE_I_ID, krit.kundeIId));
        }
        // Filter nach einem Vertrter
        if (krit.vertreterIId != null) {
            crit.add(Restrictions.eq(RechnungFac.FLR_RECHNUNG_VERTRETER_I_ID, krit.vertreterIId));
        }
        // Sortierung nach Kunde
        if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) {
            crit.createCriteria(RechnungFac.FLR_RECHNUNG_FLRKUNDE).createCriteria(KundeFac.FLR_PARTNER)
                    .addOrder(Order.asc(PartnerFac.FLR_PARTNER_NAME1NACHNAMEFIRMAZEILE1));
        }
        // Sortierung nach Vertreter
        if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_VERTRETER) {
            crit.createCriteria(RechnungFac.FLR_RECHNUNG_FLRVERTRETER).createCriteria(KundeFac.FLR_PARTNER)
                    .addOrder(Order.asc(PartnerFac.FLR_PARTNER_NAME1NACHNAMEFIRMAZEILE1));
        }
        // Sortierung aufsteigend nach Rechnungsnummer
        crit.addOrder(Order.asc(RechnungFac.FLR_RECHNUNG_C_NR));
        List<?> list = c.list();
        data = new Object[list.size()][20];
        int i = 0;
        for (Iterator<?> iter = list.iterator(); iter.hasNext();) {
            FLRFinanzMahnung mahnung = (FLRFinanzMahnung) iter.next();
            // Dto holen, da nicht alle Daten da sind
            MahnungDto mahnungDto = getMahnwesenFac().mahnungFindByPrimaryKey(mahnung.getI_id());
            // Array befuellen
            data[i][REPORT_MAHNLAUF_KUNDE] = mahnung.getFlrrechnungreport().getFlrkunde().getFlrpartner()
                    .getC_name1nachnamefirmazeile1();
            if (mahnung.getFlrrechnungreport().getFlrvertreter() != null) {
                data[i][REPORT_MAHNLAUF_VERTRETER] = mahnung.getFlrrechnungreport().getFlrvertreter()
                        .getFlrpartner().getC_name1nachnamefirmazeile1();
            }
            data[i][REPORT_MAHNLAUF_LETZTEMAHNSTUFE] = mahnungDto.getMahnstufeIIdLetztemahnstufe();
            data[i][REPORT_MAHNLAUF_MAHNSPERREBIS] = mahnung.getFlrrechnungreport().getT_mahnsperrebis();
            data[i][REPORT_MAHNLAUF_LETZTESMAHNDATUM] = mahnungDto.getTLetztesmahndatum();
            data[i][REPORT_MAHNLAUF_MAHNSTUFE] = mahnung.getMahnstufe_i_id();
            // Wert kontrollieren - jemand koennte die rechnung
            // zurueckgenommen haben
            if (mahnung.getFlrrechnungreport().getN_wert() != null) {
                data[i][REPORT_MAHNLAUF_OFFEN] = mahnung.getFlrrechnungreport().getN_wert()
                        .subtract(getRechnungFac().getBereitsBezahltWertVonRechnung(
                                mahnung.getFlrrechnungreport().getI_id(), null));

            }

            if (mahnung.getFlrrechnungreport().getN_wertust() != null) {
                data[i][REPORT_MAHNLAUF_OFFENUST] =

                        mahnung.getFlrrechnungreport().getN_wertust().subtract(

                                getRechnungFac().getBereitsBezahltWertVonRechnungUst(
                                        mahnung.getFlrrechnungreport().getI_id(), null));
            }

            data[i][REPORT_MAHNLAUF_RECHNUNGSDATUM] = mahnung.getFlrrechnungreport().getD_belegdatum();
            data[i][REPORT_MAHNLAUF_RECHNUNGSNUMMER] = mahnung.getFlrrechnungreport().getC_nr();
            data[i][REPORT_MAHNLAUF_RECHNUNGSART] = mahnung.getFlrrechnungreport().getFlrrechnungart()
                    .getC_nr();
            // Wert in Mandantenwaehrungb
            data[i][REPORT_MAHNLAUF_WERT] = mahnung.getFlrrechnungreport().getN_wert();
            data[i][REPORT_MAHNLAUF_WERTUST] = mahnung.getFlrrechnungreport().getN_wertust();

            // Zieldatum berechnen, falls vorhanden
            if (mahnung.getFlrrechnungreport().getZahlungsziel_i_id() != null) {
                Date dZieldatum = getMandantFac().berechneZielDatumFuerBelegdatum(
                        mahnung.getFlrrechnungreport().getD_belegdatum(),
                        mahnung.getFlrrechnungreport().getZahlungsziel_i_id(), theClientDto);
                data[i][REPORT_MAHNLAUF_ZIELDATUM] = dZieldatum;
            }
            // Auftragsdaten (falls die Rechnung auftragsbezogen ist)
            if (mahnung.getFlrrechnungreport().getFlrauftrag() != null) {
                data[i][REPORT_MAHNLAUF_AUFTRAG_BESTELLNUMMER] = mahnung.getFlrrechnungreport().getFlrauftrag()
                        .getC_bestellnummer();
                data[i][REPORT_MAHNLAUF_AUFTRAG_NUMMER] = mahnung.getFlrrechnungreport().getFlrauftrag()
                        .getC_nr();
                data[i][REPORT_MAHNLAUF_AUFTRAG_PROJEKT] = mahnung.getFlrrechnungreport().getFlrauftrag()
                        .getC_bez();
            }
            // Statistikadresse (falls definiert)
            if (mahnung.getFlrrechnungreport().getFlrstatistikadresse() != null) {
                data[i][REPORT_MAHNLAUF_KUNDE_STATISTIKADRESSE] = mahnung.getFlrrechnungreport()
                        .getFlrstatistikadresse().getFlrpartner().getC_name1nachnamefirmazeile1();
            }
            // die 2 bezeichnungszeilen der ersten rechnungsposition
            RechnungPositionDto[] rePos = getRechnungFac()
                    .rechnungPositionFindByRechnungIId(mahnung.getFlrrechnungreport().getI_id());
            if (rePos != null && rePos.length > 0) {
                RechnungPositionDto pos = rePos[0];
                // Artikel holen, falls da
                ArtikelDto artikelDto = null;
                if (pos.getArtikelIId() != null) {
                    artikelDto = getArtikelFac().artikelFindByPrimaryKey(pos.getArtikelIId(), theClientDto);
                }

                String sBezeichnung1;
                String sBezeichnung2;
                // Kein Artikel oder Bezeichnung des Artikels uebersteuert?
                if (artikelDto == null || pos.getBArtikelbezeichnunguebersteuert() == null
                        || Helper.short2boolean(pos.getBArtikelbezeichnunguebersteuert())) {
                    if (artikelDto == null || pos.getCBez() != null) {
                        sBezeichnung1 = pos.getCBez();
                    } else {
                        sBezeichnung1 = artikelDto.getArtikelsprDto().getCBez();
                    }
                    // Zusatzbezeichnung
                    if (artikelDto == null || pos.getCZusatzbez() != null) {
                        sBezeichnung2 = pos.getCZusatzbez();
                    } else {
                        sBezeichnung2 = artikelDto.getArtikelsprDto().getCZbez();
                    }
                }
                // Bezeichnung aus dem Artikel
                else {
                    sBezeichnung1 = artikelDto.getArtikelsprDto().getCBez();
                    sBezeichnung2 = artikelDto.getArtikelsprDto().getCZbez();
                }
                data[i][REPORT_MAHNLAUF_POSITIONSBEZEICHNUNG1] = sBezeichnung1;
                data[i][REPORT_MAHNLAUF_POSITIONSBEZEICHNUNG2] = sBezeichnung2;
            }
            i++;
        }
        Map<String, Object> mapParameter = new TreeMap<String, Object>();
        // Mandantenwaehrung
        MandantDto mandantDto = getMandantFac().mandantFindByPrimaryKey(theClientDto.getMandant(),
                theClientDto);
        mapParameter.put(LPReport.P_WAEHRUNG, mandantDto.getWaehrungCNr());
        // Datum des Mahnlaufs
        mapParameter.put("P_MAHNDATUM", mahnlaufDto.getTAnlegen());
        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));
        initJRDS(mapParameter, FinanzReportFac.REPORT_MODUL, FinanzReportFac.REPORT_MAHNLAUF,
                theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto);
        return getReportPrint();
    } catch (RemoteException ex) {
        throwEJBExceptionLPRespectOld(ex);
        return null;
    } finally {
        closeSession(session);
    }
}

From source file:com.lp.server.finanz.ejbfac.FinanzReportFacBean.java

License:Open Source License

public JasperPrintLP printExportlauf(Integer exportlaufIId, TheClientDto theClientDto) throws EJBExceptionLP {
    Session session = null;//from   ww  w  . jav a2 s. co  m
    try {
        this.useCase = UC_EXPORTLAUF;
        this.index = -1;
        // Mahnlauf holen
        ExportlaufDto exportlaufDto = getFibuExportFac().exportlaufFindByPrimaryKey(exportlaufIId);
        // Hibernate-Abfrage
        SessionFactory factory = FLRSessionFactory.getFactory();
        session = factory.openSession();
        Criteria c = session.createCriteria(FLRFinanzExportdaten.class);
        // Filter nach Exportlauf
        c.createCriteria(FinanzFac.FLR_EXPORTDATEN_FLREXPORTLAUF)
                .add(Restrictions.eq(FinanzFac.FLR_EXPORTLAUF_I_ID, exportlaufIId));
        List<?> list = c.list();
        data = new Object[list.size()][9];
        int i = 0;
        for (Iterator<?> iter = list.iterator(); iter.hasNext();) {
            FLRFinanzExportdaten exportDaten = (FLRFinanzExportdaten) iter.next();
            // Dto holen, da nicht alle Daten da sind
            // MahnungDto mahnungDto =
            // getMahnwesenFac().mahnungFindByPrimaryKey
            // (exportDaten.getI_id());
            // // Array befuellen
            // data[i][REPORT_MAHNLAUF_KUNDE] =
            // exportDaten.getFlrrechnungreport().getFlrkunde().
            // getFlrpartner().getC_name1nachnamefirmazeile1();
            // data[i][REPORT_MAHNLAUF_LETZTEMAHNSTUFE] = mahnungDto.
            // getMahnstufeIIdLetztemahnstufe();
            // data[i][REPORT_MAHNLAUF_LETZTESMAHNDATUM] =
            // mahnungDto.getTLetztesmahndatum();
            // data[i][REPORT_MAHNLAUF_MAHNSTUFE] =
            // exportDaten.getMahnstufe_i_id();
            // // Wert kontrollieren - jemand koennte die rechnung
            // zurueckgenommen haben
            // if(exportDaten.getFlrrechnungreport().getN_wert()!=null) {
            // data[i][REPORT_MAHNLAUF_OFFEN] =
            // exportDaten.getFlrrechnungreport().getN_wert().
            // subtract(getRechnungFac().getBereitsBezahltWertVonRechnung(
            // exportDaten.
            // getFlrrechnungreport().getI_id(), null));
            // }
            // data[i][REPORT_MAHNLAUF_RECHNUNGSDATUM] =
            // exportDaten.getFlrrechnungreport().
            // getD_belegdatum();
            // data[i][REPORT_MAHNLAUF_RECHNUNGSNUMMER] =
            // exportDaten.getFlrrechnungreport().getC_nr();
            // // Wert in Mandantenwaehrungb
            // data[i][REPORT_MAHNLAUF_WERT] =
            // exportDaten.getFlrrechnungreport().getN_wert();
            // // Zieldatum berechnen, falls vorhanden
            // if(exportDaten.getFlrrechnungreport().getZahlungsziel_i_id()!=
            // null) {
            // Date dZieldatum =
            // getMandantFac().berechneZielDatumFuerBelegdatum(exportDaten.
            // getFlrrechnungreport().getD_belegdatum(),
            // exportDaten.getFlrrechnungreport().getZahlungsziel_i_id(),
            // theClientDto);
            // data[i][REPORT_MAHNLAUF_ZIELDATUM] = dZieldatum;
            // }
            // i++;
        }
        Map<String, Object> mapParameter = new TreeMap<String, Object>();
        // Mandantenwaehrung
        MandantDto mandantDto = getMandantFac().mandantFindByPrimaryKey(theClientDto.getMandant(),
                theClientDto);
        mapParameter.put(LPReport.P_WAEHRUNG, mandantDto.getWaehrungCNr());
        // Datum des Mahnlaufs
        mapParameter.put("P_STICHTAG", exportlaufDto.getTStichtag());
        initJRDS(mapParameter, FinanzReportFac.REPORT_MODUL, FinanzReportFac.REPORT_EXPORTLAUF,
                theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto);
        return getReportPrint();
    } catch (RemoteException ex) {
        throwEJBExceptionLPRespectOld(ex);
        return null;
    } finally {
        closeSession(session);
    }
}

From source file:com.lp.server.finanz.ejbfac.MahnwesenFacBean.java

License:Open Source License

public BigDecimal getSummeEinesKundenImMahnlauf(Integer mahnlaufIId, Integer kundeIId,
        TheClientDto theClientDto) throws EJBExceptionLP {
    Session session = null;//from  w w w .ja  v  a2 s .  co m
    try {
        SessionFactory factory = FLRSessionFactory.getFactory();
        session = factory.openSession();
        Criteria c = session.createCriteria(FLRFinanzMahnung.class);
        // Filter nach Mahnlauf
        c.add(Restrictions.eq(FinanzFac.FLR_MAHNUNG_MAHNLAUF_I_ID, mahnlaufIId));
        // Filter nach Lunde
        c.createCriteria(FinanzFac.FLR_MAHNUNG_FLRRECHNUNGREPORT)
                .add(Restrictions.eq(RechnungFac.FLR_RECHNUNG_KUNDE_I_ID, kundeIId));
        // Sortierung aufsteigend nach Kontonummer
        List<?> list = c.list();
        BigDecimal bdSumme = new BigDecimal(0);
        for (Iterator<?> iter = list.iterator(); iter.hasNext();) {
            FLRFinanzMahnung mahnung = (FLRFinanzMahnung) iter.next();
            if (mahnung.getFlrrechnungreport().getN_wert() != null) {
                BigDecimal bdWert = mahnung.getFlrrechnungreport().getN_wert()
                        .add(mahnung.getFlrrechnungreport().getN_wertust());
                if (bdWert != null) {
                    BigDecimal bdOffen = bdWert
                            .subtract(getRechnungFac().getBereitsBezahltWertVonRechnung(
                                    mahnung.getFlrrechnungreport().getI_id(), null))
                            .subtract(getRechnungFac().getBereitsBezahltWertVonRechnungUst(
                                    mahnung.getFlrrechnungreport().getI_id(), null));
                    if (bdOffen.compareTo(new BigDecimal(0)) > 0) {
                        bdSumme = bdSumme.add(bdOffen);
                    }
                }
            }
        }
        return bdSumme;
    } catch (RemoteException ex) {
        throwEJBExceptionLPRespectOld(ex);
        return null;
    } finally {
        if (session != null) {
            session.close();
        }
    }
}

From source file:com.lp.server.lieferschein.ejbfac.LieferscheinFacBean.java

License:Open Source License

/**
 * Alle Lieferscheine zu einem bestimmten Auftrag finden.
 * /*from  w  ww  .  j  a v  a2s  . c o  m*/
 * @param iIdAuftragI
 *            Integer
 * @param theClientDto
 *            String
 * @throws EJBExceptionLP
 * @return LieferscheinDto[]
 */
public LieferscheinDto[] lieferscheinFindByAuftrag(Integer iIdAuftragI, TheClientDto theClientDto)
        throws EJBExceptionLP {
    if (iIdAuftragI == null) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_PARAMETER_IS_NULL, new Exception("iIdAuftragI == null"));
    }
    Session session = null;
    try {
        SessionFactory factory = FLRSessionFactory.getFactory();
        session = factory.openSession();
        // Suchen aller LS-Positionen, die sich auf diesen Auftrag beziehen.
        Criteria c = session.createCriteria(FLRLieferscheinposition.class);
        c.createCriteria(LieferscheinpositionFac.FLR_LIEFERSCHEINPOSITION_FLRPOSITIONENSICHTAUFTRAG).add(
                Restrictions.eq(AuftragpositionFac.FLR_AUFTRAGPOSITIONSICHTAUFTRAG_AUFTRAG_I_ID, iIdAuftragI));
        // Query ausfuehren
        List<?> list = c.list();
        // Damit das ganze "distinct" wird, geb ich die Auftrags-ID's in
        // eine Hashmap.
        HashMap<Integer, Integer> hm = new HashMap<Integer, Integer>();
        for (Iterator<?> iter = list.iterator(); iter.hasNext();) {
            FLRLieferscheinposition item = (FLRLieferscheinposition) iter.next();
            hm.put(item.getFlrlieferschein().getI_id(), item.getFlrlieferschein().getI_id());
        }
        // in der HM stehen jetzt die Auftrags-ID's.
        LieferscheinDto[] aLieferscheinDto = new LieferscheinDto[hm.size()];
        int index = 0;
        for (Iterator<?> iter = hm.keySet().iterator(); iter.hasNext();) {
            Integer item = (Integer) iter.next();
            aLieferscheinDto[index] = lieferscheinFindByPrimaryKey(item, theClientDto);
            index++;
        }
        return aLieferscheinDto;
    } finally {
        if (session != null) {
            session.close();
        }
    }
}

From source file:com.lp.server.lieferschein.ejbfac.LieferscheinpositionFacBean.java

License:Open Source License

public HashMap lieferscheinpositionFindByLieferscheinIIdAuftragIId(Integer lieferscheinIId, Integer iIdAuftragI,
        TheClientDto theClientDto) {//from w  w  w  .  jav  a  2 s  .c  o  m
    Session session = null;
    HashMap alIds = new HashMap();

    try {
        SessionFactory factory = FLRSessionFactory.getFactory();
        session = factory.openSession();
        // Suchen aller LS-Positionen, die sich auf diesen Auftrag beziehen.
        Criteria c = session.createCriteria(FLRLieferscheinposition.class);
        c.createCriteria(LieferscheinpositionFac.FLR_LIEFERSCHEINPOSITION_FLRLIEFERSCHEIN)
                .add(Restrictions.eq("i_id", lieferscheinIId));
        c.createCriteria(LieferscheinpositionFac.FLR_LIEFERSCHEINPOSITION_FLRPOSITIONENSICHTAUFTRAG).add(
                Restrictions.eq(AuftragpositionFac.FLR_AUFTRAGPOSITIONSICHTAUFTRAG_AUFTRAG_I_ID, iIdAuftragI));
        // Query ausfuehren
        List<?> list = c.list();
        for (Iterator<?> iter = list.iterator(); iter.hasNext();) {
            FLRLieferscheinposition item = (FLRLieferscheinposition) iter.next();

            alIds.put(item.getI_id(), item.getI_id());

        }

        return alIds;
    } finally {
        if (session != null) {
            session.close();
        }
    }
}

From source file:com.lp.server.lieferschein.ejbfac.LieferscheinReportFacBean.java

License:Open Source License

@TransactionAttribute(TransactionAttributeType.NEVER)
public JasperPrintLP printLieferscheinAlle(ReportLieferscheinJournalKriterienDto krit,
        TheClientDto theClientDto) {/* www  . j  av a  2 s  . c  om*/
    Session session = null;
    try {
        cAktuellerReport = LieferscheinReportFac.REPORT_LIEFERSCHEIN_ALLE;
        SessionFactory factory = FLRSessionFactory.getFactory();
        session = factory.openSession();
        // Kunde oder Statistikadresse verwenden
        final String critKundeIId;
        final String critFLRKunde;
        if (krit.getBVerwendeRechnungsAdresse()) {
            critKundeIId = LieferscheinFac.FLR_LIEFERSCHEIN_KUNDE_I_ID_RECHNUNGSADRESSE;
            critFLRKunde = LieferscheinFac.FLR_LIEFERSCHEIN_FLRKUNDERECHNUNGSADRESSE;
        } else {
            critKundeIId = LieferscheinFac.FLR_LIEFERSCHEIN_KUNDE_I_ID_LIEFERADRESSE;
            critFLRKunde = LieferscheinFac.FLR_LIEFERSCHEIN_FLRKUNDE;
        }

        Criteria c = session.createCriteria(FLRLieferschein.class);
        // Filter nach Mandant
        c.add(Restrictions.eq(LieferscheinFac.FLR_LIEFERSCHEIN_MANDANT_C_NR, theClientDto.getMandant()));

        // Filter nach Kostenstelle
        if (krit.kostenstelleIId != null) {
            c.add(Restrictions.eq(LieferscheinFac.FLR_LIEFERSCHEIN_KOSTENSTELLE_I_ID, krit.kostenstelleIId));
        }
        // Filter nach einem Kunden
        if (krit.kundeIId != null) {
            c.add(Restrictions.eq(critKundeIId, krit.kundeIId));
        }
        // Filter nach einem Vertrter
        if (krit.vertreterIId != null) {
            c.add(Restrictions.eq(LieferscheinFac.FLR_LIEFERSCHEIN_FLRVERTRETER + ".i_id", krit.vertreterIId));
        }
        // Filter nach Status (keine stornierten)
        c.add(Restrictions.not(Restrictions.eq(LieferscheinFac.FLR_LIEFERSCHEIN_LIEFERSCHEINSTATUS_STATUS_C_NR,
                LieferscheinFac.LSSTATUS_STORNIERT)));
        // Nur offene anzeigen?
        if (krit.getBNurOffene()) {
            Collection<String> cStati = new LinkedList<String>();
            cStati.add(LieferscheinFac.LSSTATUS_ANGELEGT);
            cStati.add(LieferscheinFac.LSSTATUS_OFFEN);
            c.add(Restrictions.in(LieferscheinFac.FLR_LIEFERSCHEIN_LIEFERSCHEINSTATUS_STATUS_C_NR, cStati));
        }
        // Datum von/bis
        String sVon = null;
        String sBis = null;
        if (krit.dVon != null) {
            c.add(Restrictions.ge(LieferscheinFac.FLR_LIEFERSCHEIN_D_BELEGDATUM, krit.dVon));
            sVon = Helper.formatDatum(krit.dVon, theClientDto.getLocUi());
        }
        if (krit.dBis != null) {
            c.add(Restrictions.le(LieferscheinFac.FLR_LIEFERSCHEIN_D_BELEGDATUM, krit.dBis));
            sBis = Helper.formatDatum(krit.dBis, theClientDto.getLocUi());
        }

        // Belegnummer von/bis
        LpBelegnummerFormat f = getBelegnummerGeneratorObj().getBelegnummernFormat(theClientDto.getMandant());
        Integer iGeschaeftsjahr = getParameterFac().getGeschaeftsjahr(theClientDto.getMandant());
        String sMandantKuerzel = getParameterFac().getMandantparameter(theClientDto.getMandant(),
                ParameterFac.KATEGORIE_ALLGEMEIN, ParameterFac.PARAMETER_BELEGNUMMER_MANDANTKENNUNG).getCWert();
        if (krit.sBelegnummerVon != null) {
            sVon = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr, sMandantKuerzel,
                    krit.sBelegnummerVon);
            c.add(Restrictions.ge(LieferscheinFac.FLR_LIEFERSCHEIN_C_NR, sVon));
        }
        if (krit.sBelegnummerBis != null) {
            sBis = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr, sMandantKuerzel,
                    krit.sBelegnummerBis);
            c.add(Restrictions.le(LieferscheinFac.FLR_LIEFERSCHEIN_C_NR, sBis));
        }
        // Sortierung nach Kostenstelle ist optional
        if (krit.bSortiereNachKostenstelle) {
            c.createCriteria(LieferscheinFac.FLR_LIEFERSCHEIN_FLRKOSTENSTELLE).addOrder(Order.asc("c_nr"));
        }
        // Sortierung nach Partner ist optional
        if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) {
            c.createCriteria(critFLRKunde).createCriteria(KundeFac.FLR_PARTNER)
                    .addOrder(Order.asc(PartnerFac.FLR_PARTNER_NAME1NACHNAMEFIRMAZEILE1));
        } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_BELEGNUMMER) {
            c.addOrder(Order.asc(LieferscheinFac.FLR_LIEFERSCHEIN_C_NR));
        }
        if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_VERTRETER) {
            c.createCriteria(LieferscheinFac.FLR_LIEFERSCHEIN_FLRVERTRETER)
                    .addOrder(Order.asc(PersonalFac.FLR_PERSONAL_C_KURZZEICHEN));
        }
        List<?> list = c.list();
        data = new Object[list.size()][REPORT_ALLE_ANZAHL_SPALTEN];

        int i = 0;
        for (Iterator<?> iter = list.iterator(); iter.hasNext();) {
            FLRLieferschein r = (FLRLieferschein) iter.next();
            data[i][FELD_ALLE_BELEGDATUM] = r.getD_belegdatum();
            data[i][FELD_ALLE_PROJEKT] = r.getC_bez_projektbezeichnung();
            data[i][FELD_ALLE_STATUS] = r.getLieferscheinstatus_status_c_nr();
            data[i][FELD_ALLE_BELEGDATUM] = r.getD_belegdatum();
            data[i][FELD_ALLE_LIEFERSCHEINNUMMER] = r.getC_nr();
            // Bezahlte Betraege

            BigDecimal bdWertmw = r.getN_gesamtwertinlieferscheinwaehrung();

            data[i][FELD_ALLE_BETRAG] = bdWertmw;
            // Kostenstelle
            if (r.getFlrkostenstelle() != null) {
                String sKostenstellen = "";
                KostenstelleDto k = null;
                RechnungkontierungDto[] rechnungkontierungsDto = getRechnungFac()
                        .rechnungkontierungFindByRechnungIId(r.getI_id());
                if (rechnungkontierungsDto.length != 0) {
                    for (int e = 0; e < rechnungkontierungsDto.length; e++) {
                        k = getSystemFac()
                                .kostenstelleFindByPrimaryKey(rechnungkontierungsDto[e].getKostenstelleIId());
                        sKostenstellen = sKostenstellen + k.getCNr() + " ";
                    }
                } else {
                    sKostenstellen = r.getFlrkostenstelle().getC_nr();
                }
                data[i][FELD_ALLE_KOSTENSTELLENUMMER] = sKostenstellen;
            } else {
                data[i][FELD_ALLE_KOSTENSTELLENUMMER] = null;
            }
            // Kundendaten
            FLRKunde flrKunde, flrKundeStatistik;
            if (krit.getBVerwendeRechnungsAdresse()) {
                flrKunde = r.getFlrkunderechnungsadresse();
            } else {
                flrKunde = r.getFlrkunde();

                // Statistikdaten wenn nicht Kriterium Rechnungsadresse
                flrKundeStatistik = r.getFlrkunderechnungsadresse();
                data[i][FELD_ALLE_KUNDE_RECHNUNG] = flrKundeStatistik.getFlrpartner()
                        .getC_name1nachnamefirmazeile1();
                if (flrKundeStatistik.getFlrpartner().getC_name2vornamefirmazeile2() != null) {
                    data[i][FELD_ALLE_KUNDE2_RECHNUNG] = flrKundeStatistik.getFlrpartner()
                            .getC_name2vornamefirmazeile2();
                } else {
                    data[i][FELD_ALLE_KUNDE2_RECHNUNG] = "";
                }
                PartnerDto partnerDtoStatistik = getPartnerFac()
                        .partnerFindByPrimaryKey(flrKundeStatistik.getFlrpartner().getI_id(), theClientDto);
                data[i][FELD_ALLE_ADRESSE_RECHNUNG] = partnerDtoStatistik.formatAdresse();

            }
            data[i][FELD_ALLE_KUNDE] = flrKunde.getFlrpartner().getC_name1nachnamefirmazeile1();
            if (r.getFlrvertreter() != null) {
                if (r.getFlrvertreter().getFlrpartner().getC_name2vornamefirmazeile2() != null) {
                    data[i][FELD_ALLE_VERTRETER] = r.getFlrvertreter().getFlrpartner()
                            .getC_name1nachnamefirmazeile1() + " "
                            + r.getFlrvertreter().getFlrpartner().getC_name2vornamefirmazeile2();
                } else {
                    data[i][FELD_ALLE_VERTRETER] = r.getFlrvertreter().getFlrpartner()
                            .getC_name1nachnamefirmazeile1();
                }
            }
            if (flrKunde.getFlrpartner().getC_name2vornamefirmazeile2() != null) {
                data[i][FELD_ALLE_KUNDE2] = flrKunde.getFlrpartner().getC_name2vornamefirmazeile2();
            } else {
                data[i][FELD_ALLE_KUNDE2] = "";
            }
            PartnerDto partnerDto = getPartnerFac().partnerFindByPrimaryKey(flrKunde.getFlrpartner().getI_id(),
                    theClientDto);
            data[i][FELD_ALLE_ADRESSE] = partnerDto.formatAdresse();
            data[i][FELD_ALLE_ORT] = partnerDto.formatAdresse();
            if (r.getFlrrechnung() != null) {
                data[i][FELD_ALLE_RECHNUNGSNUMMER] = r.getFlrrechnung().getC_nr();
            }

            // Debitorenkontonummer
            KontoDtoSmall kontoDtoDeb = null;
            if (flrKunde.getKonto_i_id_debitorenkonto() != null) {
                kontoDtoDeb = getFinanzFac()
                        .kontoFindByPrimaryKeySmallOhneExc(flrKunde.getKonto_i_id_debitorenkonto());
            }
            String sKontonummer;
            if (kontoDtoDeb != null) {
                sKontonummer = kontoDtoDeb.getCNr();
            } else {
                sKontonummer = "";
            }
            data[i][FELD_ALLE_DEBITORENKONTO] = sKontonummer;
            data[i][FELD_ALLE_WAEHRUNG] = r.getWaehrung_c_nr_lieferscheinwaehrung();
            data[i][FELD_ALLE_KURS] = new BigDecimal(r.getF_wechselkursmandantwaehrungzulieferscheinwaehrung());

            // 14217
            String sLaenderart = getFinanzServiceFac().getLaenderartZuPartner(partnerDto.getIId(),
                    theClientDto);
            data[i][FELD_ALLE_LAENDERART] = sLaenderart;
            i++;
        }
        Map<String, Object> mapParameter = new TreeMap<String, Object>();
        MandantDto mandantDto = getMandantFac().mandantFindByPrimaryKey(theClientDto.getMandant(),
                theClientDto);
        // Waehrung
        mapParameter.put(LPReport.P_WAEHRUNG, mandantDto.getWaehrungCNr());
        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.getBVerwendeRechnungsAdresse()) {
                sSortierung.append(getTextRespectUISpr("lp.rechnungsadresse", 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()));
        }
        StringBuffer sFilter = new StringBuffer();
        if (sVon != null) {
            sFilter.append(getTextRespectUISpr("lp.von", theClientDto.getMandant(), theClientDto.getLocUi()));
            sFilter.append(" " + sVon + " ");
        }
        if (sBis != null) {
            sFilter.append(getTextRespectUISpr("lp.bis", theClientDto.getMandant(), theClientDto.getLocUi()));
            sFilter.append(" " + sBis + " ");
        }
        if (krit.kostenstelleIId != null) {
            if (sFilter.length() > 0) {
                sFilter.append(", ");
            }
            KostenstelleDto kstDto = getSystemFac().kostenstelleFindByPrimaryKey(krit.kostenstelleIId);
            sFilter.append(
                    getTextRespectUISpr("lp.kostenstelle", theClientDto.getMandant(), theClientDto.getLocUi()));
            sFilter.append(" ");
            sFilter.append(kstDto.getCNr());
        }
        // Statistikadresse
        if (krit.getBVerwendeRechnungsAdresse()) {
            if (sFilter.length() > 0) {
                sFilter.append(", ");
            }
            sFilter.append(getTextRespectUISpr("lp.rechnungsadresse", 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));
        mapParameter.put(LPReport.P_FILTER, sFilter.toString());
        initJRDS(mapParameter, LieferscheinReportFac.REPORT_MODUL, cAktuellerReport, theClientDto.getMandant(),
                theClientDto.getLocUi(), theClientDto);
        return getReportPrint();

    } catch (RemoteException ex) {
        throwEJBExceptionLPRespectOld(ex);
        return null;
    } finally {
        if (session != null) {
            session.close();
        }
    }
}