Example usage for org.hibernate Session enableFilter

List of usage examples for org.hibernate Session enableFilter

Introduction

In this page you can find the example usage for org.hibernate Session enableFilter.

Prototype

Filter enableFilter(String filterName);

Source Link

Document

Enable the named filter for this current session.

Usage

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

License:Open Source License

/**
 * Erstellt eine Inventurstand einer best. Inventur
 * /*from  www. j  a v a 2  s  .  co m*/
 * @param inventurIId
 *            Inventur-ID
 * @param lagerIId
 *            Lager-ID
 * @param theClientDto
 *            String
 * @return JasperPrint
 */
@TransactionAttribute(TransactionAttributeType.NEVER)
public JasperPrintLP printInventurstand(Integer inventurIId, Integer lagerIId, int iSortierung,
        TheClientDto theClientDto) {

    index = -1;
    sAktuellerReport = InventurFac.REPORT_INVENTURSTAND;
    HashMap<String, Object> parameter = new HashMap<String, Object>();

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

    session.enableFilter("filterMandant").setParameter("paramMandant", theClientDto.getMandant());
    session.enableFilter("filterLocale").setParameter("paramLocale",
            Helper.locale2String(theClientDto.getLocUi()));

    String subQueryLager = "(SELECT SUM(al.n_lagerstand) FROM FLRArtikellager al WHERE compId.artikel_i_id=inventurstand.flrartikel.i_id ";

    if (lagerIId != null) {
        subQueryLager += " AND compId.lager_i_id=" + lagerIId;
    }

    subQueryLager += " ) as lagerstand ";

    String sQuery = "SELECT inventurstand, aspr.c_bez , " + subQueryLager
            + ",aspr.c_kbez,aspr.c_zbez,aspr.c_zbez2,(SELECT stkl FROM FLRStueckliste stkl WHERE stkl.artikel_i_id=inventurstand.flrartikel.i_id)  from FLRInventurstand as inventurstand LEFT OUTER JOIN inventurstand.flrartikel.artikelsprset AS aspr LEFT OUTER JOIN inventurstand.flrartikel.flrartikelgruppe as ag LEFT OUTER JOIN inventurstand.flrartikel.flrartikelklasse as ak WHERE inventurstand.flrlager.mandant_c_nr='"
            + theClientDto.getMandant() + "' AND inventurstand.flrinventur.i_id=" + inventurIId;

    if (lagerIId != null) {
        sQuery = sQuery + " AND inventurstand.flrlager.i_id=" + lagerIId;
    }

    if (iSortierung == InventurFac.REPORT_INVENTURSTAND_SORTIERUNG_ARTIKELNR) {
        sQuery = sQuery + "ORDER BY inventurstand.flrlager.i_id , inventurstand.flrartikel.c_nr";
        parameter.put("P_SORTIERUNG", getTextRespectUISpr("artikel.artikelnummerlang",
                theClientDto.getMandant(), theClientDto.getLocUi()));
    } else if (iSortierung == InventurFac.REPORT_INVENTURSTAND_SORTIERUNG_ARTIKELGRUPPE) {
        sQuery = sQuery + "ORDER BY inventurstand.flrlager.i_id , ag.c_nr , inventurstand.flrartikel.c_nr";
        parameter.put("P_SORTIERUNG",
                getTextRespectUISpr("lp.artikelgruppe", theClientDto.getMandant(), theClientDto.getLocUi()));
    } else if (iSortierung == InventurFac.REPORT_INVENTURSTAND_SORTIERUNG_ARTIKELKLASSE) {
        sQuery = sQuery + "ORDER BY inventurstand.flrlager.i_id , ak.c_nr , inventurstand.flrartikel.c_nr";
        parameter.put("P_SORTIERUNG",
                getTextRespectUISpr("lp.artikelklasse", theClientDto.getMandant(), theClientDto.getLocUi()));

    }

    org.hibernate.Query inventurliste = session.createQuery(sQuery);

    List<?> resultList = inventurliste.list();

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

    String letzterArtikel = null;
    Object[][] dataHelp = new Object[resultList.size()][15];

    while (resultListIterator.hasNext()) {
        Object[] o = (Object[]) resultListIterator.next();

        FLRInventurstand flrinventurstand = (FLRInventurstand) o[0];

        if ((!flrinventurstand.getFlrartikel().getC_nr().equals(letzterArtikel))) {

            if (Helper.short2boolean(flrinventurstand.getFlrartikel().getB_chargennrtragend()) == true
                    || Helper.short2boolean(flrinventurstand.getFlrartikel().getB_seriennrtragend()) == true) {

                Query query = em.createNamedQuery("InventurlistefindByInventurIIdLagerIIdArtikelIId");
                query.setParameter(1, inventurIId);
                query.setParameter(2, flrinventurstand.getFlrlager().getI_id());
                query.setParameter(3, flrinventurstand.getFlrartikel().getI_id());
                Collection<?> cl = query.getResultList();

                InventurlisteDto[] inventurlisteDtos = assembleInventurlisteDtos(cl);

                BigDecimal menge = new BigDecimal(0);
                String snrs = "";
                for (int i = 0; i < inventurlisteDtos.length; i++) {
                    menge = menge.add(inventurlisteDtos[i].getNInventurmenge());

                    if (Helper
                            .short2boolean(flrinventurstand.getFlrartikel().getB_chargennrtragend()) == true) {

                        snrs = snrs + inventurlisteDtos[i].getNInventurmenge() + " "
                                + flrinventurstand.getFlrartikel().getEinheit_c_nr() + " "
                                + inventurlisteDtos[i].getCSeriennrchargennr() + ", ";
                    } else if (Helper
                            .short2boolean(flrinventurstand.getFlrartikel().getB_seriennrtragend()) == true) {
                        snrs = snrs + inventurlisteDtos[i].getCSeriennrchargennr() + ", ";
                    }

                    // }

                    // }
                    // catch (FinderException ex1) {
                    // dataHelp[row][REPORT_INVENTURSTAND_INVENTURMENGE] =
                    // new BigDecimal(0);
                    // }
                }

                dataHelp[row][REPORT_INVENTURSTAND_SERIENNUMMERCHARGENNUMMER] = snrs;

            }

            dataHelp[row][REPORT_INVENTURSTAND_INVENTURMENGE] = flrinventurstand.getN_inventurmenge();

            dataHelp[row][REPORT_INVENTURSTAND_ARTIKELNUMMER] = flrinventurstand.getFlrartikel().getC_nr();
            dataHelp[row][REPORT_INVENTURSTAND_ARTIKELBEZEICHNUNG] = o[1];
            dataHelp[row][REPORT_INVENTURSTAND_ARTIKELKURZBEZEICHNUNG] = o[3];
            dataHelp[row][REPORT_INVENTURSTAND_ARTIKELZUSATZBEZEICHNUNG] = o[4];
            dataHelp[row][REPORT_INVENTURSTAND_ARTIKELZUSATZBEZEICHNUNG2] = o[5];

            if (flrinventurstand.getFlrartikel().getFlrartikelklasse() != null) {
                dataHelp[row][REPORT_INVENTURSTAND_ARTIKELKLASSE] = flrinventurstand.getFlrartikel()
                        .getFlrartikelklasse().getC_nr();

            }
            if (flrinventurstand.getFlrartikel().getFlrartikelgruppe() != null) {
                dataHelp[row][REPORT_INVENTURSTAND_ARTIKELGRUPPE] = flrinventurstand.getFlrartikel()
                        .getFlrartikelgruppe().getC_nr();

            }

            dataHelp[row][REPORT_INVENTURSTAND_LAGER] = flrinventurstand.getFlrlager().getC_nr();

            dataHelp[row][REPORT_INVENTURSTAND_LAGERSTAND] = o[2];

            if (o[6] == null) {
                dataHelp[row][REPORT_INVENTURSTAND_STUECKLISTE] = new Boolean(false);
            } else {
                dataHelp[row][REPORT_INVENTURSTAND_STUECKLISTE] = new Boolean(true);
            }

            dataHelp[row][REPORT_INVENTURSTAND_ARTIKELART] = flrinventurstand.getFlrartikel()
                    .getArtikelart_c_nr();

            if (flrinventurstand.getN_inventurpreis() != null) {
                dataHelp[row][REPORT_INVENTURSTAND_INVENTURPREIS] = flrinventurstand.getN_inventurpreis();
                dataHelp[row][REPORT_INVENTURSTAND_INVENTURWERT] = ((BigDecimal) dataHelp[row][REPORT_INVENTURSTAND_INVENTURMENGE])
                        .multiply(flrinventurstand.getN_inventurpreis());

            } else {
                dataHelp[row][REPORT_INVENTURSTAND_INVENTURWERT] = new java.math.BigDecimal(0);
                dataHelp[row][REPORT_INVENTURSTAND_INVENTURPREIS] = new java.math.BigDecimal(0);

            }
            row++;
        }
        letzterArtikel = flrinventurstand.getFlrartikel().getC_nr();

    }

    session.close();
    data = new Object[row][7];
    for (int i = 0; i < row; i++) {
        data[i] = dataHelp[i];
    }
    index = -1;
    sAktuellerReport = InventurFac.REPORT_INVENTURSTAND;
    parameter.put("P_INVENTUR", inventurFindByPrimaryKey(inventurIId, theClientDto).getCBez());
    try {
        if (lagerIId != null) {
            LagerDto dto = getLagerFac().lagerFindByPrimaryKey(lagerIId);
            parameter.put("P_LAGER", dto.getCNr());
        } else {
            parameter.put("P_LAGER", "ALLE");
        }
    } catch (RemoteException ex) {
        throwEJBExceptionLPRespectOld(ex);
    }

    try {
        parameter.put("P_WAEHRUNG", getMandantFac()
                .mandantFindByPrimaryKey(theClientDto.getMandant(), theClientDto).getWaehrungCNr());
    } catch (RemoteException ex1) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER, ex1);
    }

    initJRDS(parameter, InventurFac.REPORT_MODUL, InventurFac.REPORT_INVENTURSTAND, theClientDto.getMandant(),
            theClientDto.getLocUi(), theClientDto);

    // lpReport.saveHTML("c:/anwesenheitsliste.html");
    return getReportPrint();
}

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

License:Open Source License

/**
 * Erstellt eine Deltaliste einer best. Inventur
 * /*from ww w .ja v  a2s .co  m*/
 * @param inventurIId
 *            Inventur-ID
 * @param lagerIId
 *            Lager-ID
 * @param bNurArtikelMitLagerstand
 *            Boolean
 * @param theClientDto
 *            String
 * @return JasperPrint
 */
@TransactionAttribute(TransactionAttributeType.NEVER)
public JasperPrintLP printNichterfassteartikel(Integer inventurIId, Integer lagerIId,
        boolean bNurArtikelMitLagerstand, TheClientDto theClientDto) {

    if (inventurIId == null) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_PKFIELD_IS_NULL, new Exception("inventurIId == null"));
    }
    index = -1;
    sAktuellerReport = InventurFac.REPORT_NICHTERFASSTEARTIKEL;

    Session session = FLRSessionFactory.getFactory().openSession();
    session.enableFilter("filterLocale").setParameter("paramLocale",
            Helper.locale2String(theClientDto.getLocUi()));
    String queryString = null;
    try {
        queryString = "SELECT a.i_id as artikelid, l.i_id as lagerid,a.c_nr, l.c_nr, "
                + "(SELECT al.n_lagerstand FROM FLRArtikellager al WHERE compId.artikel_i_id=a.i_id AND compId.lager_i_id=l.i_id ) as lagerstand, "
                + "(SELECT sum( il.n_inventurmenge) FROM FLRInventurliste il WHERE il.flrartikel=a.i_id AND il.flrlager.i_id=l.i_id AND il.flrinventur="
                + inventurIId + ") as inventurmenge, "
                + "aspr.c_bez, aspr.c_zbez, a.b_lagerbewirtschaftet, a.b_seriennrtragend, a.b_chargennrtragend "
                + "FROM FLRArtikelliste a, FLRLager as l LEFT OUTER JOIN a.artikelsprset AS aspr "
                + "WHERE a.mandant_c_nr='" + theClientDto.getMandant() + "' AND l.mandant_c_nr='"
                + theClientDto.getMandant() + "' AND a.artikelart_c_nr NOT IN ('"
                + ArtikelFac.ARTIKELART_HANDARTIKEL + "') " + " AND l.i_id NOT IN ("
                + getLagerFac().lagerFindByCNrByMandantCNr(LagerFac.LAGER_KEINLAGER, theClientDto.getMandant())
                        .getIId()
                + ","
                + getLagerFac()
                        .lagerFindByCNrByMandantCNr(LagerFac.LAGER_WERTGUTSCHRIFT, theClientDto.getMandant())
                        .getIId()
                + ") ";
        if (lagerIId != null) {
            queryString += " AND l.i_id=" + lagerIId + " ";
        }

        queryString += "ORDER BY a.c_nr ASC,l.c_nr ASC";
    } catch (RemoteException ex3) {
        throwEJBExceptionLPRespectOld(ex3);
    }

    org.hibernate.Query query = session.createQuery(queryString);
    List<?> resultList = query.list();

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

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

    int row = 0;
    while (resultListIterator.hasNext()) {
        Object[] o = (Object[]) resultListIterator.next();

        Short b_seriennrtragend = (Short) o[9];
        Short b_chargennrtragend = (Short) o[10];
        java.math.BigDecimal lagerstand = (BigDecimal) o[4];
        if (lagerstand == null) {
            lagerstand = new BigDecimal(0);
        }
        if (Helper.short2Boolean(b_seriennrtragend) == false
                && Helper.short2Boolean(b_chargennrtragend) == false) {

            java.math.BigDecimal summeInventur = (BigDecimal) o[5];

            if (summeInventur != null) {
                continue;
            }
            Object[] dataHelp = new Object[7];
            dataHelp[REPORT_NICHTERFASSTEARTIKEL_ARTIKELNUMMER] = o[2];
            dataHelp[REPORT_NICHTERFASSTEARTIKEL_ARTIKELBEZEICHNUNG] = o[6];

            dataHelp[REPORT_NICHTERFASSTEARTIKEL_LAGER] = o[3];
            dataHelp[REPORT_NICHTERFASSTEARTIKEL_LAGERSTAND] = lagerstand;

            alDaten.add(dataHelp);

        } else {

            Integer artikelIId = (Integer) o[0];
            Integer lagerIId_Zeile = (Integer) o[1];
            try {
                SeriennrChargennrAufLagerDto[] snrChnrDtos = getLagerFac()
                        .getAllSerienChargennrAufLagerInfoDtos(artikelIId, lagerIId_Zeile, true, null,
                                theClientDto);

                HashMap<String, BigDecimal> hmSnrChnr = new HashMap<String, BigDecimal>();
                for (int i = 0; i < snrChnrDtos.length; i++) {
                    if (!hmSnrChnr.containsKey(snrChnrDtos[i].getCSeriennrChargennr())) {
                        hmSnrChnr.put(snrChnrDtos[i].getCSeriennrChargennr(), snrChnrDtos[i].getNMenge());
                    } else {
                        hmSnrChnr.put(snrChnrDtos[i].getCSeriennrChargennr(), hmSnrChnr
                                .get(snrChnrDtos[i].getCSeriennrChargennr()).add(snrChnrDtos[i].getNMenge()));
                    }
                }

                InventurlisteDto[] invDtos = null;
                if (lagerIId != null) {
                    invDtos = inventurlisteFindByInventurIIdLagerIIdArtikelIId(inventurIId, lagerIId,
                            artikelIId, theClientDto);
                } else {
                    invDtos = inventurlisteFindByInventurIIdArtikelIId(inventurIId, artikelIId, theClientDto);
                }

                for (int i = 0; i < invDtos.length; i++) {
                    if (hmSnrChnr.containsKey(invDtos[i].getCSeriennrchargennr())) {
                        hmSnrChnr.remove(invDtos[i].getCSeriennrchargennr());
                    }
                }

                Iterator<String> it = hmSnrChnr.keySet().iterator();

                while (it.hasNext()) {

                    String chnr = it.next();
                    Object[] dataHelp = new Object[7];
                    dataHelp[REPORT_NICHTERFASSTEARTIKEL_ARTIKELNUMMER] = o[2];
                    dataHelp[REPORT_NICHTERFASSTEARTIKEL_ARTIKELBEZEICHNUNG] = o[6];
                    dataHelp[REPORT_NICHTERFASSTEARTIKEL_SERIENNUMMERCHARGENNUMMER] = chnr;
                    dataHelp[REPORT_NICHTERFASSTEARTIKEL_LAGER] = o[3];
                    dataHelp[REPORT_NICHTERFASSTEARTIKEL_LAGERSTAND] = hmSnrChnr.get(chnr);

                    alDaten.add(dataHelp);
                }

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

        }

    }

    Object[][] returnArray = new Object[row][alDaten.size()];
    data = (Object[][]) alDaten.toArray(returnArray);

    session.close();
    HashMap<String, Object> parameter = new HashMap<String, Object>();
    index = -1;
    sAktuellerReport = InventurFac.REPORT_NICHTERFASSTEARTIKEL;
    try {
        if (lagerIId != null) {
            LagerDto dto = getLagerFac().lagerFindByPrimaryKey(lagerIId);
            parameter.put("P_LAGER", dto.getCNr());
        } else {
            parameter.put("P_LAGER", "ALLE");
        }
    } catch (RemoteException ex) {
        throwEJBExceptionLPRespectOld(ex);
    }

    InventurDto inventurDto = inventurFindByPrimaryKey(inventurIId, theClientDto);

    parameter.put("P_INVENTUR", inventurDto.getCBez());
    parameter.put("P_INVENTURDATUM", inventurDto.getTInventurdatum());
    parameter.put("P_NURMITLAGERSTAND", new Boolean(bNurArtikelMitLagerstand));

    initJRDS(parameter, InventurFac.REPORT_MODUL, InventurFac.REPORT_NICHTERFASSTEARTIKEL,
            theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto);

    return getReportPrint();
}

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

License:Open Source License

public JasperPrintLP printMindesthaltbarkeit(String artikelnrVon, String artikelnrBis,
        Boolean bSortiertNachChargennr, Integer mhAlter, TheClientDto theClientDto) {
    Session session = FLRSessionFactory.getFactory().openSession();
    session.enableFilter("filterMandant").setParameter("paramMandant", theClientDto.getMandant());
    session.enableFilter("filterLocale").setParameter("paramLocale",
            Helper.locale2String(theClientDto.getLocUi()));

    String queryString = "SELECT artikelliste.i_id, artikelliste.c_nr, aspr.c_bez, sum(alager.n_lagerstand),artikelliste.i_garantiezeit "
            + " FROM FLRArtikelliste AS artikelliste"
            + " LEFT OUTER JOIN artikelliste.artikellagerset AS alager "
            + " LEFT OUTER JOIN artikelliste.artikelsprset AS aspr ";
    queryString = queryString + " WHERE artikelliste.mandant_c_nr='" + theClientDto.getMandant()
            + "' AND artikelliste.artikelart_c_nr not in('" + ArtikelFac.ARTIKELART_HANDARTIKEL
            + "') AND artikelliste.b_lagerbewirtschaftet=1 AND artikelliste.b_chargennrtragend=1 ";

    if (artikelnrVon != null) {
        queryString = queryString + " AND artikelliste.c_nr >='" + artikelnrVon + "'";
    }//from  ww  w.  j a va  2s  .  c  om
    if (artikelnrBis != null) {
        queryString = queryString + " AND artikelliste.c_nr <='" + artikelnrBis + "'";
    }

    queryString = queryString
            + " GROUP BY artikelliste.i_id,artikelliste.c_nr, aspr.c_bez, artikelliste.i_garantiezeit ";

    queryString = queryString + " ORDER BY artikelliste.c_nr ";
    Query query = session.createQuery(queryString);
    List<?> resultList = query.list();
    Iterator<?> resultListIterator = resultList.iterator();
    Calendar cHeute = Calendar.getInstance();

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

    while (resultListIterator.hasNext()) {
        Object o[] = (Object[]) resultListIterator.next();

        // Lagerstand holen
        Double lagerstand = null;
        if (o[3] != null) {
            lagerstand = new Double(((BigDecimal) o[3]).doubleValue());
        } else {
            lagerstand = new Double(0);
        }

        // Alle Artikel mit Lagerstand groesser 0 kommen in die
        // Lagerstandsliste
        if (lagerstand.doubleValue() > 0) {

            try {
                SeriennrChargennrAufLagerDto[] dtos = getLagerFac()
                        .getAllSerienChargennrAufLager((Integer) o[0], null, theClientDto, Boolean.TRUE, false);

                for (int i = 0; i < dtos.length; i++) {
                    Object[] oZeile = new Object[6];

                    oZeile[REPORT_MINDESTHALTBARKEIT_ARTIKELNUMMER] = o[1];
                    oZeile[REPORT_MINDESTHALTBARKEIT_BEZEICHNUNG] = o[2];
                    oZeile[REPORT_MINDESTHALTBARKEIT_MENGE] = dtos[i].getNMenge();
                    oZeile[REPORT_MINDESTHALTBARKEIT_CHARGENNUMMER] = dtos[i].getCSeriennrChargennr();

                    // Haltbarkeit berechnen
                    String chargennummer = dtos[i].getCSeriennrChargennr();
                    if (chargennummer != null && chargennummer.length() > 7) {
                        try {
                            int iJahr = Integer.parseInt(chargennummer.substring(0, 4));
                            int iMonat = Integer.parseInt(chargennummer.substring(4, 6)) - 1;
                            int iTag = Integer.parseInt(chargennummer.substring(6, 8));

                            Calendar cHaltbarkeitsdatum = Calendar.getInstance();
                            cHaltbarkeitsdatum.set(iJahr, iMonat, iTag, 0, 0, 0);

                            if (cHaltbarkeitsdatum.getTimeInMillis() > cHeute.getTimeInMillis()) {

                                int diffMonate = cHaltbarkeitsdatum.get(Calendar.MONTH)
                                        - cHeute.get(Calendar.MONTH);
                                int diffJahre = cHaltbarkeitsdatum.get(Calendar.YEAR)
                                        - cHeute.get(Calendar.YEAR);
                                int diffTage = cHaltbarkeitsdatum.get(Calendar.DAY_OF_MONTH)
                                        - cHeute.get(Calendar.DAY_OF_MONTH);

                                diffMonate = diffMonate + diffJahre * 12;

                                if (diffTage < 0) {
                                    diffMonate = diffMonate - 1;
                                    diffTage = 31 + diffTage;
                                }

                                oZeile[REPORT_MINDESTHALTBARKEIT_HALTBARTAGE] = diffTage;
                                oZeile[REPORT_MINDESTHALTBARKEIT_HALTBARMONATE] = diffMonate;

                            }
                            al.add(oZeile);
                        } catch (NumberFormatException ex1) {
                            //
                        }
                    }

                }

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

        }

    }
    session.close();

    // Umsortieren
    if (bSortiertNachChargennr == true) {
        for (int i = 1; i < al.size(); i++) {
            // innere For-Schleife (laeuft bis schon platzierten Elementen)
            for (int j = 0; j < al.size() - i; j++) {

                Object[] o1 = (Object[]) al.get(j);
                Object[] o2 = (Object[]) al.get(j + 1);
                String chnr1 = (String) o1[REPORT_MINDESTHALTBARKEIT_CHARGENNUMMER];
                String chnr2 = (String) o2[REPORT_MINDESTHALTBARKEIT_CHARGENNUMMER];

                // falls in falscher Reihenfolge, dann vertauschen
                if (chnr1.compareTo(chnr2) > 0) {
                    Object[] temp = o1;
                    al.set(j, o2);
                    al.set(j + 1, temp);
                }

            }
        }

    }

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

    // Erstellung des Reports
    JasperPrintLP print = null;
    HashMap<String, Object> parameter = new HashMap<String, Object>();
    parameter.put("P_MHALTER", mhAlter);
    parameter.put("P_VON", artikelnrVon);
    parameter.put("P_BIS", artikelnrBis);
    if (bSortiertNachChargennr == true) {
        parameter.put("P_SORTIERUNG",
                getTextRespectUISpr("lp.chargennummer", theClientDto.getMandant(), theClientDto.getLocUi()));
    } else {
        parameter.put("P_SORTIERUNG",
                getTextRespectUISpr("lp.artikelnummer", theClientDto.getMandant(), theClientDto.getLocUi()));
    }
    index = -1;
    sAktuellerReport = LagerReportFac.REPORT_MINDESTHALTBARKEIT;
    initJRDS(parameter, LagerReportFac.REPORT_MODUL, LagerReportFac.REPORT_MINDESTHALTBARKEIT,
            theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto);
    print = getReportPrint();
    return print;
}

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

License:Open Source License

@TransactionAttribute(TransactionAttributeType.NEVER)
public JasperPrintLP printGestpreisUeberMinVK(Integer lagerIId, Integer vkPreislisteIId,
        boolean bMitVersteckten, boolean bVergleichMitMinVKPReis, boolean bMitStuecklisten,
        TheClientDto theClientDto) {/*from  w w  w  . jav a  2  s  .  com*/

    sAktuellerReport = LagerReportFac.REPORT_GESTPREISUEBERMINVK;

    String queryString = "SELECT artikelliste.i_id, artikelliste.c_nr, aspr.c_bez, (SELECT sum(artikellager.n_lagerstand) FROM FLRArtikellager AS artikellager WHERE artikellager.compId.artikel_i_id=artikelliste.i_id AND artikellager.compId.lager_i_id="
            + lagerIId
            + " ) ,(SELECT sum(artikellager.n_gestehungspreis*artikellager.n_lagerstand) FROM FLRArtikellager AS artikellager WHERE artikellager.compId.artikel_i_id=artikelliste.i_id AND artikellager.compId.lager_i_id="
            + lagerIId
            + ") , artikelliste.b_versteckt, (SELECT stkl FROM FLRStueckliste stkl WHERE stkl.artikel_i_id=artikelliste.i_id AND stkl.mandant_c_nr=artikelliste.mandant_c_nr),artikelliste.artikelart_c_nr "
            + " FROM FLRArtikelliste AS artikelliste" + " LEFT OUTER JOIN artikelliste.artikelsprset AS aspr ";

    queryString = queryString + " WHERE artikelliste.mandant_c_nr='" + theClientDto.getMandant()
            + "' AND artikelliste.artikelart_c_nr not in('" + ArtikelFac.ARTIKELART_HANDARTIKEL
            + "') AND artikelliste.b_lagerbewirtschaftet=1 ";

    if (bMitVersteckten == false) {
        queryString += " AND artikelliste.b_versteckt = 0 ";
    }

    queryString += " ORDER BY artikelliste.c_nr";

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

    session.enableFilter("filterMandant").setParameter("paramMandant", theClientDto.getMandant());
    session.enableFilter("filterLocale").setParameter("paramLocale",
            Helper.locale2String(theClientDto.getLocUi()));

    Query query = session.createQuery(queryString);

    Integer mwstsatzId_0 = null;

    try {
        Map<?, ?> m = getMandantFac().mwstsatzFindAll(theClientDto);
        Iterator<?> it = m.keySet().iterator();
        while (it.hasNext()) {
            MwstsatzDto dto = (MwstsatzDto) m.get(it.next());
            if (dto.getFMwstsatz() == 0) {
                mwstsatzId_0 = dto.getIId();
            }
        }

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

    List<?> resultList = query.list();

    Iterator<?> resultListIterator = resultList.iterator();
    ArrayList alDaten = new ArrayList();
    while (resultListIterator.hasNext()) {
        Object o[] = (Object[]) resultListIterator.next();

        BigDecimal lagerstand = (BigDecimal) o[3];
        BigDecimal vergleichspreis = (BigDecimal) o[4]; // Gestehungspreis
        boolean bVersteckt = Helper.short2boolean((Short) o[5]);

        FLRStueckliste stkl = (FLRStueckliste) o[6];
        String artikelart = (String) o[7];

        if (vergleichspreis != null && lagerstand.doubleValue() > 0) {
            vergleichspreis = vergleichspreis.divide(lagerstand, 4, BigDecimal.ROUND_HALF_EVEN);
        }

        try {
            BigDecimal vkPreis = new BigDecimal(0);

            BigDecimal materialzuschlag = getMaterialFac().getMaterialzuschlagVKInZielwaehrung((Integer) o[0],
                    Helper.cutDate(new java.sql.Date(System.currentTimeMillis())),
                    theClientDto.getSMandantenwaehrung(), theClientDto);

            if (bVergleichMitMinVKPReis == true) {
                vergleichspreis = getLagerFac().getMindestverkaufspreis((Integer) o[0], lagerIId,
                        new BigDecimal(1), theClientDto);
            }

            if (vkPreislisteIId != null) {
                ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKeySmall((Integer) o[0],
                        theClientDto);
                // @@ToDo: AD ? ist hier eine Staffelmenge bei Preisfindung
                // aus EK moeglich?
                VkpreisfindungDto dto = getVkPreisfindungFac().verkaufspreisfindungStufe1(artikelDto,
                        Helper.cutDate(new java.sql.Date(System.currentTimeMillis())), vkPreislisteIId,
                        new VkpreisfindungDto(theClientDto.getLocUi()), mwstsatzId_0, new BigDecimal(1),
                        theClientDto.getSMandantenwaehrung(), theClientDto);
                if (dto.getVkpStufe1() != null && dto.getVkpStufe1().nettopreis != null) {
                    vkPreis = dto.getVkpStufe1().nettopreis;
                } else {
                    vkPreis = new BigDecimal(0);
                }
            } else {
                VkPreisfindungEinzelverkaufspreisDto vkpfDto = getVkPreisfindungFac()
                        .getArtikeleinzelverkaufspreis((Integer) o[0],
                                new java.sql.Date(System.currentTimeMillis()),
                                theClientDto.getSMandantenwaehrung(), theClientDto);
                if (vkpfDto != null && vkpfDto.getNVerkaufspreisbasis() != null) {
                    vkPreis = vkpfDto.getNVerkaufspreisbasis();
                }
            }

            if (vergleichspreis == null) {
                vergleichspreis = new BigDecimal(0);
            }
            if (vkPreis.doubleValue() < vergleichspreis.doubleValue()) {
                Object[] zeile = new Object[REPORT_GESTPREISUNTERMINVK_ANZAHL_SPALTEN];
                zeile[REPORT_GESTPREISUNTERMINVK_ARTIKELNUMMER] = o[1];
                zeile[REPORT_GESTPREISUNTERMINVK_BEZEICHNUNG] = o[2];
                zeile[REPORT_GESTPREISUNTERMINVK_GESTPREIS] = vergleichspreis;
                zeile[REPORT_GESTPREISUNTERMINVK_VKPREIS] = vkPreis;
                zeile[REPORT_GESTPREISUNTERMINVK_MATERIALZUSCHLAG] = materialzuschlag;
                zeile[REPORT_GESTPREISUNTERMINVK_VERSTECKT] = new Boolean(bVersteckt);
                zeile[REPORT_GESTPREISUNTERMINVK_ARTIKELART] = artikelart;
                if (stkl != null) {
                    zeile[REPORT_GESTPREISUNTERMINVK_STUECKLISTENART] = stkl.getStuecklisteart_c_nr();
                }

                zeile[REPORT_GESTPREISUNTERMINVK_VERSTECKT] = new Boolean(bVersteckt);
                zeile[REPORT_GESTPREISUNTERMINVK_LAGERSTAND] = lagerstand;

                alDaten.add(zeile);
            }

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

    }

    Object[][] returnArray = new Object[alDaten.size()][6];
    data = (Object[][]) alDaten.toArray(returnArray);

    HashMap<String, Object> parameter = new HashMap<String, Object>();
    parameter.put("P_MITVERSTECKTEN", new Boolean(bMitVersteckten));
    parameter.put("P_MITSTUECKLISTEN", new Boolean(bMitStuecklisten));

    if (bVergleichMitMinVKPReis == true) {
        parameter.put("P_AUSGEHENDVON",
                getTextRespectUISpr("lp.mindestvkpreis", theClientDto.getMandant(), theClientDto.getLocUi()));
    } else {
        parameter.put("P_AUSGEHENDVON",
                getTextRespectUISpr("lp.gestehungspreis", theClientDto.getMandant(), theClientDto.getLocUi()));
    }

    try {
        LagerDto dto = getLagerFac().lagerFindByPrimaryKey(lagerIId);
        parameter.put("P_LAGER", dto.getCNr());

        if (vkPreislisteIId != null) {
            parameter.put("P_PREISLISTE",
                    getVkPreisfindungFac().vkpfartikelpreislisteFindByPrimaryKey(vkPreislisteIId).getCNr());
        } else {
            parameter.put("P_PREISLISTE", "Verkaufspreisbasis");
        }

    } catch (RemoteException ex) {
        throwEJBExceptionLPRespectOld(ex);
    }
    initJRDS(parameter, LagerReportFac.REPORT_MODUL, LagerReportFac.REPORT_GESTPREISUEBERMINVK,
            theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto);

    return getReportPrint();
}

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

License:Open Source License

@TransactionAttribute(TransactionAttributeType.NEVER)
public JasperPrintLP printZaehlliste(Integer lagerIId, BigDecimal abLageragerwert,
        java.math.BigDecimal abGestpreis, Boolean bNurLagerbewirtschafteteArtikel,
        Boolean bNurArtikelMitLagerstand, Boolean bSortiereNachLagerort, boolean bMitVersteckten,
        Integer artikelgruppeIId, Integer artikelklasseIId, Integer lagerplatzIId, int iArtikelarten,
        TheClientDto theClientDto) {//  w w  w .j a v a 2  s  .  c  o m
    if (bNurLagerbewirtschafteteArtikel == null || bNurArtikelMitLagerstand == null
            || bSortiereNachLagerort == null) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FELD_DARF_NICHT_NULL_SEIN, new Exception(
                "bNurLagerbewirtschafteteArtikel==null || bNurArtikelMitLagerstand==null || bSortiereNachLagerort == null"));
    }

    LagerDto[] lagerDtos = null;
    try {
        if (lagerIId == null) {

            lagerDtos = getLagerFac().lagerFindByMandantCNr(theClientDto.getMandant());

        } else {
            lagerDtos = new LagerDto[1];
            lagerDtos[0] = getLagerFac().lagerFindByPrimaryKey(lagerIId);
        }
    } catch (RemoteException e) {
        throwEJBExceptionLPRespectOld(e);
    }

    JasperPrintLP print = null;
    for (int i = 0; i < lagerDtos.length; i++) {

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

        session.enableFilter("filterMandant").setParameter("paramMandant", theClientDto.getMandant());
        session.enableFilter("filterLocale").setParameter("paramLocale",
                Helper.locale2String(theClientDto.getLocUi()));

        String queryString = "SELECT a.i_id, a.c_nr, l.c_nr,"
                + "(SELECT al.n_lagerstand FROM FLRArtikellager al WHERE compId.artikel_i_id=a.i_id AND compId.lager_i_id=l.i_id ) as lagerstand,"
                + "(SELECT al.n_gestehungspreis FROM FLRArtikellager al WHERE compId.artikel_i_id=a.i_id AND compId.lager_i_id=l.i_id ) as gestpreis,"
                + "1 as lagerplatz, "
                + "aspr.c_bez, aspr.c_zbez,aspr.c_zbez2,a.einheit_c_nr, a.b_lagerbewirtschaftet, a.b_seriennrtragend, a.b_chargennrtragend,l.i_id, (SELECT stkl FROM FLRStueckliste stkl WHERE stkl.artikel_i_id=a.i_id AND stkl.mandant_c_nr=a.mandant_c_nr) "
                + "FROM FLRArtikelliste a, FLRLager as l LEFT OUTER JOIN a.artikelsprset AS aspr ";

        if (lagerplatzIId != null) {
            queryString += " LEFT OUTER JOIN a.artikellagerplatzset AS lagerplatz ";
        }

        queryString += "WHERE a.mandant_c_nr='" + theClientDto.getMandant() + "' AND l.mandant_c_nr='"
                + theClientDto.getMandant() + "' AND a.artikelart_c_nr NOT IN ('"
                + ArtikelFac.ARTIKELART_HANDARTIKEL + "') AND l.i_id=" + lagerDtos[i].getIId() + " ";

        if (bNurLagerbewirtschafteteArtikel == true) {
            queryString += "AND a.b_lagerbewirtschaftet >0 ";
        }
        if (bMitVersteckten == false) {
            queryString += "AND a.b_versteckt <> 1 ";
        }
        if (lagerIId != null) {
            queryString += "AND l.i_id=" + lagerIId;
        }
        if (artikelklasseIId != null) {
            queryString += "AND a.flrartikelklasse.i_id=" + artikelklasseIId + " ";
        }
        if (artikelgruppeIId != null) {
            queryString += "AND a.flrartikelgruppe.i_id=" + artikelgruppeIId + " ";
        }
        if (lagerplatzIId != null) {
            queryString += " AND lagerplatz.lagerplatz_i_id=" + lagerplatzIId;
        }

        queryString += "ORDER BY l.c_nr ASC ,a.c_nr ASC";

        org.hibernate.Query query = session.createQuery(queryString);
        List<?> resultList = query.list();

        Iterator<?> resultListIterator = resultList.iterator();
        List<Object[]> list = new ArrayList<Object[]>();
        int row = 0;
        while (resultListIterator.hasNext()) {
            Object[] artikel = (Object[]) resultListIterator.next();

            boolean bStueckliste = false;

            if (artikel[14] != null) {
                bStueckliste = true;
            }

            boolean bGehoertZuArtikelart = true;

            if (iArtikelarten == LagerReportFac.REPORT_LAGERSTANDSLISTE_ARTIKEL_NURSTKL
                    && bStueckliste == false) {
                bGehoertZuArtikelart = false;
            }
            if (iArtikelarten == LagerReportFac.REPORT_LAGERSTANDSLISTE_ARTIKEL_OHNESTKL
                    && bStueckliste == true) {
                bGehoertZuArtikelart = false;
            }

            if (bGehoertZuArtikelart == false) {
                continue;
            }

            // Wenn Gestehungspreis mit angegeben
            if (abGestpreis != null) {
                if (artikel[4] == null || abGestpreis.doubleValue() > ((BigDecimal) artikel[3]).doubleValue()) {
                    continue;
                }
            }

            // Wenn Wert angegeben wurde
            if (abLageragerwert != null) {
                if (artikel[4] != null && artikel[3] != null) {
                    BigDecimal lagerWert = ((BigDecimal) artikel[4]).multiply((BigDecimal) artikel[3]);
                    if (abLageragerwert.doubleValue() > lagerWert.doubleValue()) {
                        continue;
                    }
                } else {
                    continue;
                }
            }

            Object[] zeile = new Object[REPORT_ZAEHLLISTE_FELDANZAHL];
            zeile[10] = artikel[0];
            if (HelperReport.pruefeObCode39Konform((String) artikel[1])) {
                zeile[REPORT_ZAEHLLISTE_BARCODE_DRUCKBAR] = Boolean.TRUE;
            } else {
                zeile[REPORT_ZAEHLLISTE_BARCODE_DRUCKBAR] = Boolean.FALSE;
            }

            zeile[REPORT_ZAEHLLISTE_ARTIKELNUMMER] = (String) artikel[1];

            zeile[REPORT_ZAEHLLISTE_ARTIKELBEZEICHNUNG] = artikel[6];
            zeile[REPORT_ZAEHLLISTE_ARTIELZUSATZBEZEICHNUNG] = artikel[7];
            zeile[REPORT_ZAEHLLISTE_ARTIELZUSATZBEZEICHNUNG2] = artikel[8];

            zeile[REPORT_ZAEHLLISTE_LAGERSTAND] = artikel[3];

            boolean bSnrTagend = Helper.short2boolean((Short) artikel[11]);
            boolean bChnrTagend = Helper.short2boolean((Short) artikel[12]);

            zeile[REPORT_ZAEHLLISTE_SNRTRAGEND] = new Boolean(bSnrTagend);

            zeile[REPORT_ZAEHLLISTE_CHNRTRAGEND] = new Boolean(bChnrTagend);

            zeile[REPORT_ZAEHLLISTE_MENGENART] = artikel[9];

            try {
                zeile[REPORT_ZAEHLLISTE_LAGERORT] = getLagerFac()
                        .getLagerplaezteEinesArtikels((Integer) artikel[0], lagerIId);
            } catch (RemoteException e1) {
                throwEJBExceptionLPRespectOld(e1);
            }

            if (bChnrTagend || bSnrTagend) {

                SeriennrChargennrAufLagerDto[] dtos = null;
                try {
                    dtos = getLagerFac().getAllSerienChargennrAufLager((Integer) artikel[0],
                            (Integer) artikel[13], theClientDto, false, false);
                } catch (RemoteException e) {
                    throwEJBExceptionLPRespectOld(e);
                }

                String snrchnr = "";

                for (int k = 0; k < dtos.length; k++) {
                    SeriennrChargennrAufLagerDto dto = dtos[k];

                    if (bSnrTagend) {
                        snrchnr += dto.getCSeriennrChargennr() + ", ";
                    } else {
                        snrchnr += dto.getCSeriennrChargennr() + " "
                                + Helper.formatZahl(dto.getNMenge(), 2, theClientDto.getLocUi()) + "\n";

                    }

                }

                zeile[REPORT_ZAEHLLISTE_SERIENNRCHARGENNR] = snrchnr;
            }

            if (bNurArtikelMitLagerstand.booleanValue() == true) {
                if (artikel[3] == null || ((BigDecimal) artikel[3]).doubleValue() <= 0) {
                    continue;

                }
            }

            ArtikelDto artDto = getArtikelFac().artikelFindByPrimaryKey((Integer) artikel[0], theClientDto);
            if (artDto.getVerpackungDto() != null) {
                zeile[REPORT_ZAEHLLISTE_ARTIKELBAUFORM] = artDto.getVerpackungDto().getCBauform();
                zeile[REPORT_ZAEHLLISTE_VERPACKUNGSART] = artDto.getVerpackungDto().getCVerpackungsart();
            } else {
                zeile[REPORT_ZAEHLLISTE_ARTIKELBAUFORM] = "";
                zeile[REPORT_ZAEHLLISTE_VERPACKUNGSART] = "";
            }
            if (artDto.getGeometrieDto() != null) {
                zeile[REPORT_ZAEHLLISTE_BREITETEXT] = artDto.getGeometrieDto().getCBreitetext();
                zeile[REPORT_ZAEHLLISTE_BREITE] = artDto.getGeometrieDto().getFBreite();
                zeile[REPORT_ZAEHLLISTE_HOEHE] = artDto.getGeometrieDto().getFHoehe();
                zeile[REPORT_ZAEHLLISTE_TIEFE] = artDto.getGeometrieDto().getFTiefe();
            } else {
                zeile[REPORT_ZAEHLLISTE_BREITETEXT] = "";
                zeile[REPORT_ZAEHLLISTE_BREITE] = null;
                zeile[REPORT_ZAEHLLISTE_HOEHE] = null;
                zeile[REPORT_ZAEHLLISTE_TIEFE] = null;
            }

            list.add(zeile);
            row++;
        }
        session.close();

        // Wenn sortiert nach Lagerort
        if (bSortiereNachLagerort == true) {
            for (int m = list.size() - 1; m > 0; --m) {
                for (int n = 0; n < m; ++n) {
                    Object[] o1 = (Object[]) list.get(n);
                    Object[] o2 = (Object[]) list.get(n + 1);

                    String ort1 = (String) o1[5];
                    String ort2 = (String) o2[5];

                    if (ort1 == null) {
                        ort1 = "";
                    }
                    if (ort2 == null) {
                        ort2 = "";
                    }
                    if (ort1.compareTo(ort2) > 0) {
                        list.set(n, o2);
                        list.set(n + 1, o1);
                    }
                }
            }

        }

        Object[][] returnArray = new Object[row][REPORT_ZAEHLLISTE_FELDANZAHL];
        data = (Object[][]) list.toArray(returnArray);

        index = -1;
        sAktuellerReport = LagerFac.REPORT_ZAEHLLISTE;
        HashMap<String, Object> parameter = new HashMap<String, Object>();
        parameter.put("P_LAGER", lagerDtos[i].getCNr());
        initJRDS(parameter, LagerFac.REPORT_MODUL, LagerFac.REPORT_ZAEHLLISTE, theClientDto.getMandant(),
                theClientDto.getLocUi(), theClientDto);

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

}

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

License:Open Source License

@TransactionAttribute(TransactionAttributeType.NEVER)
public JasperPrintLP printLagerstandliste(Integer lagerIId, java.sql.Timestamp tStichtag, Boolean bMitAZArtikel,
        Boolean bNurLagerbewertete, String artikelNrVon, String artikelNrBis, Integer artikelgruppeIId,
        Integer artikelklasseIId, Integer vkPreislisteIId, int sortierung, int iArtikelarten,
        boolean bMitAbgewertetemGestpreis, boolean bMitArtikelOhneLagerstand, Integer lagerplatzIId,
        boolean bMitVersteckten, Integer shopgruppeIId, boolean bMitNichtLagerbewirtschaftetenArtikeln,
        TheClientDto theClientDto) {/*from w ww  .  j  a v  a2 s.  c  om*/

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

    parameter.put("P_MITABGEWERTETEMGESTPREIS", new Boolean(bMitAbgewertetemGestpreis));
    parameter.put("P_MITNICHTLAGERBEWIRTSCHAFTETEN", new Boolean(bMitNichtLagerbewirtschaftetenArtikeln));

    parameter.put("P_MITVERSTECKTEN", new Boolean(bMitVersteckten));

    if (tStichtag != null) {
        parameter.put("P_STICHTAG", tStichtag);
        Calendar c = Calendar.getInstance();
        c.setTimeInMillis(tStichtag.getTime());
        c.set(Calendar.DAY_OF_MONTH, c.get(Calendar.DAY_OF_MONTH) + 1);
        tStichtag = new java.sql.Timestamp(c.getTimeInMillis());
        tStichtag = Helper.cutTimestamp(tStichtag);
    }

    int iMonateGestpreisAbwerten = 6;
    double dProzentGestpreisAbwerten = 10;
    boolean bEKPreisWennGestpreisNull = true;
    try {
        ParametermandantDto mandantparameter = getParameterFac().getMandantparameter(theClientDto.getMandant(),
                ParameterFac.KATEGORIE_ARTIKEL, ParameterFac.PARAMETER_GESTEHUNGSPREISABWERTEN_AB_MONATE);

        iMonateGestpreisAbwerten = (Integer) mandantparameter.getCWertAsObject();

        mandantparameter = getParameterFac().getMandantparameter(theClientDto.getMandant(),
                ParameterFac.KATEGORIE_ARTIKEL,
                ParameterFac.PARAMETER_GESTEHUNGSPREISABWERTEN_PROZENT_PRO_MONAT);

        dProzentGestpreisAbwerten = (Double) mandantparameter.getCWertAsObject();

        mandantparameter = getParameterFac().getMandantparameter(theClientDto.getMandant(),
                ParameterFac.KATEGORIE_ARTIKEL,
                ParameterFac.PARAMETER_LAGERSTANDSLISTE_EKPREIS_WENN_GESTPREIS_NULL);
        bEKPreisWennGestpreisNull = ((Boolean) mandantparameter.getCWertAsObject()).booleanValue();

    }

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

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

    session.enableFilter("filterMandant").setParameter("paramMandant", theClientDto.getMandant());
    session.enableFilter("filterLocale").setParameter("paramLocale",
            Helper.locale2String(theClientDto.getLocUi()));

    Integer mwstsatzId_0 = null;

    try {
        Map<?, ?> m = getMandantFac().mwstsatzFindAll(theClientDto);
        Iterator<?> it = m.keySet().iterator();
        while (it.hasNext()) {
            MwstsatzDto dto = (MwstsatzDto) m.get(it.next());
            if (dto.getFMwstsatz() == 0) {
                mwstsatzId_0 = dto.getIId();
            }
        }

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

    String queryString = null;

    if (lagerIId != null) {

        queryString = "SELECT artikelliste.i_id, artikelliste.c_nr, aspr.c_bez, (SELECT sum(artikellager.n_lagerstand) FROM FLRArtikellager AS artikellager WHERE artikellager.compId.artikel_i_id=artikelliste.i_id AND artikellager.compId.lager_i_id="
                + lagerIId
                + " ) ,(SELECT sum(artikellager.n_gestehungspreis*artikellager.n_lagerstand) FROM FLRArtikellager AS artikellager WHERE artikellager.compId.artikel_i_id=artikelliste.i_id AND artikellager.compId.lager_i_id="
                + lagerIId
                + "), artikelliste.b_lagerbewirtschaftet, artikelliste.b_seriennrtragend, artikelliste.b_chargennrtragend , artikelliste.einheit_c_nr, gruppe.c_nr, klasse.c_nr, (SELECT stkl FROM FLRStueckliste stkl WHERE stkl.artikel_i_id=artikelliste.i_id AND stkl.mandant_c_nr=artikelliste.mandant_c_nr),artikelliste.artikelart_c_nr, artikelliste.b_versteckt, "
                + " artikelliste.einheit_c_nr_bestellung,artikelliste.n_umrechnugsfaktor,aspr.c_kbez,aspr.c_zbez,aspr.c_zbez2,artikelliste.c_referenznr, shopgruppe.c_nr FROM FLRArtikelliste AS artikelliste"
                + " LEFT OUTER JOIN artikelliste.artikelsprset AS aspr "
                + " LEFT OUTER JOIN artikelliste.flrartikelgruppe AS gruppe "
                + " LEFT OUTER JOIN artikelliste.flrartikelklasse AS klasse "
                + " LEFT OUTER JOIN artikelliste.flrshopgruppe AS shopgruppe ";

        if (lagerplatzIId != null) {
            queryString += " LEFT OUTER JOIN artikelliste.artikellagerplatzset AS lagerplatz ";
        }

    } else {
        queryString = "SELECT artikelliste.i_id, artikelliste.c_nr, aspr.c_bez,(SELECT sum(artikellager.n_lagerstand) FROM FLRArtikellager AS artikellager WHERE artikellager.compId.artikel_i_id=artikelliste.i_id  AND artikellager.flrlager.lagerart_c_nr NOT IN('"
                + LagerFac.LAGERART_WERTGUTSCHRIFT
                + "')) ,(SELECT sum(artikellager.n_gestehungspreis*artikellager.n_lagerstand) FROM FLRArtikellager AS artikellager WHERE artikellager.compId.artikel_i_id=artikelliste.i_id  AND artikellager.flrlager.lagerart_c_nr NOT IN('"
                + LagerFac.LAGERART_WERTGUTSCHRIFT
                + "')), artikelliste.b_lagerbewirtschaftet, artikelliste.b_seriennrtragend, artikelliste.b_chargennrtragend , artikelliste.einheit_c_nr, gruppe.c_nr, klasse.c_nr, (SELECT stkl FROM FLRStueckliste stkl WHERE stkl.artikel_i_id=artikelliste.i_id AND stkl.mandant_c_nr=artikelliste.mandant_c_nr),artikelliste.artikelart_c_nr, artikelliste.b_versteckt, "
                + " artikelliste.einheit_c_nr_bestellung,artikelliste.n_umrechnugsfaktor,aspr.c_kbez,aspr.c_zbez,aspr.c_zbez2,artikelliste.c_referenznr, shopgruppe.c_nr FROM FLRArtikelliste AS artikelliste"
                + " LEFT OUTER JOIN artikelliste.artikelsprset AS aspr "
                + " LEFT OUTER JOIN artikelliste.flrartikelgruppe AS gruppe "
                + " LEFT OUTER JOIN artikelliste.flrartikelklasse AS klasse "
                + " LEFT OUTER JOIN artikelliste.flrshopgruppe AS shopgruppe ";
        if (lagerplatzIId != null) {
            queryString += " LEFT OUTER JOIN artikelliste.artikellagerplatzset AS lagerplatz ";
        }

    }

    if (bMitAZArtikel.booleanValue() == true) {

        queryString = queryString + " WHERE artikelliste.mandant_c_nr='" + theClientDto.getMandant()
                + "' AND artikelliste.artikelart_c_nr not in('" + ArtikelFac.ARTIKELART_HANDARTIKEL + "') ";

    } else {
        queryString = queryString + " WHERE artikelliste.mandant_c_nr='" + theClientDto.getMandant()
                + "' AND artikelliste.artikelart_c_nr not in('" + ArtikelFac.ARTIKELART_HANDARTIKEL + "','"
                + ArtikelFac.ARTIKELART_ARBEITSZEIT + "') ";

    }

    if (bMitNichtLagerbewirtschaftetenArtikeln == false) {
        queryString += " AND artikelliste.b_lagerbewirtschaftet = 1 ";
    }

    if (bMitVersteckten == false) {
        queryString += " AND artikelliste.b_versteckt = 0 ";
    }

    if (bNurLagerbewertete.booleanValue() == true) {

        queryString = queryString + " AND artikelliste." + ArtikelFac.FLR_ARTIKEL_B_LAGERBEWERTET + "=1 ";
    }

    if (artikelNrVon != null) {
        queryString += " AND artikelliste.c_nr >='" + artikelNrVon + "'";
    }
    if (artikelNrBis != null) {

        String artikelNrBis_Gefuellt = Helper.fitString2Length(artikelNrBis, 25, '_');
        queryString += " AND artikelliste.c_nr <='" + artikelNrBis_Gefuellt + "'";
    }
    if (artikelklasseIId != null) {
        queryString += " AND klasse.i_id=" + artikelklasseIId.intValue();
    }
    if (artikelgruppeIId != null) {
        queryString += " AND gruppe.i_id=" + artikelgruppeIId.intValue();
    }
    if (shopgruppeIId != null) {
        queryString += " AND shopgruppe.i_id=" + shopgruppeIId.intValue();
        parameter.put("P_SHOPGRUPPE",
                getArtikelFac().shopgruppeFindByPrimaryKey(shopgruppeIId, theClientDto).getBezeichnung());
    }

    if (lagerplatzIId != null) {
        queryString += " AND lagerplatz.lagerplatz_i_id=" + lagerplatzIId;
    }

    queryString = queryString
            + " GROUP BY artikelliste.i_id,artikelliste.c_nr, aspr.c_bez, artikelliste.b_lagerbewirtschaftet, artikelliste.b_seriennrtragend, artikelliste.b_chargennrtragend, artikelliste.einheit_c_nr , gruppe.c_nr, klasse.c_nr, shopgruppe.c_nr,artikelliste.b_lagerbewirtschaftet, artikelliste.mandant_c_nr, artikelliste.artikelart_c_nr, artikelliste.b_versteckt,artikelliste.einheit_c_nr_bestellung,artikelliste.n_umrechnugsfaktor,aspr.c_kbez,aspr.c_zbez,aspr.c_zbez2,artikelliste.c_referenznr ";

    if (sortierung == LagerReportFac.REPORT_LAGERSTANDSLISTE_SORTIERUNG_ARTIKELNUMMER) {
        queryString = queryString + " ORDER BY artikelliste.c_nr ";
        parameter.put("P_SORTIERUNG", getTextRespectUISpr("artikel.artikelnummerlang",
                theClientDto.getMandant(), theClientDto.getLocUi()));

    } else if (sortierung == LagerReportFac.REPORT_LAGERSTANDSLISTE_SORTIERUNG_ARTIKELKLASSE) {
        queryString = queryString + " ORDER BY klasse.c_nr,artikelliste.c_nr ";
        parameter.put("P_SORTIERUNG",
                getTextRespectUISpr("lp.artikelklasse", theClientDto.getMandant(), theClientDto.getLocUi()));

    } else if (sortierung == LagerReportFac.REPORT_LAGERSTANDSLISTE_SORTIERUNG_ARTIKELGRUPPE) {
        queryString = queryString + " ORDER BY gruppe.c_nr,artikelliste.c_nr ";
        parameter.put("P_SORTIERUNG",
                getTextRespectUISpr("lp.artikelgruppe", theClientDto.getMandant(), theClientDto.getLocUi()));

    } else if (sortierung == LagerReportFac.REPORT_LAGERSTANDSLISTE_SORTIERUNG_SHOPGRUPPE) {
        queryString = queryString + " ORDER BY shopgruppe.c_nr,artikelliste.c_nr ";
        parameter.put("P_SORTIERUNG",
                getTextRespectUISpr("lp.shopgruppe", theClientDto.getMandant(), theClientDto.getLocUi()));

    } else if (sortierung == LagerReportFac.REPORT_LAGERSTANDSLISTE_SORTIERUNG_REFERENZNUMMER) {
        queryString = queryString + " ORDER BY artikelliste.c_referenznr ";
        parameter.put("P_SORTIERUNG",
                getTextRespectUISpr("lp.referenznummer", theClientDto.getMandant(), theClientDto.getLocUi()));

    }
    // Wenn sortier nach Lagerwert oder Gestpreis, dann wird erst im
    // nachhinein sortiert

    Query query = session.createQuery(queryString);

    List<?> resultList = query.list();

    HashMap<Integer, BigDecimal> hmLagerstaendeZumZeitpunkt = null;
    if (tStichtag != null) {
        hmLagerstaendeZumZeitpunkt = getLagerFac().getLagerstandAllerArtikelZumZeitpunkt(lagerIId, tStichtag,
                theClientDto);
    }

    Iterator<?> resultListIterator = resultList.iterator();
    int row = 0;
    Object[][] dataHelp = new Object[resultList.size()][REPORT_LAGERSTANDLISTE_ANZAHL_SPALTEN];
    while (resultListIterator.hasNext()) {
        Object o[] = (Object[]) resultListIterator.next();

        // Lagerstand holen
        BigDecimal lagerstand = null;
        if (Helper.short2boolean((Short) o[5]) == false) {
            lagerstand = new BigDecimal(99999999);
        } else {
            if (tStichtag != null) {
                lagerstand = hmLagerstaendeZumZeitpunkt.get((Integer) o[0]);

                if (lagerstand == null) {
                    lagerstand = BigDecimal.ZERO;
                }
            } else {
                if (o[3] != null) {
                    lagerstand = (BigDecimal) o[3];
                } else {
                    lagerstand = new BigDecimal(0);
                }
            }
        }

        // Ist Artikel Stueckliste?
        boolean bStueckliste = false;

        if (o[11] != null) {
            bStueckliste = true;
            com.lp.server.stueckliste.fastlanereader.generated.FLRStueckliste s = (com.lp.server.stueckliste.fastlanereader.generated.FLRStueckliste) o[11];
            dataHelp[row][REPORT_LAGERSTANDLISTE_STUECKLISTE] = Boolean.TRUE;

            if (s.getStuecklisteart_c_nr()
                    .equals(com.lp.server.stueckliste.service.StuecklisteFac.STUECKLISTEART_HILFSSTUECKLISTE)) {
                dataHelp[row][REPORT_LAGERSTANDLISTE_HILFSSTUECKLISTE] = Boolean.TRUE;
            } else {
                dataHelp[row][REPORT_LAGERSTANDLISTE_HILFSSTUECKLISTE] = Boolean.FALSE;
            }
        } else {
            dataHelp[row][REPORT_LAGERSTANDLISTE_STUECKLISTE] = Boolean.FALSE;
            dataHelp[row][REPORT_LAGERSTANDLISTE_HILFSSTUECKLISTE] = Boolean.FALSE;
        }

        boolean bGehoertZuArtikelart = true;

        if (iArtikelarten == LagerReportFac.REPORT_LAGERSTANDSLISTE_ARTIKEL_NURSTKL && bStueckliste == false) {
            bGehoertZuArtikelart = false;
        }
        if (iArtikelarten == LagerReportFac.REPORT_LAGERSTANDSLISTE_ARTIKEL_OHNESTKL && bStueckliste == true) {
            bGehoertZuArtikelart = false;
        }

        // Alle Artikel mit Lagerstand groesser 0 kommen in die
        // Lagerstandsliste
        if (bGehoertZuArtikelart) {
            if (lagerstand.doubleValue() > 0 || bMitArtikelOhneLagerstand == true) {
                dataHelp[row][REPORT_LAGERSTANDLISTE_IDENTNUMMER] = o[1];
                dataHelp[row][REPORT_LAGERSTANDLISTE_LAGERSTAND] = lagerstand;
                dataHelp[row][REPORT_LAGERSTANDLISTE_EINHEIT] = o[8];
                dataHelp[row][REPORT_LAGERSTANDLISTE_BEZEICHNUNG] = o[2];

                dataHelp[row][REPORT_LAGERSTANDLISTE_KURZBEZEICHNUNG] = o[16];
                dataHelp[row][REPORT_LAGERSTANDLISTE_ZUSATZBEZEICHNUNG] = o[17];
                dataHelp[row][REPORT_LAGERSTANDLISTE_ZUSATZBEZEICHNUNG2] = o[18];
                dataHelp[row][REPORT_LAGERSTANDLISTE_REFERENZNUMMER] = o[19];
                dataHelp[row][REPORT_LAGERSTANDLISTE_SHOPGRUPPE] = o[20];

                dataHelp[row][REPORT_LAGERSTANDLISTE_BESTELLMENGENEINHEIT] = o[14];
                dataHelp[row][REPORT_LAGERSTANDLISTE_UMRECHNUNGFAKTOR] = o[15];

                dataHelp[row][REPORT_LAGERSTANDLISTE_ARTIKELART] = o[12];
                dataHelp[row][REPORT_LAGERSTANDLISTE_ARTIKELGRUPPE] = o[9];
                dataHelp[row][REPORT_LAGERSTANDLISTE_ARTIKELKLASSE] = o[10];

                dataHelp[row][REPORT_LAGERSTANDLISTE_VERSTECKT] = new Boolean(
                        Helper.short2boolean(((Short) o[13])));

                javax.persistence.Query queryLagerort = em
                        .createNamedQuery("ArtikellagerplaetzefindByArtikelIId");
                queryLagerort.setParameter(1, o[0]);

                String lagerplatz = "";

                Collection<?> cl = queryLagerort.getResultList();
                if (cl.size() > 0) {
                    Artikellagerplaetze pl = (Artikellagerplaetze) cl.iterator().next();

                    try {
                        LagerplatzDto lagerplatzDto = getLagerFac()
                                .lagerplatzFindByPrimaryKey(pl.getLagerplatzIId());
                        lagerplatz = lagerplatzDto.getCLagerplatz();
                    } catch (RemoteException e) {
                        throwEJBExceptionLPRespectOld(e);
                    }

                }
                dataHelp[row][REPORT_LAGERSTANDLISTE_LAGERORT] = lagerplatz;

                // Wenn SNR oder CHNR-Behaftet, dann kommen noch die
                // Lagernden
                // SNRS auf die Liste
                if (Helper.short2boolean(((Short) o[6])) || Helper.short2boolean(((Short) o[7]))) {
                    try {
                        SeriennrChargennrAufLagerDto[] dtos = getLagerFac()
                                .getAllSerienChargennrAufLagerInfoDtos((Integer) o[0], lagerIId, true,
                                        tStichtag, theClientDto);

                        String s = "";
                        for (int i = 0; i < dtos.length; i++) {
                            if (Helper.short2boolean(dtos[i].getBSeriennr()) == true) {
                                s = s + dtos[i].getCSeriennrChargennr() + ", ";
                            } else {
                                s = s + dtos[i].getCSeriennrChargennr() + " "
                                        + Helper.formatZahl(dtos[i].getNMenge(), 2, theClientDto.getLocUi())
                                        + " " + (String) o[8] + "\n";
                            }
                        }
                        dataHelp[row][REPORT_LAGERSTANDLISTE_SNRCHNRAUFLAGER] = s;
                    } catch (RemoteException ex) {
                        // nothing
                    }
                }

                // Gestehungspreis holen
                BigDecimal preis = null;

                BigDecimal lagerstandFuerPreis = lagerstand;

                BigDecimal wertMaterialzuschlag = new BigDecimal(0);

                if (vkPreislisteIId == null) {

                    if (tStichtag != null) {
                        try {
                            preis = getLagerFac().getGestehungspreisZumZeitpunkt((Integer) o[0], lagerIId,
                                    tStichtag, theClientDto);
                            // Wenns keinen Gest-Preis zum Zeitpunkt gibt,
                            // dann

                            // den aktuellen verwenden
                            if (preis == null) {
                                preis = (BigDecimal) o[4];
                                lagerstandFuerPreis = (BigDecimal) o[3];
                            } else {
                                // Mit lagerstand multiplizieren, da der
                                // Gestpreis zum Zeitpunkt nur fuer einen
                                // Artikel
                                // ist
                                preis = preis.multiply(lagerstand);
                            }
                        } catch (RemoteException ex6) {
                            throwEJBExceptionLPRespectOld(ex6);
                        }
                    } else {
                        preis = (BigDecimal) o[4];
                    }

                    if (preis != null && lagerstandFuerPreis.doubleValue() > 0) {
                        preis = preis.divide(lagerstandFuerPreis, 4, BigDecimal.ROUND_HALF_EVEN);
                    } else {
                        preis = new BigDecimal(0);
                    }

                } else {

                    ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKeySmall((Integer) o[0],
                            theClientDto);

                    // @@ToDo: AD ? ist hier eine Staffelmenge bei
                    // Preisfindung aus EK moeglich?
                    VkpreisfindungDto dto = getVkPreisfindungFac().verkaufspreisfindungStufe1(artikelDto,
                            Helper.cutDate(new java.sql.Date(System.currentTimeMillis())), vkPreislisteIId,
                            new VkpreisfindungDto(theClientDto.getLocUi()), mwstsatzId_0, new BigDecimal(1),
                            theClientDto.getSMandantenwaehrung(), theClientDto);
                    if (dto.getVkpStufe1() != null && dto.getVkpStufe1().nettopreis != null) {
                        preis = dto.getVkpStufe1().nettopreis;
                    } else {
                        preis = new BigDecimal(0);
                    }

                    wertMaterialzuschlag = getMaterialFac().getMaterialzuschlagVKInZielwaehrung(
                            artikelDto.getIId(), Helper.cutDate(new java.sql.Date(System.currentTimeMillis())),
                            theClientDto.getSMandantenwaehrung(), theClientDto).multiply(lagerstand);

                }
                dataHelp[row][REPORT_LAGERSTANDLISTE_LAGERWERT_MATERIALZUSCHLAG] = wertMaterialzuschlag;
                // Einkaufspreis des ersten Lieferanten hinzufuegen
                ArtikellieferantDto dto = getArtikelFac().getArtikelEinkaufspreis((Integer) o[0], null,
                        new BigDecimal(1), theClientDto.getSMandantenwaehrung(), null, theClientDto);
                if (dto != null) {
                    dataHelp[row][REPORT_LAGERSTANDLISTE_LIEF1PREIS] = dto.getLief1Preis();
                }

                if (bEKPreisWennGestpreisNull == true) {

                    if (preis.doubleValue() == 0 && dto != null) {
                        preis = dto.getLief1Preis();
                    }
                }

                dataHelp[row][REPORT_LAGERSTANDLISTE_GESTEHUNGSPREIS] = preis;

                if (preis == null) {
                    preis = new BigDecimal(0);
                }
                dataHelp[row][REPORT_LAGERSTANDLISTE_LAGERWERT] = preis.multiply(lagerstand);

                if (bMitAbgewertetemGestpreis) {
                    try {
                        dataHelp[row][REPORT_LAGERSTANDLISTE_GESTEHUNGSPREIS_ABGEWERTET] = getLagerFac()
                                .getAbgewertetenGestehungspreis(preis, (Integer) o[0], lagerIId, tStichtag,
                                        iMonateGestpreisAbwerten, dProzentGestpreisAbwerten);
                    } catch (RemoteException ex7) {
                        throwEJBExceptionLPRespectOld(ex7);
                    }
                }

                // Reservierungen holen
                BigDecimal reservierungen = null;
                try {
                    reservierungen = getReservierungFac().getAnzahlReservierungen((Integer) o[0], theClientDto);
                    if (reservierungen != null) {
                        dataHelp[row][REPORT_LAGERSTANDLISTE_RESERVIERTE_MENGE] = new Double(
                                reservierungen.doubleValue());
                        dataHelp[row][REPORT_LAGERSTANDLISTE_RESERVIERTER_WERT] = preis
                                .multiply(reservierungen);

                        BigDecimal freierWert = preis.multiply(lagerstand)
                                .subtract(preis.multiply(reservierungen));

                        if (freierWert.doubleValue() > 0) {
                            dataHelp[row][REPORT_LAGERSTANDLISTE_FREIER_WERT] = freierWert;
                        } else {
                            dataHelp[row][REPORT_LAGERSTANDLISTE_FREIER_WERT] = new BigDecimal(0);
                        }
                    }
                } catch (RemoteException ex3) {
                    throw new EJBExceptionLP(EJBExceptionLP.FEHLER, ex3);
                }
                row++;
            }
        }

    }
    session.close();

    data = new Object[row][9];
    for (int i = 0; i < row; i++) {
        data[i] = dataHelp[i];
    }

    if (sortierung == LagerReportFac.REPORT_LAGERSTANDSLISTE_SORTIERUNG_LAGERWERT) {

        for (int i = data.length - 1; i > 0; --i) {
            for (int j = 0; j < i; ++j) {
                Object[] o = data[j];
                Object[] o1 = data[j + 1];

                BigDecimal wert = (BigDecimal) o[REPORT_LAGERSTANDLISTE_LAGERWERT];
                BigDecimal wert1 = (BigDecimal) o1[REPORT_LAGERSTANDLISTE_LAGERWERT];
                if (wert.compareTo(wert1) < 0) {
                    data[j] = o1;
                    data[j + 1] = o;
                }
            }
        }

        parameter.put("P_SORTIERUNG",
                getTextRespectUISpr("lp.lagerwert", theClientDto.getMandant(), theClientDto.getLocUi()));
    } else if (sortierung == LagerReportFac.REPORT_LAGERSTANDSLISTE_SORTIERUNG_LAGERORT) {

        for (int i = data.length - 1; i > 0; --i) {
            for (int j = 0; j < i; ++j) {
                Object[] o = data[j];
                Object[] o1 = data[j + 1];

                String wert = (String) o[REPORT_LAGERSTANDLISTE_LAGERORT];
                String wert1 = (String) o1[REPORT_LAGERSTANDLISTE_LAGERORT];
                if (wert.compareTo(wert1) > 0) {
                    data[j] = o1;
                    data[j + 1] = o;
                }
            }
        }

        parameter.put("P_SORTIERUNG",
                getTextRespectUISpr("lp.lagerort", theClientDto.getMandant(), theClientDto.getLocUi()));
    } else if (sortierung == LagerReportFac.REPORT_LAGERSTANDSLISTE_SORTIERUNG_ARTIKELBEZEICHNUNG) {

        for (int i = data.length - 1; i > 0; --i) {
            for (int j = 0; j < i; ++j) {
                Object[] o = data[j];
                Object[] o1 = data[j + 1];

                String wert = (String) o[REPORT_LAGERSTANDLISTE_BEZEICHNUNG];
                String wert1 = (String) o1[REPORT_LAGERSTANDLISTE_BEZEICHNUNG];

                if (wert == null) {
                    wert = "";
                }
                if (wert1 == null) {
                    wert1 = "";
                }

                if (wert.toUpperCase().compareTo(wert1.toUpperCase()) > 0) {
                    data[j] = o1;
                    data[j + 1] = o;
                }
            }
        }

        parameter.put("P_SORTIERUNG", getTextRespectUISpr("bes.artikelbezeichnung", theClientDto.getMandant(),
                theClientDto.getLocUi()));
    } else if (sortierung == LagerReportFac.REPORT_LAGERSTANDSLISTE_SORTIERUNG_ARTIKELKURZBEZEICHNUNG) {

        for (int i = data.length - 1; i > 0; --i) {
            for (int j = 0; j < i; ++j) {
                Object[] o = data[j];
                Object[] o1 = data[j + 1];

                String wert = (String) o[REPORT_LAGERSTANDLISTE_KURZBEZEICHNUNG];
                String wert1 = (String) o1[REPORT_LAGERSTANDLISTE_KURZBEZEICHNUNG];

                if (wert == null) {
                    wert = "";
                }
                if (wert1 == null) {
                    wert1 = "";
                }

                if (wert.toUpperCase().compareTo(wert1.toUpperCase()) > 0) {
                    data[j] = o1;
                    data[j + 1] = o;
                }
            }
        }

        parameter.put("P_SORTIERUNG", getTextRespectUISpr("lp.kurzbezeichnunglang", theClientDto.getMandant(),
                theClientDto.getLocUi()));
    } else if (sortierung == LagerReportFac.REPORT_LAGERSTANDSLISTE_SORTIERUNG_GESTEHUNGSPREIS) {
        for (int i = data.length - 1; i > 0; --i) {
            for (int j = 0; j < i; ++j) {
                Object[] o = data[j];
                Object[] o1 = data[j + 1];

                BigDecimal wert = (BigDecimal) o[REPORT_LAGERSTANDLISTE_GESTEHUNGSPREIS];
                BigDecimal wert1 = (BigDecimal) o1[REPORT_LAGERSTANDLISTE_GESTEHUNGSPREIS];
                if (wert.compareTo(wert1) < 0) {
                    data[j] = o1;
                    data[j + 1] = o;
                }
            }
        }
        parameter.put("P_SORTIERUNG",
                getTextRespectUISpr("lp.gestehungspreis", theClientDto.getMandant(), theClientDto.getLocUi()));
    }

    // Erstellung des Reports
    JasperPrintLP print = null;

    try {
        if (lagerIId != null) {
            LagerDto dto = getLagerFac().lagerFindByPrimaryKey(lagerIId);
            parameter.put("P_LAGER", dto.getCNr());
        } else {
            parameter.put("P_LAGER", "ALLE");
        }
    } catch (RemoteException ex) {
        throwEJBExceptionLPRespectOld(ex);
    }
    try {
        parameter.put("P_WAEHRUNG", getMandantFac()
                .mandantFindByPrimaryKey(theClientDto.getMandant(), theClientDto).getWaehrungCNr());

        if (artikelgruppeIId != null) {
            parameter.put("P_ARTIKELGRUPPE",
                    getArtikelFac().artgruFindByPrimaryKey(artikelgruppeIId, theClientDto).getCNr());
        }
        if (artikelklasseIId != null) {
            parameter.put("P_ARTIKELKLASSE",
                    getArtikelFac().artklaFindByPrimaryKey(artikelklasseIId, theClientDto).getCNr());
        }
        if (vkPreislisteIId != null) {
            VkpfartikelpreislisteDto preislisteDto = getVkPreisfindungFac()
                    .vkpfartikelpreislisteFindByPrimaryKey(vkPreislisteIId);
            parameter.put("P_PREISLISTE", preislisteDto.getCNr());
            parameter.put("P_WAEHRUNG_PREISLISTE", preislisteDto.getWaehrungCNr());

            parameter.put("P_PREIS", getTextRespectUISpr("lp.verkaufspreis", theClientDto.getMandant(),
                    theClientDto.getLocUi()));
        } else {
            parameter.put("P_PREIS", getTextRespectUISpr("lp.gestehungspreis", theClientDto.getMandant(),
                    theClientDto.getLocUi()));
        }

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

    parameter.put("P_ARTIKELNRVON", artikelNrVon);
    parameter.put("P_ARTIKELNRBIS", artikelNrBis);
    index = -1;
    sAktuellerReport = LagerReportFac.REPORT_LAGERSTANDLISTE;
    initJRDS(parameter, LagerReportFac.REPORT_MODUL, LagerReportFac.REPORT_LAGERSTANDLISTE,
            theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto);
    print = getReportPrint();

    PrintInfoDto values = new PrintInfoDto();
    values.setDocPath(new HeliumDocPath().add(new DocNodeLiteral(theClientDto.getMandant()))
            .add(new DocNodeFolder(DocNodeBase.BELEGART_ARTIKEL))
            .add(new DocNodeFolder(DocNodeBase.BELEGART_LAGERSTANDSLISTE)));
    // values[0] = JCRDocFac.HELIUMV_NODE + "/"
    // + LocaleFac.BELEGART_ARTIKEL.trim() + "/" + "Lagerstandsliste";
    values.setiId(theClientDto.getIDPersonal());
    values.setTable("");

    print.setOInfoForArchive(values);

    return print;
}

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

License:Open Source License

@TransactionAttribute(TransactionAttributeType.NEVER)
public JasperPrintLP printLadenhueter(Timestamp dVon, Timestamp dBis, Integer iSortierung, String artiklenrVon,
        String artiklenrBis, Integer lagerIId, boolean bMitHandlagerbewegungen, boolean bMitFertigung,
        boolean bMitVersteckten, Integer artikelgruppeIId, boolean bZugaengeBeruecksichtigen,
        TheClientDto theClientDto) {//from ww  w .ja va  2  s .  c o  m

    /**
     * Ladenh&uuml;ter sind die Teile, die l&auml;nger als xx-Tage zwischen VON und
     * BIS auf Lager liegen.
     */

    if (dVon == null || dBis == null || iSortierung == null) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FELD_DARF_NICHT_NULL_SEIN,
                new Exception("dVon == null || dBis == null || iSortierung == null"));
    }
    index = -1;
    sAktuellerReport = LagerReportFac.REPORT_LADENHUETER;

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

    String sQuery = "SELECT l.artikel_i_id, l.i_id_buchung, l.n_menge, b_abgang, c_belegartnr FROM FLRLagerbewegung l WHERE l.flrartikel.mandant_c_nr='"
            + theClientDto.getMandant() + "'  "
            + " AND l.flrartikel.b_lagerbewirtschaftet=1 AND l.b_historie=0 AND l.flrartikel.b_lagerbewertet=1 AND l.c_belegartnr NOT IN ('"
            + LocaleFac.BELEGART_INVENTUR + "') " + " AND l.t_belegdatum >='"
            + Helper.formatDateWithSlashes(new java.sql.Date(dVon.getTime())) + "'" + " AND l.t_belegdatum <='"
            + Helper.formatDateWithSlashes(new java.sql.Date(dBis.getTime())) + "'";

    if (lagerIId != null) {
        try {
            LagerDto lagerDto = getLagerFac().lagerFindByPrimaryKey(lagerIId);
            parameter.put("P_LAGER", lagerDto.getCNr());
            sQuery += " AND l.flrlager.i_id=" + lagerIId + " ";

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

    if (!bMitHandlagerbewegungen) {
        sQuery += " AND l.c_belegartnr NOT IN ('" + LocaleFac.BELEGART_HAND + "') ";
    }

    if (!bMitFertigung) {
        sQuery += " AND l.c_belegartnr NOT IN ('" + LocaleFac.BELEGART_LOS + "') ";
    }

    sQuery += " ORDER BY l.artikel_i_id ASC,  l.i_id_buchung ASC, l.t_buchungszeit DESC";

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

    parameter.put("P_BERUECKSICHTIGEFERTIGUNG", new Boolean(bMitFertigung));
    parameter.put("P_BERUECKSICHTIGEZUGAENGE", new Boolean(bZugaengeBeruecksichtigen));
    parameter.put("P_BERUECKSICHTIGEHANDBUCHUNG", new Boolean(bMitHandlagerbewegungen));
    parameter.put("P_MITVERSTECKTEN", new Boolean(bMitVersteckten));
    Query querylagerbewegungen = session.createQuery(sQuery);
    List<?> results = querylagerbewegungen.list();

    Iterator<?> resultListIterator = results.iterator();
    int lastArtikel = -1;
    HashMap<Integer, String> hmVerwendeteArtikel = new HashMap<Integer, String>();

    while (resultListIterator.hasNext()) {
        Object[] o = (Object[]) resultListIterator.next();

        if (((BigDecimal) o[2]).doubleValue() != 0) {

            // Abgang oder Zugang
            if (Helper.short2boolean((Short) o[3]) == true) {
                // Wenn Abgang ungleich 0, dann kein ladenhueter
                if (!hmVerwendeteArtikel.containsKey((Integer) o[0])) {
                    hmVerwendeteArtikel.put((Integer) o[0], "");
                }

            } else {
                if (bZugaengeBeruecksichtigen) {
                    // PJ 16554
                    if (!hmVerwendeteArtikel.containsKey((Integer) o[0])) {
                        hmVerwendeteArtikel.put((Integer) o[0], "");
                    }
                }
            }

        }

    }
    session.close();

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

    String queryString = "  SELECT artikelliste.i_id, artikelliste.c_nr, aspr.c_bez, sum(alager.n_lagerstand),sum(alager.n_gestehungspreis*alager.n_lagerstand), artikelliste.b_lagerbewirtschaftet,aspr.c_kbez,artikelliste.b_versteckt, "
            + " (SELECT SUM(f.n_menge) FROM FLRFehlmenge f WHERE f.artikel_i_id=artikelliste.i_id), "
            + " (SELECT SUM(r.n_menge) FROM FLRArtikelreservierung r WHERE r.flrartikel.i_id=artikelliste.i_id), "
            + " gruppe.c_nr, klasse.c_nr, "

            + " (SELECT SUM(ra.n_gesamtmenge) FROM FLRRahmenbedarfe ra WHERE ra.flrartikel.i_id=artikelliste.i_id), "
            + " (SELECT s FROM FLRStueckliste s WHERE s.artikel_i_id=artikelliste.i_id AND s.mandant_c_nr='"
            + theClientDto.getMandant() + "'), artikelliste.artikelart_c_nr, 1 "
            + " FROM FLRArtikelliste AS artikelliste"
            + " LEFT OUTER JOIN artikelliste.artikellagerset AS alager "
            + " LEFT OUTER JOIN artikelliste.flrartikelgruppe AS gruppe "
            + " LEFT OUTER JOIN artikelliste.flrartikelklasse AS klasse "
            + " LEFT OUTER JOIN artikelliste.artikelsprset AS aspr ";
    queryString += " WHERE artikelliste.mandant_c_nr='" + theClientDto.getMandant()
            + "'  AND artikelliste.artikelart_c_nr not in('" + ArtikelFac.ARTIKELART_HANDARTIKEL
            + "') AND artikelliste.b_lagerbewirtschaftet=1 AND artikelliste.b_lagerbewertet=1";

    String sMandant = theClientDto.getMandant();

    session.enableFilter("filterMandant").setParameter("paramMandant", sMandant);
    String sLocUI = Helper.locale2String(theClientDto.getLocUi());

    session.enableFilter("filterLocale").setParameter("paramLocale", sLocUI);

    if (artiklenrVon != null) {
        parameter.put("P_ARTIKELNRVON", artiklenrVon);
        queryString += " AND artikelliste.c_nr >='" + Helper.fitString2Length(artiklenrVon, 25, ' ') + "'";
    }
    if (artiklenrBis != null) {
        parameter.put("P_ARTIKELNRBIS", artiklenrBis);

        queryString += " AND artikelliste.c_nr <='" + Helper.fitString2Length(artiklenrBis, 25, '_') + "'";
    }
    if (lagerIId != null) {
        queryString += " AND alager.compId.lager_i_id=" + lagerIId + " ";
    }

    if (artikelgruppeIId != null) {
        queryString += " AND artikelliste.flrartikelgruppe.i_id=" + artikelgruppeIId + " ";
    }

    queryString += " GROUP BY artikelliste.i_id,artikelliste.c_nr, aspr.c_bez,aspr.c_kbez, artikelliste.b_lagerbewirtschaftet,artikelliste.b_versteckt,gruppe.c_nr,klasse.c_nr,artikelliste.artikelart_c_nr ";

    if (iSortierung == LagerReportFac.REPORT_LADENHUETER_SORTIERUNG_ARTIKELGRUPPE) {
        parameter.put("P_SORTIERUNG",
                getTextRespectUISpr("lp.artikelgruppe", theClientDto.getMandant(), theClientDto.getLocUi()));
        queryString += " ORDER BY gruppe.c_nr ASC";
    } else if (iSortierung == LagerReportFac.REPORT_LADENHUETER_SORTIERUNG_ARTIKELKLASSE) {
        parameter.put("P_SORTIERUNG",
                getTextRespectUISpr("lp.artikelklasse", theClientDto.getMandant(), theClientDto.getLocUi()));
        queryString += " ORDER BY klasse.c_nr ASC";
    } else {
        parameter.put("P_SORTIERUNG",
                getTextRespectUISpr("lp.artikelnummer", theClientDto.getMandant(), theClientDto.getLocUi()));
        queryString += " ORDER BY artikelliste.c_nr ASC";
    }

    Query query = session.createQuery(queryString);
    results = query.list();
    resultListIterator = results.iterator();

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

    HashMap<Integer, BigDecimal> hmLagerstaendeZumZeitpunkt = getLagerFac()
            .getLagerstandAllerArtikelZumZeitpunkt(lagerIId, dBis, theClientDto);

    while (resultListIterator.hasNext()) {
        Object o[] = (Object[]) resultListIterator.next();

        // Lagerstand zum Stichtag PJ17940
        BigDecimal lagerstand = hmLagerstaendeZumZeitpunkt.get((Integer) o[0]);

        if (lagerstand == null) {
            lagerstand = BigDecimal.ZERO;
        }

        if (o[3] != null && lagerstand.doubleValue() > 0) {
            if (!hmVerwendeteArtikel.containsKey(o[0])) {
                o[15] = lagerstand;
                ladenhueter.add(o);
            }
        }

    }
    session.close();

    data = new Object[ladenhueter.size()][19];

    for (int i = 0; i < ladenhueter.size(); i++) {

        Object[] o = (Object[]) ladenhueter.get(i);

        data[i][REPORT_LADENHUETER_ARTIKELNUMMER] = o[1];
        data[i][REPORT_LADENHUETER_BEZEICHNUNG] = o[2];

        // Einkaufspreis des ersten Lieferanten hinzufuegen
        ArtikellieferantDto dto = getArtikelFac().getArtikelEinkaufspreis((Integer) o[0], null,
                new BigDecimal(1), theClientDto.getSMandantenwaehrung(), null, theClientDto);
        if (dto != null) {
            data[i][REPORT_LADENHUETER_EINKAUFSPREIS] = dto.getLief1Preis();
            data[i][REPORT_LADENHUETER_LIEFERANTARTIKELNUMMER] = dto.getCArtikelnrlieferant();

            LieferantDto lieferantDto = getLieferantFac().lieferantFindByPrimaryKey(dto.getLieferantIId(),
                    theClientDto);
            data[i][REPORT_LADENHUETER_BEVORZUGTERLIEFERANT] = lieferantDto.getPartnerDto().formatTitelAnrede();
        }

        if (o[4] != null && ((BigDecimal) o[3]).doubleValue() > 0) {
            data[i][REPORT_LADENHUETER_GESTPREIS] = ((BigDecimal) o[4]).divide((BigDecimal) o[3],
                    BigDecimal.ROUND_HALF_EVEN);
        } else {
            if (dto != null && dto.getLief1Preis() != null) {
                data[i][REPORT_LADENHUETER_GESTPREIS] = dto.getLief1Preis();
            } else {
                data[i][REPORT_LADENHUETER_GESTPREIS] = new BigDecimal(0);
            }
        }

        data[i][REPORT_LADENHUETER_LAGERSTAND_HEUTE] = o[3];
        data[i][REPORT_LADENHUETER_LAGERSTAND_ZUMSTICHTAG] = o[15];

        data[i][REPORT_LADENHUETER_ARTIKELART] = o[14];
        data[i][REPORT_LADENHUETER_RESERVIERUNGEN] = o[9];
        data[i][REPORT_LADENHUETER_VERSTECHT] = Helper.short2Boolean((Short) o[7]);
        data[i][REPORT_LADENHUETER_FEHLMENGEN] = o[8];
        data[i][REPORT_LADENHUETER_ARTIKELGRUPPE] = o[10];
        data[i][REPORT_LADENHUETER_ARTIKELKLASSE] = o[11];

        data[i][REPORT_LADENHUETER_RAHMENDETAILBEDARFE] = o[12];
        data[i][REPORT_LADENHUETER_ARTIKELART] = o[14];

        try {
            data[i][REPORT_LADENHUETER_RAHMENRESERVIERUNGEN] = getReservierungFac()
                    .getAnzahlRahmenreservierungen((Integer) o[0], theClientDto);
        } catch (RemoteException ex2) {
            throwEJBExceptionLPRespectOld(ex2);
        }

        if (o[13] != null) {
            com.lp.server.stueckliste.fastlanereader.generated.FLRStueckliste s = (com.lp.server.stueckliste.fastlanereader.generated.FLRStueckliste) o[13];
            data[i][REPORT_LADENHUETER_STUECKLISTE] = Boolean.TRUE;

            if (s.getStuecklisteart_c_nr()
                    .equals(com.lp.server.stueckliste.service.StuecklisteFac.STUECKLISTEART_HILFSSTUECKLISTE)) {
                data[i][REPORT_LADENHUETER_HILFSSTUECKLISTE] = Boolean.TRUE;
            } else {
                data[i][REPORT_LADENHUETER_HILFSSTUECKLISTE] = Boolean.FALSE;
            }
        } else {
            data[i][REPORT_LADENHUETER_STUECKLISTE] = Boolean.FALSE;
            data[i][REPORT_LADENHUETER_HILFSSTUECKLISTE] = Boolean.FALSE;
        }

        try {
            data[i][REPORT_LADENHUETER_EINSTANDSPREIS] = getLagerFac()
                    .getGemittelterEinstandspreisAllerLagerndenArtikel((Integer) o[0], lagerIId, theClientDto);
        } catch (RemoteException ex1) {
            throwEJBExceptionLPRespectOld(ex1);
        }

    }

    if (iSortierung == LagerReportFac.REPORT_LADENHUETER_SORTIERUNG_LAGERWERT) {
        parameter.put("P_SORTIERUNG",
                getTextRespectUISpr("lp.lagerwert", theClientDto.getMandant(), theClientDto.getLocUi()));
        for (int i = data.length - 1; i > 0; --i) {
            for (int j = 0; j < i; ++j) {
                Object[] o = data[j];
                Object[] o1 = data[j + 1];

                BigDecimal wert = ((BigDecimal) o[REPORT_LADENHUETER_GESTPREIS])
                        .multiply((BigDecimal) o[REPORT_LADENHUETER_LAGERSTAND_ZUMSTICHTAG]);
                BigDecimal wert1 = ((BigDecimal) o1[REPORT_LADENHUETER_GESTPREIS])
                        .multiply((BigDecimal) o1[REPORT_LADENHUETER_LAGERSTAND_ZUMSTICHTAG]);
                if (wert.compareTo(wert1) < 0) {
                    data[j] = o1;
                    data[j + 1] = o;
                }
            }
        }
    } else if (iSortierung == LagerReportFac.REPORT_LADENHUETER_SORTIERUNG_GESTPREIS) {
        parameter.put("P_SORTIERUNG",
                getTextRespectUISpr("lp.gestehungspreis", theClientDto.getMandant(), theClientDto.getLocUi()));
        for (int i = data.length - 1; i > 0; --i) {
            for (int j = 0; j < i; ++j) {
                Object[] o = data[j];
                Object[] o1 = data[j + 1];

                BigDecimal wert = ((BigDecimal) o[REPORT_LADENHUETER_GESTPREIS]);
                BigDecimal wert1 = ((BigDecimal) o1[REPORT_LADENHUETER_GESTPREIS]);
                if (wert.compareTo(wert1) < 0) {
                    data[j] = o1;
                    data[j + 1] = o;
                }
            }
        }

    } else if (iSortierung == LagerReportFac.REPORT_LADENHUETER_SORTIERUNG_EINSTANDSPREIS) {
        parameter.put("P_SORTIERUNG",
                getTextRespectUISpr("lp.einstandspreis", theClientDto.getMandant(), theClientDto.getLocUi()));
        for (int i = data.length - 1; i > 0; --i) {
            for (int j = 0; j < i; ++j) {
                Object[] o = data[j];
                Object[] o1 = data[j + 1];

                BigDecimal wert = ((BigDecimal) o[REPORT_LADENHUETER_EINSTANDSPREIS]);
                BigDecimal wert1 = ((BigDecimal) o1[REPORT_LADENHUETER_EINSTANDSPREIS]);
                if (wert.compareTo(wert1) < 0) {
                    data[j] = o1;
                    data[j + 1] = o;
                }
            }
        }
    }

    parameter.put("P_VON", dVon);
    parameter.put("P_BIS", dBis);

    // SK Parameter Mandantenwaehrung
    parameter.put("P_MANDANTENWAEHRUNG", theClientDto.getSMandantenwaehrung());

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

    return getReportPrint();
}

From source file:com.lp.server.artikel.fastlanereader.ArtikellisteHandler.java

License:Open Source License

public Session setFilter(Session session) {
    session = super.setFilter(session);
    String sMandant = theClientDto.getMandant();
    if (getMandantFac().darfAnwenderAufZusatzfunktionZugreifen(MandantFac.ZUSATZFUNKTION_ZENTRALER_ARTIKELSTAMM,
            theClientDto)) {//from www .  ja  v a2s.  c om
        session.enableFilter("filterMandant").setParameter("paramMandant", getSystemFac().getHauptmandant());
    } else {
        session.enableFilter("filterMandant").setParameter("paramMandant", sMandant);
    }
    return session;
}

From source file:com.lp.server.artikel.fastlanereader.HandlagerbewegungHandler.java

License:Open Source License

public Session setFilter(Session session) {
    session = super.setFilter(session);
    String sMandant = theClientDto.getMandant();
    if (getMandantFac().darfAnwenderAufZusatzfunktionZugreifen(MandantFac.ZUSATZFUNKTION_ZENTRALER_ARTIKELSTAMM,
            theClientDto)//  w  w  w.  j a v  a  2  s. co m
            && !getMandantFac().darfAnwenderAufZusatzfunktionZugreifen(
                    MandantFac.ZUSATZFUNKTION_GETRENNTE_LAGER, theClientDto)) {
        session.enableFilter("filterMandant").setParameter("paramMandant", getSystemFac().getHauptmandant());
    } else {
        session.enableFilter("filterMandant").setParameter("paramMandant", sMandant);
    }
    return session;
}

From source file:com.lp.server.artikel.fastlanereader.KundenidentnummerHandler.java

License:Open Source License

public Session setFilter(Session session) {
    session = super.setFilter(session);
    String sMandant = theClientDto.getMandant();
    session.enableFilter("filterMandant").setParameter("paramMandant", sMandant);
    return session;
}