Example usage for org.hibernate.criterion CriteriaSpecification LEFT_JOIN

List of usage examples for org.hibernate.criterion CriteriaSpecification LEFT_JOIN

Introduction

In this page you can find the example usage for org.hibernate.criterion CriteriaSpecification LEFT_JOIN.

Prototype

int LEFT_JOIN

To view the source code for org.hibernate.criterion CriteriaSpecification LEFT_JOIN.

Click Source Link

Document

Specifies joining to an entity based on a left outer join.

Usage

From source file:com.ibm.asset.trails.dao.jpa.VSoftwareLparDAOJpa.java

public void paginatedList(DisplayTagList data, Account account, ReconSetting reconSetting, int startIndex,
        int objectsPerPage, String sort, String dir) {
    Criteria criteria = getHibernateSessionCriteria();

    criteria.createAlias("hardwareLpar", "hl")
            .createAlias("hl.hardwareLparEff", "hle", CriteriaSpecification.LEFT_JOIN)
            .createAlias("hl.hardware", "h").createAlias("h.machineType", "mt")
            .createAlias("installedSoftwares", "is")
            .createAlias("is.scheduleF", "sf", CriteriaSpecification.LEFT_JOIN)
            .createAlias("sf.scope", "scope", CriteriaSpecification.LEFT_JOIN)
            .createAlias("is.softwareLpar", "sl").createAlias("is.alert", "aus")
            .createAlias("aus.reconcile", "r", CriteriaSpecification.LEFT_JOIN)
            .createAlias("r.usedLicenses", "ul", CriteriaSpecification.LEFT_JOIN)
            .createAlias("ul.license", "license", CriteriaSpecification.LEFT_JOIN)
            .createAlias("r.reconcileType", "rt", CriteriaSpecification.LEFT_JOIN)
            .createAlias("is.software", "sw")
            .createAlias("sw.manufacturer", "mf", CriteriaSpecification.LEFT_JOIN)
            .add(Restrictions.eq("account", account));

    if (reconSetting.getReconcileType() != null) {
        criteria.add(Restrictions.eq("rt.id", reconSetting.getReconcileType()));
    }/*from   ww w .  j  a v  a2  s . c  o m*/

    if (StringUtils.isNotBlank(reconSetting.getAlertStatus())) {
        boolean open = false;
        if (reconSetting.getAlertStatus().equals("OPEN")) {
            open = true;
            criteria.add(Restrictions.eq("aus.open", open));
        } else {
            criteria.add(Restrictions.and(Restrictions.eq("aus.open", false),
                    Restrictions.eqProperty("is.id", "r.installedSoftware.id")));
        }

    } else {
        criteria.add(Restrictions.or(Restrictions.eq("aus.open", true),
                Restrictions.and(Restrictions.eq("aus.open", false),
                        Restrictions.eqProperty("is.id", "r.installedSoftware.id"))));
    }

    if (null != reconSetting.getAlertFrom() && reconSetting.getAlertFrom().intValue() >= 0) {
        criteria.add(Restrictions.ge("aus.alertAge", reconSetting.getAlertFrom()));
    }
    if (null != reconSetting.getAlertTo() && reconSetting.getAlertTo().intValue() >= 0) {
        criteria.add(Restrictions.le("aus.alertAge", reconSetting.getAlertTo()));
    }

    if (StringUtils.isNotBlank(reconSetting.getAssigned())) {
        if (reconSetting.getAssigned().equals("Assigned")) {
            criteria.add(Restrictions.ne("aus.remoteUser", "STAGING"));
        }
        if (reconSetting.getAssigned().equals("Unassigned")) {
            criteria.add(Restrictions.eq("aus.remoteUser", "STAGING"));
        }
    }

    if (StringUtils.isNotBlank(reconSetting.getAssignee())) {
        criteria.add(Restrictions.eq("aus.remoteUser", reconSetting.getAssignee()).ignoreCase());
    }

    if (StringUtils.isNotBlank(reconSetting.getOwner())) {
        if (reconSetting.getOwner().equalsIgnoreCase("IBM")) {
            criteria.add(Restrictions.eq("h.owner", reconSetting.getOwner()).ignoreCase());
        } else if (reconSetting.getOwner().equalsIgnoreCase("Customer")) {
            ArrayList<String> lalOwner = new ArrayList<String>();

            lalOwner.add("CUST");
            lalOwner.add("CUSTO");
            criteria.add(Restrictions.in("h.owner", lalOwner));
        }
    }

    // I'm not sure why the heck we aren't just getting a list of strings?
    if (reconSetting.getCountries().length > 0) {
        List<String> list = new ArrayList<String>();
        for (int i = 0; i < reconSetting.getCountries().length; i++) {
            if (StringUtils.isNotBlank(reconSetting.getCountries()[i])) {
                list.add(reconSetting.getCountries()[i].toUpperCase());
            }
        }

        if (list.size() > 0) {
            criteria.add(Restrictions.in("h.country", list));
        }
    }

    if (reconSetting.getNames().length > 0) {
        List<String> list = new ArrayList<String>();
        for (int i = 0; i < reconSetting.getNames().length; i++) {
            if (StringUtils.isNotBlank(reconSetting.getNames()[i])) {
                list.add(reconSetting.getNames()[i].toUpperCase());
            }
        }

        if (list.size() > 0) {
            criteria.add(Restrictions.in("hl.name", list));
        }
    }

    if (reconSetting.getSwcmIDs().length > 0) {
        List<String> list = new ArrayList<String>();
        for (int i = 0; i < reconSetting.getSwcmIDs().length; i++) {
            if (StringUtils.isNotBlank(reconSetting.getSwcmIDs()[i])) {
                list.add(reconSetting.getSwcmIDs()[i].toUpperCase());
            }
        }
        if (list.size() > 0) {
            criteria.add(Restrictions.in("license.extSrcId", list));
        }
    }

    if (reconSetting.getSerialNumbers().length > 0) {
        List<String> list = new ArrayList<String>();
        for (int i = 0; i < reconSetting.getSerialNumbers().length; i++) {
            if (StringUtils.isNotBlank(reconSetting.getSerialNumbers()[i])) {
                list.add(reconSetting.getSerialNumbers()[i].toUpperCase());
            }
        }

        if (list.size() > 0) {
            criteria.add(Restrictions.in("h.serial", list));
        }
    }

    if (reconSetting.getProductInfoNames().length > 0) {
        List<String> list = new ArrayList<String>();
        for (int i = 0; i < reconSetting.getProductInfoNames().length; i++) {
            if (StringUtils.isNotBlank(reconSetting.getProductInfoNames()[i])) {
                list.add(reconSetting.getProductInfoNames()[i]);
            }
        }

        if (list.size() > 0) {
            criteria.add(Restrictions.in("sw.softwareName", list));
        }
    }

    if (StringUtils.isNotBlank(reconSetting.getScope())) {
        if ("Not specified".equalsIgnoreCase(reconSetting.getScope())) {
            criteria.add(Restrictions.isNull("scope.description"));
        } else {
            criteria.add(Restrictions.eq("scope.description", reconSetting.getScope()));
        }
    }

    if (StringUtils.isNotBlank(reconSetting.getFinanResp())) {
        if ("Not Specified".trim().equalsIgnoreCase(reconSetting.getFinanResp())) {
            criteria.add(Restrictions.isNull("sf.SWFinanceResp"));
        } else {
            criteria.add(Restrictions.eq("sf.SWFinanceResp", reconSetting.getFinanResp()));
        }
    }

    criteria.setProjection(Projections.projectionList().add(Projections.property("aus.id").as("alertId"))
            .add(Projections.property("r.id").as("reconcileId"))
            .add(Projections.property("aus.alertAge").as("alertAgeI"))
            .add(Projections.property("is.id").as("installedSoftwareId"))
            .add(Projections.property("hl.name").as("hostname"))
            .add(Projections.property("sl.name").as("sl_hostname"))
            .add(Projections.property("hl.spla").as("spla"))
            .add(Projections.property("hl.sysplex").as("sysplex"))
            .add(Projections.property("hl.internetIccFlag").as("internetIccFlag"))
            .add(Projections.property("h.serial").as("serial"))
            .add(Projections.property("h.country").as("country"))
            .add(Projections.property("h.owner").as("owner"))
            .add(Projections.property("h.mastProcessorType").as("mastProcessorType"))
            .add(Projections.property("h.processorManufacturer").as("processorManufacturer"))
            .add(Projections.property("h.mastProcessorModel").as("mastProcessorModel"))
            .add(Projections.property("h.nbrCoresPerChip").as("nbrCoresPerChip"))
            .add(Projections.property("h.nbrOfChipsMax").as("nbrOfChipsMax"))
            .add(Projections.property("h.cpuLsprMips").as("cpuLsprMips"))
            .add(Projections.property("h.cpuIfl").as("cpuIFL"))
            .add(Projections.property("hl.partLsprMips").as("partLsprMips"))
            .add(Projections.property("h.cpuGartnerMips").as("cpuGartnerMips"))
            .add(Projections.property("hl.partGartnerMips").as("partGartnerMips"))
            .add(Projections.property("hl.effectiveThreads").as("effectiveThreads"))
            .add(Projections.property("hl.vcpu").as("vcpu")).add(Projections.property("h.cpuMsu").as("cpuMsu"))
            .add(Projections.property("hl.partMsu").as("partMsu"))
            .add(Projections.property("hl.serverType").as("lparServerType"))
            .add(Projections.property("h.shared").as("shared"))
            .add(Projections.property("h.multi_tenant").as("multi_tenant"))
            .add(Projections.property("mt.type").as("assetType"))
            .add(Projections.property("mt.name").as("assetName"))
            .add(Projections.property("h.hardwareStatus").as("hardwareStatus"))
            .add(Projections.property("hl.lparStatus").as("lparStatus"))
            .add(Projections.property("processorCount").as("processorCount"))
            .add(Projections.property("sw.softwareName").as("productInfoName"))
            .add(Projections.property("sw.softwareId").as("productInfoId"))
            .add(Projections.property("sw.pid").as("pid"))
            .add(Projections.property("mf.manufacturerName").as("manufacturerName"))
            .add(Projections.property("rt.name").as("reconcileTypeName"))
            .add(Projections.property("rt.id").as("reconcileTypeId"))
            .add(Projections.property("aus.remoteUser").as("assignee"))
            .add(Projections.property("h.processorCount").as("hardwareProcessorCount"))
            .add(Projections.property("hle.processorCount").as("hwLparEffProcessorCount"))
            .add(Projections.property("hl.osType").as("osType"))
            .add(Projections.property("hle.status").as("hwLparEffProcessorStatus"))
            .add(Projections.property("h.chips").as("chips")));
    criteria.setResultTransformer(new AliasToBeanResultTransformer(ReconWorkspace.class));

    criteria.addOrder(Order.desc("aus.open"));

    if (dir.equalsIgnoreCase("ASC")) {
        criteria.addOrder(Order.asc(sort));
    } else {
        criteria.addOrder(Order.desc(sort));
    }

    ArrayList<ReconWorkspace> list = new ArrayList<ReconWorkspace>();

    ScrollableResults itemCursor = criteria.scroll();
    itemCursor.beforeFirst();
    if (itemCursor.next()) {
        itemCursor.scroll(startIndex);
        int i = 0;

        while (objectsPerPage > i++) {
            ReconWorkspace rw = (ReconWorkspace) itemCursor.get(0);
            if (null != rw.getHwLparEffProcessorStatus()
                    && rw.getHwLparEffProcessorStatus().equalsIgnoreCase("INACTIVE")) {
                rw.setHwLparEffProcessorCount(0);
            }
            list.add(rw);
            if (!itemCursor.next())
                break;
        }

        data.setList(list);
        itemCursor.last();
        data.setFullListSize(itemCursor.getRowNumber() + 1);
        itemCursor.close();

        addSchedulef2List(account, data.getList());
    } else {
        data.setList(null);
        data.setFullListSize(0);
        itemCursor.close();
    }

}

From source file:com.ihsolution.hqipo.dao.utils.QueryHelper.java

License:Open Source License

protected String createAliases(String field) {
    String[] fStrs = field.split("\\.");
    String tmpField = "", fetchModeValue = "";
    int len = fStrs.length;

    if (len > 1) {
        for (int i = 0; len - i != 1; i++) {
            if (i == 0) {
                if (!aliases.contains(fStrs[i])) {
                    if (this.dto.getJoinTypes().containsKey(fStrs[i])) {

                        fetchModeValue = dto.getJoinTypes().get(fStrs[i]);
                        logger.info(fStrs[i] + "=" + fetchModeValue);
                        //FetchMode fmode = null;
                        int joinType = 0;
                        if (fetchModeValue.equals("left_join"))
                            joinType = CriteriaSpecification.LEFT_JOIN;//FetchMode.JOIN;
                        else if (fetchModeValue.equals("inner_join"))
                            joinType = CriteriaSpecification.INNER_JOIN;//.FetchMode.EAGER;
                        else
                            joinType = CriteriaSpecification.INNER_JOIN;//.FetchMode.EAGER;

                        detCriteria.createAlias(fStrs[i], fStrs[i], joinType);
                    } else {
                        detCriteria.createAlias(fStrs[i], fStrs[i]);
                    }//from w w w . ja v  a2 s .  c  om
                    aliases.add(fStrs[i]);
                }
            } else {
                if (!aliases.contains(fStrs[i])) {
                    String str = fStrs[i - 1] + "." + fStrs[i];
                    detCriteria.createAlias(str, fStrs[i]);
                    aliases.add(fStrs[i]);
                }
            }
        }
        tmpField = fStrs[len - 2] + "." + fStrs[len - 1];
    } else
        tmpField = field;

    return tmpField;
}

From source file:com.lp.server.fertigung.ejbfac.FertigungReportFacBean.java

License:Open Source License

@TransactionAttribute(TransactionAttributeType.NEVER)
public JasperPrintLP printOffene(java.sql.Date dStichtag, int iOptionStichtag, String belegNrVon,
        String belegNrBis, Integer kundeIId, Integer kostenstelleIId, Integer fertigungsgruppeIId,
        int iSortierung, TheClientDto theClientDto) throws EJBExceptionLP {
    Session session = null;//www .  jav  a  2  s.  c o m

    try {
        this.useCase = UC_OFFENE;
        this.index = -1;
        SessionFactory factory = FLRSessionFactory.getFactory();
        session = factory.openSession();
        Criteria c = session.createCriteria(FLRLosReport.class);
        c.add(Restrictions.eq(FertigungFac.FLR_LOS_MANDANT_C_NR, theClientDto.getMandant()));
        Map<String, Object> mapParameter = new TreeMap<String, Object>();

        if (kostenstelleIId != null) {
            KostenstelleDto kostenstelleDto = getSystemFac().kostenstelleFindByPrimaryKey(kostenstelleIId);
            mapParameter.put("P_KOSTENSTELLE", kostenstelleDto.formatKostenstellenbezeichnung());

            c.add(Restrictions.eq(FertigungFac.FLR_LOSREPORT_KOSTENSTELLE_I_ID, kostenstelleIId));
        }
        boolean flrAuftragSchonVerwendet = false;
        if (kundeIId != null) {
            KundeDto kundeDto = getKundeFac().kundeFindByPrimaryKey(kundeIId, theClientDto);
            mapParameter.put("P_KUNDE", kundeDto.getPartnerDto().formatFixTitelName1Name2());
            c.createAlias(FertigungFac.FLR_LOSREPORT_FLRAUFTRAG, "a", CriteriaSpecification.LEFT_JOIN);
            flrAuftragSchonVerwendet = true;
            c.add(Restrictions.eq("a." + AuftragFac.FLR_AUFTRAG_KUNDE_I_ID_AUFTRAGSADRESSE, kundeIId));
        }
        if (fertigungsgruppeIId != null) {
            c.add(Restrictions.eq(FertigungFac.FLR_LOSREPORT_FERTIGUNGSGRUPPE_I_ID, fertigungsgruppeIId));
        }

        String[] stati = new String[4];
        stati[0] = LocaleFac.STATUS_AUSGEGEBEN;
        stati[1] = LocaleFac.STATUS_IN_PRODUKTION;
        stati[2] = LocaleFac.STATUS_TEILERLEDIGT;
        stati[3] = LocaleFac.STATUS_ANGELEGT;

        c.add(Restrictions.in(FertigungFac.FLR_LOS_STATUS_C_NR, stati));

        if (dStichtag != null) {

            dStichtag = Helper.cutDate(dStichtag);

            // PJ 14420
            mapParameter.put("P_STICHTAG", dStichtag);

            Calendar cal = Calendar.getInstance();
            cal.setTimeInMillis(dStichtag.getTime());
            cal.set(Calendar.DATE, cal.get(Calendar.DATE) + 1);

            dStichtag = new java.sql.Date(cal.getTimeInMillis());

            String datumsart = "";

            if (iOptionStichtag == FertigungReportFac.OFFENE_OPTION_STICHTAG_BEGINNDATUM) {
                c.add(Restrictions.lt(FertigungFac.FLR_LOS_T_PRODUKTIONSBEGINN, dStichtag));

                datumsart = getTextRespectUISpr("lp.begintermin", theClientDto.getMandant(),
                        theClientDto.getLocUi());

            } else if (iOptionStichtag == FertigungReportFac.OFFENE_OPTION_STICHTAG_ENDEDATUM) {
                c.add(Restrictions.lt(FertigungFac.FLR_LOS_T_PRODUKTIONSENDE, dStichtag));
                datumsart = getTextRespectUISpr("lp.endetermin", theClientDto.getMandant(),
                        theClientDto.getLocUi());

            } else if (iOptionStichtag == FertigungReportFac.OFFENE_OPTION_STICHTAG_LIEFERTERMIN) {
                if (flrAuftragSchonVerwendet == false) {
                    c.createAlias(FertigungFac.FLR_LOSREPORT_FLRAUFTRAG, "a", CriteriaSpecification.LEFT_JOIN);
                    flrAuftragSchonVerwendet = true;
                    c.add(Restrictions.lt("a." + AuftragFac.FLR_AUFTRAG_T_LIEFERTERMIN, dStichtag));

                }
                datumsart = getTextRespectUISpr("bes.liefertermin", theClientDto.getMandant(),
                        theClientDto.getLocUi());

            }

            mapParameter.put("P_DATUMSART", datumsart);

        }
        LpBelegnummerFormat f = getBelegnummerGeneratorObj().getBelegnummernFormat(theClientDto.getMandant());
        Integer iGeschaeftsjahr = getParameterFac().getGeschaeftsjahr(theClientDto.getMandant());
        String sMandantKuerzel = getParameterFac().getMandantparameter(theClientDto.getMandant(),
                ParameterFac.KATEGORIE_ALLGEMEIN, ParameterFac.PARAMETER_BELEGNUMMER_MANDANTKENNUNG).getCWert();
        if (belegNrVon != null) {
            String sVon = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr,
                    sMandantKuerzel, belegNrVon);
            c.add(Restrictions.ge(FertigungFac.FLR_LOS_C_NR, sVon));
            mapParameter.put("P_LOSNRVON", sVon);
        }
        if (belegNrBis != null) {
            String sBis = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr,
                    sMandantKuerzel, belegNrBis);
            c.add(Restrictions.le(FertigungFac.FLR_LOS_C_NR, sBis));
            mapParameter.put("P_LOSNRBIS", sBis);
        }

        // Sortierung
        if (iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_KOSTENSTELLE) {
            c.createCriteria(FertigungFac.FLR_LOSREPORT_FLRKOSTENSTELLE).addOrder(Order.asc("c_nr"));
            mapParameter.put(P_SORTIERUNG,
                    getTextRespectUISpr("lp.kostenstelle", theClientDto.getMandant(), theClientDto.getLocUi()));
        } else if (iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_KUNDE) {
            if (flrAuftragSchonVerwendet == false) {
                c.createAlias(FertigungFac.FLR_LOSREPORT_FLRAUFTRAG, "a", CriteriaSpecification.LEFT_JOIN);
                flrAuftragSchonVerwendet = true;
            }
            c.createAlias("a." + AuftragFac.FLR_AUFTRAG_FLRKUNDE, "k", CriteriaSpecification.LEFT_JOIN);
            c.createAlias("k." + KundeFac.FLR_PARTNER, "p", CriteriaSpecification.LEFT_JOIN);

            c.addOrder(Order.asc("p." + PartnerFac.FLR_PARTNER_C_NAME1NACHNAMEFIRMAZEILE1));
            c.addOrder(Order.asc("k.i_id"));

            mapParameter.put(P_SORTIERUNG,
                    getTextRespectUISpr("lp.kunde", theClientDto.getMandant(), theClientDto.getLocUi()));
        } else if (iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_KUNDEUNDGEWAEHLTERTERMIN) {
            if (flrAuftragSchonVerwendet == false) {
                c.createAlias(FertigungFac.FLR_LOSREPORT_FLRAUFTRAG, "a", CriteriaSpecification.LEFT_JOIN);
                flrAuftragSchonVerwendet = true;
            }
            c.createAlias("a." + AuftragFac.FLR_AUFTRAG_FLRKUNDE, "k", CriteriaSpecification.LEFT_JOIN);
            c.createAlias("k." + KundeFac.FLR_PARTNER, "p", CriteriaSpecification.LEFT_JOIN);

            c.addOrder(Order.asc("p." + PartnerFac.FLR_PARTNER_C_NAME1NACHNAMEFIRMAZEILE1));

            if (iOptionStichtag == FertigungReportFac.OFFENE_OPTION_STICHTAG_BEGINNDATUM) {
                c.addOrder(Order.asc(FertigungFac.FLR_LOS_T_PRODUKTIONSBEGINN));
            } else if (iOptionStichtag == FertigungReportFac.OFFENE_OPTION_STICHTAG_ENDEDATUM) {
                c.addOrder(Order.asc(FertigungFac.FLR_LOS_T_PRODUKTIONSENDE));
            } else if (iOptionStichtag == FertigungReportFac.OFFENE_OPTION_STICHTAG_LIEFERTERMIN) {
                c.addOrder(Order.asc("a." + AuftragFac.FLR_AUFTRAG_T_LIEFERTERMIN));
            }

            mapParameter.put(P_SORTIERUNG, getTextRespectUISpr("fert.kundeundtermin", theClientDto.getMandant(),
                    theClientDto.getLocUi()));
        } else if (iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_LIEFERTERMIN) {
            if (flrAuftragSchonVerwendet == false) {
                c.createAlias(FertigungFac.FLR_LOSREPORT_FLRAUFTRAG, "a", CriteriaSpecification.LEFT_JOIN);
                flrAuftragSchonVerwendet = true;
            }
            c.createAlias("a." + AuftragFac.FLR_AUFTRAG_FLRKUNDE, "k", CriteriaSpecification.LEFT_JOIN);
            c.createAlias("k." + KundeFac.FLR_PARTNER, "p", CriteriaSpecification.LEFT_JOIN);

            c.addOrder(Order.asc("a." + AuftragFac.FLR_AUFTRAG_T_LIEFERTERMIN));
            c.addOrder(Order.asc("p." + PartnerFac.FLR_PARTNER_C_NAME1NACHNAMEFIRMAZEILE1));

            mapParameter.put(P_SORTIERUNG, getTextRespectUISpr("fert.liefertermin", theClientDto.getMandant(),
                    theClientDto.getLocUi()));
        } else if (iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_ARTIKEL) {
            c.createAlias(FertigungFac.FLR_LOS_FLRSTUECKLISTE, "s");
            c.createAlias("s." + StuecklisteFac.FLR_STUECKLISTE_FLRARTIKEL, "art");
            c.addOrder(Order.asc("art.c_nr"));
            mapParameter.put(P_SORTIERUNG,
                    getTextRespectUISpr("lp.kunde", theClientDto.getMandant(), theClientDto.getLocUi()));
        } else if (iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_FERTIGUNGSGRUPPE) {
            c.createAlias(FertigungFac.FLR_LOSREPORT_FLRFERTIGUNGSGRUPPE, "f");
            c.addOrder(Order.asc("f.c_bez"));
            mapParameter.put(P_SORTIERUNG, getTextRespectUISpr("lp.fertigungsgruppe", theClientDto.getMandant(),
                    theClientDto.getLocUi()));
        } else if (iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_BEGINN) {
            c.addOrder(Order.asc(FertigungFac.FLR_LOS_T_PRODUKTIONSBEGINN));
            mapParameter.put(P_SORTIERUNG,
                    getTextRespectUISpr("lp.beginn", theClientDto.getMandant(), theClientDto.getLocUi()));
        } else if (iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_ENDE) {
            c.addOrder(Order.asc(FertigungFac.FLR_LOS_T_PRODUKTIONSENDE));
            mapParameter.put(P_SORTIERUNG,
                    getTextRespectUISpr("lp.ende", theClientDto.getMandant(), theClientDto.getLocUi()));
        } else {
            mapParameter.put(P_SORTIERUNG,
                    getTextRespectUISpr("lp.losnr", theClientDto.getMandant(), theClientDto.getLocUi()));
        }

        // 2tes sortierkriterium immer Losnr

        if (iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_BEGINN
                || iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_ENDE
                || iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_LIEFERTERMIN
                || iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_KUNDEUNDGEWAEHLTERTERMIN) {
            if (flrAuftragSchonVerwendet == false) {
                c.createAlias(FertigungFac.FLR_LOSREPORT_FLRAUFTRAG, "a", CriteriaSpecification.LEFT_JOIN);
                flrAuftragSchonVerwendet = true;
            }
            c.addOrder(Order.asc("a.c_nr"));
        } else {

            c.addOrder(Order.asc(FertigungFac.FLR_LOS_C_NR));
        }

        List<?> list = c.list();
        data = new Object[list.size()][OFFENE_SPALTENANZAHL];
        int i = 0;
        for (Iterator<?> iter = list.iterator(); iter.hasNext(); i++) {
            FLRLosReport los = (FLRLosReport) iter.next();

            if (los.getFlrauftrag() != null) {

                Integer partnerIId = los.getFlrauftrag().getFlrkunde().getFlrpartner().getI_id();
                PartnerDto partnerDto = getPartnerFac().partnerFindByPrimaryKey(partnerIId, theClientDto);
                data[i][OFFENE_KUNDE] = partnerDto.formatFixTitelName1Name2();
                data[i][OFFENE_AUFTRAGSPOENALE] = los.getFlrauftrag().getB_poenale();
            }

            if (los.getFlrauftrag() != null) {
                data[i][OFFENE_AUFTRAGSNUMMER] = los.getFlrauftrag().getC_nr();
                data[i][OFFENE_PROJEKT] = los.getFlrauftrag().getC_bez();
                data[i][OFFENE_LIEFERTERMIN] = los.getFlrauftrag().getT_liefertermin();
            }
            BigDecimal bdGeliefert = new BigDecimal(0);
            for (Iterator<?> iter2 = los.getAblieferungset().iterator(); iter2.hasNext();) {
                FLRLosablieferung item = (FLRLosablieferung) iter2.next();
                bdGeliefert = bdGeliefert.add(item.getN_menge());
            }
            data[i][OFFENE_GELIEFERT] = bdGeliefert;
            if (los.getFlrstueckliste() != null) {
                ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKeySmall(
                        los.getFlrstueckliste().getFlrartikel().getI_id(), theClientDto);
                data[i][OFFENE_BEZEICHNUNG] = artikelDto.getArtikelsprDto().getCBez();
                data[i][OFFENE_ZUSATZBEZEICHNUNG] = artikelDto.getArtikelsprDto().getCZbez();
                data[i][OFFENE_ARTIKELNUMMER] = los.getFlrstueckliste().getFlrartikel().getC_nr();

                data[i][OFFENE_DETAILBEDARF] = getRahmenbedarfeFac()
                        .getSummeAllerRahmenbedarfeEinesArtikels(artikelDto.getIId());

                // Offene Fehlmengen
                data[i][OFFENE_FEHLMENGE] = getFehlmengeFac()
                        .getAnzahlFehlmengeEinesArtikels(artikelDto.getIId(), theClientDto);

                LossollarbeitsplanDto[] lossollarbeitsplanDto = getFertigungFac()
                        .lossollarbeitsplanFindByLosIId(los.getI_id());

                BigDecimal bdFertigungszeit = new BigDecimal(0);
                for (int j = 0; lossollarbeitsplanDto.length > j; j++) {
                    bdFertigungszeit = bdFertigungszeit.add(lossollarbeitsplanDto[j].getNGesamtzeit());
                }
                data[i][OFFENE_FERTIGUNGSZEIT] = bdFertigungszeit;

                // Rahmenbestellt
                Hashtable<?, ?> htRahmenbestellt = getArtikelbestelltFac()
                        .getAnzahlRahmenbestellt(artikelDto.getIId(), theClientDto);
                if (htRahmenbestellt.containsKey(ArtikelbestelltFac.KEY_RAHMENBESTELLT_ANZAHL)) {
                    BigDecimal bdAnzahlRahmenbestellt = (BigDecimal) htRahmenbestellt
                            .get(ArtikelbestelltFac.KEY_RAHMENBESTELLT_ANZAHL);
                    data[i][OFFENE_RAHMEN_BESTELLT] = bdAnzahlRahmenbestellt;
                }
                data[i][OFFENE_RESERVIERUNGEN] = getReservierungFac()
                        .getAnzahlReservierungen(artikelDto.getIId(), theClientDto);

                data[i][OFFENE_RAHMENRESERVIERUNGEN] = getReservierungFac()
                        .getAnzahlRahmenreservierungen(artikelDto.getIId(), theClientDto);

            } else {
                data[i][OFFENE_BEZEICHNUNG] = los.getC_projekt();
                data[i][OFFENE_ZUSATZBEZEICHNUNG] = null;
                data[i][OFFENE_ARTIKELNUMMER] = getTextRespectUISpr("fert.materialliste",
                        theClientDto.getMandant(), theClientDto.getLocUi());
            }

            GregorianCalendar gc = new GregorianCalendar();
            gc.setTime(los.getT_produktionsbeginn());
            data[i][OFFENE_KALENDERWOCHE] = new Integer(gc.get(GregorianCalendar.WEEK_OF_YEAR));
            data[i][OFFENE_LOSGROESSE] = los.getN_losgroesse();
            data[i][OFFENE_LOSNUMMER] = los.getC_nr();
            data[i][OFFENE_FERTIGUNGSGRUPPE] = los.getFlrfertigungsgruppe().getC_bez();
            /**
             * @todo material PJ 4239
             */
            data[i][OFFENE_MATERIAL] = null;
            data[i][OFFENE_BEGINN] = los.getT_produktionsbeginn();
            data[i][OFFENE_ENDE] = los.getT_produktionsende();
            data[i][OFFENE_LOSSTATUS] = los.getStatus_c_nr();

            // PJ 15009

            String queryf = "select sum(flrfehlmenge.n_menge) FROM FLRFehlmenge flrfehlmenge WHERE flrfehlmenge.flrlossollmaterial.flrlos = "
                    + los.getI_id() + " AND flrfehlmenge.n_menge>0";
            Session session2 = FLRSessionFactory.getFactory().openSession();
            Query query = session2.createQuery(queryf);
            List<?> results = query.list();

            data[i][OFFENE_LOSHATFEHLMENGE] = new Boolean(false);
            if (results.size() > 0) {
                BigDecimal bd = (BigDecimal) results.iterator().next();

                if (bd != null && bd.doubleValue() > 0) {
                    data[i][OFFENE_LOSHATFEHLMENGE] = new Boolean(true);
                }
            }
            session2.close();
        }

        initJRDS(mapParameter, FertigungReportFac.REPORT_MODUL, FertigungReportFac.REPORT_OFFENE,
                theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto);
        return getReportPrint();
    } catch (Exception t) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER, t);
    } finally {
        closeSession(session);
    }
}

From source file:com.lp.server.fertigung.ejbfac.FertigungReportFacBean.java

License:Open Source License

@TransactionAttribute(TransactionAttributeType.NEVER)
public JasperPrintLP printOffeneArbeitsgaenge(java.sql.Date dStichtag, int iOptionStichtag, String belegNrVon,
        String belegNrBis, Integer kundeIId, Integer kostenstelleIId, Integer fertigungsgruppeIId,
        Integer artikelgruppeIId, Integer maschineIId, boolean bSollstundenbetrachtung,
        TheClientDto theClientDto) {/*from  w w w .java  2s  . c  om*/
    Session session = null;

    try {
        this.useCase = UC_OFFENE_AG;
        this.index = -1;
        SessionFactory factory = FLRSessionFactory.getFactory();
        session = factory.openSession();
        Criteria c = session.createCriteria(FLRLossollarbeitsplan.class);

        c.createAlias(FertigungFac.FLR_LOSSOLLARBEITSPLAN_FLRLOS, "l", CriteriaSpecification.LEFT_JOIN);

        c.add(Restrictions.eq("l." + FertigungFac.FLR_LOS_MANDANT_C_NR, theClientDto.getMandant()));

        c.add(Restrictions.eq(FertigungFac.FLR_LOSSOLLARBEITSPLAN_B_FERTIG, Helper.boolean2Short(false)));

        Map<String, Object> mapParameter = new TreeMap<String, Object>();
        mapParameter.put("P_SOLLSTUNDENBETRACHTUNG", new Boolean(bSollstundenbetrachtung));
        if (artikelgruppeIId != null) {
            c.createAlias(FertigungFac.FLR_LOSSOLLARBEITSPLAN_FLRARTIKEL, "artikel",
                    CriteriaSpecification.LEFT_JOIN);
            c.createAlias("artikel." + ArtikelFac.FLR_ARTIKEL_FLRARTIKELGRUPPE, "artikelgruppe",
                    CriteriaSpecification.LEFT_JOIN);
            c.add(Restrictions.eq("artikelgruppe.i_id", artikelgruppeIId));

            ArtgruDto artgruDto = getArtikelFac().artgruFindByPrimaryKey(artikelgruppeIId, theClientDto);

            mapParameter.put("P_ARTIKELGRUPPE", artgruDto.getBezeichnung());
        }

        /*
         * if (kostenstelleIId != null) { KostenstelleDto kostenstelleDto =
         * getSystemFac() .kostenstelleFindByPrimaryKey(kostenstelleIId);
         * mapParameter.put("P_KOSTENSTELLE",
         * kostenstelleDto.formatKostenstellenbezeichnung());
         * 
         * c.add(Restrictions.eq("l." +
         * FertigungFac.FLR_LOSREPORT_KOSTENSTELLE_I_ID, kostenstelleIId));
         * }
         */
        boolean flrAuftragSchonVerwendet = false;
        if (kundeIId != null) {
            KundeDto kundeDto = getKundeFac().kundeFindByPrimaryKey(kundeIId, theClientDto);
            mapParameter.put("P_KUNDE", kundeDto.getPartnerDto().formatFixTitelName1Name2());
            c.createAlias("l." + FertigungFac.FLR_LOSREPORT_FLRAUFTRAG, "a", CriteriaSpecification.LEFT_JOIN);
            flrAuftragSchonVerwendet = true;
            c.add(Restrictions.eq("a." + AuftragFac.FLR_AUFTRAG_KUNDE_I_ID_AUFTRAGSADRESSE, kundeIId));
        }

        String[] stati = new String[4];
        stati[0] = LocaleFac.STATUS_AUSGEGEBEN;
        stati[1] = LocaleFac.STATUS_IN_PRODUKTION;
        stati[2] = LocaleFac.STATUS_TEILERLEDIGT;
        stati[3] = LocaleFac.STATUS_ANGELEGT;

        c.add(Restrictions.in("l." + FertigungFac.FLR_LOS_STATUS_C_NR, stati));

        if (dStichtag != null) {

            dStichtag = Helper.cutDate(dStichtag);

            // PJ 14420
            mapParameter.put("P_STICHTAG", dStichtag);

            Calendar cal = Calendar.getInstance();
            cal.setTimeInMillis(dStichtag.getTime());
            cal.set(Calendar.DATE, cal.get(Calendar.DATE) + 1);

            dStichtag = new java.sql.Date(cal.getTimeInMillis());

            String datumsart = "";

            if (iOptionStichtag == FertigungReportFac.OFFENE_OPTION_STICHTAG_BEGINNDATUM) {
                c.add(Restrictions.lt("l." + FertigungFac.FLR_LOS_T_PRODUKTIONSBEGINN, dStichtag));

                datumsart = getTextRespectUISpr("lp.begintermin", theClientDto.getMandant(),
                        theClientDto.getLocUi());

            } else if (iOptionStichtag == FertigungReportFac.OFFENE_OPTION_STICHTAG_ENDEDATUM) {
                c.add(Restrictions.lt("l." + FertigungFac.FLR_LOS_T_PRODUKTIONSENDE, dStichtag));
                datumsart = getTextRespectUISpr("lp.endetermin", theClientDto.getMandant(),
                        theClientDto.getLocUi());

            } else if (iOptionStichtag == FertigungReportFac.OFFENE_OPTION_STICHTAG_LIEFERTERMIN) {
                if (flrAuftragSchonVerwendet == false) {
                    c.createAlias("l." + FertigungFac.FLR_LOSREPORT_FLRAUFTRAG, "a",
                            CriteriaSpecification.LEFT_JOIN);
                    flrAuftragSchonVerwendet = true;
                    c.add(Restrictions.lt("a." + AuftragFac.FLR_AUFTRAG_T_LIEFERTERMIN, dStichtag));

                }
                datumsart = getTextRespectUISpr("bes.liefertermin", theClientDto.getMandant(),
                        theClientDto.getLocUi());

            }

            mapParameter.put("P_DATUMSART", datumsart);

        }
        LpBelegnummerFormat f = getBelegnummerGeneratorObj().getBelegnummernFormat(theClientDto.getMandant());
        Integer iGeschaeftsjahr = getParameterFac().getGeschaeftsjahr(theClientDto.getMandant());
        String sMandantKuerzel = getParameterFac().getMandantparameter(theClientDto.getMandant(),
                ParameterFac.KATEGORIE_ALLGEMEIN, ParameterFac.PARAMETER_BELEGNUMMER_MANDANTKENNUNG).getCWert();
        if (belegNrVon != null) {
            String sVon = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr,
                    sMandantKuerzel, belegNrVon);
            c.add(Restrictions.ge("l." + FertigungFac.FLR_LOS_C_NR, sVon));
            mapParameter.put("P_LOSNRVON", sVon);
        }
        if (belegNrBis != null) {
            String sBis = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr,
                    sMandantKuerzel, belegNrBis);
            c.add(Restrictions.le("l." + FertigungFac.FLR_LOS_C_NR, sBis));
            mapParameter.put("P_LOSNRBIS", sBis);
        }

        if (maschineIId != null) {
            MaschineDto mDto = getZeiterfassungFac().maschineFindByPrimaryKey(maschineIId);
            c.add(Restrictions.eq("maschine_i_id", maschineIId));
            mapParameter.put("P_MASCHINE", mDto.getBezeichnung());
        }

        List<?> list = c.list();
        data = new Object[list.size()][OFFENE_AG_SPALTENANZAHL];
        int i = 0;
        for (Iterator<?> iter = list.iterator(); iter.hasNext(); i++) {
            FLRLossollarbeitsplan a = (FLRLossollarbeitsplan) iter.next();
            FLRLos los = a.getFlrlos();
            if (fertigungsgruppeIId != null && kostenstelleIId != null) {
                if (los.getFertigungsgruppe_i_id().intValue() != fertigungsgruppeIId.intValue()
                        && los.getKostenstelle_i_id().intValue() != kostenstelleIId.intValue()) {
                    i--;
                } else {
                    // skip
                }
            } else if (fertigungsgruppeIId != null && kostenstelleIId == null) {
                if (los.getFertigungsgruppe_i_id().intValue() != fertigungsgruppeIId.intValue()) {
                    i--;
                } else {
                    // skip
                }
            } else if (fertigungsgruppeIId == null && kostenstelleIId != null) {
                if (los.getKostenstelle_i_id().intValue() != kostenstelleIId.intValue()) {
                    i--;
                } else {
                    // skip
                }
            }
        }
        if (fertigungsgruppeIId != null || kostenstelleIId != null) {
            data = new Object[i][OFFENE_AG_SPALTENANZAHL];
        }
        i = 0;
        for (Iterator<?> iter = list.iterator(); iter.hasNext(); i++) {
            FLRLossollarbeitsplan a = (FLRLossollarbeitsplan) iter.next();
            FLRLos los = a.getFlrlos();
            if (fertigungsgruppeIId != null && kostenstelleIId != null) {
                if (los.getFertigungsgruppe_i_id().intValue() != fertigungsgruppeIId.intValue()
                        && los.getKostenstelle_i_id().intValue() != kostenstelleIId.intValue()) {
                    i--;
                } else {
                    data[i][OFFENE_AG_AGNUMMER] = a.getI_arbeitsgangsnummer();
                    data[i][OFFENE_AG_UAGNUMMER] = a.getI_unterarbeitsgang();
                    data[i][OFFENE_AG_AG_ARTIKEL] = a.getFlrartikel().getC_nr();
                    ArtikelDto aDto = getArtikelFac().artikelFindByPrimaryKeySmall(a.getFlrartikel().getI_id(),
                            theClientDto);
                    data[i][OFFENE_AG_AG_ARTIKELBEZEICHNUNG] = aDto.formatBezeichnung();

                    if (Helper.short2boolean(a.getB_fertig())) {
                        data[i][OFFENE_AG_AG_GESAMTZEIT] = new BigDecimal(0);
                    } else {

                        data[i][OFFENE_AG_AG_GESAMTZEIT] = a.getN_gesamtzeit();
                    }

                    if (bSollstundenbetrachtung == true) {
                        data[i][OFFENE_AG_AG_ISTZEIT] = getZeiterfassungFac().getSummeZeitenEinesBeleges(
                                LocaleFac.BELEGART_LOS, los.getI_id(), a.getI_id(), null, null, null,
                                theClientDto);

                    }

                    if (a.getFlrmaschine() != null) {
                        data[i][OFFENE_AG_AG_MASCHINE_BEZEICHNUNG] = a.getFlrmaschine().getC_bez();
                        data[i][OFFENE_AG_AG_MASCHINE_IDENTIFIKATIONSNUMMMER] = a.getFlrmaschine()
                                .getC_identifikationsnr();
                        data[i][OFFENE_AG_AG_MASCHINE_INVENTARNUMMMER] = a.getFlrmaschine()
                                .getC_inventarnummer();
                    }

                    if (a.getFlrartikel().getFlrartikelgruppe() != null) {
                        data[i][OFFENE_AG_AG_ARTIKELGRUPPPE] = a.getFlrartikel().getFlrartikelgruppe()
                                .getC_nr();
                    } else {
                        data[i][OFFENE_AG_AG_ARTIKELGRUPPPE] = "";
                    }

                    if (a.getI_maschinenversatztage() != null) {
                        data[i][OFFENE_AG_AG_BEGINN] = Helper.addiereTageZuTimestamp(
                                (Timestamp) los.getT_produktionsbeginn(), a.getI_maschinenversatztage());

                    } else {
                        data[i][OFFENE_AG_AG_BEGINN] = los.getT_produktionsbeginn();

                    }

                    if (los.getFlrauftrag() != null) {

                        Integer partnerIId = los.getFlrauftrag().getFlrkunde().getFlrpartner().getI_id();
                        PartnerDto partnerDto = getPartnerFac().partnerFindByPrimaryKey(partnerIId,
                                theClientDto);
                        data[i][OFFENE_AG_KUNDE] = partnerDto.formatFixTitelName1Name2();
                        data[i][OFFENE_AG_AUFTRAGSPOENALE] = los.getFlrauftrag().getB_poenale();
                    }

                    if (los.getFlrauftrag() != null) {
                        data[i][OFFENE_AG_AUFTRAGSNUMMER] = los.getFlrauftrag().getC_nr();
                        data[i][OFFENE_AG_PROJEKT] = los.getFlrauftrag().getC_bez();
                        data[i][OFFENE_AG_LIEFERTERMIN] = los.getFlrauftrag().getT_liefertermin();
                    }
                    BigDecimal bdGeliefert = new BigDecimal(0);
                    for (Iterator<?> iter2 = los.getAblieferungset().iterator(); iter2.hasNext();) {
                        FLRLosablieferung item = (FLRLosablieferung) iter2.next();
                        bdGeliefert = bdGeliefert.add(item.getN_menge());
                    }
                    data[i][OFFENE_AG_GELIEFERT] = bdGeliefert;
                    if (los.getFlrstueckliste() != null) {
                        ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKeySmall(
                                los.getFlrstueckliste().getFlrartikel().getI_id(), theClientDto);
                        data[i][OFFENE_AG_BEZEICHNUNG] = artikelDto.getArtikelsprDto().getCBez();
                        data[i][OFFENE_AG_ZUSATZBEZEICHNUNG] = artikelDto.getArtikelsprDto().getCZbez();
                        data[i][OFFENE_AG_ARTIKELNUMMER] = los.getFlrstueckliste().getFlrartikel().getC_nr();

                        data[i][OFFENE_AG_DETAILBEDARF] = getRahmenbedarfeFac()
                                .getSummeAllerRahmenbedarfeEinesArtikels(artikelDto.getIId());

                        // Offene Fehlmengen
                        data[i][OFFENE_AG_FEHLMENGE] = getFehlmengeFac()
                                .getAnzahlFehlmengeEinesArtikels(artikelDto.getIId(), theClientDto);

                        LossollarbeitsplanDto[] lossollarbeitsplanDto = getFertigungFac()
                                .lossollarbeitsplanFindByLosIId(los.getI_id());

                        BigDecimal bdFertigungszeit = new BigDecimal(0);
                        for (int j = 0; lossollarbeitsplanDto.length > j; j++) {
                            bdFertigungszeit = bdFertigungszeit.add(lossollarbeitsplanDto[j].getNGesamtzeit());
                        }
                        data[i][OFFENE_AG_FERTIGUNGSZEIT] = bdFertigungszeit;

                        // Rahmenbestellt
                        Hashtable<?, ?> htRahmenbestellt = getArtikelbestelltFac()
                                .getAnzahlRahmenbestellt(artikelDto.getIId(), theClientDto);
                        if (htRahmenbestellt.containsKey(ArtikelbestelltFac.KEY_RAHMENBESTELLT_ANZAHL)) {
                            BigDecimal bdAnzahlRahmenbestellt = (BigDecimal) htRahmenbestellt
                                    .get(ArtikelbestelltFac.KEY_RAHMENBESTELLT_ANZAHL);
                            data[i][OFFENE_AG_RAHMEN_BESTELLT] = bdAnzahlRahmenbestellt;
                        }
                        data[i][OFFENE_AG_RESERVIERUNGEN] = getReservierungFac()
                                .getAnzahlReservierungen(artikelDto.getIId(), theClientDto);

                        data[i][OFFENE_AG_RAHMENRESERVIERUNGEN] = getReservierungFac()
                                .getAnzahlRahmenreservierungen(artikelDto.getIId(), theClientDto);

                    } else {
                        data[i][OFFENE_AG_BEZEICHNUNG] = los.getC_projekt();
                        data[i][OFFENE_AG_ZUSATZBEZEICHNUNG] = null;
                        data[i][OFFENE_AG_ARTIKELNUMMER] = getTextRespectUISpr("fert.materialliste",
                                theClientDto.getMandant(), theClientDto.getLocUi());
                    }

                    GregorianCalendar gc = new GregorianCalendar();
                    gc.setTime(los.getT_produktionsbeginn());
                    data[i][OFFENE_AG_KALENDERWOCHE] = new Integer(gc.get(GregorianCalendar.WEEK_OF_YEAR));
                    data[i][OFFENE_AG_LOSGROESSE] = los.getN_losgroesse();
                    data[i][OFFENE_AG_LOSNUMMER] = los.getC_nr();
                    data[i][OFFENE_AG_FERTIGUNGSGRUPPE] = los.getFlrfertigungsgruppe().getC_bez();
                    /**
                     * @todo material PJ 4239
                     */
                    data[i][OFFENE_AG_MATERIAL] = null;
                    data[i][OFFENE_AG_BEGINN] = los.getT_produktionsbeginn();
                    data[i][OFFENE_AG_ENDE] = los.getT_produktionsende();
                    data[i][OFFENE_AG_LOSSTATUS] = los.getStatus_c_nr();

                    // PJ 15009

                    String queryf = "select sum(flrfehlmenge.n_menge) FROM FLRFehlmenge flrfehlmenge WHERE flrfehlmenge.flrlossollmaterial.flrlos = "
                            + los.getI_id() + " AND flrfehlmenge.n_menge>0";
                    Session session2 = FLRSessionFactory.getFactory().openSession();
                    Query query = session2.createQuery(queryf);
                    List<?> results = query.list();

                    data[i][OFFENE_AG_LOSHATFEHLMENGE] = new Boolean(false);
                    if (results.size() > 0) {
                        BigDecimal bd = (BigDecimal) results.iterator().next();

                        if (bd != null && bd.doubleValue() > 0) {
                            data[i][OFFENE_AG_LOSHATFEHLMENGE] = new Boolean(true);
                        }
                    }
                    session2.close();
                }
            } else if (fertigungsgruppeIId != null || kostenstelleIId != null) {
                if (fertigungsgruppeIId != null) {
                    if (los.getFertigungsgruppe_i_id().intValue() != fertigungsgruppeIId.intValue()) {
                        i--;
                    } else {
                        data[i][OFFENE_AG_AGNUMMER] = a.getI_arbeitsgangsnummer();
                        data[i][OFFENE_AG_UAGNUMMER] = a.getI_unterarbeitsgang();
                        data[i][OFFENE_AG_AG_ARTIKEL] = a.getFlrartikel().getC_nr();
                        ArtikelDto aDto = getArtikelFac()
                                .artikelFindByPrimaryKeySmall(a.getFlrartikel().getI_id(), theClientDto);
                        data[i][OFFENE_AG_AG_ARTIKELBEZEICHNUNG] = aDto.formatBezeichnung();

                        if (Helper.short2boolean(a.getB_fertig())) {
                            data[i][OFFENE_AG_AG_GESAMTZEIT] = new BigDecimal(0);
                        } else {
                            data[i][OFFENE_AG_AG_GESAMTZEIT] = a.getN_gesamtzeit();
                        }

                        if (bSollstundenbetrachtung == true) {
                            data[i][OFFENE_AG_AG_ISTZEIT] = getZeiterfassungFac().getSummeZeitenEinesBeleges(
                                    LocaleFac.BELEGART_LOS, los.getI_id(), a.getI_id(), null, null, null,
                                    theClientDto);

                        }

                        if (a.getFlrmaschine() != null) {
                            data[i][OFFENE_AG_AG_MASCHINE_BEZEICHNUNG] = a.getFlrmaschine().getC_bez();
                            data[i][OFFENE_AG_AG_MASCHINE_IDENTIFIKATIONSNUMMMER] = a.getFlrmaschine()
                                    .getC_identifikationsnr();
                            data[i][OFFENE_AG_AG_MASCHINE_INVENTARNUMMMER] = a.getFlrmaschine()
                                    .getC_inventarnummer();
                        }

                        if (a.getFlrartikel().getFlrartikelgruppe() != null) {
                            data[i][OFFENE_AG_AG_ARTIKELGRUPPPE] = a.getFlrartikel().getFlrartikelgruppe()
                                    .getC_nr();
                        } else {
                            data[i][OFFENE_AG_AG_ARTIKELGRUPPPE] = "";
                        }

                        if (a.getI_maschinenversatztage() != null) {
                            data[i][OFFENE_AG_AG_BEGINN] = Helper.addiereTageZuTimestamp(
                                    (Timestamp) los.getT_produktionsbeginn(), a.getI_maschinenversatztage());

                        } else {
                            data[i][OFFENE_AG_AG_BEGINN] = los.getT_produktionsbeginn();

                        }

                        if (los.getFlrauftrag() != null) {

                            Integer partnerIId = los.getFlrauftrag().getFlrkunde().getFlrpartner().getI_id();
                            PartnerDto partnerDto = getPartnerFac().partnerFindByPrimaryKey(partnerIId,
                                    theClientDto);
                            data[i][OFFENE_AG_KUNDE] = partnerDto.formatFixTitelName1Name2();
                            data[i][OFFENE_AG_AUFTRAGSPOENALE] = los.getFlrauftrag().getB_poenale();
                        }

                        if (los.getFlrauftrag() != null) {
                            data[i][OFFENE_AG_AUFTRAGSNUMMER] = los.getFlrauftrag().getC_nr();
                            data[i][OFFENE_AG_PROJEKT] = los.getFlrauftrag().getC_bez();
                            data[i][OFFENE_AG_LIEFERTERMIN] = los.getFlrauftrag().getT_liefertermin();
                        }
                        BigDecimal bdGeliefert = new BigDecimal(0);
                        for (Iterator<?> iter2 = los.getAblieferungset().iterator(); iter2.hasNext();) {
                            FLRLosablieferung item = (FLRLosablieferung) iter2.next();
                            bdGeliefert = bdGeliefert.add(item.getN_menge());
                        }
                        data[i][OFFENE_AG_GELIEFERT] = bdGeliefert;
                        if (los.getFlrstueckliste() != null) {
                            ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKeySmall(
                                    los.getFlrstueckliste().getFlrartikel().getI_id(), theClientDto);
                            data[i][OFFENE_AG_BEZEICHNUNG] = artikelDto.getArtikelsprDto().getCBez();
                            data[i][OFFENE_AG_ZUSATZBEZEICHNUNG] = artikelDto.getArtikelsprDto().getCZbez();
                            data[i][OFFENE_AG_ARTIKELNUMMER] = los.getFlrstueckliste().getFlrartikel()
                                    .getC_nr();

                            data[i][OFFENE_AG_DETAILBEDARF] = getRahmenbedarfeFac()
                                    .getSummeAllerRahmenbedarfeEinesArtikels(artikelDto.getIId());

                            // Offene Fehlmengen
                            data[i][OFFENE_AG_FEHLMENGE] = getFehlmengeFac()
                                    .getAnzahlFehlmengeEinesArtikels(artikelDto.getIId(), theClientDto);

                            LossollarbeitsplanDto[] lossollarbeitsplanDto = getFertigungFac()
                                    .lossollarbeitsplanFindByLosIId(los.getI_id());

                            BigDecimal bdFertigungszeit = new BigDecimal(0);
                            for (int j = 0; lossollarbeitsplanDto.length > j; j++) {
                                bdFertigungszeit = bdFertigungszeit
                                        .add(lossollarbeitsplanDto[j].getNGesamtzeit());
                            }
                            data[i][OFFENE_AG_FERTIGUNGSZEIT] = bdFertigungszeit;

                            // Rahmenbestellt
                            Hashtable<?, ?> htRahmenbestellt = getArtikelbestelltFac()
                                    .getAnzahlRahmenbestellt(artikelDto.getIId(), theClientDto);
                            if (htRahmenbestellt.containsKey(ArtikelbestelltFac.KEY_RAHMENBESTELLT_ANZAHL)) {
                                BigDecimal bdAnzahlRahmenbestellt = (BigDecimal) htRahmenbestellt
                                        .get(ArtikelbestelltFac.KEY_RAHMENBESTELLT_ANZAHL);
                                data[i][OFFENE_AG_RAHMEN_BESTELLT] = bdAnzahlRahmenbestellt;
                            }
                            data[i][OFFENE_AG_RESERVIERUNGEN] = getReservierungFac()
                                    .getAnzahlReservierungen(artikelDto.getIId(), theClientDto);

                            data[i][OFFENE_AG_RAHMENRESERVIERUNGEN] = getReservierungFac()
                                    .getAnzahlRahmenreservierungen(artikelDto.getIId(), theClientDto);

                        } else {
                            data[i][OFFENE_AG_BEZEICHNUNG] = los.getC_projekt();
                            data[i][OFFENE_AG_ZUSATZBEZEICHNUNG] = null;
                            data[i][OFFENE_AG_ARTIKELNUMMER] = getTextRespectUISpr("fert.materialliste",
                                    theClientDto.getMandant(), theClientDto.getLocUi());
                        }

                        GregorianCalendar gc = new GregorianCalendar();
                        gc.setTime(los.getT_produktionsbeginn());
                        data[i][OFFENE_AG_KALENDERWOCHE] = new Integer(gc.get(GregorianCalendar.WEEK_OF_YEAR));
                        data[i][OFFENE_AG_LOSGROESSE] = los.getN_losgroesse();
                        data[i][OFFENE_AG_LOSNUMMER] = los.getC_nr();
                        data[i][OFFENE_AG_FERTIGUNGSGRUPPE] = los.getFlrfertigungsgruppe().getC_bez();
                        /**
                         * @todo material PJ 4239
                         */
                        data[i][OFFENE_AG_MATERIAL] = null;
                        data[i][OFFENE_AG_BEGINN] = los.getT_produktionsbeginn();
                        data[i][OFFENE_AG_ENDE] = los.getT_produktionsende();
                        data[i][OFFENE_AG_LOSSTATUS] = los.getStatus_c_nr();

                        // PJ 15009

                        String queryf = "select sum(flrfehlmenge.n_menge) FROM FLRFehlmenge flrfehlmenge WHERE flrfehlmenge.flrlossollmaterial.flrlos = "
                                + los.getI_id() + " AND flrfehlmenge.n_menge>0";
                        Session session2 = FLRSessionFactory.getFactory().openSession();
                        Query query = session2.createQuery(queryf);
                        List<?> results = query.list();

                        data[i][OFFENE_AG_LOSHATFEHLMENGE] = new Boolean(false);
                        if (results.size() > 0) {
                            BigDecimal bd = (BigDecimal) results.iterator().next();

                            if (bd != null && bd.doubleValue() > 0) {
                                data[i][OFFENE_AG_LOSHATFEHLMENGE] = new Boolean(true);
                            }
                        }
                        session2.close();
                    }
                } else if (kostenstelleIId != null) {
                    if (los.getKostenstelle_i_id().intValue() != kostenstelleIId.intValue()) {
                        i--;
                    } else {
                        data[i][OFFENE_AG_AGNUMMER] = a.getI_arbeitsgangsnummer();
                        data[i][OFFENE_AG_UAGNUMMER] = a.getI_unterarbeitsgang();
                        data[i][OFFENE_AG_AG_ARTIKEL] = a.getFlrartikel().getC_nr();
                        ArtikelDto aDto = getArtikelFac()
                                .artikelFindByPrimaryKeySmall(a.getFlrartikel().getI_id(), theClientDto);
                        data[i][OFFENE_AG_AG_ARTIKELBEZEICHNUNG] = aDto.formatBezeichnung();

                        if (Helper.short2boolean(a.getB_fertig())) {
                            data[i][OFFENE_AG_AG_GESAMTZEIT] = new BigDecimal(0);
                        } else {
                            data[i][OFFENE_AG_AG_GESAMTZEIT] = a.getN_gesamtzeit();
                        }
                        if (bSollstundenbetrachtung == true) {
                            data[i][OFFENE_AG_AG_ISTZEIT] = getZeiterfassungFac().getSummeZeitenEinesBeleges(
                                    LocaleFac.BELEGART_LOS, los.getI_id(), a.getI_id(), null, null, null,
                                    theClientDto);

                        }
                        if (a.getFlrmaschine() != null) {
                            data[i][OFFENE_AG_AG_MASCHINE_BEZEICHNUNG] = a.getFlrmaschine().getC_bez();
                            data[i][OFFENE_AG_AG_MASCHINE_IDENTIFIKATIONSNUMMMER] = a.getFlrmaschine()
                                    .getC_identifikationsnr();
                            data[i][OFFENE_AG_AG_MASCHINE_INVENTARNUMMMER] = a.getFlrmaschine()
                                    .getC_inventarnummer();
                        }
                        if (a.getFlrartikel().getFlrartikelgruppe() != null) {
                            data[i][OFFENE_AG_AG_ARTIKELGRUPPPE] = a.getFlrartikel().getFlrartikelgruppe()
                                    .getC_nr();
                        } else {
                            data[i][OFFENE_AG_AG_ARTIKELGRUPPPE] = "";
                        }

                        if (a.getI_maschinenversatztage() != null) {
                            data[i][OFFENE_AG_AG_BEGINN] = Helper.addiereTageZuTimestamp(
                                    (Timestamp) los.getT_produktionsbeginn(), a.getI_maschinenversatztage());

                        } else {
                            data[i][OFFENE_AG_AG_BEGINN] = los.getT_produktionsbeginn();

                        }

                        if (los.getFlrauftrag() != null) {

                            Integer partnerIId = los.getFlrauftrag().getFlrkunde().getFlrpartner().getI_id();
                            PartnerDto partnerDto = getPartnerFac().partnerFindByPrimaryKey(partnerIId,
                                    theClientDto);
                            data[i][OFFENE_AG_KUNDE] = partnerDto.formatFixTitelName1Name2();
                            data[i][OFFENE_AG_AUFTRAGSPOENALE] = los.getFlrauftrag().getB_poenale();
                        }

                        if (los.getFlrauftrag() != null) {
                            data[i][OFFENE_AG_AUFTRAGSNUMMER] = los.getFlrauftrag().getC_nr();
                            data[i][OFFENE_AG_PROJEKT] = los.getFlrauftrag().getC_bez();
                            data[i][OFFENE_AG_LIEFERTERMIN] = los.getFlrauftrag().getT_liefertermin();
                        }
                        BigDecimal bdGeliefert = new BigDecimal(0);
                        for (Iterator<?> iter2 = los.getAblieferungset().iterator(); iter2.hasNext();) {
                            FLRLosablieferung item = (FLRLosablieferung) iter2.next();
                            bdGeliefert = bdGeliefert.add(item.getN_menge());
                        }
                        data[i][OFFENE_AG_GELIEFERT] = bdGeliefert;
                        if (los.getFlrstueckliste() != null) {
                            ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKeySmall(
                                    los.getFlrstueckliste().getFlrartikel().getI_id(), theClientDto);
                            data[i][OFFENE_AG_BEZEICHNUNG] = artikelDto.getArtikelsprDto().getCBez();
                            data[i][OFFENE_AG_ZUSATZBEZEICHNUNG] = artikelDto.getArtikelsprDto().getCZbez();
                            data[i][OFFENE_AG_ARTIKELNUMMER] = los.getFlrstueckliste().getFlrartikel()
                                    .getC_nr();

                            data[i][OFFENE_AG_DETAILBEDARF] = getRahmenbedarfeFac()
                                    .getSummeAllerRahmenbedarfeEinesArtikels(artikelDto.getIId());

                            // Offene Fehlmengen
                            data[i][OFFENE_AG_FEHLMENGE] = getFehlmengeFac()
                                    .getAnzahlFehlmengeEinesArtikels(artikelDto.getIId(), theClientDto);

                            LossollarbeitsplanDto[] lossollarbeitsplanDto = getFertigungFac()
                                    .lossollarbeitsplanFindByLosIId(los.getI_id());

                            BigDecimal bdFertigungszeit = new BigDecimal(0);
                            for (int j = 0; lossollarbeitsplanDto.length > j; j++) {
                                bdFertigungszeit = bdFertigungszeit
                                        .add(lossollarbeitsplanDto[j].getNGesamtzeit());
                            }
                            data[i][OFFENE_AG_FERTIGUNGSZEIT] = bdFertigungszeit;

                            // Rahmenbestellt
                            Hashtable<?, ?> htRahmenbestellt = getArtikelbestelltFac()
                                    .getAnzahlRahmenbestellt(artikelDto.getIId(), theClientDto);
                            if (htRahmenbestellt.containsKey(ArtikelbestelltFac.KEY_RAHMENBESTELLT_ANZAHL)) {
                                BigDecimal bdAnzahlRahmenbestellt = (BigDecimal) htRahmenbestellt
                                        .get(ArtikelbestelltFac.KEY_RAHMENBESTELLT_ANZAHL);
                                data[i][OFFENE_AG_RAHMEN_BESTELLT] = bdAnzahlRahmenbestellt;
                            }
                            data[i][OFFENE_AG_RESERVIERUNGEN] = getReservierungFac()
                                    .getAnzahlReservierungen(artikelDto.getIId(), theClientDto);

                            data[i][OFFENE_AG_RAHMENRESERVIERUNGEN] = getReservierungFac()
                                    .getAnzahlRahmenreservierungen(artikelDto.getIId(), theClientDto);

                        } else {
                            data[i][OFFENE_AG_BEZEICHNUNG] = los.getC_projekt();
                            data[i][OFFENE_AG_ZUSATZBEZEICHNUNG] = null;
                            data[i][OFFENE_AG_ARTIKELNUMMER] = getTextRespectUISpr("fert.materialliste",
                                    theClientDto.getMandant(), theClientDto.getLocUi());
                        }

                        GregorianCalendar gc = new GregorianCalendar();
                        gc.setTime(los.getT_produktionsbeginn());
                        data[i][OFFENE_AG_KALENDERWOCHE] = new Integer(gc.get(GregorianCalendar.WEEK_OF_YEAR));
                        data[i][OFFENE_AG_LOSGROESSE] = los.getN_losgroesse();
                        data[i][OFFENE_AG_LOSNUMMER] = los.getC_nr();
                        data[i][OFFENE_AG_FERTIGUNGSGRUPPE] = los.getFlrfertigungsgruppe().getC_bez();
                        /**
                         * @todo material PJ 4239
                         */
                        data[i][OFFENE_AG_MATERIAL] = null;
                        data[i][OFFENE_AG_BEGINN] = los.getT_produktionsbeginn();
                        data[i][OFFENE_AG_ENDE] = los.getT_produktionsende();
                        data[i][OFFENE_AG_LOSSTATUS] = los.getStatus_c_nr();

                        // PJ 15009

                        String queryf = "select sum(flrfehlmenge.n_menge) FROM FLRFehlmenge flrfehlmenge WHERE flrfehlmenge.flrlossollmaterial.flrlos = "
                                + los.getI_id() + " AND flrfehlmenge.n_menge>0";
                        Session session2 = FLRSessionFactory.getFactory().openSession();
                        Query query = session2.createQuery(queryf);
                        List<?> results = query.list();

                        data[i][OFFENE_AG_LOSHATFEHLMENGE] = new Boolean(false);
                        if (results.size() > 0) {
                            BigDecimal bd = (BigDecimal) results.iterator().next();

                            if (bd != null && bd.doubleValue() > 0) {
                                data[i][OFFENE_AG_LOSHATFEHLMENGE] = new Boolean(true);
                            }
                        }
                        session2.close();
                    }
                }
            } else {

                data[i][OFFENE_AG_AGNUMMER] = a.getI_arbeitsgangsnummer();
                data[i][OFFENE_AG_UAGNUMMER] = a.getI_unterarbeitsgang();
                data[i][OFFENE_AG_AG_ARTIKEL] = a.getFlrartikel().getC_nr();
                ArtikelDto aDto = getArtikelFac().artikelFindByPrimaryKeySmall(a.getFlrartikel().getI_id(),
                        theClientDto);
                data[i][OFFENE_AG_AG_ARTIKELBEZEICHNUNG] = aDto.formatBezeichnung();

                if (Helper.short2boolean(a.getB_fertig())) {
                    data[i][OFFENE_AG_AG_GESAMTZEIT] = new BigDecimal(0);
                } else {
                    data[i][OFFENE_AG_AG_GESAMTZEIT] = a.getN_gesamtzeit();
                }
                if (bSollstundenbetrachtung == true) {
                    data[i][OFFENE_AG_AG_ISTZEIT] = getZeiterfassungFac().getSummeZeitenEinesBeleges(
                            LocaleFac.BELEGART_LOS, los.getI_id(), a.getI_id(), null, null, null, theClientDto);

                }
                if (a.getFlrmaschine() != null) {
                    data[i][OFFENE_AG_AG_MASCHINE_BEZEICHNUNG] = a.getFlrmaschine().getC_bez();
                    data[i][OFFENE_AG_AG_MASCHINE_IDENTIFIKATIONSNUMMMER] = a.getFlrmaschine()
                            .getC_identifikationsnr();
                    data[i][OFFENE_AG_AG_MASCHINE_INVENTARNUMMMER] = a.getFlrmaschine().getC_inventarnummer();
                }
                if (a.getFlrartikel().getFlrartikelgruppe() != null) {
                    data[i][OFFENE_AG_AG_ARTIKELGRUPPPE] = a.getFlrartikel().getFlrartikelgruppe().getC_nr();
                } else {
                    data[i][OFFENE_AG_AG_ARTIKELGRUPPPE] = "";
                }

                if (a.getI_maschinenversatztage() != null) {
                    data[i][OFFENE_AG_AG_BEGINN] = Helper.addiereTageZuTimestamp(
                            (Timestamp) los.getT_produktionsbeginn(), a.getI_maschinenversatztage());

                } else {
                    data[i][OFFENE_AG_AG_BEGINN] = los.getT_produktionsbeginn();

                }

                if (los.getFlrauftrag() != null) {

                    Integer partnerIId = los.getFlrauftrag().getFlrkunde().getFlrpartner().getI_id();
                    PartnerDto partnerDto = getPartnerFac().partnerFindByPrimaryKey(partnerIId, theClientDto);
                    data[i][OFFENE_AG_KUNDE] = partnerDto.formatFixTitelName1Name2();
                    data[i][OFFENE_AG_AUFTRAGSPOENALE] = los.getFlrauftrag().getB_poenale();
                }

                if (los.getFlrauftrag() != null) {
                    data[i][OFFENE_AG_AUFTRAGSNUMMER] = los.getFlrauftrag().getC_nr();
                    data[i][OFFENE_AG_PROJEKT] = los.getFlrauftrag().getC_bez();
                    data[i][OFFENE_AG_LIEFERTERMIN] = los.getFlrauftrag().getT_liefertermin();
                }
                BigDecimal bdGeliefert = new BigDecimal(0);
                for (Iterator<?> iter2 = los.getAblieferungset().iterator(); iter2.hasNext();) {
                    FLRLosablieferung item = (FLRLosablieferung) iter2.next();
                    bdGeliefert = bdGeliefert.add(item.getN_menge());
                }
                data[i][OFFENE_AG_GELIEFERT] = bdGeliefert;
                if (los.getFlrstueckliste() != null) {
                    ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKeySmall(
                            los.getFlrstueckliste().getFlrartikel().getI_id(), theClientDto);
                    data[i][OFFENE_AG_BEZEICHNUNG] = artikelDto.getArtikelsprDto().getCBez();
                    data[i][OFFENE_AG_ZUSATZBEZEICHNUNG] = artikelDto.getArtikelsprDto().getCZbez();
                    data[i][OFFENE_AG_ARTIKELNUMMER] = los.getFlrstueckliste().getFlrartikel().getC_nr();

                    data[i][OFFENE_AG_DETAILBEDARF] = getRahmenbedarfeFac()
                            .getSummeAllerRahmenbedarfeEinesArtikels(artikelDto.getIId());

                    // Offene Fehlmengen
                    data[i][OFFENE_AG_FEHLMENGE] = getFehlmengeFac()
                            .getAnzahlFehlmengeEinesArtikels(artikelDto.getIId(), theClientDto);

                    LossollarbeitsplanDto[] lossollarbeitsplanDto = getFertigungFac()
                            .lossollarbeitsplanFindByLosIId(los.getI_id());

                    BigDecimal bdFertigungszeit = new BigDecimal(0);
                    for (int j = 0; lossollarbeitsplanDto.length > j; j++) {
                        bdFertigungszeit = bdFertigungszeit.add(lossollarbeitsplanDto[j].getNGesamtzeit());
                    }
                    data[i][OFFENE_AG_FERTIGUNGSZEIT] = bdFertigungszeit;

                    // Rahmenbestellt
                    Hashtable<?, ?> htRahmenbestellt = getArtikelbestelltFac()
                            .getAnzahlRahmenbestellt(artikelDto.getIId(), theClientDto);
                    if (htRahmenbestellt.containsKey(ArtikelbestelltFac.KEY_RAHMENBESTELLT_ANZAHL)) {
                        BigDecimal bdAnzahlRahmenbestellt = (BigDecimal) htRahmenbestellt
                                .get(ArtikelbestelltFac.KEY_RAHMENBESTELLT_ANZAHL);
                        data[i][OFFENE_AG_RAHMEN_BESTELLT] = bdAnzahlRahmenbestellt;
                    }
                    data[i][OFFENE_AG_RESERVIERUNGEN] = getReservierungFac()
                            .getAnzahlReservierungen(artikelDto.getIId(), theClientDto);

                    data[i][OFFENE_AG_RAHMENRESERVIERUNGEN] = getReservierungFac()
                            .getAnzahlRahmenreservierungen(artikelDto.getIId(), theClientDto);

                } else {
                    data[i][OFFENE_AG_BEZEICHNUNG] = los.getC_projekt();
                    data[i][OFFENE_AG_ZUSATZBEZEICHNUNG] = null;
                    data[i][OFFENE_AG_ARTIKELNUMMER] = getTextRespectUISpr("fert.materialliste",
                            theClientDto.getMandant(), theClientDto.getLocUi());
                }

                GregorianCalendar gc = new GregorianCalendar();
                gc.setTime(los.getT_produktionsbeginn());
                data[i][OFFENE_AG_KALENDERWOCHE] = new Integer(gc.get(GregorianCalendar.WEEK_OF_YEAR));
                data[i][OFFENE_AG_LOSGROESSE] = los.getN_losgroesse();
                data[i][OFFENE_AG_LOSNUMMER] = los.getC_nr();
                data[i][OFFENE_AG_FERTIGUNGSGRUPPE] = los.getFlrfertigungsgruppe().getC_bez();
                /**
                 * @todo material PJ 4239
                 */
                data[i][OFFENE_AG_MATERIAL] = null;
                data[i][OFFENE_AG_BEGINN] = los.getT_produktionsbeginn();
                data[i][OFFENE_AG_ENDE] = los.getT_produktionsende();
                data[i][OFFENE_AG_LOSSTATUS] = los.getStatus_c_nr();

                // PJ 15009

                String queryf = "select sum(flrfehlmenge.n_menge) FROM FLRFehlmenge flrfehlmenge WHERE flrfehlmenge.flrlossollmaterial.flrlos = "
                        + los.getI_id() + " AND flrfehlmenge.n_menge>0";
                Session session2 = FLRSessionFactory.getFactory().openSession();
                Query query = session2.createQuery(queryf);
                List<?> results = query.list();

                data[i][OFFENE_AG_LOSHATFEHLMENGE] = new Boolean(false);
                if (results.size() > 0) {
                    BigDecimal bd = (BigDecimal) results.iterator().next();

                    if (bd != null && bd.doubleValue() > 0) {
                        data[i][OFFENE_AG_LOSHATFEHLMENGE] = new Boolean(true);
                    }
                }
                session2.close();
            }
        }
        // Sortieren nach Artikelgruppe + AG-Beginn

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

                if (((String) a1[OFFENE_AG_AG_ARTIKELGRUPPPE])
                        .compareTo((String) a2[OFFENE_AG_AG_ARTIKELGRUPPPE]) > 0) {
                    data[j] = a2;
                    data[j + 1] = a1;
                } else if (((String) a1[OFFENE_AG_AG_ARTIKELGRUPPPE])
                        .compareTo((String) a2[OFFENE_AG_AG_ARTIKELGRUPPPE]) == 0) {
                    java.util.Date k1 = (java.util.Date) a1[OFFENE_AG_AG_BEGINN];
                    java.util.Date k2 = (java.util.Date) a2[OFFENE_AG_AG_BEGINN];

                    if (iOptionStichtag == FertigungReportFac.OFFENE_OPTION_STICHTAG_ENDEDATUM) {
                        k1 = (java.util.Date) a1[OFFENE_AG_ENDE];
                        k2 = (java.util.Date) a2[OFFENE_AG_ENDE];
                    } else if (iOptionStichtag == FertigungReportFac.OFFENE_OPTION_STICHTAG_LIEFERTERMIN) {
                        k1 = (java.util.Date) a1[OFFENE_AG_LIEFERTERMIN];

                        if (k1 == null) {
                            k1 = new Date(0);
                        }

                        k2 = (java.util.Date) a2[OFFENE_AG_LIEFERTERMIN];

                        if (k2 == null) {
                            k2 = new Date(0);
                        }

                    }

                    k1 = Helper.cutDate(k1);
                    k2 = Helper.cutDate(k2);

                    if (k1.after(k2)) {
                        data[j] = a2;
                        data[j + 1] = a1;
                    } else if (k1.equals(k2)) {

                        String l1 = (String) a1[OFFENE_AG_LOSNUMMER];
                        String l2 = (String) a1[OFFENE_AG_LOSNUMMER];
                        if (l1.compareTo(l2) > 0) {
                            data[j] = a2;
                            data[j + 1] = a1;
                        }

                    }
                }
            }
        }

        initJRDS(mapParameter, FertigungReportFac.REPORT_MODUL, FertigungReportFac.REPORT_OFFENE_AG,
                theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto);
        return getReportPrint();
    } catch (Exception t) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER, t);
    } finally {
        closeSession(session);
    }
}

From source file:com.lp.server.reklamation.ejbfac.ReklamationReportFacBean.java

License:Open Source License

@TransactionAttribute(TransactionAttributeType.NEVER)
public JasperPrintLP printOffeneReklamationenEinesArtikels(Integer artikelIId, TheClientDto theClientDto) {
    sAktuellerReport = ReklamationReportFac.REPORT_OFFENEREKLAMATIONENEINESARTIKEL;

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

    org.hibernate.Criteria crit = session.createCriteria(FLRReklamation.class);
    crit.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant()));

    session.enableFilter("filterMandant").setParameter("paramMandant", theClientDto.getMandant());
    session.enableFilter("filterLocale").setParameter("paramLocale", theClientDto.getLocUiAsString());

    crit.createAlias(ReklamationFac.FLR_REKLAMATION_FLRARTIKEL, "a", CriteriaSpecification.LEFT_JOIN);
    crit.add(Restrictions.eq("a.i_id", artikelIId));

    crit.add(Restrictions.isNull(ReklamationFac.FLR_REKLAMATION_T_ERLEDIGT));

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

    data = new Object[results.size()][REPORT_OFFENEREKLAMATIONENEINESARTIKEL_ANZAHL_SPALTEN];
    int row = 0;/*  w  ww  .j a v a  2  s  .c  o m*/
    while (resultListIterator.hasNext()) {
        FLRReklamation flrReklamation = (FLRReklamation) resultListIterator.next();
        data[row][REPORT_OFFENEREKLAMATIONENEINESARTIKEL_ART] = flrReklamation.getReklamationart_c_nr();
        data[row][REPORT_OFFENEREKLAMATIONENEINESARTIKEL_BELEGNUMMER] = flrReklamation.getC_nr();
        data[row][REPORT_OFFENEREKLAMATIONENEINESARTIKEL_DATUM] = new java.sql.Timestamp(
                flrReklamation.getT_belegdatum().getTime());
        data[row][REPORT_OFFENEREKLAMATIONENEINESARTIKEL_GRUND] = flrReklamation.getC_grund();

        if (flrReklamation.getKunde_i_id() != null) {
            KundeDto kundeDto = getKundeFac().kundeFindByPrimaryKey(flrReklamation.getKunde_i_id(),
                    theClientDto);
            data[row][REPORT_OFFENEREKLAMATIONENEINESARTIKEL_KUNDE] = kundeDto.getPartnerDto()
                    .formatFixTitelName1Name2();
        }
        if (flrReklamation.getLieferant_i_id() != null) {
            LieferantDto lieferantDto = getLieferantFac()
                    .lieferantFindByPrimaryKey(flrReklamation.getLieferant_i_id(), theClientDto);
            data[row][REPORT_OFFENEREKLAMATIONENEINESARTIKEL_LIEFERANT] = lieferantDto.getPartnerDto()
                    .formatFixTitelName1Name2();
        }
    }

    HashMap<String, Object> parameter = new HashMap<String, Object>();
    ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKeySmall(artikelIId, theClientDto);
    parameter.put("P_ARTIKEL", artikelDto.formatArtikelbezeichnung());

    initJRDS(parameter, ReklamationReportFac.REPORT_MODUL,
            ReklamationReportFac.REPORT_OFFENEREKLAMATIONENEINESARTIKEL, theClientDto.getMandant(),
            theClientDto.getLocUi(), theClientDto);

    return getReportPrint();
}

From source file:com.lp.server.reklamation.ejbfac.ReklamationReportFacBean.java

License:Open Source License

public JasperPrintLP printFehlerarten(java.sql.Timestamp tVon, java.sql.Timestamp tBis, boolean bKunde,
        boolean bLieferant, boolean bFertigung, Integer kundeIId, int iGruppierung, boolean bNurBerechtigte,
        TheClientDto theClientDto) {// w ww  .j a  v  a  2 s  .c  o m

    sAktuellerReport = ReklamationReportFac.REPORT_FEHLERART;

    HashMap<String, Object> parameter = new HashMap<String, Object>();
    parameter.put("P_VON", tVon);
    parameter.put("P_BIS", tBis);
    parameter.put("P_NURBERECHTIGTE", new Boolean(bNurBerechtigte));

    tVon = Helper.cutTimestamp(tVon);

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

    org.hibernate.Criteria crit = session.createCriteria(FLRReklamation.class);
    crit.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant()));

    session.enableFilter("filterMandant").setParameter("paramMandant", theClientDto.getMandant());
    session.enableFilter("filterLocale").setParameter("paramLocale", theClientDto.getLocUiAsString());

    Calendar c = Calendar.getInstance();
    c.setTimeInMillis(tBis.getTime());
    c.set(Calendar.DAY_OF_MONTH, c.get(Calendar.DAY_OF_MONTH) + 1);

    tBis = Helper.cutTimestamp(new java.sql.Timestamp(c.getTimeInMillis()));

    crit.add(Restrictions.ge(ReklamationFac.FLR_REKLAMATION_T_BELEGDATUM, tVon));
    crit.add(Restrictions.lt(ReklamationFac.FLR_REKLAMATION_T_BELEGDATUM, tBis));

    crit.createAlias(ReklamationFac.FLR_REKLAMATION_FLRLIEFERANT, "l", CriteriaSpecification.LEFT_JOIN);
    crit.createAlias(ReklamationFac.FLR_REKLAMATION_FRLKUNDE, "k", CriteriaSpecification.LEFT_JOIN);

    crit.createAlias(ReklamationFac.FLR_REKLAMATION_FLRLOS, "lo", CriteriaSpecification.LEFT_JOIN);
    crit.createAlias("lo." + FertigungFac.FLR_LOSREPORT_FLRAUFTRAG, "au", CriteriaSpecification.LEFT_JOIN);

    crit.createAlias("l." + LieferantFac.FLR_PARTNER, "pl", CriteriaSpecification.LEFT_JOIN);
    crit.createAlias("k." + KundeFac.FLR_PARTNER, "kl", CriteriaSpecification.LEFT_JOIN);
    crit.createAlias(ReklamationFac.FLR_REKLAMATION_FLRFEHLERANGABE, "f", CriteriaSpecification.LEFT_JOIN);

    if (bNurBerechtigte == true) {
        crit.add(Restrictions.eq(ReklamationFac.FLR_REKLAMATION_B_BERECHTIGT, Helper.boolean2Short(true)));
    }

    ArrayList<String> alArten = new ArrayList<String>();
    if (bFertigung == true) {
        alArten.add(ReklamationFac.REKLAMATIONART_FERTIGUNG);
    }
    if (bKunde == true) {
        alArten.add(ReklamationFac.REKLAMATIONART_KUNDE);
    }
    if (bLieferant == true) {
        alArten.add(ReklamationFac.REKLAMATIONART_LIEFERANT);
    }

    crit.add(Restrictions.in(ReklamationFac.FLR_REKLAMATION_REKLAMATIONART_C_NR, alArten));

    if (alArten.size() == 0) {
        return null;
    }

    if (kundeIId != null) {
        crit.add(Restrictions.or(Restrictions.eq("au.kunde_i_id_auftragsadresse", kundeIId),
                Restrictions.eq(ReklamationFac.FLR_REKLAMATION_KUNDE_I_ID, kundeIId)));

        KundeDto kundeDto = getKundeFac().kundeFindByPrimaryKey(kundeIId, theClientDto);
        parameter.put("P_KUNDE", kundeDto.getPartnerDto().formatFixTitelName1Name2());

    }

    if (iGruppierung == ReklamationReportFac.SORTIERUNG_FEHLERART_MASCHINENGRUPPE
            || iGruppierung == ReklamationReportFac.SORTIERUNG_FEHLERART_MASCHINENGRUPPE_MITARBEITER) {

        crit.createAlias(ReklamationFac.FLR_REKLAMATION_FLRMASCHINE, "masch", CriteriaSpecification.LEFT_JOIN);
        crit.createAlias("masch." + ZeiterfassungFac.FLR_MASCHINE_FLR_MASCHINENGRUPPE, "mgru",
                CriteriaSpecification.LEFT_JOIN);

        crit.addOrder(Order.asc("mgru.c_bez"));

    }

    if (iGruppierung == ReklamationReportFac.SORTIERUNG_FEHLERART_MITARBEITER
            || iGruppierung == ReklamationReportFac.SORTIERUNG_FEHLERART_MASCHINENGRUPPE_MITARBEITER) {
        crit.createAlias(ReklamationFac.FLR_REKLAMATION_FLRVERURSACHER, "ver", CriteriaSpecification.LEFT_JOIN);
        crit.createAlias("ver." + PersonalFac.FLR_PERSONAL_FLRPARTNER, "part", CriteriaSpecification.LEFT_JOIN);
        crit.addOrder(Order.asc("part." + PartnerFac.FLR_PARTNER_C_NAME1NACHNAMEFIRMAZEILE1));
        crit.addOrder(Order.asc("part." + PartnerFac.FLR_PARTNER_C_NAME2VORNAMEFIRMAZEILE2));
    }

    crit.addOrder(Order.asc("f.c_bez"));
    crit.addOrder(Order.asc("c_nr"));

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

    data = new Object[results.size()][REPORT_FEHLERART_ANZAHL_SPALTEN];
    int row = 0;

    if (iGruppierung == ReklamationReportFac.SORTIERUNG_FEHLERART_FEHLERART) {
        parameter.put("P_SORTIERUNG",
                getTextRespectUISpr("rekla.fehlerart", theClientDto.getMandant(), theClientDto.getLocUi()));
    } else if (iGruppierung == ReklamationReportFac.SORTIERUNG_FEHLERART_MASCHINENGRUPPE) {
        parameter.put("P_SORTIERUNG",
                getTextRespectUISpr("lp.maschinengruppe", theClientDto.getMandant(), theClientDto.getLocUi()));
    } else if (iGruppierung == ReklamationReportFac.SORTIERUNG_FEHLERART_MITARBEITER) {
        parameter.put("P_SORTIERUNG",
                getTextRespectUISpr("rekla.verursacher", theClientDto.getMandant(), theClientDto.getLocUi()));
    } else if (iGruppierung == ReklamationReportFac.SORTIERUNG_FEHLERART_MASCHINENGRUPPE_MITARBEITER) {
        parameter.put("P_SORTIERUNG",
                getTextRespectUISpr("lp.maschinengruppe", theClientDto.getMandant(), theClientDto.getLocUi())
                        + " + " + getTextRespectUISpr("rekla.verursacher", theClientDto.getMandant(),
                                theClientDto.getLocUi()));
    }

    while (resultListIterator.hasNext()) {
        FLRReklamation flrReklamation = (FLRReklamation) resultListIterator.next();

        data[row][REPORT_FEHLERART_FEHLERART] = flrReklamation.getFlrfehlerangabe().getC_bez();
        data[row][REPORT_FEHLERART_REKLAMATIONSNUMMER] = flrReklamation.getC_nr();
        data[row][REPORT_FEHLERART_REKLAMATIONSART] = flrReklamation.getReklamationart_c_nr();
        data[row][REPORT_FEHLERART_MASCHINENGRUPPE] = "";

        if (flrReklamation.getFlrmaschine() != null) {
            data[row][REPORT_FEHLERART_MASCHINENGRUPPE] = flrReklamation.getFlrmaschine()
                    .getFlrmaschinengruppe().getC_bez();
        }

        data[row][REPORT_FEHLERART_VERURSACHER] = "";
        if (flrReklamation.getFlrverursacher() != null) {
            PersonalDto personalDto = getPersonalFac()
                    .personalFindByPrimaryKey(flrReklamation.getFlrverursacher().getI_id(), theClientDto);

            data[row][REPORT_FEHLERART_VERURSACHER] = personalDto.formatAnrede();
        }
        data[row][REPORT_FEHLERART_KUNDE] = "";
        KundeDto kundeDto = null;
        if (flrReklamation.getReklamationart_c_nr().equals(ReklamationFac.REKLAMATIONART_KUNDE)
                && flrReklamation.getKunde_i_id() != null) {

            kundeDto = getKundeFac().kundeFindByPrimaryKey(flrReklamation.getKunde_i_id(), theClientDto);

        } else if (flrReklamation.getReklamationart_c_nr().equals(ReklamationFac.REKLAMATIONART_FERTIGUNG)
                && flrReklamation.getFlrlos() != null && flrReklamation.getFlrlos().getFlrauftrag() != null) {
            kundeDto = getKundeFac().kundeFindByPrimaryKey(
                    flrReklamation.getFlrlos().getFlrauftrag().getKunde_i_id_auftragsadresse(), theClientDto);
        }

        if (kundeDto != null) {
            data[row][REPORT_FEHLERART_KUNDE] = kundeDto.getPartnerDto().formatTitelAnrede();
        }

        flrReklamation.getFlrfehlerangabe().getC_bez();
        data[row][REPORT_FEHLERART_FEHLERART] = flrReklamation.getFlrfehlerangabe().getC_bez();

        if (iGruppierung == ReklamationReportFac.SORTIERUNG_FEHLERART_FEHLERART) {
            data[row][REPORT_FEHLERART_GRUPPIERUNG] = data[row][REPORT_FEHLERART_FEHLERART];
        } else if (iGruppierung == ReklamationReportFac.SORTIERUNG_FEHLERART_MASCHINENGRUPPE) {
            data[row][REPORT_FEHLERART_GRUPPIERUNG] = data[row][REPORT_FEHLERART_MASCHINENGRUPPE];
        } else if (iGruppierung == ReklamationReportFac.SORTIERUNG_FEHLERART_MITARBEITER) {
            data[row][REPORT_FEHLERART_GRUPPIERUNG] = data[row][REPORT_FEHLERART_VERURSACHER];
        } else if (iGruppierung == ReklamationReportFac.SORTIERUNG_FEHLERART_MASCHINENGRUPPE_MITARBEITER) {
            data[row][REPORT_FEHLERART_GRUPPIERUNG] = data[row][REPORT_FEHLERART_MASCHINENGRUPPE] + " "
                    + data[row][REPORT_FEHLERART_VERURSACHER].toString();
        }

        row++;
    }

    initJRDS(parameter, ReklamationReportFac.REPORT_MODUL, ReklamationReportFac.REPORT_FEHLERART,
            theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto);

    return getReportPrint();

}

From source file:com.lp.server.reklamation.ejbfac.ReklamationReportFacBean.java

License:Open Source License

public JasperPrintLP printMitarbeiterreklamation(java.sql.Timestamp tVon, java.sql.Timestamp tBis,
        boolean bKunde, boolean bLieferant, boolean bFertigung, Integer kundeIId, boolean bNurBerechtigte,
        TheClientDto theClientDto) {//from   w  w w  .  j a  v a2  s  .  co m

    sAktuellerReport = ReklamationReportFac.REPORT_MITARBEITERREKLAMATION;

    HashMap<String, Object> parameter = new HashMap<String, Object>();
    parameter.put("P_VON", tVon);
    parameter.put("P_BIS", tBis);
    parameter.put("P_NURBERECHTIGTE", new Boolean(bNurBerechtigte));

    tVon = Helper.cutTimestamp(tVon);

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

    org.hibernate.Criteria crit = session.createCriteria(FLRReklamation.class);
    crit.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant()));

    session.enableFilter("filterMandant").setParameter("paramMandant", theClientDto.getMandant());
    session.enableFilter("filterLocale").setParameter("paramLocale", theClientDto.getLocUiAsString());

    Calendar c = Calendar.getInstance();
    c.setTimeInMillis(tBis.getTime());
    c.set(Calendar.DAY_OF_MONTH, c.get(Calendar.DAY_OF_MONTH) + 1);

    tBis = Helper.cutTimestamp(new java.sql.Timestamp(c.getTimeInMillis()));

    crit.add(Restrictions.ge(ReklamationFac.FLR_REKLAMATION_T_BELEGDATUM, tVon));
    crit.add(Restrictions.lt(ReklamationFac.FLR_REKLAMATION_T_BELEGDATUM, tBis));

    crit.createAlias(ReklamationFac.FLR_REKLAMATION_FLRLIEFERANT, "l", CriteriaSpecification.LEFT_JOIN);
    crit.createAlias(ReklamationFac.FLR_REKLAMATION_FRLKUNDE, "k", CriteriaSpecification.LEFT_JOIN);

    crit.createAlias(ReklamationFac.FLR_REKLAMATION_FLRLOS, "lo", CriteriaSpecification.LEFT_JOIN);
    crit.createAlias("lo." + FertigungFac.FLR_LOSREPORT_FLRAUFTRAG, "au", CriteriaSpecification.LEFT_JOIN);

    crit.createAlias("l." + LieferantFac.FLR_PARTNER, "pl", CriteriaSpecification.LEFT_JOIN);
    crit.createAlias("k." + KundeFac.FLR_PARTNER, "kl", CriteriaSpecification.LEFT_JOIN);
    crit.createAlias(ReklamationFac.FLR_REKLAMATION_FLRFEHLERANGABE, "f", CriteriaSpecification.LEFT_JOIN);

    if (bNurBerechtigte == true) {
        crit.add(Restrictions.eq(ReklamationFac.FLR_REKLAMATION_B_BERECHTIGT, Helper.boolean2Short(true)));
    }

    ArrayList<String> alArten = new ArrayList<String>();
    if (bFertigung == true) {
        alArten.add(ReklamationFac.REKLAMATIONART_FERTIGUNG);
    }
    if (bKunde == true) {
        alArten.add(ReklamationFac.REKLAMATIONART_KUNDE);
    }
    if (bLieferant == true) {
        alArten.add(ReklamationFac.REKLAMATIONART_LIEFERANT);
    }

    crit.add(Restrictions.in(ReklamationFac.FLR_REKLAMATION_REKLAMATIONART_C_NR, alArten));

    if (kundeIId != null) {
        crit.add(Restrictions.or(Restrictions.eq("au.kunde_i_id_auftragsadresse", kundeIId),
                Restrictions.eq(ReklamationFac.FLR_REKLAMATION_KUNDE_I_ID, kundeIId)));

        KundeDto kundeDto = getKundeFac().kundeFindByPrimaryKey(kundeIId, theClientDto);
        parameter.put("P_KUNDE", kundeDto.getPartnerDto().formatFixTitelName1Name2());

    }

    crit.createAlias(ReklamationFac.FLR_REKLAMATION_FLRVERURSACHER, "ver", CriteriaSpecification.LEFT_JOIN);
    crit.createAlias("ver." + PersonalFac.FLR_PERSONAL_FLRPARTNER, "part", CriteriaSpecification.LEFT_JOIN);
    crit.addOrder(Order.asc("part." + PartnerFac.FLR_PARTNER_C_NAME1NACHNAMEFIRMAZEILE1));
    crit.addOrder(Order.asc("part." + PartnerFac.FLR_PARTNER_C_NAME2VORNAMEFIRMAZEILE2));

    crit.addOrder(Order.asc("f.c_bez"));
    crit.addOrder(Order.asc("c_nr"));

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

    data = new Object[results.size()][REPORT_MITARBEITERREKLAMATION_ANZAHL_SPALTEN];
    int row = 0;
    while (resultListIterator.hasNext()) {
        FLRReklamation flrReklamation = (FLRReklamation) resultListIterator.next();

        data[row][REPORT_MITARBEITERREKLAMATION_REKLAMATIONSNUMMER] = flrReklamation.getC_nr();
        data[row][REPORT_MITARBEITERREKLAMATION_REKLAMATIONSART] = flrReklamation.getReklamationart_c_nr();

        data[row][REPORT_MITARBEITERREKLAMATION_VERURSACHER] = "";
        if (flrReklamation.getFlrverursacher() != null) {
            PersonalDto personalDto = getPersonalFac()
                    .personalFindByPrimaryKey(flrReklamation.getFlrverursacher().getI_id(), theClientDto);

            data[row][REPORT_MITARBEITERREKLAMATION_VERURSACHER] = personalDto.formatAnrede();
        }
        data[row][REPORT_MITARBEITERREKLAMATION_KUNDE] = "";
        KundeDto kundeDto = null;
        if (flrReklamation.getReklamationart_c_nr().equals(ReklamationFac.REKLAMATIONART_KUNDE)
                && flrReklamation.getKunde_i_id() != null) {

            kundeDto = getKundeFac().kundeFindByPrimaryKey(flrReklamation.getKunde_i_id(), theClientDto);

        } else if (flrReklamation.getReklamationart_c_nr().equals(ReklamationFac.REKLAMATIONART_FERTIGUNG)
                && flrReklamation.getFlrlos() != null && flrReklamation.getFlrlos().getFlrauftrag() != null) {
            kundeDto = getKundeFac().kundeFindByPrimaryKey(
                    flrReklamation.getFlrlos().getFlrauftrag().getKunde_i_id_auftragsadresse(), theClientDto);
        }

        if (kundeDto != null) {
            data[row][REPORT_MITARBEITERREKLAMATION_KUNDE] = kundeDto.getPartnerDto().formatTitelAnrede();
        }

        row++;
    }

    initJRDS(parameter, ReklamationReportFac.REPORT_MODUL, ReklamationReportFac.REPORT_MITARBEITERREKLAMATION,
            theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto);

    return getReportPrint();

}

From source file:com.lp.server.reklamation.ejbfac.ReklamationReportFacBean.java

License:Open Source License

public JasperPrintLP printMaschinenreklamation(java.sql.Timestamp tVon, java.sql.Timestamp tBis, boolean bKunde,
        boolean bLieferant, boolean bFertigung, Integer kundeIId, boolean bNurBerechtigte,
        TheClientDto theClientDto) {//  w ww.j a  v a 2 s .  c  o m

    sAktuellerReport = ReklamationReportFac.REPORT_MASCHINENREKLAMATION;

    HashMap<String, Object> parameter = new HashMap<String, Object>();
    parameter.put("P_VON", tVon);
    parameter.put("P_BIS", tBis);
    parameter.put("P_NURBERECHTIGTE", new Boolean(bNurBerechtigte));

    tVon = Helper.cutTimestamp(tVon);

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

    org.hibernate.Criteria crit = session.createCriteria(FLRReklamation.class);
    crit.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant()));

    session.enableFilter("filterMandant").setParameter("paramMandant", theClientDto.getMandant());
    session.enableFilter("filterLocale").setParameter("paramLocale", theClientDto.getLocUiAsString());

    Calendar c = Calendar.getInstance();
    c.setTimeInMillis(tBis.getTime());
    c.set(Calendar.DAY_OF_MONTH, c.get(Calendar.DAY_OF_MONTH) + 1);

    tBis = Helper.cutTimestamp(new java.sql.Timestamp(c.getTimeInMillis()));

    crit.add(Restrictions.ge(ReklamationFac.FLR_REKLAMATION_T_BELEGDATUM, tVon));
    crit.add(Restrictions.lt(ReklamationFac.FLR_REKLAMATION_T_BELEGDATUM, tBis));

    crit.createAlias(ReklamationFac.FLR_REKLAMATION_FLRLIEFERANT, "l", CriteriaSpecification.LEFT_JOIN);
    crit.createAlias(ReklamationFac.FLR_REKLAMATION_FRLKUNDE, "k", CriteriaSpecification.LEFT_JOIN);

    crit.createAlias(ReklamationFac.FLR_REKLAMATION_FLRLOS, "lo", CriteriaSpecification.LEFT_JOIN);
    crit.createAlias("lo." + FertigungFac.FLR_LOSREPORT_FLRAUFTRAG, "au", CriteriaSpecification.LEFT_JOIN);

    crit.createAlias("l." + LieferantFac.FLR_PARTNER, "pl", CriteriaSpecification.LEFT_JOIN);
    crit.createAlias("k." + KundeFac.FLR_PARTNER, "kl", CriteriaSpecification.LEFT_JOIN);
    crit.createAlias(ReklamationFac.FLR_REKLAMATION_FLRFEHLERANGABE, "f", CriteriaSpecification.LEFT_JOIN);

    if (bNurBerechtigte == true) {
        crit.add(Restrictions.eq(ReklamationFac.FLR_REKLAMATION_B_BERECHTIGT, Helper.boolean2Short(true)));
    }

    ArrayList<String> alArten = new ArrayList<String>();
    if (bFertigung == true) {
        alArten.add(ReklamationFac.REKLAMATIONART_FERTIGUNG);
    }
    if (bKunde == true) {
        alArten.add(ReklamationFac.REKLAMATIONART_KUNDE);
    }
    if (bLieferant == true) {
        alArten.add(ReklamationFac.REKLAMATIONART_LIEFERANT);
    }

    crit.add(Restrictions.in(ReklamationFac.FLR_REKLAMATION_REKLAMATIONART_C_NR, alArten));

    if (kundeIId != null) {
        crit.add(Restrictions.or(Restrictions.eq("au.kunde_i_id_auftragsadresse", kundeIId),
                Restrictions.eq(ReklamationFac.FLR_REKLAMATION_KUNDE_I_ID, kundeIId)));

        KundeDto kundeDto = getKundeFac().kundeFindByPrimaryKey(kundeIId, theClientDto);
        parameter.put("P_KUNDE", kundeDto.getPartnerDto().formatFixTitelName1Name2());

    }

    crit.createAlias(ReklamationFac.FLR_REKLAMATION_FLRMASCHINE, "masch", CriteriaSpecification.LEFT_JOIN);
    crit.createAlias("masch." + ZeiterfassungFac.FLR_MASCHINE_FLR_MASCHINENGRUPPE, "mgru",
            CriteriaSpecification.LEFT_JOIN);

    crit.addOrder(Order.asc("mgru.c_bez"));
    crit.addOrder(Order.asc("f.c_bez"));
    crit.addOrder(Order.asc("c_nr"));

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

    data = new Object[results.size()][REPORT_MASCHINENREKLAMATION_ANZAHL_SPALTEN];
    int row = 0;
    while (resultListIterator.hasNext()) {
        FLRReklamation flrReklamation = (FLRReklamation) resultListIterator.next();

        data[row][REPORT_MASCHINENREKLAMATION_REKLAMATIONSNUMMER] = flrReklamation.getC_nr();
        data[row][REPORT_MASCHINENREKLAMATION_REKLAMATIONSART] = flrReklamation.getReklamationart_c_nr();

        if (flrReklamation.getFlrmaschine() != null) {
            data[row][REPORT_MASCHINENREKLAMATION_MASCHINENGRUPPE] = flrReklamation.getFlrmaschine()
                    .getFlrmaschinengruppe().getC_bez();
        }

        data[row][REPORT_MASCHINENREKLAMATION_VERURSACHER] = "";
        if (flrReklamation.getFlrverursacher() != null) {
            PersonalDto personalDto = getPersonalFac()
                    .personalFindByPrimaryKey(flrReklamation.getFlrverursacher().getI_id(), theClientDto);

            data[row][REPORT_MASCHINENREKLAMATION_VERURSACHER] = personalDto.formatAnrede();
        }

        data[row][REPORT_MASCHINENREKLAMATION_KUNDE] = "";
        KundeDto kundeDto = null;
        if (flrReklamation.getReklamationart_c_nr().equals(ReklamationFac.REKLAMATIONART_KUNDE)
                && flrReklamation.getKunde_i_id() != null) {

            kundeDto = getKundeFac().kundeFindByPrimaryKey(flrReklamation.getKunde_i_id(), theClientDto);

        } else if (flrReklamation.getReklamationart_c_nr().equals(ReklamationFac.REKLAMATIONART_FERTIGUNG)
                && flrReklamation.getFlrlos() != null && flrReklamation.getFlrlos().getFlrauftrag() != null) {
            kundeDto = getKundeFac().kundeFindByPrimaryKey(
                    flrReklamation.getFlrlos().getFlrauftrag().getKunde_i_id_auftragsadresse(), theClientDto);
        }

        if (kundeDto != null) {
            data[row][REPORT_MASCHINENREKLAMATION_KUNDE] = kundeDto.getPartnerDto().formatTitelAnrede();
        }

        row++;
    }

    initJRDS(parameter, ReklamationReportFac.REPORT_MODUL, ReklamationReportFac.REPORT_MASCHINENREKLAMATION,
            theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto);

    return getReportPrint();

}

From source file:com.mg.framework.support.orm.CriteriaHibernateImpl.java

License:Open Source License

protected static int convertJoinModeToHibernate(JoinType joinType) {
    switch (joinType) {
    case FULL_JOIN:
        return CriteriaSpecification.FULL_JOIN;
    case INNER_JOIN:
        return CriteriaSpecification.INNER_JOIN;
    case LEFT_JOIN:
        return CriteriaSpecification.LEFT_JOIN;
    default:/*ww w. j av a2 s .  com*/
        throw new IllegalArgumentException();
    }
}

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

License:Apache License

@Override
public void render(final CriteriaContext context) {
    final Criterion field = context.getCriterion();

    if (field.getSortingType() == SortingType.NONE)
        return;/*ww  w  .j a  va  2  s . c o m*/

    Criteria criteria = context.getOrderingCriteria();

    final List<String> propertyNamePath = Arrays.asList(field.getPojoProperty().split(REGEX_SPLIT));
    final Iterator<String> iter = propertyNamePath.iterator();
    String key = null;
    String associationPath = null;
    if (propertyNamePath.size() == 1) {
        associationPath = iter.next();
    } else
        while (iter.hasNext()) {
            key = iter.next();
            if (associationPath == null) {
                associationPath = new String(key);
            } else {
                associationPath += "." + key;
            }
            if (iter.hasNext()) {
                criteria = criteria.createCriteria(associationPath, key, CriteriaSpecification.LEFT_JOIN);
                associationPath = new String(key);
            }
        }
    criteria = context.getOrderingCriteria();
    if (field.getSortingType() == SortingType.ASCENDING) {
        criteria.addOrder(Order.asc(associationPath));
    } else if (field.getSortingType() == SortingType.DESCENDING) {
        criteria.addOrder(Order.desc(associationPath));
    }
}