Example usage for org.hibernate.criterion Restrictions ne

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

Introduction

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

Prototype

public static SimpleExpression ne(String propertyName, Object value) 

Source Link

Document

Apply a "not equal" constraint to the named property

Usage

From source file:com.lp.server.auftrag.ejbfac.AuftragFacBean.java

License:Open Source License

/**
 * Fuer eine bestimmte Auftragsart fuer einen bestimmten Zeitraum und eine
 * bestimmte Terminart (Belegdatum, Liefertermin, Finaltermin) den
 * Nettoauftragswert in Abhaengigkeit vom aktuellen Mandanten bestimmen. <br>
 * Beruecksichtigt werden koennen entweder alle offenen Auftraege oder alle
 * eingegangenen Auftraege./*from   w w  w .j a  v  a 2  s.  c  om*/
 * 
 * @param cNrAuftragartI
 *            die Auftragart (Frei, Rahmen, Abruf)
 * @param whichKriteriumI
 *            welche Zeitraumart (Belegdatum, Liefertermin, Finaltermin)
 * @param gcBerechnungsdatumVonI
 *            ab diesem Datum
 * @param gcBerechnungsdatumBisI
 *            bis zu diesem Datum
 * @param offenOderEingegangenI
 *            sollen alle offenen oder alle eingegangengen Auftraegr
 *            beruecksichtigt werden
 * @param theClientDto
 *            der aktuelle Benutzer
 * @return BigDecimal der Nettoauftragswert, 0 wenn keine offenen Positionen
 *         gefunden wurden
 * @throws EJBExceptionLP
 *             Ausnahme
 */
public BigDecimal berechneSummeAuftragsnettowert(String cNrAuftragartI, String whichKriteriumI,
        GregorianCalendar gcBerechnungsdatumVonI, GregorianCalendar gcBerechnungsdatumBisI,
        String offenOderEingegangenI, TheClientDto theClientDto) throws EJBExceptionLP {
    StringBuffer buff = new StringBuffer();
    buff.append(offenOderEingegangenI).append(", ").append(whichKriteriumI).append(", ").append(cNrAuftragartI)
            .append(", ").append("Von: ")
            .append(Helper.formatDatum(gcBerechnungsdatumVonI.getTime(), theClientDto.getLocUi()))
            .append(", Bis: ")
            .append(Helper.formatDatum(gcBerechnungsdatumBisI.getTime(), theClientDto.getLocUi()));

    myLogger.info(buff.toString());

    BigDecimal nSummeAuftragsnettowert = new BigDecimal(0);
    Session session = null;

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

        // Criteria duerfen keine Texts oder Blobs enthalten!

        // Criteria anlegen fuer alle referenzierten Objekte anlegen
        Criteria crit = session.createCriteria(FLRAuftragFuerUebersicht.class);

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

        // Einschraenken nach Auftragart
        crit.add(Restrictions.eq(AuftragFac.FLR_AUFTRAG_AUFTRAGART_C_NR, cNrAuftragartI));

        if (whichKriteriumI.equals(AuftragFac.KRIT_BELEGDATUM)) {
            // Belegdatum von bis: flrauftrag.t_belegdatum
            if (gcBerechnungsdatumVonI != null) {
                crit.add(Restrictions.ge(AuftragFac.FLR_AUFTRAG_D_BELEGDATUM,
                        new java.sql.Date(gcBerechnungsdatumVonI.getTimeInMillis())));
            }

            if (gcBerechnungsdatumBisI != null) {
                crit.add(Restrictions.lt(AuftragFac.FLR_AUFTRAG_D_BELEGDATUM,
                        new java.sql.Date(gcBerechnungsdatumBisI.getTimeInMillis())));
            }
        } else if (whichKriteriumI.equals(AuftragFac.KRIT_LIEFERTERMIN)) {
            // Liefertermin von bis: flrauftrag.t_liefertermin
            if (gcBerechnungsdatumVonI != null) {
                crit.add(Restrictions.ge(AuftragFac.FLR_AUFTRAG_T_LIEFERTERMIN,
                        new java.sql.Date(gcBerechnungsdatumVonI.getTimeInMillis())));
            }

            if (gcBerechnungsdatumBisI != null) {
                crit.add(Restrictions.le(AuftragFac.FLR_AUFTRAG_T_LIEFERTERMIN,
                        new java.sql.Date(gcBerechnungsdatumBisI.getTimeInMillis())));
            }
        } else if (whichKriteriumI.equals(AuftragFac.KRIT_FINALTERMIN)) {
            // Belegdatum von bis: flrauftrag.t_finaltermin
            if (gcBerechnungsdatumVonI != null) {
                crit.add(Restrictions.ge(AuftragFac.FLR_AUFTRAG_T_FINALTERMIN,
                        new java.sql.Date(gcBerechnungsdatumVonI.getTimeInMillis())));
            }

            if (gcBerechnungsdatumBisI != null) {
                crit.add(Restrictions.le(AuftragFac.FLR_AUFTRAG_T_FINALTERMIN,
                        new java.sql.Date(gcBerechnungsdatumBisI.getTimeInMillis())));
            }
        }

        // Einschraenken nach Auftragstatus
        if (offenOderEingegangenI.equals(AuftragFac.AUFT_UMSATZUEBERSICHT_OFFEN)) {
            crit.add(Expression.or(
                    Restrictions.eq(AuftragFac.FLR_AUFTRAG_AUFTRAGSTATUS_C_NR,
                            AuftragServiceFac.AUFTRAGSTATUS_OFFEN),
                    Restrictions.eq(AuftragFac.FLR_AUFTRAG_AUFTRAGSTATUS_C_NR,
                            AuftragServiceFac.AUFTRAGSTATUS_TEILERLEDIGT)));
        } else if (offenOderEingegangenI.equals(AuftragFac.AUFT_UMSATZUEBERSICHT_EINGANG)) {
            crit.add(Restrictions.ne(AuftragFac.FLR_AUFTRAG_AUFTRAGSTATUS_C_NR,
                    AuftragServiceFac.AUFTRAGSTATUS_ANGELEGT));
            crit.add(Restrictions.ne(AuftragFac.FLR_AUFTRAG_AUFTRAGSTATUS_C_NR,
                    AuftragServiceFac.AUFTRAGSTATUS_STORNIERT));
        }

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

        if (offenOderEingegangenI.equals(AuftragFac.AUFT_UMSATZUEBERSICHT_OFFEN)) {
            nSummeAuftragsnettowert = berechneAuftragsnettowertOffen(list, session, theClientDto);
        } else if (offenOderEingegangenI.equals(AuftragFac.AUFT_UMSATZUEBERSICHT_EINGANG)) {
            nSummeAuftragsnettowert = berechneAuftragsnettowertEingang(list, theClientDto);
        }
    } catch (Throwable t) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FLR, new Exception(t));
    } finally {
        try {
            session.close();
        } catch (HibernateException he) {
            throw new EJBExceptionLP(EJBExceptionLP.FEHLER_HIBERNATE, he);
        }
    }

    return nSummeAuftragsnettowert;
}

From source file:com.lp.server.auftrag.ejbfac.AuftragpositionFacBean.java

License:Open Source License

public void pruefeAuftragseriennumern(TheClientDto theClientDto) {
    Session session = FLRSessionFactory.getFactory().openSession();
    String[] srnnrn = null;/*from w ww .jav  a 2  s . co  m*/
    AuftragseriennrnDto auftragseriennrnDto = null;
    try {
        org.hibernate.Criteria crit = session.createCriteria(FLRAuftragpositionReport.class);
        org.hibernate.Criteria critAuftrag = crit
                .createCriteria(AuftragpositionFac.FLR_AUFTRAGPOSITION_FLRAUFTRAG);
        critAuftrag.add(Restrictions.ne(AuftragFac.FLR_AUFTRAG_AUFTRAGSTATUS_C_NR,
                AuftragServiceFac.AUFTRAGSTATUS_STORNIERT));
        crit.add(Restrictions.isNotNull("c_seriennrchargennr"));
        List<?> aposList = crit.list();
        Iterator<?> aposIterator = aposList.iterator();
        while (aposIterator.hasNext()) {
            FLRAuftragpositionReport item = (FLRAuftragpositionReport) aposIterator.next();
            srnnrn = Helper.erzeugeStringArrayAusString(item.getC_seriennrchargennr());
            for (int i = 0; i < srnnrn.length; i++) {
                auftragseriennrnDto = new AuftragseriennrnDto();
                auftragseriennrnDto.setAuftragpositionIId(item.getI_id());
                auftragseriennrnDto.setArtikelIId(item.getArtikel_i_id());
                auftragseriennrnDto.setCSeriennr(srnnrn[i]);
                try {
                    createAuftragseriennrn(auftragseriennrnDto, theClientDto);
                    if (i == srnnrn.length - 1) {
                        Auftragposition oPos = null;
                        oPos = em.find(Auftragposition.class, item.getI_id());
                        if (oPos == null) {
                        }
                        oPos.setCSeriennrchargennr(null);
                    }
                } catch (EJBExceptionLP ex) {
                    System.out.println(
                            "auftragposition " + item.getI_id() + " auftrag " + item.getFlrauftrag().getC_nr());
                }
            }
        }
    } finally {
        if (session != null) {
            session.close();
        }
    }

}

From source file:com.lp.server.bestellung.ejbfac.BestellungReportFacBean.java

License:Open Source License

/**
 * Alle offenen Bestellungen fuer einen bestimmten Mandanten drucken.
 * /*from www  .  j  av  a  2 s. com*/
 * @param krit
 *            die Filter- und Sortierkriterien
 * @param dStichtag
 *            Date
 * @param bSortierungNachLiefertermin
 *            Boolean
 * @param artikelklasseIId
 *            Integer
 * @param artikelgruppeIId
 *            Integer
 * @param artikelCNrVon
 *            String
 * @param artikelCNrBis
 *            String
 * @param projektCBezeichnung
 *            String
 * @param auftragIId
 *            Integer
 * @param theClientDto
 *            der aktuelle Benutzer
 * @throws EJBExceptionLP
 *             Ausnahme
 * @return JasperPrint der Druck
 */
@TransactionAttribute(TransactionAttributeType.NEVER)
public JasperPrintLP printBestellungOffene(ReportJournalKriterienDto krit, Date dStichtag,
        Boolean bSortierungNachLiefertermin, Integer artikelklasseIId, Integer artikelgruppeIId,
        String artikelCNrVon, String artikelCNrBis, String projektCBezeichnung, Integer auftragIId,
        Integer iArt, boolean bNurAngelegte, boolean bNurOffeneMengenAnfuehren, Integer[] projekte,
        TheClientDto theClientDto) throws EJBExceptionLP {
    useCase = UC_OFFENE;
    int iAnzahlZeilen = 0;

    SessionFactory factory = FLRSessionFactory.getFactory();
    Session session = null;
    // vom Stichtag die Uhrzeit abschneiden
    dStichtag = Helper.cutDate(dStichtag);

    // die dem Report uebergeben
    HashMap<String, Object> parameter = new HashMap<String, Object>();
    parameter.put("P_STICHTAG", Helper.formatDatum(dStichtag, theClientDto.getLocUi()));
    dStichtag = Helper.addiereTageZuDatum(dStichtag, 1);

    session = factory.openSession();

    boolean darfEinkaufspreisSehen = getTheJudgeFac().hatRecht(RechteFac.RECHT_LP_DARF_PREISE_SEHEN_EINKAUF,
            theClientDto);
    boolean bProjektklammer = getMandantFac().darfAnwenderAufZusatzfunktionZugreifen(
            MandantFac.ZUSATZFUNKTION_PROJEKTKLAMMER, theClientDto.getMandant());
    // Hiberante Criteria fuer alle Tabellen ausgehend von meiner
    // Haupttabelle anlegen,
    // nach denen ich filtern und sortieren kann
    Criteria crit = session.createCriteria(FLRBestellung.class);

    // Einschraenkung auf den aktuellen Mandanten
    crit.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_MANDANT_C_NR, theClientDto.getMandant()));

    // Einschraenkung nach Status Offen, Erledigt
    Collection<String> cStati = new LinkedList<String>();
    cStati.add(BestellungFac.BESTELLSTATUS_ANGELEGT);
    if (bNurAngelegte == false) {
        cStati.add(BestellungFac.BESTELLSTATUS_OFFEN);
        cStati.add(BestellungFac.BESTELLSTATUS_BESTAETIGT);
        cStati.add(BestellungFac.BESTELLSTATUS_ERLEDIGT);
    }
    crit.add(Restrictions.in(BestellungFac.FLR_BESTELLUNG_BESTELLUNGSTATUS_C_NR, cStati));

    // Das Belegdatum muss vor dem Stichtag liegen
    crit.add(Restrictions.le(BestellungFac.FLR_BESTELLUNG_T_BELEGDATUM, dStichtag));

    /**
     * @todo MB->MB hier sollte auch das erledigt-datum ziehen, das gibts
     *       aber in der BS nicht :-(
     */

    crit.add(Restrictions.or(Restrictions.ge(BestellungFac.FLR_BESTELLUNG_T_MANUELLGELIEFERT, dStichtag),
            Restrictions.isNull(BestellungFac.FLR_BESTELLUNG_T_MANUELLGELIEFERT)));

    // Das Belegdatum muss vor dem Stichtag liegen
    crit.add(Restrictions.le(BestellungFac.FLR_BESTELLUNG_T_BELEGDATUM, dStichtag));
    // Filter nach Projektbezeichnung
    if (projektCBezeichnung != null) {
        crit.add(Restrictions.ilike(BestellungFac.FLR_BESTELLUNG_C_BEZPROJEKTBEZEICHNUNG,
                "%" + projektCBezeichnung + "%"));
    }

    // Projektklammer
    if (projekte != null && projekte.length > 0) {
        crit.add(Restrictions.in(BestellungFac.FLR_BESTELLUNG_PROJEKT_I_ID, projekte));

        String text = "";
        for (int i = 0; i < projekte.length; i++) {

            try {
                ProjektDto pDto = getProjektFac().projektFindByPrimaryKey(projekte[i]);

                text += pDto.getCNr() + ", ";
            } catch (RemoteException e) {
                throwEJBExceptionLPRespectOld(e);
            }

        }

        parameter.put("P_PROJEKTE", text);

    }

    // Filter nach Auftrag
    if (auftragIId != null) {
        crit.add(Restrictions.like(BestellungFac.FLR_BESTELLUNG_AUFTRAG_I_ID, auftragIId));
    }
    // Einschraenkung nach einer bestimmten Kostenstelle
    if (krit.kostenstelleIId != null) {
        crit.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_KOSTENSTELLE_I_ID, krit.kostenstelleIId));
    }

    // Einschraenkung nach einem bestimmten Lieferanten
    if (krit.lieferantIId != null) {
        crit.add(
                Restrictions.eq(BestellungFac.FLR_BESTELLUNG_LIEFERANT_I_ID_BESTELLADRESSE, krit.lieferantIId));
    }
    // Filter nach Bestellungsart
    Collection<String> cArt = null;
    if (iArt != null) {
        if (iArt == 1) {
            // Ohne Rahmenbestellungen
            cArt = new LinkedList<String>();
            cArt.add(BestellungFac.BESTELLUNGART_FREIE_BESTELLUNG_C_NR);
            cArt.add(BestellungFac.BESTELLUNGART_ABRUFBESTELLUNG_C_NR);
            cArt.add(BestellungFac.BESTELLUNGART_LEIHBESTELLUNG_C_NR);
            crit.add(Restrictions.in(BestellungFac.FLR_BESTELLUNG_BESTELLUNGART_C_NR, cArt));
        } else if (iArt == 2) {
            // Nur Rahmenbestellungen
            cArt = new LinkedList<String>();
            cArt.add(BestellungFac.BESTELLUNGART_RAHMENBESTELLUNG_C_NR);
            crit.add(Restrictions.in(BestellungFac.FLR_BESTELLUNG_BESTELLUNGART_C_NR, cArt));
        }
    }

    // Sortierung nach Kostenstelle ist immer die erste Sortierung
    if (krit.bSortiereNachKostenstelle) {
        crit.createCriteria(BestellungFac.FLR_BESTELLUNG_FLRKOSTENSTELLE).addOrder(Order.asc("c_nr"));
    }
    // Sortierung nach Kunde, eventuell innerhalb der Kostenstelle
    if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) {
        crit.createCriteria(BestellungFac.FLR_BESTELLUNG_FLRLIEFERANT).createCriteria(LieferantFac.FLR_PARTNER)
                .addOrder(Order.asc(PartnerFac.FLR_PARTNER_NAME1NACHNAMEFIRMAZEILE1));

    }
    // Sortierung nach Projekt, eventuell innerhalb der Kostenstelle
    else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PROJEKT) {

        if (bProjektklammer == true) {

            crit.createAlias(BestellungFac.FLR_BESTELLUNG_FLRPROJEKT, "p");

            crit.addOrder(Order.asc("p.c_nr"));
        } else {
            crit.addOrder(Order.asc(BestellungFac.FLR_BESTELLUNG_C_BEZPROJEKTBEZEICHNUNG));
        }

    }
    // Sortierung nach Bestellungart, eventuell innerhalb der
    // Kostenstelle
    // else if (krit.iSortierung ==
    // ReportJournalKriterienDto.KRIT_SORT_NACH_ART) {
    // crit.addOrder(Order
    // .asc(BestellungFac.FLR_BESTELLUNG_BESTELLUNGART_C_NR));
    // }

    // Sortierung nach Liefertermin (optional)
    if (bSortierungNachLiefertermin != null && bSortierungNachLiefertermin.booleanValue()) {
        crit.addOrder(Order.asc(BestellungFac.FLR_BESTELLUNG_T_LIEFERTERMIN));
    }

    // es wird in jedem Fall nach der Belegnummer sortiert
    crit.addOrder(Order.asc("c_nr"));

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

    ArrayList<FLRBestellung> bestellung = new ArrayList<FLRBestellung>();
    while (it.hasNext()) {
        FLRBestellung flrbestellung = (FLRBestellung) it.next();
        session = factory.openSession();
        Criteria crit1 = session.createCriteria(FLRBestellposition.class);
        Criteria crit1Bestellung = crit1.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRBESTELLUNG);
        // nur Positionen der aktuellen Bestellung.
        crit1Bestellung.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_I_ID, flrbestellung.getI_id()));
        // keine erledigten Positionen.
        crit1.add(Restrictions.ne(BestellpositionFac.FLR_BESTELLPOSITION_BESTELLPOSITIONSTATUS_C_NR,
                BestellpositionFac.BESTELLPOSITIONSTATUS_ERLEDIGT));
        // keine geliferten Positionen.
        crit1.add(Restrictions.ne(BestellpositionFac.FLR_BESTELLPOSITION_BESTELLPOSITIONSTATUS_C_NR,
                BestellpositionFac.BESTELLPOSITIONSTATUS_GELIEFERT));
        // Der Liefertermin muss vor dem Stichtag liegen
        crit1.add(Restrictions.or(Restrictions.and(
                // Wenn der AB-Termin
                // eingegeben ist, zieht
                // der
                Restrictions.isNotNull(BestellpositionFac.FLR_BESTELLPOSITION_T_AUFTRAGSBESTAETIGUNGSTERMIN),
                Restrictions
                        .le(BestellpositionFac.FLR_BESTELLPOSITION_T_AUFTRAGSBESTAETIGUNGSTERMIN, dStichtag)),
                Restrictions.and(
                        // sonst der
                        // uebersteuerte
                        // Liefertermin
                        Restrictions
                                .isNull(BestellpositionFac.FLR_BESTELLPOSITION_T_AUFTRAGSBESTAETIGUNGSTERMIN),
                        Restrictions.le(BestellpositionFac.FLR_BESTELLPOSITION_T_UEBERSTEUERTERLIEFERTERMIN,
                                dStichtag))));

        if (artikelklasseIId != null || artikelgruppeIId != null || artikelCNrVon != null
                || artikelCNrBis != null) {
            // Wenn nach Artikelklassen/Gruppen gefiltert wird, dann
            // kommen nur Ident-Positionen
            crit1.add(Restrictions.eq(BestellpositionFac.FLR_BESTELLPOSITION_BESTELLPOSITIONART_C_NR,
                    BestellpositionFac.BESTELLPOSITIONART_IDENT));
            Criteria critArtikel = crit1.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRARTIKEL);
            if (artikelklasseIId != null) {
                critArtikel.createCriteria(ArtikelFac.FLR_ARTIKEL_FLRARTIKELKLASSE)
                        .add(Restrictions.eq("i_id", artikelklasseIId));
            }
            if (artikelgruppeIId != null) {
                critArtikel.createCriteria(ArtikelFac.FLR_ARTIKEL_FLRARTIKELGRUPPE)
                        .add(Restrictions.eq("i_id", artikelgruppeIId));
            }
            if (artikelCNrVon != null) {
                critArtikel.add(Restrictions.ge(ArtikelFac.FLR_ARTIKEL_C_NR, artikelCNrVon));
            }
            if (artikelCNrBis != null) {
                critArtikel.add(Restrictions.le(ArtikelFac.FLR_ARTIKEL_C_NR, artikelCNrBis));
            }
        }
        List<?> resultList = crit1.list();
        // Wenn die Bestellung anzuzeigende Positionen enthaelt, dann in
        // die Liste aufnehmen.
        if (resultList.size() > 0) {
            bestellung.add(flrbestellung);
            iAnzahlZeilen++;
        }
        for (Iterator<?> iter = resultList.iterator(); iter.hasNext();) {
            FLRBestellposition item = (FLRBestellposition) iter.next();
            if (item.getN_menge() != null) {
                bestellung.add(null);
                iAnzahlZeilen++;
            }
        }
    }

    data = new Object[iAnzahlZeilen][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ANZAHL_SPALTEN];

    int i = 0;
    while (i < iAnzahlZeilen) {
        FLRBestellung flrbestellung = null;
        if (bestellung.get(i) != null) {
            flrbestellung = (FLRBestellung) bestellung.get(i);
            data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGCNR] = flrbestellung.getC_nr();
            data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGARTCNR] = flrbestellung
                    .getBestellungart_c_nr();

            if (bProjektklammer && flrbestellung.getProjekt_i_id() != null) {
                data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_PROJEKT] = flrbestellung.getFlrprojekt()
                        .getC_nr();
            } else {
                data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_PROJEKT] = flrbestellung
                        .getC_bezprojektbezeichnung();
            }

            data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGLIEFERANT] = flrbestellung
                    .getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1();

            // PJ 14752

            String sortierstring = "";
            if (krit.bSortiereNachKostenstelle == true) {
                sortierstring = Helper.fitString2Length(flrbestellung.getFlrkostenstelle().getC_nr(), 80, ' ');
            }
            if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_IDENT) {
                sortierstring += Helper.fitString2Length(
                        flrbestellung.getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1(), 80,
                        ' ') + Helper.fitString2Length("", 80, ' ');
            }
            if (bSortierungNachLiefertermin == true) {
                sortierstring += Helper.fitString2Length(flrbestellung.getT_liefertermin() + "", 15, ' ');
            }
            data[i][REPORT_BESTELLUNG_OFFENE_SORTIERKRITERIUM] = sortierstring;

            data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGDATUM] = Helper
                    .formatDatum(flrbestellung.getT_belegdatum(), theClientDto.getLocUi());
            if (flrbestellung.getFlrkostenstelle() != null) {
                data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_KOSTENSTELLECNR] = flrbestellung
                        .getFlrkostenstelle().getC_nr();
            }
            i++;
        }
        session = factory.openSession();
        Criteria crit1 = session.createCriteria(FLRBestellpositionReport.class);
        // Keine erledigten Positionen.
        crit1.add(Restrictions.ne(BestellpositionFac.FLR_BESTELLPOSITION_BESTELLPOSITIONSTATUS_C_NR,
                BestellpositionFac.BESTELLPOSITIONSTATUS_ERLEDIGT));
        crit1.add(Restrictions.ne(BestellpositionFac.FLR_BESTELLPOSITION_BESTELLPOSITIONSTATUS_C_NR,
                BestellpositionFac.BESTELLPOSITIONSTATUS_GELIEFERT));

        // Der Liefertermin muss vor dem Stichtag liegen
        crit1.add(Restrictions.or(Restrictions.and(
                // Wenn der AB-Termin
                // eingegeben ist, zieht
                // der
                Restrictions.isNotNull(BestellpositionFac.FLR_BESTELLPOSITION_T_AUFTRAGSBESTAETIGUNGSTERMIN),
                Restrictions
                        .le(BestellpositionFac.FLR_BESTELLPOSITION_T_AUFTRAGSBESTAETIGUNGSTERMIN, dStichtag)),
                Restrictions.and(
                        // sonst der
                        // uebersteuerte
                        // Liefertermin
                        Restrictions
                                .isNull(BestellpositionFac.FLR_BESTELLPOSITION_T_AUFTRAGSBESTAETIGUNGSTERMIN),
                        Restrictions.le(BestellpositionFac.FLR_BESTELLPOSITION_T_UEBERSTEUERTERLIEFERTERMIN,
                                dStichtag))));

        // Nur Positionen der aktuellen Bestellung.
        Criteria crit1Bestellung = crit1.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRBESTELLUNG);
        crit1Bestellung.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_I_ID, flrbestellung.getI_id()));
        if (artikelklasseIId != null || artikelgruppeIId != null || artikelCNrVon != null
                || artikelCNrBis != null) {
            // Wenn nach Artikelklassen/Gruppen gefiltert wird, dann
            // kommen nur Ident-Positionen
            crit1.add(Restrictions.eq(BestellpositionFac.FLR_BESTELLPOSITION_BESTELLPOSITIONART_C_NR,
                    BestellpositionFac.BESTELLPOSITIONART_IDENT));
            Criteria critArtikel = crit1.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRARTIKEL);
            if (artikelklasseIId != null) {
                critArtikel.createCriteria(ArtikelFac.FLR_ARTIKEL_FLRARTIKELKLASSE)
                        .add(Restrictions.eq("i_id", artikelklasseIId));
            }
            if (artikelgruppeIId != null) {
                critArtikel.createCriteria(ArtikelFac.FLR_ARTIKEL_FLRARTIKELGRUPPE)
                        .add(Restrictions.eq("i_id", artikelgruppeIId));
            }
            if (artikelCNrVon != null) {
                critArtikel.add(Restrictions.ge(ArtikelFac.FLR_ARTIKEL_C_NR, artikelCNrVon));
            }
            if (artikelCNrBis != null) {
                critArtikel.add(Restrictions.le(ArtikelFac.FLR_ARTIKEL_C_NR, artikelCNrBis));
            }
        }

        List<?> resultList = crit1.list();
        for (Iterator<?> iter = resultList.iterator(); iter.hasNext();) {
            FLRBestellpositionReport item = (FLRBestellpositionReport) iter.next();
            if (item.getN_menge() != null) {
                String artikelCNr = null;
                /**
                 * @todo das ist nicht sehr sauber ...
                 */
                if (item.getFlrartikel().getC_nr().startsWith("~")) {
                    artikelCNr = BestellungReportFac.REPORT_VORKALKULATION_ZEICHEN_FUER_HANDEINGABE;
                } else {
                    artikelCNr = item.getFlrartikel().getC_nr();
                }
                Criteria critWep = session.createCriteria(FLRWareneingangspositionen.class);
                critWep.createCriteria("flrbestellposition").add(Restrictions.eq("i_id", item.getI_id()));
                List<?> wepResultList = critWep.list();
                Iterator<?> wepResultListIterator = wepResultList.iterator();

                data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGCNR] = flrbestellung.getC_nr();
                data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGARTCNR] = flrbestellung
                        .getBestellungart_c_nr();
                data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_PROJEKT] = flrbestellung
                        .getC_bezprojektbezeichnung();
                data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGLIEFERANT] = flrbestellung
                        .getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1();
                data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELCNR] = artikelCNr;

                // SP903
                if (item.getPosition_i_id_artikelset() != null) {
                    data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_SETARTIKEL_TYP] = ArtikelFac.SETARTIKEL_TYP_POSITION;
                } else {

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

                    sessionSet = factory.openSession();
                    Criteria critSet = sessionSet.createCriteria(FLRBestellpositionReport.class);
                    critSet.add(Restrictions.eq("position_i_id_artikelset", item.getI_id()));

                    int iZeilen = critSet.list().size();

                    if (iZeilen > 0) {
                        data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_SETARTIKEL_TYP] = ArtikelFac.SETARTIKEL_TYP_KOPF;
                    }
                    sessionSet.close();

                }

                // PJ 14752

                String sortierstring = "";
                if (krit.bSortiereNachKostenstelle == true) {
                    sortierstring = Helper.fitString2Length(flrbestellung.getFlrkostenstelle().getC_nr(), 80,
                            ' ');
                }

                if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_IDENT) {
                    sortierstring += Helper
                            .fitString2Length(flrbestellung.getFlrlieferant().getFlrpartner()
                                    .getC_name1nachnamefirmazeile1(), 80, ' ')
                            + Helper.fitString2Length(artikelCNr, 80, ' ');
                }

                if (bSortierungNachLiefertermin == true) {
                    sortierstring += Helper.fitString2Length(flrbestellung.getT_liefertermin() + "", 15, ' ');
                }

                data[i][REPORT_BESTELLUNG_OFFENE_SORTIERKRITERIUM] = sortierstring;

                data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELMENGE] = item.getN_menge();
                BigDecimal bdOffeneLiefermenge = new BigDecimal(0);
                if (BestellungFac.BESTELLUNGART_RAHMENBESTELLUNG_C_NR
                        .equals(flrbestellung.getBestellungart_c_nr())) {
                    try {
                        BestellpositionDto[] abrufPos = getBestellpositionFac()
                                .bestellpositionFindByBestellpositionIIdRahmenposition(item.getI_id(),
                                        theClientDto);
                        for (int y = 0; y < abrufPos.length; y++) {
                            bdOffeneLiefermenge = bdOffeneLiefermenge
                                    .add(getBestellpositionFac().berechneOffeneMenge(abrufPos[y]));
                        }
                    } catch (RemoteException e) {
                    }
                    data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_OFFENELIEFERUNGEN] = bdOffeneLiefermenge;

                } else {
                    data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_OFFENELIEFERUNGEN] = null;
                }
                StringBuffer sbArtikelInfo = new StringBuffer();
                if (item.getC_bezeichnung() != null) {
                    sbArtikelInfo.append(item.getC_bezeichnung());
                } else {
                    ArtikelDto artikelDto = getArtikelFac()
                            .artikelFindByPrimaryKey(item.getFlrartikel().getI_id(), theClientDto);

                    if (artikelDto.getArtikelsprDto() != null) {
                        if (artikelDto.getArtikelsprDto().getCBez() != null) {
                            sbArtikelInfo.append(artikelDto.getArtikelsprDto().getCBez());
                        }
                    }
                }
                data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELBEZ] = sbArtikelInfo.toString();

                // der Preis wird in Mandantenwaehrung angezeigt, es
                // gilt der hinterlegte Wechselkurs
                BigDecimal bdPreisinmandantenwaehrung = item.getN_nettogesamtpreis();
                BigDecimal wechselkursmandantwaehrungzuauftragswaehrung = null;
                if (!flrbestellung.getWaehrung_c_nr_bestellwaehrung()
                        .equals(theClientDto.getSMandantenwaehrung())) {
                    wechselkursmandantwaehrungzuauftragswaehrung = new BigDecimal(
                            flrbestellung.getF_wechselkursmandantwaehrungbestellungswaehrung().doubleValue());
                    bdPreisinmandantenwaehrung = getBetragMalWechselkurs(bdPreisinmandantenwaehrung,
                            Helper.getKehrwert(wechselkursmandantwaehrungzuauftragswaehrung));
                }
                if (darfEinkaufspreisSehen) {
                    data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELPREIS] = bdPreisinmandantenwaehrung;
                } else {
                    data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELPREIS] = null;
                }

                if (item.getEinheit_c_nr() != null) {
                    data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELEINHEIT] = item
                            .getEinheit_c_nr().trim();
                }
                if (item.getT_auftragsbestaetigungstermin() != null) {
                    data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ABTERMIN] = Helper
                            .formatDatum(item.getT_auftragsbestaetigungstermin(), theClientDto.getLocUi());
                }

                data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ABNUMMER] = item.getC_abnummer();
                data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ABKOMMENTAR] = item.getC_abkommentar();

                if (item.getT_uebersteuerterliefertermin() != null) {
                    data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGLIEFERTERMIN] = Helper
                            .formatDatum(item.getT_uebersteuerterliefertermin(), theClientDto.getLocUi());
                } else {
                    data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGLIEFERTERMIN] = Helper
                            .formatDatum(item.getFlrbestellung().getT_liefertermin(), theClientDto.getLocUi());
                }
                BigDecimal noffeneMenge = item.getN_menge();
                BigDecimal ngeliferteMenge = new BigDecimal(0);
                if (flrbestellung.getBestellungart_c_nr()
                        .equals(BestellungFac.BESTELLUNGART_RAHMENBESTELLUNG_C_NR)) {
                    noffeneMenge = item.getN_offenemenge();
                    while (wepResultListIterator.hasNext()) {
                        FLRWareneingangspositionen waren = (FLRWareneingangspositionen) wepResultListIterator
                                .next();
                        ngeliferteMenge = ngeliferteMenge.add(waren.getN_geliefertemenge());
                    }

                } else {
                    while (wepResultListIterator.hasNext()) {
                        FLRWareneingangspositionen waren = (FLRWareneingangspositionen) wepResultListIterator
                                .next();
                        noffeneMenge = noffeneMenge.subtract(waren.getN_geliefertemenge());
                    }
                }
                data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELGELIFERTEMENGE] = ngeliferteMenge;

                data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELOFFENEMENGE] = noffeneMenge;
                if (darfEinkaufspreisSehen) {
                    data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELOFFENEWERT] = noffeneMenge
                            .multiply(bdPreisinmandantenwaehrung);
                } else {
                    data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELOFFENEWERT] = null;
                }
                i++;
            }
        }
    }

    closeSession(session);

    // PJ 15254
    if (bNurOffeneMengenAnfuehren) {
        ArrayList alTemp = new ArrayList();

        for (int k = 0; k < data.length; k++) {
            BigDecimal bdOffeneMenge = (BigDecimal) data[k][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELOFFENEMENGE];
            if (bdOffeneMenge != null && bdOffeneMenge.doubleValue() > 0) {
                alTemp.add(data[k]);
            }
        }
        Object[][] returnArray = new Object[alTemp
                .size()][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ANZAHL_SPALTEN];
        data = (Object[][]) alTemp.toArray(returnArray);
    }

    // PJ 14752 Manuell nachsortieren (in Besprechung mit AD+WH besprochen)

    if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_IDENT) {

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

                String s = (String) o[REPORT_BESTELLUNG_OFFENE_SORTIERKRITERIUM];
                String s1 = (String) o1[REPORT_BESTELLUNG_OFFENE_SORTIERKRITERIUM];

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

    }

    parameter.put(LPReport.P_SORTIERUNG, buildSortierungBestellungOffene(krit, theClientDto));
    parameter.put(LPReport.P_FILTER, buildFilterBestellungOffene(krit, artikelklasseIId, artikelgruppeIId,
            artikelCNrVon, artikelCNrBis, projektCBezeichnung, theClientDto));

    parameter.put(LPReport.P_SORTIERENACHLIEFERANT,
            new Boolean(krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER));
    parameter.put("P_SORTIERENACHBESTELLUNGART",
            new Boolean(krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_ART));
    parameter.put("P_TITLE",
            getTextRespectUISpr("bes.print.offene", theClientDto.getMandant(), theClientDto.getLocUi()));
    parameter.put(P_MANDANTWAEHRUNG, theClientDto.getSMandantenwaehrung());

    initJRDS(parameter, BestellungReportFac.REPORT_MODUL, BestellungReportFac.REPORT_BESTELLUNG_JOURNAL_OFFENE,
            theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto);
    return getReportPrint();
}

From source file:com.lp.server.bestellung.ejbfac.BestellungReportFacBean.java

License:Open Source License

/**
 * Diese Methode liefert eine Liste von allen offenen Bestellungen eines
 * Mandanten, die nach den eingegebenen Kriterien des Benutzers
 * zusammengestellt wird. <br>/*from  ww  w  .jav  a 2 s.  com*/
 * Achtung: Hibernate verwendet lazy initialization, d.h. der Zugriff auf
 * Collections muss innerhalb der Session erfolgen.
 * 
 * @param reportJournalKriterienDtoI
 *            die Kriterien des Benutzers
 * @param dStichtag
 *            Date
 * @param bSortierungNachLiefertermin
 *            Boolean
 * @param artikelklasseIId
 *            Integer
 * @param artikelgruppeIId
 *            Integer
 * @param theClientDto
 *            der aktuelle Benutzer
 * @return ReportBestellungOffeneDto[] die Liste der Bestellungen
 * @throws EJBExceptionLP
 *             Ausnahme
 */
private ReportBestellungOffeneDto[] getListeReportBestellungOffene(
        ReportJournalKriterienDto reportJournalKriterienDtoI, Date dStichtag,
        Boolean bSortierungNachLiefertermin, Integer artikelklasseIId, Integer artikelgruppeIId,
        TheClientDto theClientDto) throws EJBExceptionLP {
    ReportBestellungOffeneDto[] aResult = null;
    SessionFactory factory = FLRSessionFactory.getFactory();
    Session session = null;
    // vom Stichtag die Uhrzeit abschneiden
    dStichtag = Helper.cutDate(dStichtag);

    try {
        session = factory.openSession();

        // Hiberante Criteria fuer alle Tabellen ausgehend von meiner
        // Haupttabelle anlegen,
        // nach denen ich filtern und sortieren kann
        Criteria crit = session.createCriteria(FLRBestellung.class);

        // Einschraenkung auf den aktuellen Mandanten
        crit.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant()));

        // Einschraenkung nach Bestelllungart
        crit.add(Restrictions.ne(BestellungFac.FLR_BESTELLUNG_BESTELLUNGART_C_NR,
                BestellungFac.BESTELLUNGART_RAHMENBESTELLUNG_C_NR));
        crit.add(Restrictions.ne(BestellungFac.FLR_BESTELLUNG_BESTELLUNGART_C_NR,
                BestellungFac.BESTELLUNGART_ABRUFBESTELLUNG_C_NR));
        crit.add(Restrictions.ne(BestellungFac.FLR_BESTELLUNG_BESTELLUNGART_C_NR,
                BestellungFac.BESTELLUNGART_LEIHBESTELLUNG_C_NR));

        // Einschraenkung nach Status Offen, Erledigt
        Collection<String> cStati = new LinkedList<String>();
        cStati.add(BestellungFac.BESTELLSTATUS_OFFEN);
        cStati.add(BestellungFac.BESTELLSTATUS_BESTAETIGT);
        cStati.add(BestellungFac.BESTELLSTATUS_ERLEDIGT);
        crit.add(Restrictions.in(BestellungFac.FLR_BESTELLUNG_BESTELLUNGSTATUS_C_NR, cStati));

        // Das Belegdatum muss vor dem Stichtag liegen
        crit.add(Restrictions.le(BestellungFac.FLR_BESTELLUNG_T_BELEGDATUM, dStichtag));

        // Einschraenkung nach einer bestimmten Kostenstelle
        if (reportJournalKriterienDtoI.kostenstelleIId != null) {
            crit.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_KOSTENSTELLE_I_ID,
                    reportJournalKriterienDtoI.kostenstelleIId));
        }

        // Einschraenkung nach einem bestimmten Lieferanten
        if (reportJournalKriterienDtoI.lieferantIId != null) {
            crit.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_LIEFERANT_I_ID_BESTELLADRESSE,
                    reportJournalKriterienDtoI.lieferantIId));
        }

        // Sortierung nach Kostenstelle ist immer die erste Sortierung
        if (reportJournalKriterienDtoI.bSortiereNachKostenstelle) {
            crit.createCriteria(BestellungFac.FLR_BESTELLUNG_FLRKOSTENSTELLE).addOrder(Order.asc("c_nr"));
        }

        // Sortierung nach Kunde, eventuell innerhalb der Kostenstelle
        if (reportJournalKriterienDtoI.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) {
            crit.createCriteria(BestellungFac.FLR_BESTELLUNG_FLRLIEFERANT)
                    .createCriteria(LieferantFac.FLR_PARTNER)
                    .addOrder(Order.asc(PartnerFac.FLR_PARTNER_NAME1NACHNAMEFIRMAZEILE1));

        }
        // Sortierung nach Projekt, eventuell innerhalb der Kostenstelle
        else if (reportJournalKriterienDtoI.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PROJEKT) {
            crit.addOrder(Order.asc(BestellungFac.FLR_BESTELLUNG_C_BEZPROJEKTBEZEICHNUNG));
        }
        // Sortierung nach Liefertermin (optional)
        if (bSortierungNachLiefertermin != null && bSortierungNachLiefertermin.booleanValue()) {
            crit.addOrder(Order.asc(BestellungFac.FLR_BESTELLUNG_T_LIEFERTERMIN));
        }

        // es wird in jedem Fall nach der Belegnummer sortiert
        crit.addOrder(Order.asc("c_nr"));

        List<?> list = crit.list();
        aResult = new ReportBestellungOffeneDto[list.size()];
        int iIndex = 0;
        Iterator<?> it = list.iterator();
        ReportBestellungOffeneDto reportDto = null;

        while (it.hasNext()) {
            FLRBestellung flrbestellung = (FLRBestellung) it.next();
            Session session1 = null;
            session1 = factory.openSession();
            Criteria crit1 = session1.createCriteria(FLRBestellposition.class);
            // keine erledigten Positionen.
            crit1.add(Restrictions.ne(BestellpositionFac.FLR_BESTELLPOSITION_BESTELLPOSITIONSTATUS_C_NR,
                    BestellpositionFac.BESTELLPOSITIONSTATUS_ERLEDIGT));
            // und nur die, die sich auf den aktuellen Bestellung beziehen.
            Criteria crit1Bestellung = crit1
                    .createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRBESTELLUNG);
            crit1Bestellung.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_I_ID, flrbestellung.getI_id()));
            int anzahlPositionen = 0;
            List<?> resultList = crit1.list();
            for (Iterator<?> iter = resultList.iterator(); iter.hasNext();) {
                FLRBestellposition item = (FLRBestellposition) iter.next();
                if (item.getBestellpositionart_c_nr().equals(BestellpositionFac.BESTELLPOSITIONART_IDENT)
                        || item.getBestellpositionart_c_nr()
                                .equals(BestellpositionFac.BESTELLPOSITIONART_HANDEINGABE)) {
                    anzahlPositionen++;
                }
            }

            reportDto = new ReportBestellungOffeneDto();
            reportDto.setIIdBestellung(flrbestellung.getI_id());
            reportDto.setCNrBestellung(flrbestellung.getC_nr());
            reportDto.setLieferantCName1(
                    flrbestellung.getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1());
            reportDto.setIAnzahlPositionen(anzahlPositionen);

            aResult[iIndex] = reportDto;
            iIndex++;

        }
    } finally {
        closeSession(session);
    }
    return aResult;
}

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;/* w  w  w  .j a v  a2  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;//from  w  w w  . j a  va  2  s .co  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.lushapp.common.orm.hibernate.HibernateDao.java

License:Apache License

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

From source file:com.lushapp.modules.sys.web.AviationOrderController.java

License:Apache License

/**
 * //from w ww .  java 2s .com
 * 
 *
 * @throws Exception
 */
@RequestMapping(value = { "customCombobox" })
@ResponseBody
public List<Combobox> customCombobox(String selectType) throws Exception {
    List<Combobox> cList = Lists.newArrayList();

    //combobox  "------"?"------"
    if (!StringUtils.isBlank(selectType)) {
        SelectType s = SelectType.getSelectTypeValue(selectType);
        if (s != null) {
            Combobox selectCombobox = new Combobox("", s.getDescription());
            cList.add(selectCombobox);
        }
    }
    List<AviationBuyers> aviationBuyersList = new ArrayList<AviationBuyers>();

    aviationBuyersList = aviationBuyersManager
            .findByCriteria(Restrictions.ne("status", StatusState.delete.getValue()));

    for (int i = 0; i < aviationBuyersList.size(); i++) {
        //Combobox combobox = new Combobox(aviationBuyersList[i].getValue().toString(), aviationBuyersList[i].getDescription());
        //cList.add(combobox);
    }
    return cList;
}

From source file:com.mac.green_leaves.v1.dashboard.receive_dashboard.DashboardService.java

List<TGreenLeavesWeigh> getGeenLeavesWeighTotalSummary(greenLeavesSummry leavesSummry) {
    Criteria criteria = entityManager.unwrap(Session.class).createCriteria(TGreenLeavesWeigh.class);
    criteria.add(Restrictions.eq("type", leavesSummry.getType()));

    if (leavesSummry.getBranch() != null) {
        criteria.add(Restrictions.eq("branch", leavesSummry.getBranch()));
    }/*from w w  w  .  ja  v  a  2  s.c o m*/

    if (leavesSummry.getFromDate() != null && leavesSummry.getToDate() != null) {
        criteria.add(Restrictions.between("date", leavesSummry.getFromDate(), leavesSummry.getToDate()));
    }

    if (leavesSummry.getRoute() != null) {
        criteria.add(Restrictions.eq("route", leavesSummry.getRoute()));
    }

    if (!"null".equals(leavesSummry.getStatus())) {
        if (leavesSummry.getStatus() != null) {
            criteria.add(Restrictions.eq("status", leavesSummry.getStatus()));
        }
    }

    if (leavesSummry.getClient() != null) {
        criteria.add(Restrictions.eq("client", leavesSummry.getClient()));
    }

    if (leavesSummry.getRouteOfficer() != null) {
        criteria.add(Restrictions.eq("routeOfficer", leavesSummry.getRouteOfficer()));
    }

    if (leavesSummry.getRouteHelper() != null) {
        criteria.add(Restrictions.eq("routeHelper", leavesSummry.getRouteHelper()));
    }

    if (leavesSummry.getVehicle() != null) {
        criteria.add(Restrictions.eq("vehicle", leavesSummry.getVehicle()));
    }

    if (leavesSummry.getFromDate() == null && leavesSummry.getToDate() == null
            && leavesSummry.getRoute() == null && leavesSummry.getClient() == null
            && leavesSummry.getRouteOfficer() == null && leavesSummry.getRouteHelper() == null
            && leavesSummry.getVehicle() == null) {
        throw new EntityNotFoundException("green leaves weigh not found");
    }

    criteria.setResultTransformer(DetachedCriteria.DISTINCT_ROOT_ENTITY);
    criteria.addOrder(Order.asc("date"));
    criteria.add(Restrictions.ne("status", "DELETED"));
    List<TGreenLeavesWeigh> greenLeavesWeigh = criteria.list();
    return greenLeavesWeigh;
}

From source file:com.mac.green_leaves.v1.dashboard.receive_dashboard.DashboardService.java

List<TGreenLeavesReceive> getGeenLeavesReceiveTotalSummary(greenLeavesSummry leavesSummry) {
    if ("client".equals(leavesSummry.getType())) {
        Criteria criteria = entityManager.unwrap(Session.class).createCriteria(TGreenLeavesReceive.class);

        if (leavesSummry.getBranch() != null) {
            criteria.add(Restrictions.eq("branch", leavesSummry.getBranch()));
        }//from w ww. jav a  2  s . co  m

        if (leavesSummry.getFromDate() != null && leavesSummry.getToDate() != null) {
            criteria.add(Restrictions.between("date", leavesSummry.getFromDate(), leavesSummry.getToDate()));
        }

        if (!"null".equals(leavesSummry.getStatus())) {
            if (leavesSummry.getStatus() != null) {
                criteria.add(Restrictions.eq("status", leavesSummry.getStatus()));
            }
        }

        if (leavesSummry.getRoute() != null) {
            criteria.add(Restrictions.eq("route", leavesSummry.getRoute()));
        }

        if (leavesSummry.getClient() != null) {
            System.out.println(leavesSummry.getClient());
            criteria.createAlias("greenLeavesReceiveDetails", "glrd");
            criteria.add(Restrictions.eq("glrd.client", leavesSummry.getClient()));
        }

        if (leavesSummry.getClient() == null && leavesSummry.getRoute() == null
                && leavesSummry.getFromDate() == null && leavesSummry.getToDate() == null) {
            throw new EntityNotFoundException("green leaves receive not found");
        }

        criteria.setResultTransformer(DetachedCriteria.DISTINCT_ROOT_ENTITY);
        criteria.addOrder(Order.asc("date"));
        //get only bulk receive
        criteria.add(Restrictions.eq("type", "BULK"));
        criteria.add(Restrictions.ne("status", "DELETED"));
        List<TGreenLeavesReceive> greenLeavesReceives = criteria.list();
        return greenLeavesReceives;

    } else {
        Criteria criteria = entityManager.unwrap(Session.class).createCriteria(TGreenLeavesReceive.class);

        if (leavesSummry.getBranch() != null) {
            criteria.add(Restrictions.eq("branch", leavesSummry.getBranch()));
        }

        if (leavesSummry.getFromDate() != null && leavesSummry.getToDate() != null) {
            criteria.add(Restrictions.between("date", leavesSummry.getFromDate(), leavesSummry.getToDate()));
        }

        if (!"null".equals(leavesSummry.getStatus())) {
            if (leavesSummry.getStatus() != null) {
                criteria.add(Restrictions.eq("status", leavesSummry.getStatus()));
            }
        }

        if (leavesSummry.getRoute() != null) {
            criteria.add(Restrictions.eq("route", leavesSummry.getRoute()));
        }

        if (leavesSummry.getClient() == null && leavesSummry.getRoute() == null
                && leavesSummry.getFromDate() == null && leavesSummry.getToDate() == null) {
            throw new EntityNotFoundException("green leaves receive not found");
        }

        criteria.setResultTransformer(DetachedCriteria.DISTINCT_ROOT_ENTITY);
        criteria.addOrder(Order.asc("date"));
        //get only bulk receive
        criteria.add(Restrictions.eq("type", "BULK"));
        criteria.add(Restrictions.ne("status", "DELETED"));
        List<TGreenLeavesReceive> greenLeavesReceives = criteria.list();
        return greenLeavesReceives;
    }
}