Example usage for org.hibernate.criterion Restrictions like

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

Introduction

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

Prototype

public static SimpleExpression like(String propertyName, Object value) 

Source Link

Document

Apply a "like" constraint to the named property

Usage

From source file:com.jubination.model.dao.DataAnalyticsDAOImpl.java

@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
public Object readPropertyByRecency() {
    List<DataAnalytics> list = new ArrayList<>();

    session = getSessionFactory().getCurrentSession();
    List<String> tempList = session.createCriteria(DataAnalytics.class)
            .setProjection(Projections.projectionList().add(Projections.max("requestedTime"))
            //.add(Projections.groupProperty("type"))
            ).list();//from   www  .  ja v a  2s.  co m

    if (tempList.size() > 0) {
        list = session.createCriteria(DataAnalytics.class)
                .add(Restrictions.like("requestedTime", tempList.get(0))).list();
    }

    return (T) list;

}

From source file:com.kodemore.hibernate.criteria.KmAbstractCriteria.java

License:Open Source License

public void addLike(String property, String value) {
    _add(Restrictions.like(property, value));
}

From source file:com.krawler.common.util.BuildCriteria.java

License:Open Source License

private static Criterion getCriteriaByCondition(Object value, Integer criteriaVal, String propertyname) {
    Criterion Criteriaobj;/*from   ww w .ja  va  2s.  co m*/

    switch (criteriaVal) {
    case ISNOTNULL:
        Criteriaobj = Restrictions.isNotNull(propertyname);
        break;
    case NOTIN:
        String[] strArr = String.valueOf(value).split(",");
        List ls = Arrays.asList(strArr);
        Criteriaobj = Restrictions.not(Restrictions.in(propertyname, ls));
        break;
    case LIKE:
        Criteriaobj = Restrictions.or(Restrictions.like(propertyname, value + "%"),
                Restrictions.like(propertyname, "% " + value + "%"));
        break;
    case LE:
        Criteriaobj = Restrictions.le(propertyname, value);
        break;
    case GE:
        Criteriaobj = Restrictions.ge(propertyname, value);
        break;
    case ISNULL:
        Criteriaobj = Restrictions.isNull(propertyname);
        break;
    case IN:
        strArr = String.valueOf(value).split(",");
        ls = Arrays.asList(strArr);
        Criteriaobj = Restrictions.in(propertyname, ls);
        break;
    case NE:
        Criteriaobj = Restrictions.ne(propertyname, value);
        break;
    case LT:
        Criteriaobj = Restrictions.lt(propertyname, value);
        break;
    case GT:
        Criteriaobj = Restrictions.gt(propertyname, value);
        break;
    case EQ:
    default:
        Criteriaobj = Restrictions.eq(propertyname, value);
        break;
    }
    return Criteriaobj;
}

From source file:com.liferay.portal.workflow.jbpm.dao.CustomSession.java

License:Open Source License

protected Criteria buildTaskInstanceExtensionSearchCriteria(String taskName, String assetType,
        Long[] assetPrimaryKeys, Date dueDateGT, Date dueDateLT, Boolean completed, Boolean searchByUserRoles,
        boolean andOperator, ServiceContext serviceContext) throws SystemException {

    Criteria criteria = _session.createCriteria(TaskInstanceExtensionImpl.class);

    criteria.createAlias("taskInstance", "taskInstance");

    criteria.add(Restrictions.eq("companyId", serviceContext.getCompanyId()));

    if (Validator.isNotNull(taskName) || Validator.isNotNull(assetType) || (dueDateGT != null)
            || (dueDateLT != null)) {/*from  w  w w  .j av  a2 s . c om*/

        Junction junction = null;

        if (andOperator) {
            junction = Restrictions.conjunction();
        } else {
            junction = Restrictions.disjunction();
        }

        if (Validator.isNotNull(taskName)) {
            String[] taskNameKeywords = StringUtil.split(taskName, StringPool.SPACE);

            for (String taskNameKeyword : taskNameKeywords) {
                junction.add(Restrictions.like("taskInstance.name", "%" + taskNameKeyword + "%"));
            }
        }

        if (Validator.isNotNull(assetType)) {
            String[] assetTypeKeywords = StringUtil.split(assetType, StringPool.SPACE);

            for (String assetTypeKeyword : assetTypeKeywords) {
                junction.add(
                        Restrictions.like("workflowContext", "%\"entryType\":\"%" + assetTypeKeyword + "%\"%"));
            }
        }

        if (Validator.isNotNull(assetPrimaryKeys)) {
            for (Long assetPrimaryKey : assetPrimaryKeys) {
                junction.add(Restrictions.like("workflowContext",
                        "%\"entryClassPK\":\"%" + assetPrimaryKey + "%\"%"));
            }
        }

        if (dueDateGT != null) {
            junction.add(Restrictions.ge("taskInstance.dueDate", dueDateGT));
        }

        if (dueDateLT != null) {
            junction.add(Restrictions.lt("taskInstance.dueDate", dueDateGT));
        }

        criteria.add(junction);
    }

    addSearchByUserRolesCriterion(criteria, searchByUserRoles, serviceContext);

    if (completed != null) {
        if (completed.booleanValue()) {
            criteria.add(Restrictions.isNotNull("taskInstance.end"));
        } else {
            criteria.add(Restrictions.isNull("taskInstance.end"));
        }
    }

    return criteria;
}

From source file:com.liferay.portal.workflow.jbpm.dao.CustomSession.java

License:Open Source License

protected Criteria buildProcessInstanceExtensionSearchCriteria(long companyId, Long userId,
        String assetClassName, Long assetClassPK, Boolean completed) {

    Criteria criteria = _session.createCriteria(ProcessInstanceExtensionImpl.class);

    criteria.add(Restrictions.eq("companyId", companyId));

    if (userId != null) {
        criteria.add(Restrictions.eq("userId", userId));
    }//from w  w  w  .  j a v  a2s  .co m

    if (Validator.isNotNull(assetClassName)) {
        criteria.add(Restrictions.like("className", assetClassName));
    }

    if (Validator.isNotNull(assetClassPK)) {
        criteria.add(Restrictions.eq("classPK", assetClassPK));
    }

    if (completed != null) {
        Criteria completionCriteria = criteria.createCriteria("processInstance");

        if (completed) {
            completionCriteria.add(Restrictions.isNotNull("end"));
        } else {
            completionCriteria.add(Restrictions.isNull("end"));
        }
    }

    return criteria;
}

From source file:com.llaf.elementos.model.DAOUsuario.java

public String obtenerPorNOmbre(String nombre) throws Exception {
    SessionFactory factory = HIbernateUtilidades.getSessionFactory();
    Session sesion = factory.openSession();
    Transaction tranza = sesion.beginTransaction();

    Criteria cri = sesion.createCriteria(Usuarios.class).add(Restrictions.like("nombre", nombre + "%"));
    Criteria cri2 = sesion.createCriteria(Usuarios.class).add(Restrictions.eq("nombre", nombre));
    Criteria cri3 = sesion.createCriteria(Usuarios.class).add(Restrictions.between("edad", 18, 40))
            .addOrder(Order.asc("nombre"));
    Criteria cri4 = sesion.createCriteria(Usuarios.class).add(Restrictions.lt("sueldo", new Integer(4000)));
    Criteria cri5 = sesion.createCriteria(Usuarios.class).add(Restrictions.gt("sueldo", new Integer(4000)));

    ArrayList<Usuarios> usuarios = (ArrayList<Usuarios>) cri.list();

    ObjectMapper mapper = new ObjectMapper();

    Map<String, ArrayList<Usuarios>> singletonMap = Collections.singletonMap("usuarios", usuarios);

    tranza.commit();//from   w ww . j  ava  2 s . c o m
    sesion.close();

    return mapper.writeValueAsString(singletonMap);
}

From source file:com.lohika.alp.reporter.fe.query.QueryTranslator.java

License:Open Source License

private Criterion translate(String propertyName, Query exp) throws QueryTranslatorException {

    if (exp instanceof Word) {
        String value = "%" + ((Word) exp).getValue() + "%";
        return Restrictions.like(propertyName, value);
    } else if (exp instanceof SQLLike) {
        String value = ((SQLLike) exp).getValue();
        return Restrictions.like(propertyName, value);
    } else if (exp instanceof Or) {
        Criterion left = translate(propertyName, ((Or) exp).getLeft());
        Criterion right = translate(propertyName, ((Or) exp).getRight());

        return Restrictions.or(left, right);
    }/* ww w  . j a v a 2  s  .  c om*/

    throw new QueryTranslatorException("Unknown query type: " + propertyName + ", " + exp.getClass());
}

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

License:Open Source License

/**
 * Alle offenen Bestellungen fuer einen bestimmten Mandanten drucken.
 * //from   www. ja  v a2 s .c o  m
 * @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

public JasperPrintLP printBestellungWareneingangsJournal(ReportJournalKriterienDto krit,
        Integer artikelklasseIId, Integer artikelgruppeIId, String artikelCNrVon, String artikelCNrBis,
        String projektCBezeichnung, Integer auftragIId, boolean bMitWarenverbrauch, TheClientDto theClientDto)
        throws EJBExceptionLP, RemoteException {

    Session session = null;/*  w  ww.jav  a 2 s  .c o m*/
    useCase = UC_BESTELLUNG_WARENEINGANG;
    SessionFactory factory = FLRSessionFactory.getFactory();
    session = factory.openSession();

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

    Criteria c = session.createCriteria(FLRWareneingangspositionen.class);
    Criteria cWe = c.createCriteria(WareneingangFac.FLR_WEPOS_FLRWARENEINGANG);
    Criteria cBesPos = c.createCriteria(WareneingangFac.FLR_WEPOS_FLRBESTELLPOSITION);
    Criteria cArt = cBesPos.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRARTIKEL);
    Criteria cBestellung = cWe.createCriteria(WareneingangFac.FLR_WE_FLRBESTELLUNG);
    cBestellung.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_MANDANT_C_NR, theClientDto.getMandant()));
    // Datum von
    if (krit.dVon != null) {
        cWe.add(Restrictions.ge(WareneingangFac.FLRSPALTE_T_WARENEINGANGSDATUM, Helper.cutDate(krit.dVon)));
    }
    // Datum bis
    if (krit.dBis != null) {

        java.sql.Date dBisTemp = Helper.cutDate(new java.sql.Date(krit.dBis.getTime() + 24 * 3600000));
        cWe.add(Restrictions.lt(WareneingangFac.FLRSPALTE_T_WARENEINGANGSDATUM, dBisTemp));
    }
    // Filter nach Projektbezeichnung
    if (projektCBezeichnung != null) {
        cBestellung.add(Restrictions.ilike(BestellungFac.FLR_BESTELLUNG_C_BEZPROJEKTBEZEICHNUNG,
                "%" + projektCBezeichnung + "%"));
    }
    // Filter nach Auftrag
    if (auftragIId != null) {
        cBestellung.add(Restrictions.like(BestellungFac.FLR_BESTELLUNG_AUFTRAG_I_ID, auftragIId));
    }

    LpBelegnummerFormat f = getBelegnummerGeneratorObj().getBelegnummernFormat(theClientDto.getMandant());
    Integer iGeschaeftsjahr = getParameterFac().getGeschaeftsjahr(theClientDto.getMandant());
    String sMandantKuerzel = getParameterFac().getMandantparameter(theClientDto.getMandant(),
            ParameterFac.KATEGORIE_ALLGEMEIN, ParameterFac.PARAMETER_BELEGNUMMER_MANDANTKENNUNG).getCWert();
    // reportjournal: 06 belegnummer von
    // reportjournalbelegnummer: 1 (von) hier funktionierts fast gleich
    // wie bei den Direktfiltern
    if (krit.sBelegnummerVon != null) {
        String sVon = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr,
                sMandantKuerzel, krit.sBelegnummerVon);
        cBestellung.add(Restrictions.ge(BestellungFac.FLR_BESTELLUNG_C_NR, sVon));
    }
    // reportjournal: 07 belegnummer bis
    // reportjournalbelegnummer: 2 (bis) detto
    if (krit.sBelegnummerBis != null) {
        String sBis = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr,
                sMandantKuerzel, krit.sBelegnummerBis);
        cBestellung.add(Restrictions.le(BestellungFac.FLR_BESTELLUNG_C_NR, sBis));
    }
    // Einschraenkung nach einer bestimmten Kostenstelle
    if (krit.kostenstelleIId != null) {
        cBestellung.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_KOSTENSTELLE_I_ID, krit.kostenstelleIId));
    }

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

    if (artikelklasseIId != null) {
        cArt.createCriteria(ArtikelFac.FLR_ARTIKEL_FLRARTIKELKLASSE)
                .add(Restrictions.eq("i_id", artikelklasseIId));
    }
    if (artikelgruppeIId != null) {
        cArt.createCriteria(ArtikelFac.FLR_ARTIKEL_FLRARTIKELGRUPPE)
                .add(Restrictions.eq("i_id", artikelgruppeIId));
    }
    if (artikelCNrVon != null) {
        cArt.add(Restrictions.ge(ArtikelFac.FLR_ARTIKEL_C_NR, artikelCNrVon));
    }
    if (artikelCNrBis != null) {
        cArt.add(Restrictions.le(ArtikelFac.FLR_ARTIKEL_C_NR, artikelCNrBis));
    }

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

    Map<String, Object> map = new TreeMap<String, Object>();

    if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_DATUM) {
        cWe.addOrder(Order.asc(WareneingangFac.FLRSPALTE_T_WARENEINGANGSDATUM));
        map.put(LPReport.P_SORTIERUNG,
                getTextRespectUISpr("bes.wedatum", theClientDto.getMandant(), theClientDto.getLocUi()));

    } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_IDENT) {
        cArt.addOrder(Order.asc(ArtikelFac.FLR_ARTIKEL_C_NR));
        map.put(LPReport.P_SORTIERUNG,
                getTextRespectUISpr("lp.artikel", theClientDto.getMandant(), theClientDto.getLocUi()));
    } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_BELEGNUMMER) {
        cBestellung.addOrder(Order.asc(BestellungFac.FLR_BESTELLUNG_C_NR));
        map.put(LPReport.P_SORTIERUNG,
                getTextRespectUISpr("bes.belegnummer", theClientDto.getMandant(), theClientDto.getLocUi()));
    } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PROJEKT) {
        cBestellung.addOrder(Order.asc(BestellungFac.FLR_BESTELLUNG_C_BEZPROJEKTBEZEICHNUNG));
        map.put(LPReport.P_SORTIERUNG,
                getTextRespectUISpr("lp.projekt", theClientDto.getMandant(), theClientDto.getLocUi()));
    } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) {
        cBestellung.createCriteria(BestellungFac.FLR_BESTELLUNG_FLRLIEFERANT)
                .createCriteria(LieferantFac.FLR_PARTNER)
                .addOrder(Order.asc(PartnerFac.FLR_PARTNER_NAME1NACHNAMEFIRMAZEILE1));
        map.put(LPReport.P_SORTIERUNG,
                getTextRespectUISpr("lp.partner", theClientDto.getMandant(), theClientDto.getLocUi()));
    } else {
        c.addOrder(Order.asc("i_id"));
        map.put(LPReport.P_SORTIERUNG, "i_id");
    }
    List<?> list = c.list();
    data = new Object[list.size()][REPORT_BSWARENEINGANGSJOURNAL_ANZAHL_SPALTEN];
    int i = 0;
    for (Iterator<?> iter = list.iterator(); iter.hasNext();) {
        FLRWareneingangspositionen w = (FLRWareneingangspositionen) iter.next();
        if (w.getFlrwareneingang().getT_wareneingansdatum() != null) {
            data[i][REPORT_BSWARENEINGANGSJOURNAL_DATUM] = w.getFlrwareneingang().getT_wareneingansdatum();
        }
        if (w.getFlrwareneingang().getFlrbestellung().getC_nr() != null) {
            data[i][REPORT_BSWARENEINGANGSJOURNAL_BESTELLNUMMER] = w.getFlrwareneingang().getFlrbestellung()
                    .getC_nr();
        } else {
            data[i][REPORT_BSWARENEINGANGSJOURNAL_BESTELLNUMMER] = "";
        }
        if (w.getFlrbestellposition().getFlrartikel().getC_nr() != null) {
            data[i][REPORT_BSWARENEINGANGSJOURNAL_IDENT] = w.getFlrbestellposition().getFlrartikel().getC_nr();
        } else {
            data[i][REPORT_BSWARENEINGANGSJOURNAL_IDENT] = "";
        }
        if (w.getFlrbestellposition().getC_bezeichnung() != null) {
            data[i][REPORT_BSWARENEINGANGSJOURNAL_BEZEICHNUNG] = w.getFlrbestellposition().getC_bezeichnung();
        } else {
            ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKeySmall(
                    w.getFlrbestellposition().getFlrartikel().getI_id(), theClientDto);
            data[i][REPORT_BSWARENEINGANGSJOURNAL_BEZEICHNUNG] = artikelDto.formatBezeichnung();
        }
        if (bMitWarenverbrauch) {
            data[i][REPORT_BSWARENEINGANGSJOURNAL_WA_REFERENZ] = getLagerFac()
                    .getWarenausgangsreferenzSubreport(LocaleFac.BELEGART_BESTELLUNG, w.getI_id(), null,
                            theClientDto);
        }
        // SP903
        if (w.getFlrbestellposition().getPosition_i_id_artikelset() != null) {
            data[i][REPORT_BSWARENEINGANGSJOURNAL_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", w.getFlrbestellposition().getI_id()));

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

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

        }

        data[i][REPORT_BSWARENEINGANGSJOURNAL_PROJEKT] = w.getFlrbestellposition().getFlrbestellung()
                .getC_bezprojektbezeichnung();
        data[i][REPORT_BSWARENEINGANGSJOURNAL_LIEFERANT] = w.getFlrbestellposition().getFlrbestellung()
                .getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1();

        if (w.getN_geliefertemenge() != null) {
            data[i][REPORT_BSWARENEINGANGSJOURNAL_MENGE] = w.getN_geliefertemenge();
        } else {
            data[i][REPORT_BSWARENEINGANGSJOURNAL_MENGE] = new BigDecimal(0);
        }
        if (w.getN_gelieferterpreis() != null) {
            if (darfEinkaufspreisSehen) {

                BigDecimal kurs = new BigDecimal(w.getFlrwareneingang().getFlrbestellung()
                        .getF_wechselkursmandantwaehrungbestellungswaehrung());
                if (kurs.doubleValue() != 0) {
                    data[i][REPORT_BSWARENEINGANGSJOURNAL_GELIEFERTERPREIS] = w.getN_gelieferterpreis()
                            .divide(kurs, 4, BigDecimal.ROUND_HALF_EVEN);
                } else {
                    data[i][REPORT_BSWARENEINGANGSJOURNAL_GELIEFERTERPREIS] = new BigDecimal(0);
                }

            } else {
                data[i][REPORT_BSWARENEINGANGSJOURNAL_GELIEFERTERPREIS] = null;
            }
        } else {
            if (darfEinkaufspreisSehen) {
                data[i][REPORT_BSWARENEINGANGSJOURNAL_GELIEFERTERPREIS] = new BigDecimal(0);
            } else {
                data[i][REPORT_BSWARENEINGANGSJOURNAL_GELIEFERTERPREIS] = null;
            }
        }

        if (w.getN_einstandspreis() != null) {
            if (darfEinkaufspreisSehen) {

                BigDecimal kurs = new BigDecimal(w.getFlrwareneingang().getFlrbestellung()
                        .getF_wechselkursmandantwaehrungbestellungswaehrung());
                if (kurs.doubleValue() != 0) {
                    data[i][REPORT_BSWARENEINGANGSJOURNAL_EINSTANDSPREIS] = w.getN_einstandspreis().divide(kurs,
                            4, BigDecimal.ROUND_HALF_EVEN);
                } else {
                    data[i][REPORT_BSWARENEINGANGSJOURNAL_EINSTANDSPREIS] = new BigDecimal(0);
                }

            } else {
                data[i][REPORT_BSWARENEINGANGSJOURNAL_EINSTANDSPREIS] = null;
            }
        } else {
            if (darfEinkaufspreisSehen) {
                data[i][REPORT_BSWARENEINGANGSJOURNAL_EINSTANDSPREIS] = new BigDecimal(0);
            } else {
                data[i][REPORT_BSWARENEINGANGSJOURNAL_EINSTANDSPREIS] = null;
            }
        }

        data[i][REPORT_BSWARENEINGANGSJOURNAL_LIEFERSCHEIN] = w.getFlrwareneingang().getC_lieferscheinnr();
        data[i][REPORT_BSWARENEINGANGSJOURNAL_LIEFERSCHEINDATUM] = w.getFlrwareneingang()
                .getT_lieferscheindatum();

        if (w.getFlrwareneingang().getFlreingangsrechnung() != null) {
            data[i][REPORT_BSWARENEINGANGSJOURNAL_EINGANGSRECHNUNG] = w.getFlrwareneingang()
                    .getFlreingangsrechnung().getC_nr();
        }

        if (w.getFlrwareneingang().getFlrbestellung().getFlrkostenstelle() != null) {

            data[i][REPORT_BSWARENEINGANGSJOURNAL_KOSTENSTELLE] = w.getFlrwareneingang().getFlrbestellung()
                    .getFlrkostenstelle().getC_nr();
        }
        data[i][REPORT_BSWARENEINGANGSJOURNAL_ZUBUCHUNGSLAGER] = w.getFlrwareneingang().getFlrlager().getC_nr();
        data[i][REPORT_BSWARENEINGANGSJOURNAL_RABATTSATZ] = w.getFlrwareneingang().getF_rabattsatz();
        if (w.getFlrwareneingang().getFlrbestellung().getAuftrag_i_id() != null) {
            data[i][REPORT_BSWARENEINGANGSJOURNAL_AUFTRAG] = w.getFlrwareneingang().getFlrbestellung()
                    .getFlrauftrag().getC_nr();
        }
        if (w.getFlrbestellposition().getFlrartikel().getFlrartikelklasse() != null) {
            w.getFlrbestellposition().getFlrartikel().getFlrartikelklasse().getC_nr();
            data[i][REPORT_BSWARENEINGANGSJOURNAL_ARTIKELKLASSE] = w.getFlrbestellposition().getFlrartikel()
                    .getFlrartikelklasse().getC_nr();
        }
        if (w.getFlrbestellposition().getFlrartikel().getFlrartikelgruppe() != null) {
            w.getFlrbestellposition().getFlrartikel().getFlrartikelgruppe().getC_nr();
            data[i][REPORT_BSWARENEINGANGSJOURNAL_ARTIKELGRUPPE] = w.getFlrbestellposition().getFlrartikel()
                    .getFlrartikelgruppe().getC_nr();
        }

        data[i][REPORT_BSWARENEINGANGSJOURNAL_TRANSPORTKOSTEN] = w.getFlrwareneingang().getN_transportkosten();
        data[i][REPORT_BSWARENEINGANGSJOURNAL_BANKSPESEN] = w.getFlrwareneingang().getN_bankspesen();
        data[i][REPORT_BSWARENEINGANGSJOURNAL_ZOLLKOSTEN] = w.getFlrwareneingang().getN_zollkosten();
        data[i][REPORT_BSWARENEINGANGSJOURNAL_SONSTIGEKOSTEN] = w.getFlrwareneingang().getN_sonstigespesen();
        data[i][REPORT_BSWARENEINGANGSJOURNAL_GK_FAKTOR] = w.getFlrwareneingang().getF_gemeinkostenfaktor();

        i++;
    }

    if (krit.dBis != null) {
        map.put("P_BIS", new Timestamp(krit.dBis.getTime()));
    }
    if (krit.dVon != null) {
        map.put("P_VON", new Timestamp(krit.dVon.getTime()));
    }

    map.put("P_MIT_WARENVERBRAUCH", new Boolean(bMitWarenverbrauch));

    map.put(LPReport.P_REPORT_INFORMATION, "");
    initJRDS(map, BestellungReportFac.REPORT_MODUL, BestellungReportFac.REPORT_BESTELLUNG_JOURNAL_WARENEINGANG,
            theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto);

    session.close();
    return getReportPrint();
}

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

License:Open Source License

private IBuchungsjournalExportFormatter getBuchungsjournalExportFormatterHVRaw(Date von, Date bis,
        boolean mitAutoEB, boolean mitManEB, boolean mitAutoB, String bezeichnung, TheClientDto theClientDto)
        throws EJBExceptionLP, RemoteException {

    List<Integer> mitlaufendeKonten = getIIdsMitlaufendeKonten(theClientDto);
    Session session = FLRSessionFactory.getFactory().openSession();
    Criteria c = session.createCriteria(FLRFinanzBuchung.class, "b");
    c.createAlias("b.flrkostenstelle", "ks");
    if (!mitAutoB)
        c.add(Restrictions.like("b.b_autombuchung", 0));
    if (!mitAutoEB)
        c.add(Restrictions.like("b.b_autombuchungeb", 0));
    if (!mitManEB)
        c.add(Restrictions.not(Restrictions.like("b.buchungsart_c_nr", FinanzFac.BUCHUNGSART_EROEFFNUNG)));
    c.add(Restrictions.ge("b.d_buchungsdatum", von)).add(Restrictions.le("b.d_buchungsdatum", bis))
            .add(Restrictions.like("ks.mandant_c_nr", theClientDto.getMandant()))
            .addOrder(Order.asc("b.d_buchungsdatum")).addOrder(Order.asc("b.i_id"));

    Iterator<?> iter = c.list().iterator();

    List<FLRFinanzBuchungDetail> details = new ArrayList<FLRFinanzBuchungDetail>();
    while (iter.hasNext()) {
        FLRFinanzBuchung buchung = (FLRFinanzBuchung) iter.next();
        List<?> detailList = session.createCriteria(FLRFinanzBuchungDetail.class)
                .add(Restrictions.eq("buchung_i_id", buchung.getI_id())).addOrder(Order.asc("i_id")).list();
        List<FLRFinanzBuchungDetail> nichtSachkonto = new ArrayList<FLRFinanzBuchungDetail>();
        for (Object o : detailList) {
            FLRFinanzBuchungDetail detail = (FLRFinanzBuchungDetail) o;
            if (!detail.getFlrkonto().getKontotyp_c_nr().equals(FinanzServiceFac.KONTOTYP_SACHKONTO))
                nichtSachkonto.add(detail);
            //alle Debit-/Kreditorbuchungen merken
        }//  ww  w  . j  av  a 2  s .c om
        for (Object o : detailList) {
            FLRFinanzBuchungDetail detail = (FLRFinanzBuchungDetail) o;

            //            if(detailList.size() == 2) { // wenn nur 2 Buchungsdetails, dann muessen beide Exportiert werden
            //               details.add(detail);   //da die Buchung sonst nicht ausgeglichen ist.
            //               if(mitlaufendeKonten.contains(detail.getKonto_i_id()))
            //                  myLogger.warn("Direkte Buchung auf Sammelkonto: " +
            //                        "buchung_i_id = " + buchung.getI_id() + "; " +
            //                              "konto: " + detail.getFlrkonto().getC_nr() + " " +
            //                                    "" + detail.getFlrkonto().getC_bez());
            //            } else
            if (!mitlaufendeKonten.contains(detail.getKonto_i_id())) {
                details.add(detail); // nicht mitlaufende Konten mussen immer dabei sein.
            } else {
                boolean mitlaufend = false;
                for (FLRFinanzBuchungDetail nichtSKDetail : nichtSachkonto) {
                    if (detail.getN_betrag().equals(nichtSKDetail.getN_betrag()) && detail
                            .getBuchungdetailart_c_nr().equals(nichtSKDetail.getBuchungdetailart_c_nr())) {
                        mitlaufend = true;
                        break;
                    }
                    //anhand der vorher gemerkten Debi-/Kreditorbuchungen erkennen ob mitlaufende Buchung
                }
                if (!mitlaufend) {
                    details.add(detail);

                    myLogger.warn("Direkte Buchung auf mitlaufendes Konto: " + "buchung_i_id = "
                            + buchung.getI_id() + "; " + "belegnr: " + buchung.getC_belegnummer() + "; "
                            + "konto: " + detail.getFlrkonto().getC_nr() + " " + detail.getFlrkonto().getC_bez()
                            + (buchung.getT_storniert() == null ? "" : " ,storniert"));
                }
            }
        }

    }
    return new BuchungsjournalExportHVRawFormatter(details);
}