Example usage for org.hibernate.criterion Restrictions in

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

Introduction

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

Prototype

public static Criterion in(String propertyName, Collection values) 

Source Link

Document

Apply an "in" constraint to the named property.

Usage

From source file:com.lp.server.rechnung.ejbfac.RechnungFacBean.java

License:Open Source License

@TransactionAttribute(TransactionAttributeType.NEVER)
public String pruefeRechnungswert(TheClientDto theClientDto) {

    String sFehler = "Rechnung;Mandant;WertAusRechnung;WertAusPositionen;";
    byte[] cRLFAscii = { 13, 10 };
    SessionFactory factory = FLRSessionFactory.getFactory();
    Session session = factory.openSession();
    Criteria c = session.createCriteria(FLRRechnungReport.class);

    String[] stati = new String[4];
    stati[0] = RechnungFac.RECHNUNGART_RECHNUNG;
    stati[1] = RechnungFac.RECHNUNGART_GUTSCHRIFT;
    stati[2] = RechnungFac.RECHNUNGART_WERTGUTSCHRIFT;
    stati[3] = RechnungFac.RECHNUNGART_SCHLUSSZAHLUNG;

    c.createAlias(RechnungFac.FLR_RECHNUNG_FLRRECHNUNGART, "ra");

    c.add(Restrictions.in("ra.c_nr", stati));

    // Filter nach Status
    Collection<String> cStati = new LinkedList<String>();
    cStati.add(RechnungFac.STATUS_BEZAHLT);
    cStati.add(RechnungFac.STATUS_TEILBEZAHLT);
    cStati.add(RechnungFac.STATUS_OFFEN);
    cStati.add(RechnungFac.STATUS_VERBUCHT);
    c.add(Restrictions.in(RechnungFac.FLR_RECHNUNG_STATUS_C_NR, cStati));

    c.addOrder(Order.asc("c_nr"));

    List<?> list = c.list();
    for (Iterator<?> iter = list.iterator(); iter.hasNext();) {
        FLRRechnungReport item = (FLRRechnungReport) iter.next();

        if (item.getN_wert() != null) {
            RechnungDto rechnungDto = rechnungFindByPrimaryKey(item.getI_id());
            // Positionen holen
            RechnungPositionDto[] rePosDto = rechnungPositionFindByRechnungIId(rechnungDto.getIId());
            // Belege ohne Positionen duerfen nicht aktiviert werden
            if (rePosDto == null || rePosDto.length == 0) {
            } else {
                BigDecimal wert = getRechnungswertInRechnungswaehrung(rechnungDto, rePosDto, theClientDto);
                wert = Helper.rundeKaufmaennisch(wert, FinanzFac.NACHKOMMASTELLEN);

                if (item.getN_wert().doubleValue() != wert.doubleValue()) {

                    String zeile = rechnungDto.getCNr() + ";" + rechnungDto.getMandantCNr() + ";"
                            + item.getN_wert() + ";" + wert + ";";

                    ProtokollDto protokollDto = new ProtokollDto();
                    protokollDto.setCArt(SystemFac.PROTOKOLL_ART_FEHLER);
                    protokollDto.setCTyp(SystemFac.PROTOKOLL_TYP_PRUEFE_RECHNUNGSWERT);
                    protokollDto.setCText(zeile);

                    erstelleProtokollEintrag(protokollDto, theClientDto);

                    sFehler += zeile + new String(cRLFAscii);
                }// ww w  .ja va 2s.co  m
            }
        }
    }
    return sFehler;

}

From source file:com.lp.server.rechnung.ejbfac.RechnungReportFacBean.java

License:Open Source License

public JasperPrintLP printRechnungenOffene(ReportRechnungJournalKriterienDto krit, TheClientDto theClientDto)
        throws EJBExceptionLP {
    Session session = null;//  ww  w .  j  a v  a2  s .c  om
    try {
        Map<String, Object> mapParameter = new TreeMap<String, Object>();

        MandantDto mandantDto = getMandantFac().mandantFindByPrimaryKey(theClientDto.getMandant(),
                theClientDto);

        this.useCase = UC_REPORT_RECHNUNGEN_OFFENE;
        SessionFactory factory = FLRSessionFactory.getFactory();
        session = factory.openSession();
        // Kunde oder Statistikadresse verwenden
        final String critKundeIId;
        final String critFLRKunde;
        if (krit.getBVerwendeStatistikAdresse()) {
            critKundeIId = RechnungFac.FLR_RECHNUNG_KUNDE_I_ID_STATISTIKADRESSE;
            critFLRKunde = RechnungFac.FLR_RECHNUNG_FLRSTATISTIKADRESSE;
        } else {
            critKundeIId = RechnungFac.FLR_RECHNUNG_KUNDE_I_ID;
            critFLRKunde = RechnungFac.FLR_RECHNUNG_FLRKUNDE;
        }

        List<Integer> kundenIIds = new ArrayList<Integer>();

        if (krit.kundeIId != null) {
            kundenIIds.add(krit.kundeIId);
        } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) {
            Iterator<?> iter = session.createCriteria(FLRKunde.class).createAlias("flrpartner", "p")
                    .addOrder(Order.asc("p.c_name1nachnamefirmazeile1"))
                    .add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant())).list().iterator();
            while (iter.hasNext())
                kundenIIds.add(((FLRKunde) iter.next()).getI_id());
        } else {
            kundenIIds.add(null);
        }

        List<Object[]> dataList = new ArrayList<Object[]>();

        for (Integer kndIId : kundenIIds) {

            Criteria c = session.createCriteria(FLRRechnungReport.class);
            // Filter nach Mandant
            c.add(Restrictions.eq(RechnungFac.FLR_RECHNUNG_MANDANT_C_NR, theClientDto.getMandant()));
            // Rechnungstypen
            Collection<String> cRechnungstyp = new LinkedList<String>();
            cRechnungstyp.add(RechnungFac.RECHNUNGTYP_RECHNUNG);
            if (krit.getBGutschriftenBeruecksichtigen()) {
                cRechnungstyp.add(RechnungFac.RECHNUNGTYP_GUTSCHRIFT);
            }
            c.createCriteria(RechnungFac.FLR_RECHNUNG_FLRRECHNUNGART)
                    .add(Restrictions.in(RechnungFac.FLR_RECHNUNGART_RECHNUNGTYP_C_NR, cRechnungstyp));
            // Kostenstelle
            if (krit.kostenstelleIId != null) {
                c.add(Restrictions.eq(RechnungFac.FLR_RECHNUNG_KOSTENSTELLE_I_ID, krit.kostenstelleIId));
            }
            if (kndIId != null) {
                c.add(Restrictions.eq(critKundeIId, kndIId));
                KundeDto kundeDto = getKundeFac().kundeFindByPrimaryKey(kndIId, theClientDto);
                mapParameter.put("P_KUNDE", kundeDto.getPartnerDto().formatTitelAnrede());
            }
            // Filter nach einem Vertrter
            if (krit.vertreterIId != null) {
                c.add(Restrictions.eq(RechnungFac.FLR_RECHNUNG_FLRVERTRETER + ".i_id", krit.vertreterIId));
            }
            String sVon = null;
            String sBis = null;
            if (krit.dVon != null) {
                c.add(Restrictions.ge(RechnungFac.FLR_RECHNUNG_D_BELEGDATUM, krit.dVon));
                sVon = Helper.formatDatum(krit.dVon, theClientDto.getLocUi());
            }
            if (krit.dBis != null) {
                c.add(Restrictions.le(RechnungFac.FLR_RECHNUNG_D_BELEGDATUM, krit.dBis));
                sBis = Helper.formatDatum(krit.dBis, theClientDto.getLocUi());
            }
            LpBelegnummerFormat f = getBelegnummerGeneratorObj()
                    .getBelegnummernFormat(theClientDto.getMandant());
            Integer iGeschaeftsjahr = getParameterFac().getGeschaeftsjahr(theClientDto.getMandant());
            String sMandantKuerzel = getParameterFac().getMandantparameter(theClientDto.getMandant(),
                    ParameterFac.KATEGORIE_ALLGEMEIN, ParameterFac.PARAMETER_BELEGNUMMER_MANDANTKENNUNG)
                    .getCWert();
            if (krit.sBelegnummerVon != null) {
                sVon = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr,
                        sMandantKuerzel, krit.sBelegnummerVon);
                c.add(Restrictions.ge(RechnungFac.FLR_RECHNUNG_C_NR, sVon));
            }
            if (krit.sBelegnummerBis != null) {
                sBis = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr,
                        sMandantKuerzel, krit.sBelegnummerBis);
                c.add(Restrictions.le(RechnungFac.FLR_RECHNUNG_C_NR, sBis));
            }
            // Alle Stati ausser Angelegt, Bezahlt, Storniert
            Collection<String> cStati = new LinkedList<String>();
            cStati.add(RechnungFac.STATUS_ANGELEGT);
            cStati.add(RechnungFac.STATUS_STORNIERT);

            c.add(Restrictions.not(Restrictions.in(RechnungFac.FLR_RECHNUNG_STATUS_C_NR, cStati)));

            c.add(Restrictions.or(Restrictions.gt("t_bezahltdatum", krit.getTStichtag()),
                    Restrictions.isNull("t_bezahltdatum")));

            boolean mitNichtZugeordnetenBelegen = false;
            // Sortierung nach Kostenstelle
            if (krit.bSortiereNachKostenstelle) {
                c.createCriteria(RechnungFac.FLR_RECHNUNG_FLRKOSTENSTELLE).addOrder(Order.asc("c_nr"));
            }
            // Sortierung nach Kunde
            if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) {
                c.createCriteria(critFLRKunde).createCriteria(KundeFac.FLR_PARTNER)
                        .addOrder(Order.asc(PartnerFac.FLR_PARTNER_NAME1NACHNAMEFIRMAZEILE1));
                c.addOrder(Order.asc(RechnungFac.FLR_RECHNUNG_C_NR));
                mitNichtZugeordnetenBelegen = krit.getBMitNichtZugeordnetendBelegen();
            }
            // Sortierung nach Belegnummer
            else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_BELEGNUMMER) {
                c.addOrder(Order.asc(RechnungFac.FLR_RECHNUNG_C_NR));
            } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_VERTRETER) {
                c.createCriteria(RechnungFac.FLR_RECHNUNG_FLRVERTRETER)
                        .addOrder(Order.asc(PersonalFac.FLR_PERSONAL_C_KURZZEICHEN));
            } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_FAELLIGKEIT) {
                c.addOrder(Order.asc(RechnungFac.FLR_RECHNUNG_T_FAELLIGKEIT))
                        .addOrder(Order.asc(RechnungFac.FLR_RECHNUNG_C_NR));
            }
            // stichtag ab belegdatum
            c.add(Restrictions.le(RechnungFac.FLR_RECHNUNG_D_BELEGDATUM, krit.getTStichtag()));
            List<?> firstResultList = c.list();
            Iterator<?> firstResultListIterator = firstResultList.iterator();
            List<FLRRechnungReport> resultList = new LinkedList<FLRRechnungReport>();
            while (firstResultListIterator.hasNext()) {
                FLRRechnungReport re = (FLRRechnungReport) firstResultListIterator.next();
                // stichtag bereits bezahlt?
                if (re.getT_bezahltdatum() == null || !krit.getTStichtag().after(re.getT_bezahltdatum())) {
                    resultList.add(re);
                }
            }
            Iterator<?> resultListIterator = resultList.iterator();
            int row = 0;
            Object[][] tempData = new Object[resultList.size()][OFFENE_ANZAHL_SPALTEN];

            KundeDto kundeDto = null;
            if (kndIId != null)
                kundeDto = getKundeFac().kundeFindByPrimaryKey(kndIId, theClientDto);

            if (mitNichtZugeordnetenBelegen && kundeDto.getIidDebitorenkonto() != null) {

                // TODO: nur FLRFinanzBuchungDetail holen
                Query query = session.createQuery(
                        "SELECT buchungdetail from FLRFinanzBuchungDetail buchungdetail LEFT OUTER JOIN buchungdetail.flrbuchung AS buchung"
                                + " WHERE"
                                + BuchungDetailQueryBuilder.buildNurOffeneBuchungDetails("buchungdetail")
                                + "AND"
                                + BuchungDetailQueryBuilder.buildNichtZuordenbareVonKonto("buchungdetail",
                                        "buchung", kundeDto.getIidDebitorenkonto())
                                + (krit.getTStichtag() == null ? ""
                                        : (" AND buchung.d_buchungsdatum<='"
                                                + Helper.formatDateWithSlashes(krit.getTStichtag()) + "'")));

                @SuppressWarnings("unchecked")
                List<FLRFinanzBuchungDetail> bdList = query.list();
                if (bdList.size() > 0) {
                    if (tempData.length < 1) {
                        tempData = new Object[1][OFFENE_ANZAHL_SPALTEN];
                        String sFirma = kundeDto.getPartnerDto().getCName1nachnamefirmazeile1();
                        tempData[row][OFFENE_FELD_FIRMA] = sFirma;
                        tempData[row][OFFENE_FELD_DEBITORENNR] = kundeDto.getIidDebitorenkonto() != null
                                ? getFinanzFac().kontoFindByPrimaryKey(kundeDto.getIidDebitorenkonto()).getCNr()
                                : null;
                    }
                    tempData[0][OFFENE_SUBREPORT_OFFENE_BUCHUNGEN] = FinanzSubreportGenerator
                            .createBuchungsdetailSubreport(bdList, true);
                }
            }

            while (resultListIterator.hasNext()) {
                FLRRechnungReport re = (FLRRechnungReport) resultListIterator.next();
                RechnungDto reDto = getRechnungFac().rechnungFindByPrimaryKey(re.getI_id());
                // Kunde oder Statistikadresse?
                final Integer kundeIId, kundeIIdStatistik;
                if (krit.getBVerwendeStatistikAdresse()) {
                    kundeIId = reDto.getKundeIIdStatistikadresse();
                } else {
                    kundeIId = reDto.getKundeIId();
                    // Statistikdaten wenn nicht Kriterium Statistikadresse
                    kundeIIdStatistik = reDto.getKundeIIdStatistikadresse();

                    KundeDto kundeDtoStatistik = getKundeFac().kundeFindByPrimaryKey(kundeIIdStatistik,
                            theClientDto);
                    String sFirmaStatistik = kundeDtoStatistik.getPartnerDto().getCName1nachnamefirmazeile1();

                    String sKundeLKZStatistik = null;
                    if (kundeDtoStatistik.getPartnerDto().getLandplzortDto() != null) {
                        sKundeLKZStatistik = kundeDtoStatistik.getPartnerDto().getLandplzortDto().getLandDto()
                                .getCLkz();
                    }
                    tempData[row][OFFENE_FELD_FIRMA_STATISTIK] = sFirmaStatistik;
                    tempData[row][OFFENE_FELD_FIRMA_LKZ_STATISTIK] = sKundeLKZStatistik;

                }

                if (kundeDto == null || kundeDto.getIId() != kundeIId) {
                    kundeDto = getKundeFac().kundeFindByPrimaryKey(kundeIId, theClientDto);
                }

                String sFirma = kundeDto.getPartnerDto().getCName1nachnamefirmazeile1();

                String sKundeLKZ = null;
                if (kundeDto.getPartnerDto().getLandplzortDto() != null) {
                    sKundeLKZ = kundeDto.getPartnerDto().getLandplzortDto().getLandDto().getCLkz();
                }
                tempData[row][OFFENE_FELD_RECHNUNGART] = re.getFlrrechnungart().getRechnungtyp_c_nr();
                tempData[row][OFFENE_FELD_RECHNUNGSNUMMER] = reDto.getCNr();
                tempData[row][OFFENE_FELD_FIRMA] = sFirma;
                tempData[row][OFFENE_FELD_FIRMA_LKZ] = sKundeLKZ;
                tempData[row][OFFENE_FELD_RECHNUNGSDATUM] = re.getD_belegdatum();

                tempData[row][OFFENE_FELD_KURS] = re.getN_kurs();
                tempData[row][OFFENE_FELD_WAEHRUNG] = re.getWaehrung_c_nr();
                tempData[row][OFFENE_FELD_DEBITORENNR] = kundeDto.getIidDebitorenkonto() != null
                        ? getFinanzFac().kontoFindByPrimaryKey(kundeDto.getIidDebitorenkonto()).getCNr()
                        : null;

                // Vertreter
                if (re.getFlrvertreter() != null) {
                    if (re.getFlrvertreter().getFlrpartner().getC_name2vornamefirmazeile2() != null) {
                        tempData[row][OFFENE_FELD_VERTRETER] = re.getFlrvertreter().getFlrpartner()
                                .getC_name1nachnamefirmazeile1() + " "
                                + re.getFlrvertreter().getFlrpartner().getC_name2vornamefirmazeile2();
                    } else {
                        tempData[row][OFFENE_FELD_VERTRETER] = re.getFlrvertreter().getFlrpartner()
                                .getC_name1nachnamefirmazeile1();
                    }
                }
                // datum der letzten zahlung bis zum stichtag ermitteln
                RechnungzahlungDto[] zahlungen = getRechnungFac().zahlungFindByRechnungIId(re.getI_id());
                java.sql.Date dZahldatum = null;
                for (int i = 0; i < zahlungen.length; i++) {
                    if ((dZahldatum == null || zahlungen[i].getDZahldatum().after(dZahldatum))
                            && !zahlungen[i].getDZahldatum().after(krit.getTStichtag())) {
                        dZahldatum = new Date(zahlungen[i].getDZahldatum().getTime());
                    }
                }
                // Zahlungsbetrag bis zum Stichtag ermitteln
                BigDecimal bdBezahlt = new BigDecimal(0);
                for (int i = 0; i < zahlungen.length; i++) {
                    if (!zahlungen[i].getDZahldatum().after(krit.getTStichtag())) {
                        bdBezahlt = bdBezahlt.add(zahlungen[i].getNBetrag());
                    }
                }
                if (reDto.getKostenstelleIId() != null) {
                    KostenstelleDto kstDto = getSystemFac()
                            .kostenstelleFindByPrimaryKey(reDto.getKostenstelleIId());
                    tempData[row][OFFENE_FELD_KOSTENSTELLE] = kstDto.getCNr();
                }

                if (reDto.getNWert() == null) {
                    EJBExceptionLP ex = new EJBExceptionLP(EJBExceptionLP.FEHLER_RECHNUNG_HAT_KEINEN_WERT, "");
                    ArrayList<Object> alInfo = new ArrayList<Object>();
                    alInfo.add("ID: " + reDto.getIId());
                    alInfo.add("Nr: " + reDto.getCNr());
                    ex.setAlInfoForTheClient(alInfo);
                    throw ex;
                }
                BigDecimal bdWertBrutto = reDto.getNWert().add(reDto.getNWertust());
                BigDecimal bdWertNetto = reDto.getNWert();

                BigDecimal bdWertBruttoFW = reDto.getNWertfw().add(reDto.getNWertustfw());
                BigDecimal bdWertNettoFW = reDto.getNWertfw();

                BigDecimal bdBezahltUst = getRechnungFac().getBereitsBezahltWertVonRechnungUst(reDto.getIId(),
                        null, krit.getTStichtag());
                BigDecimal bdBezahltNetto = getRechnungFac().getBereitsBezahltWertVonRechnung(reDto.getIId(),
                        null, krit.getTStichtag());

                BigDecimal bdBezahltUstFw = getRechnungFac()
                        .getBereitsBezahltWertVonRechnungUstFw(reDto.getIId(), null, krit.getTStichtag());
                BigDecimal bdBezahltNettoFw = getRechnungFac()
                        .getBereitsBezahltWertVonRechnungFw(reDto.getIId(), null, krit.getTStichtag());

                BigDecimal bdNettoOffenFw = reDto.getNWertfw().subtract(bdBezahltNettoFw);

                BigDecimal bdUstOffenFw = reDto.getNWertustfw().subtract(bdBezahltUstFw);

                BigDecimal bdNettoOffenMandWhg = getLocaleFac().rechneUmInAndereWaehrungZuDatum(bdNettoOffenFw,
                        reDto.getWaehrungCNr(), theClientDto.getSMandantenwaehrung(), krit.getTStichtag(),
                        theClientDto);
                BigDecimal bdUstOffenMandWhg = getLocaleFac().rechneUmInAndereWaehrungZuDatum(bdUstOffenFw,
                        reDto.getWaehrungCNr(), theClientDto.getSMandantenwaehrung(), krit.getTStichtag(),
                        theClientDto);

                BigDecimal bdUstAnzahlungMandWhg = new BigDecimal(0);
                BigDecimal bdNettoAnzahlungMandWhg = new BigDecimal(0);
                BigDecimal bdUstAnzahlungFW = new BigDecimal(0);
                BigDecimal bdNettoAnzahlungFW = new BigDecimal(0);
                if (reDto.getAuftragIId() != null
                        && reDto.getRechnungartCNr().equals(RechnungFac.RECHNUNGART_SCHLUSSZAHLUNG)) {
                    bdNettoAnzahlungMandWhg = getLocaleFac().rechneUmInAndereWaehrungZuDatum(
                            getRechnungFac().getAnzahlungenZuSchlussrechnungFw(reDto.getIId()),
                            reDto.getWaehrungCNr(), theClientDto.getSMandantenwaehrung(), krit.getTStichtag(),
                            theClientDto);
                    bdUstAnzahlungMandWhg = getLocaleFac().rechneUmInAndereWaehrungZuDatum(
                            getRechnungFac().getAnzahlungenZuSchlussrechnungUstFw(reDto.getIId()),
                            reDto.getWaehrungCNr(), theClientDto.getSMandantenwaehrung(), krit.getTStichtag(),
                            theClientDto);

                }

                tempData[row][OFFENE_FELD_WERT_BRUTTO_ANZAHLUNGEN] = bdNettoAnzahlungMandWhg
                        .add(bdUstAnzahlungMandWhg);
                tempData[row][OFFENE_FELD_WERT_NETTO_ANZAHLUNGEN] = bdNettoAnzahlungMandWhg;
                tempData[row][OFFENE_FELD_WERT_BRUTTO_ANZAHLUNGEN_FW] = bdNettoAnzahlungFW
                        .add(bdUstAnzahlungFW);
                tempData[row][OFFENE_FELD_WERT_NETTO_ANZAHLUNGEN_FW] = bdNettoAnzahlungFW;

                // SP554
                bdNettoOffenMandWhg = bdNettoOffenMandWhg.subtract(bdNettoAnzahlungMandWhg);
                bdUstOffenMandWhg = bdUstOffenMandWhg.subtract(bdUstAnzahlungMandWhg);

                if (re.getFlrrechnungart().getRechnungtyp_c_nr().equals(RechnungFac.RECHNUNGTYP_RECHNUNG)) {
                    tempData[row][OFFENE_FELD_WERT_BRUTTO] = bdWertBrutto;
                    tempData[row][OFFENE_FELD_WERT_NETTO] = bdWertNetto;
                    tempData[row][OFFENE_FELD_WERT_BRUTTO_OFFEN] = bdNettoOffenMandWhg.add(bdUstOffenMandWhg);
                    tempData[row][OFFENE_FELD_WERT_NETTO_OFFEN] = bdNettoOffenMandWhg;

                    // FW
                    tempData[row][OFFENE_FELD_WERT_BRUTTO_FW] = bdWertBruttoFW;
                    tempData[row][OFFENE_FELD_WERT_NETTO_FW] = bdWertNettoFW;
                    tempData[row][OFFENE_FELD_WERT_BRUTTO_OFFEN_FW] = bdNettoOffenFw.add(bdUstOffenFw);
                    tempData[row][OFFENE_FELD_WERT_NETTO_OFFEN_FW] = bdNettoOffenFw;

                } else if (re.getFlrrechnungart().getRechnungtyp_c_nr()
                        .equals(RechnungFac.RECHNUNGTYP_GUTSCHRIFT)) {
                    tempData[row][OFFENE_FELD_WERT_BRUTTO] = bdWertBrutto.negate();
                    tempData[row][OFFENE_FELD_WERT_NETTO] = bdWertNetto.negate();
                    tempData[row][OFFENE_FELD_WERT_BRUTTO_OFFEN] = bdNettoOffenMandWhg.add(bdUstOffenMandWhg)
                            .negate();
                    tempData[row][OFFENE_FELD_WERT_NETTO_OFFEN] = bdNettoOffenMandWhg.negate();

                    // FW
                    tempData[row][OFFENE_FELD_WERT_BRUTTO_FW] = bdWertBruttoFW.negate();
                    tempData[row][OFFENE_FELD_WERT_NETTO_FW] = bdWertNettoFW.negate();
                    tempData[row][OFFENE_FELD_WERT_BRUTTO_OFFEN_FW] = bdNettoOffenFw.add(bdUstOffenFw).negate();
                    tempData[row][OFFENE_FELD_WERT_NETTO_OFFEN_FW] = bdNettoOffenFw.negate();

                }

                tempData[row][OFFENE_FELD_MAHNDATUM] = getMahnwesenFac()
                        .getAktuellesMahndatumEinerRechnung(reDto.getIId(), theClientDto);
                tempData[row][OFFENE_FELD_MAHNSTUFE] = getMahnwesenFac()
                        .getAktuelleMahnstufeEinerRechnung(reDto.getIId(), theClientDto);
                tempData[row][OFFENE_FELD_MAHNSPERRE] = reDto.getTMahnsperrebis();
                // Faelligkeitsdatum
                // java.sql.Date dFaellig;
                // if (reDto.getZahlungszielIId() != null) {
                // dFaellig =
                // getMandantFac().berechneZielDatumFuerBelegdatum(reDto
                // .getTBelegdatum(),
                // reDto.getZahlungszielIId(), theClientDto);
                // }
                // else {
                // dFaellig = new
                // java.sql.Date(reDto.getTBelegdatum().getTime());
                // }
                if (re.getT_faelligkeit() != null) {
                    tempData[row][OFFENE_FELD_FAELLIGKEITSDATUM] = new java.util.Date(
                            re.getT_faelligkeit().getTime());
                } else {
                    throw new EJBExceptionLP(EJBExceptionLP.FEHLER_RECHNUNG_FAELLIGKEIT_NICHT_BERECHENBAR,
                            new Exception("Faelligkeit nicht berechenbar"));
                }
                // Differenz in Tagen: Stichtag - Faelligkeitsdatum
                tempData[row][OFFENE_FELD_TAGE_BIS_FAELLIGKEITSDATUM] = Helper
                        .getDifferenzInTagen(krit.getTStichtag(), re.getT_faelligkeit());
                row++;
            }
            dataList.addAll(Arrays.asList(tempData));
        }

        data = dataList.toArray(new Object[0][]);

        // Waehrung
        mapParameter.put(LPReport.P_WAEHRUNG, mandantDto.getWaehrungCNr());
        mapParameter.put("P_STICHTAG", Helper.formatDatum(krit.getTStichtag(), theClientDto.getLocUi()));
        StringBuffer sSortierung = new StringBuffer();
        if (krit.bSortiereNachKostenstelle) {
            sSortierung.append(
                    getTextRespectUISpr("lp.kostenstelle", theClientDto.getMandant(), theClientDto.getLocUi()));
            sSortierung.append(", ");
        }
        if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) {
            if (krit.getBVerwendeStatistikAdresse()) {
                sSortierung.append(getTextRespectUISpr("rech.statistikadresse", theClientDto.getMandant(),
                        theClientDto.getLocUi()));
            } else {
                sSortierung.append(
                        getTextRespectUISpr("lp.kunde", theClientDto.getMandant(), theClientDto.getLocUi()));
            }
        } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_BELEGNUMMER) {
            sSortierung.append(getTextRespectUISpr("rechnung.rechnungsnummer", theClientDto.getMandant(),
                    theClientDto.getLocUi()));
        } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_VERTRETER) {
            sSortierung.append(
                    getTextRespectUISpr("lp.vertreter", theClientDto.getMandant(), theClientDto.getLocUi()));
        } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_FAELLIGKEIT) {
            sSortierung.append(
                    getTextRespectUISpr("lp.faelligkeit", theClientDto.getMandant(), theClientDto.getLocUi()));
        }
        mapParameter.put(LPReport.P_SORTIERUNG, sSortierung.toString());
        mapParameter.put(LPReport.P_SORTIERENACHKOSTENSTELLE, new Boolean(krit.bSortiereNachKostenstelle));
        mapParameter.put(LPReport.P_SORTIERENACHKUNDE,
                new Boolean(krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER));
        mapParameter.put(LPReport.P_SORTIERENACHVERTRETER,
                new Boolean(krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_VERTRETER));

        String sZessionstext = null;
        sZessionstext = getParameterFac().parametermandantFindByPrimaryKey(ParameterFac.PARAMETER_ZESSIONSTEXT,
                ParameterFac.KATEGORIE_ALLGEMEIN, theClientDto.getMandant()).getCWert();
        if (sZessionstext != null) {
            mapParameter.put("P_ZESSIONSTEXT", sZessionstext);
        }
        /**
         * @todo zinsen PJ 4538
         */

        initJRDS(mapParameter, RechnungReportFac.REPORT_MODUL, RechnungReportFac.REPORT_RECHNUNGEN_OFFENE,
                theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto);
        return getReportPrint();
        // }
        // catch (FinderException ex) {
        // { // @ToDo FinderException
        // throw new EJBExceptionLP(EJBExceptionLP.FEHLER_BEIM_DRUCKEN,
        // null);
        // }
        // throw new EJBExceptionLP(EJBExceptionLP.FEHLER_BEIM_DRUCKEN, ex);
    } catch (RemoteException ex) {
        throwEJBExceptionLPRespectOld(ex);
        return null;
    } finally {
        try {
            session.close();
        } catch (HibernateException he) {
            throw new EJBExceptionLP(EJBExceptionLP.FEHLER, he);
        }
    }
}

From source file:com.lp.server.rechnung.ejbfac.RechnungReportFacBean.java

License:Open Source License

public JasperPrintLP printZusammenfassendeMeldung(java.sql.Date dVon, java.sql.Date dBis,
        Integer partnerIIdFinanzamt, TheClientDto theClientDto) {
    Session session = null;/*from  w  w w.  jav  a2  s.c  o  m*/
    try {

        PartnerDto partnerDtoFinazamt = getPartnerFac().partnerFindByPrimaryKey(partnerIIdFinanzamt,
                theClientDto);

        this.useCase = UC_REPORT_ALLE;
        SessionFactory factory = FLRSessionFactory.getFactory();
        session = factory.openSession();
        // Kunde oder Statistikadresse verwenden

        Criteria c = session.createCriteria(FLRRechnungReport.class);
        // Filter nach Mandant
        c.add(Restrictions.eq(RechnungFac.FLR_RECHNUNG_MANDANT_C_NR, theClientDto.getMandant()));

        // Rechnungen und Gutschriften
        Collection<String> cArten = new LinkedList<String>();
        cArten.add(RechnungFac.RECHNUNGTYP_RECHNUNG);
        cArten.add(RechnungFac.RECHNUNGART_GUTSCHRIFT);
        c.createCriteria(RechnungFac.FLR_RECHNUNG_FLRRECHNUNGART)
                .add(Restrictions.in(RechnungFac.FLR_RECHNUNGART_RECHNUNGTYP_C_NR, cArten));

        // Filter nach Status (keine stornierten)
        c.add(Restrictions
                .not(Restrictions.eq(RechnungFac.FLR_RECHNUNG_STATUS_C_NR, RechnungFac.STATUS_STORNIERT)));

        // Datum von/bis
        String sVon = null;
        String sBis = null;
        if (dVon != null) {
            c.add(Restrictions.ge(RechnungFac.FLR_RECHNUNG_D_BELEGDATUM, dVon));
            sVon = Helper.formatDatum(dVon, theClientDto.getLocUi());
        }
        if (dBis != null) {
            c.add(Restrictions.le(RechnungFac.FLR_RECHNUNG_D_BELEGDATUM, dBis));
            sBis = Helper.formatDatum(dBis, theClientDto.getLocUi());
        }

        // Belegnummer von/bis
        LpBelegnummerFormat f = getBelegnummerGeneratorObj().getBelegnummernFormat(theClientDto.getMandant());
        Integer iGeschaeftsjahr = getParameterFac().getGeschaeftsjahr(theClientDto.getMandant());
        String sMandantKuerzel = getParameterFac().getMandantparameter(theClientDto.getMandant(),
                ParameterFac.KATEGORIE_ALLGEMEIN, ParameterFac.PARAMETER_BELEGNUMMER_MANDANTKENNUNG).getCWert();

        // Immer nach Kunde sortiert

        c.createCriteria(RechnungFac.FLR_RECHNUNG_FLRKUNDE).createCriteria(KundeFac.FLR_PARTNER)
                .addOrder(Order.asc(PartnerFac.FLR_PARTNER_NAME1NACHNAMEFIRMAZEILE1));
        c.addOrder(Order.asc(RechnungFac.FLR_RECHNUNG_C_NR));

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

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

        for (Iterator<?> iter = list.iterator(); iter.hasNext();) {
            FLRRechnungReport r = (FLRRechnungReport) iter.next();

            Object[] zeile = new Object[REPORT_ZM_ANZAHL_SPALTEN];

            zeile[FELD_ZM_BELEGDATUM] = r.getD_belegdatum();
            // Bezahlte Betraege
            BigDecimal bdBezahlt = getRechnungFac().getBereitsBezahltWertVonRechnung(r.getI_id(), null);
            BigDecimal bdBezahltUst = getRechnungFac().getBereitsBezahltWertVonRechnungUst(r.getI_id(), null);

            BigDecimal bdWertmw = null;
            BigDecimal bdWertUstmw = null;
            BigDecimal bdBezahltmw = null;
            BigDecimal bdBezahltUstmw = null;
            bdBezahltmw = bdBezahlt;
            bdBezahltUstmw = bdBezahltUst;

            bdWertmw = r.getN_wert();
            bdWertUstmw = r.getN_wertust();
            if (r.getFlrrechnungart().getC_nr().equals(RechnungFac.RECHNUNGART_GUTSCHRIFT)
                    || r.getFlrrechnungart().getC_nr().equals(RechnungFac.RECHNUNGART_WERTGUTSCHRIFT)) {
                if (bdWertmw != null)
                    bdWertmw = bdWertmw.negate();
                if (bdWertUstmw != null)
                    bdWertUstmw = bdWertUstmw.negate();
                if (bdBezahltmw != null)
                    bdBezahltmw = bdBezahltmw.negate();
                if (bdBezahltUstmw != null)
                    bdBezahltUstmw = bdBezahltUstmw.negate();
            }
            zeile[FELD_ZM_BETRAG] = bdWertmw;
            zeile[FELD_ZM_BETRAGUST] = bdWertUstmw;
            zeile[FELD_ZM_BEZAHLT] = bdBezahltmw;
            zeile[FELD_ZM_BEZAHLTUST] = bdBezahltUstmw;
            // Kostenstelle
            if (r.getFlrkostenstelle() != null) {
                String sKostenstellen = "";
                KostenstelleDto k = null;
                RechnungkontierungDto[] rechnungkontierungsDto = getRechnungFac()
                        .rechnungkontierungFindByRechnungIId(r.getI_id());
                if (rechnungkontierungsDto.length != 0) {
                    for (int e = 0; e < rechnungkontierungsDto.length; e++) {
                        k = getSystemFac()
                                .kostenstelleFindByPrimaryKey(rechnungkontierungsDto[e].getKostenstelleIId());
                        sKostenstellen = sKostenstellen + k.getCNr() + " ";
                    }
                } else {
                    sKostenstellen = r.getFlrkostenstelle().getC_nr();
                }
                zeile[FELD_ZM_KOSTENSTELLENUMMER] = sKostenstellen;
            } else {
                zeile[FELD_ZM_KOSTENSTELLENUMMER] = null;
            }
            // Kundendaten
            FLRKunde flrKunde, flrKundeStatistik;
            flrKunde = r.getFlrkunde();

            // Statistikdaten wenn nicht Kriterium Statistikadresse
            flrKundeStatistik = r.getFlrstatistikadresse();
            zeile[FELD_ZM_KUNDE_STATISTIK] = flrKundeStatistik.getFlrpartner().getC_name1nachnamefirmazeile1();
            if (flrKundeStatistik.getFlrpartner().getC_name2vornamefirmazeile2() != null) {
                zeile[FELD_ZM_KUNDE2_STATISTIK] = flrKundeStatistik.getFlrpartner()
                        .getC_name2vornamefirmazeile2();
            } else {
                zeile[FELD_ZM_KUNDE2_STATISTIK] = "";
            }
            PartnerDto partnerDtoStatistik = getPartnerFac()
                    .partnerFindByPrimaryKey(flrKundeStatistik.getFlrpartner().getI_id(), theClientDto);
            zeile[FELD_ZM_ADRESSE_STATISTIK] = partnerDtoStatistik.formatAdresse();

            zeile[FELD_ZM_KUNDE] = flrKunde.getFlrpartner().getC_name1nachnamefirmazeile1();
            zeile[FELD_ZM_REVERSE_CHARGE] = Helper.short2Boolean(r.getB_reversecharge());
            zeile[FELD_ZM_KUNDE_UID] = flrKunde.getFlrpartner().getC_uid();
            if (r.getFlrvertreter() != null) {
                if (r.getFlrvertreter().getFlrpartner().getC_name2vornamefirmazeile2() != null) {
                    zeile[FELD_ZM_VERTRETER] = r.getFlrvertreter().getFlrpartner()
                            .getC_name1nachnamefirmazeile1() + " "
                            + r.getFlrvertreter().getFlrpartner().getC_name2vornamefirmazeile2();
                } else {
                    zeile[FELD_ZM_VERTRETER] = r.getFlrvertreter().getFlrpartner()
                            .getC_name1nachnamefirmazeile1();
                }
            }
            if (flrKunde.getFlrpartner().getC_name2vornamefirmazeile2() != null) {
                zeile[FELD_ZM_KUNDE2] = flrKunde.getFlrpartner().getC_name2vornamefirmazeile2();
            } else {
                zeile[FELD_ZM_KUNDE2] = "";
            }
            PartnerDto partnerDto = getPartnerFac().partnerFindByPrimaryKey(flrKunde.getFlrpartner().getI_id(),
                    theClientDto);
            zeile[FELD_ZM_ADRESSE] = partnerDto.formatAdresse();

            Integer mahnstufeIId = getMahnwesenFac().getAktuelleMahnstufeEinerRechnung(r.getI_id(),
                    theClientDto);

            if (mahnstufeIId != null) {
                zeile[FELD_ZM_MAHNSTUFE] = mahnstufeIId;
                MahnstufeDto mahnstufeDto = getMahnwesenFac()
                        .mahnstufeFindByPrimaryKey(new MahnstufePK(mahnstufeIId, r.getMandant_c_nr()));
                // Zinsen nur fuer noch nicht vollstaendig bezahlte
                if (!r.getStatus_c_nr().equals(RechnungFac.STATUS_BEZAHLT)) {
                    if (mahnstufeDto.getFZinssatz() != null) {
                        BigDecimal bdOffen = r.getN_wert().subtract(bdBezahlt);
                        // Zinsen
                        zeile[FELD_ZM_ZINSEN] = bdOffen
                                .multiply(new BigDecimal(mahnstufeDto.getFZinssatz().floatValue()))
                                .movePointLeft(2);
                    }
                }
            }
            zeile[FELD_ZM_ORT] = partnerDto.formatAdresse();
            if (r.getFlrrechnungart().getC_nr().equals(RechnungFac.RECHNUNGART_RECHNUNG)) {
                zeile[FELD_ZM_RECHNUNGSNUMMER] = "RE " + r.getC_nr();
                zeile[FELD_ZM_RECHNUNGSNUMMERZUGUTSCHRIFT] = "";
            } else if (r.getFlrrechnungart().getC_nr().equals(RechnungFac.RECHNUNGART_ANZAHLUNG)) {
                zeile[FELD_ZM_RECHNUNGSNUMMER] = "AZ " + r.getC_nr();
                zeile[FELD_ZM_RECHNUNGSNUMMERZUGUTSCHRIFT] = "";
            } else if (r.getFlrrechnungart().getC_nr().equals(RechnungFac.RECHNUNGART_SCHLUSSZAHLUNG)) {
                zeile[FELD_ZM_RECHNUNGSNUMMER] = "SZ " + r.getC_nr();
                zeile[FELD_ZM_RECHNUNGSNUMMERZUGUTSCHRIFT] = "";
            } else {
                if (r.getFlrrechnungart().getC_nr().equals(RechnungFac.RECHNUNGART_GUTSCHRIFT)
                        || r.getFlrrechnungart().getC_nr().equals(RechnungFac.RECHNUNGART_WERTGUTSCHRIFT)) {
                    zeile[FELD_ZM_RECHNUNGSNUMMER] = "GS " + r.getC_nr();
                    // wenn es eine Gutschrift ist die C_NR der Rechnung
                    // uebergeben
                    if (r.getFlrrechnung() != null) {
                        zeile[FELD_ZM_RECHNUNGSNUMMERZUGUTSCHRIFT] = "RE " + r.getFlrrechnung().getC_nr();
                    }
                } else {
                    zeile[FELD_ZM_RECHNUNGSNUMMER] = r.getC_nr();
                    zeile[FELD_ZM_RECHNUNGSNUMMERZUGUTSCHRIFT] = "";
                }
            }
            if (r.getZahlungsziel_i_id() != null) {
                zeile[FELD_ZM_ZIELDATUM] = getMandantFac().berechneZielDatumFuerBelegdatum(r.getD_belegdatum(),
                        r.getZahlungsziel_i_id(), theClientDto);
            }
            // Bezahlt
            if (r.getT_bezahltdatum() != null) {
                zeile[FELD_ZM_BEZAHLTDATUM] = r.getT_bezahltdatum();
                // Zahltage
                int iZahltage = Helper.getDifferenzInTagen(r.getD_belegdatum(), r.getT_bezahltdatum());
                zeile[FELD_ZM_ZAHLTAGE] = new Integer(iZahltage);
            }
            // Debitorenkontonummer
            KontoDtoSmall kontoDtoDeb = null;
            if (flrKunde.getKonto_i_id_debitorenkonto() != null) {
                kontoDtoDeb = getFinanzFac()
                        .kontoFindByPrimaryKeySmallOhneExc(flrKunde.getKonto_i_id_debitorenkonto());
            }
            String sKontonummer;
            if (kontoDtoDeb != null) {
                sKontonummer = kontoDtoDeb.getCNr();
            } else {
                sKontonummer = "";
            }
            zeile[FELD_ZM_DEBITORENKONTO] = sKontonummer;
            zeile[FELD_ZM_WAEHRUNG] = r.getWaehrung_c_nr();
            zeile[FELD_ZM_KURS] = r.getN_kurs();

            // 14217
            String sLaenderart = getFinanzServiceFac().getLaenderartZuPartner(partnerDtoFinazamt, partnerDto,
                    theClientDto);
            zeile[FELD_ZM_LAENDERART] = sLaenderart;

            if (sLaenderart != null && sLaenderart.equals(FinanzFac.LAENDERART_EU_AUSLAND_MIT_UID)) {
                alZeilen.add(zeile);
            }

        }

        data = new Object[alZeilen.size()][REPORT_ZM_ANZAHL_SPALTEN];
        data = alZeilen.toArray(data);

        MandantDto mandantDto = getMandantFac().mandantFindByPrimaryKey(theClientDto.getMandant(),
                theClientDto);
        // Waehrung
        HashMap mapParameter = new HashMap();
        mapParameter.put(LPReport.P_WAEHRUNG, mandantDto.getWaehrungCNr());
        StringBuffer sSortierung = new StringBuffer();

        sSortierung.append(getTextRespectUISpr("lp.kunde", theClientDto.getMandant(), theClientDto.getLocUi()));

        StringBuffer sFilter = new StringBuffer();
        if (sVon != null) {
            sFilter.append(getTextRespectUISpr("lp.von", theClientDto.getMandant(), theClientDto.getLocUi()));
            sFilter.append(" " + sVon + " ");
        }
        if (sBis != null) {
            sFilter.append(getTextRespectUISpr("lp.bis", theClientDto.getMandant(), theClientDto.getLocUi()));
            sFilter.append(" " + sBis + " ");
        }

        mapParameter.put(LPReport.P_SORTIERUNG, sSortierung.toString());
        mapParameter.put(LPReport.P_FILTER, sFilter.toString());

        FinanzamtDto finanzamtDto = getFinanzFac().finanzamtFindByPrimaryKey(partnerIIdFinanzamt,
                theClientDto.getMandant(), theClientDto);

        boolean bRunden = false;

        bRunden = Helper.short2boolean(finanzamtDto.getBUmsatzRunden());

        mapParameter.put("P_FA_NAME", finanzamtDto.getPartnerDto().formatFixName1Name2());
        mapParameter.put("P_FA_ADRESSE", finanzamtDto.getPartnerDto().formatAdresse());
        // Steuernummer
        mapParameter.put("P_FA_STEUERNUMMER", finanzamtDto.getCSteuernummer());
        mapParameter.put("P_FA_REFERAT", finanzamtDto.getCReferat());
        mapParameter.put("P_UMSATZRUNDEN", new Boolean(bRunden));

        initJRDS(mapParameter, RechnungReportFac.REPORT_MODUL, RechnungReportFac.REPORT_RECHNUNGEN_ZM,
                theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto);
        return getReportPrint();

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

}

From source file:com.lp.server.rechnung.ejbfac.RechnungReportFacBean.java

License:Open Source License

private JasperPrintLP buildAlleReport(ReportRechnungJournalKriterienDto krit, String rechnungtypCNr,
        String sReportname, TheClientDto theClientDto) throws EJBExceptionLP {
    Session session = null;//from w  ww  .ja v  a  2  s  .c om
    try {
        this.useCase = UC_REPORT_ALLE;
        SessionFactory factory = FLRSessionFactory.getFactory();
        session = factory.openSession();
        // Kunde oder Statistikadresse verwenden
        final String critKundeIId;
        final String critFLRKunde;
        if (krit.getBVerwendeStatistikAdresse()) {
            critKundeIId = RechnungFac.FLR_RECHNUNG_KUNDE_I_ID_STATISTIKADRESSE;
            critFLRKunde = RechnungFac.FLR_RECHNUNG_FLRSTATISTIKADRESSE;
        } else {
            critKundeIId = RechnungFac.FLR_RECHNUNG_KUNDE_I_ID;
            critFLRKunde = RechnungFac.FLR_RECHNUNG_FLRKUNDE;
        }

        Criteria c = session.createCriteria(FLRRechnungReport.class);
        // Filter nach Mandant
        c.add(Restrictions.eq(RechnungFac.FLR_RECHNUNG_MANDANT_C_NR, theClientDto.getMandant()));
        if (krit.getBGutschriftenBeruecksichtigen()) {
            // Rechnungen und Gutschriften
            Collection<String> cArten = new LinkedList<String>();
            cArten.add(rechnungtypCNr);
            cArten.add(RechnungFac.RECHNUNGART_GUTSCHRIFT);
            c.createCriteria(RechnungFac.FLR_RECHNUNG_FLRRECHNUNGART)
                    .add(Restrictions.in(RechnungFac.FLR_RECHNUNGART_RECHNUNGTYP_C_NR, cArten));
        } else {
            // nur Rechnungen
            c.createCriteria(RechnungFac.FLR_RECHNUNG_FLRRECHNUNGART)
                    .add(Restrictions.eq(RechnungFac.FLR_RECHNUNGART_RECHNUNGTYP_C_NR, rechnungtypCNr));
        }
        // Filter nach Kostenstelle
        if (krit.kostenstelleIId != null) {
            c.add(Restrictions.eq(RechnungFac.FLR_RECHNUNG_KOSTENSTELLE_I_ID, krit.kostenstelleIId));
        }
        // Filter nach einem Kunden
        Map<String, Object> mapParameter = new TreeMap<String, Object>();
        if (krit.kundeIId != null) {
            c.add(Restrictions.eq(critKundeIId, krit.kundeIId));
            KundeDto kundeDto = getKundeFac().kundeFindByPrimaryKey(krit.kundeIId, theClientDto);
            mapParameter.put("P_KUNDE", kundeDto.getPartnerDto().formatTitelAnrede());
        }
        // Filter nach einem Vertrter
        if (krit.vertreterIId != null) {
            c.add(Restrictions.eq(RechnungFac.FLR_RECHNUNG_FLRVERTRETER + ".i_id", krit.vertreterIId));
        }
        // Filter nach Status (keine stornierten)
        c.add(Restrictions
                .not(Restrictions.eq(RechnungFac.FLR_RECHNUNG_STATUS_C_NR, RechnungFac.STATUS_STORNIERT)));
        // Nur offene anzeigen?
        if (krit.getBNurOffene()) {
            Collection<String> cStati = new LinkedList<String>();
            cStati.add(RechnungFac.STATUS_ANGELEGT);
            cStati.add(RechnungFac.STATUS_OFFEN);
            cStati.add(RechnungFac.STATUS_TEILBEZAHLT);
            cStati.add(RechnungFac.STATUS_VERBUCHT);
            c.add(Restrictions.in(RechnungFac.FLR_RECHNUNG_STATUS_C_NR, cStati));
        }
        // Datum von/bis
        String sVon = null;
        String sBis = null;
        if (krit.dVon != null) {
            c.add(Restrictions.ge(RechnungFac.FLR_RECHNUNG_D_BELEGDATUM, krit.dVon));
            sVon = Helper.formatDatum(krit.dVon, theClientDto.getLocUi());
        }
        if (krit.dBis != null) {
            c.add(Restrictions.le(RechnungFac.FLR_RECHNUNG_D_BELEGDATUM, krit.dBis));
            sBis = Helper.formatDatum(krit.dBis, theClientDto.getLocUi());
        }

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

        // Map mapZahlungsziele =
        // getMandantFac().zahlungszielFindAllByMandantAsDto
        // (theClientDto.getMandant(),
        // theClientDto.getIDUser());

        int i = 0;
        for (Iterator<?> iter = list.iterator(); iter.hasNext();) {
            FLRRechnungReport r = (FLRRechnungReport) iter.next();
            data[i][FELD_ALLE_BELEGDATUM] = r.getD_belegdatum();
            // Bezahlte Betraege
            BigDecimal bdBezahlt = getRechnungFac().getBereitsBezahltWertVonRechnung(r.getI_id(), null);
            BigDecimal bdBezahltUst = getRechnungFac().getBereitsBezahltWertVonRechnungUst(r.getI_id(), null);

            BigDecimal bdWertmw = null;
            BigDecimal bdWertUstmw = null;
            BigDecimal bdBezahltmw = null;
            BigDecimal bdBezahltUstmw = null;
            bdBezahltmw = bdBezahlt;
            bdBezahltUstmw = bdBezahltUst;

            BigDecimal bdWertFW = null;
            BigDecimal bdWertUstFW = null;
            BigDecimal bdBezahltFW = getRechnungFac().getBereitsBezahltWertVonRechnungFw(r.getI_id(), null);
            BigDecimal bdBezahltUstFW = getRechnungFac().getBereitsBezahltWertVonRechnungUstFw(r.getI_id(),
                    null);

            bdWertmw = r.getN_wert();
            bdWertUstmw = r.getN_wertust();
            bdWertFW = r.getN_wertfw();
            bdWertUstFW = r.getN_wertustfw();
            if (r.getFlrrechnungart().getC_nr().equals(RechnungFac.RECHNUNGART_GUTSCHRIFT)
                    || r.getFlrrechnungart().getC_nr().equals(RechnungFac.RECHNUNGART_WERTGUTSCHRIFT)) {
                if (bdWertmw != null)
                    bdWertmw = bdWertmw.negate();
                if (bdWertUstmw != null)
                    bdWertUstmw = bdWertUstmw.negate();
                if (bdBezahltmw != null)
                    bdBezahltmw = bdBezahltmw.negate();
                if (bdBezahltUstmw != null)
                    bdBezahltUstmw = bdBezahltUstmw.negate();
                // FW
                if (bdWertFW != null)
                    bdWertFW = bdWertFW.negate();
                if (bdWertUstFW != null)
                    bdWertUstFW = bdWertUstFW.negate();
                if (bdBezahltFW != null)
                    bdBezahltFW = bdBezahltFW.negate();
                if (bdBezahltUstFW != null)
                    bdBezahltUstFW = bdBezahltUstFW.negate();

            }
            data[i][FELD_ALLE_BETRAG] = bdWertmw;
            data[i][FELD_ALLE_BETRAGUST] = bdWertUstmw;
            data[i][FELD_ALLE_BEZAHLT] = bdBezahltmw;
            data[i][FELD_ALLE_BEZAHLTUST] = bdBezahltUstmw;

            data[i][FELD_ALLE_BETRAG_FW] = bdWertFW;
            data[i][FELD_ALLE_BETRAGUST_FW] = bdWertUstFW;
            data[i][FELD_ALLE_BEZAHLT_FW] = bdBezahltFW;
            data[i][FELD_ALLE_BEZAHLTUST_FW] = bdBezahltUstFW;

            BigDecimal bdUstAnzahlungMandWhg = new BigDecimal(0);
            BigDecimal bdNettoAnzahlungMandWhg = new BigDecimal(0);
            BigDecimal bdUstAnzahlungFW = new BigDecimal(0);
            BigDecimal bdNettoAnzahlungFW = new BigDecimal(0);
            if (r.getFlrauftrag() != null
                    && r.getFlrrechnungart().getC_nr().equals(RechnungFac.RECHNUNGART_SCHLUSSZAHLUNG)) {

                bdUstAnzahlungFW = getRechnungFac().getAnzahlungenZuSchlussrechnungUstFw(r.getI_id());
                bdNettoAnzahlungFW = getRechnungFac().getAnzahlungenZuSchlussrechnungFw(r.getI_id());

                bdNettoAnzahlungMandWhg = getLocaleFac().rechneUmInAndereWaehrungZuDatum(bdNettoAnzahlungFW,
                        r.getWaehrung_c_nr(), theClientDto.getSMandantenwaehrung(),
                        new Date(System.currentTimeMillis()), theClientDto);
                bdUstAnzahlungMandWhg = getLocaleFac().rechneUmInAndereWaehrungZuDatum(bdUstAnzahlungFW,
                        r.getWaehrung_c_nr(), theClientDto.getSMandantenwaehrung(),
                        new Date(System.currentTimeMillis()), theClientDto);

            }

            data[i][FELD_ALLE_WERT_ANZAHLUNGEN] = bdNettoAnzahlungMandWhg;
            data[i][FELD_ALLE_WERT_ANZAHLUNGENUST] = bdUstAnzahlungMandWhg;
            data[i][FELD_ALLE_WERT_ANZAHLUNGEN_FW] = bdNettoAnzahlungFW;
            data[i][FELD_ALLE_WERT_ANZAHLUNGENUST_FW] = bdUstAnzahlungFW;

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

                // Statistikdaten wenn nicht Kriterium Statistikadresse
                flrKundeStatistik = r.getFlrstatistikadresse();
                data[i][FELD_ALLE_KUNDE_STATISTIK] = flrKundeStatistik.getFlrpartner()
                        .getC_name1nachnamefirmazeile1();
                if (flrKundeStatistik.getFlrpartner().getC_name2vornamefirmazeile2() != null) {
                    data[i][FELD_ALLE_KUNDE2_STATISTIK] = flrKundeStatistik.getFlrpartner()
                            .getC_name2vornamefirmazeile2();
                } else {
                    data[i][FELD_ALLE_KUNDE2_STATISTIK] = "";
                }
                PartnerDto partnerDtoStatistik = getPartnerFac()
                        .partnerFindByPrimaryKey(flrKundeStatistik.getFlrpartner().getI_id(), theClientDto);
                data[i][FELD_ALLE_ADRESSE_STATISTIK] = partnerDtoStatistik.formatAdresse();

            }
            data[i][FELD_ALLE_KUNDE] = flrKunde.getFlrpartner().getC_name1nachnamefirmazeile1();
            data[i][FELD_ALLE_REVERSE_CHARGE] = Helper.short2Boolean(r.getB_reversecharge());
            data[i][FELD_ALLE_STATUS] = r.getStatus_c_nr();
            data[i][FELD_ALLE_ZOLLBELEGNUMMER] = r.getC_zollpapier();
            data[i][FELD_ALLE_KUNDE_UID] = flrKunde.getFlrpartner().getC_uid();
            if (r.getFlrvertreter() != null) {
                if (r.getFlrvertreter().getFlrpartner().getC_name2vornamefirmazeile2() != null) {
                    data[i][FELD_ALLE_VERTRETER] = r.getFlrvertreter().getFlrpartner()
                            .getC_name1nachnamefirmazeile1() + " "
                            + r.getFlrvertreter().getFlrpartner().getC_name2vornamefirmazeile2();
                } else {
                    data[i][FELD_ALLE_VERTRETER] = r.getFlrvertreter().getFlrpartner()
                            .getC_name1nachnamefirmazeile1();
                }
            }
            if (flrKunde.getFlrpartner().getC_name2vornamefirmazeile2() != null) {
                data[i][FELD_ALLE_KUNDE2] = flrKunde.getFlrpartner().getC_name2vornamefirmazeile2();
            } else {
                data[i][FELD_ALLE_KUNDE2] = "";
            }
            PartnerDto partnerDto = getPartnerFac().partnerFindByPrimaryKey(flrKunde.getFlrpartner().getI_id(),
                    theClientDto);
            data[i][FELD_ALLE_ADRESSE] = partnerDto.formatAdresse();
            Integer mahnstufeIId = getMahnwesenFac().getAktuelleMahnstufeEinerRechnung(r.getI_id(),
                    theClientDto);

            if (mahnstufeIId != null) {
                data[i][FELD_ALLE_MAHNSTUFE] = mahnstufeIId;
                MahnstufeDto mahnstufeDto = getMahnwesenFac()
                        .mahnstufeFindByPrimaryKey(new MahnstufePK(mahnstufeIId, r.getMandant_c_nr()));
                // Zinsen nur fuer noch nicht vollstaendig bezahlte
                if (!r.getStatus_c_nr().equals(RechnungFac.STATUS_BEZAHLT)) {
                    if (mahnstufeDto.getFZinssatz() != null) {
                        BigDecimal bdOffen = r.getN_wert().subtract(bdBezahlt);
                        // Zinsen
                        data[i][FELD_ALLE_ZINSEN] = bdOffen
                                .multiply(new BigDecimal(mahnstufeDto.getFZinssatz().floatValue()))
                                .movePointLeft(2);
                    }
                }
            }
            data[i][FELD_ALLE_ORT] = partnerDto.formatAdresse();
            if (r.getFlrrechnungart().getC_nr().equals(RechnungFac.RECHNUNGART_RECHNUNG)) {
                data[i][FELD_ALLE_RECHNUNGSNUMMER] = "RE " + r.getC_nr();
                data[i][FELD_ALLE_RECHNUNGSNUMMERZUGUTSCHRIFT] = "";
            } else {
                if (r.getFlrrechnungart().getC_nr().equals(RechnungFac.RECHNUNGART_GUTSCHRIFT)
                        || r.getFlrrechnungart().getC_nr().equals(RechnungFac.RECHNUNGART_WERTGUTSCHRIFT)) {
                    data[i][FELD_ALLE_RECHNUNGSNUMMER] = "GS " + r.getC_nr();
                    // wenn es eine Gutschrift ist die C_NR der Rechnung
                    // uebergeben
                    if (r.getFlrrechnung() != null) {
                        data[i][FELD_ALLE_RECHNUNGSNUMMERZUGUTSCHRIFT] = "RE " + r.getFlrrechnung().getC_nr();
                    }
                } else if (r.getFlrrechnungart().getC_nr().equals(RechnungFac.RECHNUNGART_ANZAHLUNG)) {
                    data[i][FELD_ALLE_RECHNUNGSNUMMER] = "AZ " + r.getC_nr();
                } else if (r.getFlrrechnungart().getC_nr().equals(RechnungFac.RECHNUNGART_SCHLUSSZAHLUNG)) {
                    data[i][FELD_ALLE_RECHNUNGSNUMMER] = "SR " + r.getC_nr();
                } else if (r.getFlrrechnungart().getC_nr().equals(RechnungFac.RECHNUNGART_PROFORMARECHNUNG)) {
                    data[i][FELD_ALLE_RECHNUNGSNUMMER] = "PF " + r.getC_nr();
                } else {
                    data[i][FELD_ALLE_RECHNUNGSNUMMER] = r.getC_nr();
                    data[i][FELD_ALLE_RECHNUNGSNUMMERZUGUTSCHRIFT] = "";
                }
            }
            if (r.getZahlungsziel_i_id() != null) {
                data[i][FELD_ALLE_ZIELDATUM] = getMandantFac().berechneZielDatumFuerBelegdatum(
                        r.getD_belegdatum(), r.getZahlungsziel_i_id(), theClientDto);
            }
            // Bezahlt
            if (r.getT_bezahltdatum() != null) {
                data[i][FELD_ALLE_BEZAHLTDATUM] = r.getT_bezahltdatum();
                // Zahltage
                int iZahltage = Helper.getDifferenzInTagen(r.getD_belegdatum(), r.getT_bezahltdatum());
                data[i][FELD_ALLE_ZAHLTAGE] = new Integer(iZahltage);
            }
            // Debitorenkontonummer
            KontoDtoSmall kontoDtoDeb = null;
            if (flrKunde.getKonto_i_id_debitorenkonto() != null) {
                kontoDtoDeb = getFinanzFac()
                        .kontoFindByPrimaryKeySmallOhneExc(flrKunde.getKonto_i_id_debitorenkonto());
            }
            String sKontonummer;
            if (kontoDtoDeb != null) {
                sKontonummer = kontoDtoDeb.getCNr();
            } else {
                sKontonummer = "";
            }
            data[i][FELD_ALLE_DEBITORENKONTO] = sKontonummer;
            data[i][FELD_ALLE_WAEHRUNG] = r.getWaehrung_c_nr();
            data[i][FELD_ALLE_KURS] = r.getN_kurs();

            // 14217
            String sLaenderart = getFinanzServiceFac().getLaenderartZuPartner(partnerDto.getIId(),
                    theClientDto);
            data[i][FELD_ALLE_LAENDERART] = sLaenderart;
            i++;
        }

        MandantDto mandantDto = getMandantFac().mandantFindByPrimaryKey(theClientDto.getMandant(),
                theClientDto);
        // Waehrung
        mapParameter.put(LPReport.P_WAEHRUNG, mandantDto.getWaehrungCNr());
        StringBuffer sSortierung = new StringBuffer();
        if (krit.bSortiereNachKostenstelle) {
            sSortierung.append(
                    getTextRespectUISpr("lp.kostenstelle", theClientDto.getMandant(), theClientDto.getLocUi()));
            sSortierung.append(", ");
        }
        if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) {
            if (krit.getBVerwendeStatistikAdresse()) {
                sSortierung.append(getTextRespectUISpr("rech.statistikadresse", theClientDto.getMandant(),
                        theClientDto.getLocUi()));
            } else {
                sSortierung.append(
                        getTextRespectUISpr("lp.kunde", theClientDto.getMandant(), theClientDto.getLocUi()));
            }
        } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_BELEGNUMMER) {
            sSortierung.append(
                    getTextRespectUISpr("bes.belegnummer", theClientDto.getMandant(), theClientDto.getLocUi()));
        } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_VERTRETER) {
            sSortierung.append(
                    getTextRespectUISpr("lp.vertreter", theClientDto.getMandant(), theClientDto.getLocUi()));
        }
        StringBuffer sFilter = new StringBuffer();
        if (sVon != null) {
            sFilter.append(getTextRespectUISpr("lp.von", theClientDto.getMandant(), theClientDto.getLocUi()));
            sFilter.append(" " + sVon + " ");
        }
        if (sBis != null) {
            sFilter.append(getTextRespectUISpr("lp.bis", theClientDto.getMandant(), theClientDto.getLocUi()));
            sFilter.append(" " + sBis + " ");
        }
        if (krit.kostenstelleIId != null) {
            if (sFilter.length() > 0) {
                sFilter.append(", ");
            }
            KostenstelleDto kstDto = getSystemFac().kostenstelleFindByPrimaryKey(krit.kostenstelleIId);
            sFilter.append(
                    getTextRespectUISpr("lp.kostenstelle", theClientDto.getMandant(), theClientDto.getLocUi()));
            sFilter.append(" ");
            sFilter.append(kstDto.getCNr());
        }
        // Statistikadresse
        if (krit.getBVerwendeStatistikAdresse()) {
            if (sFilter.length() > 0) {
                sFilter.append(", ");
            }
            sFilter.append(getTextRespectUISpr("rech.nachstatistikadresse", theClientDto.getMandant(),
                    theClientDto.getLocUi()));
        }

        mapParameter.put(LPReport.P_SORTIERUNG, sSortierung.toString());
        mapParameter.put(LPReport.P_SORTIERENACHKOSTENSTELLE, new Boolean(krit.bSortiereNachKostenstelle));
        mapParameter.put(LPReport.P_SORTIERENACHKUNDE,
                new Boolean(krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER));
        mapParameter.put(LPReport.P_SORTIERENACHVERTRETER,
                new Boolean(krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_VERTRETER));
        mapParameter.put(LPReport.P_FILTER, sFilter.toString());
        initJRDS(mapParameter, RechnungReportFac.REPORT_MODUL, sReportname, theClientDto.getMandant(),
                theClientDto.getLocUi(), theClientDto);
        return getReportPrint();
        // }
        // catch (FinderException ex) {
        // { // @ToDo FinderException
        // throw new EJBExceptionLP(EJBExceptionLP.FEHLER_BEIM_DRUCKEN,
        // null);
        // }
        // throw new EJBExceptionLP(EJBExceptionLP.FEHLER_BEIM_DRUCKEN, ex);
    } catch (RemoteException ex) {
        throwEJBExceptionLPRespectOld(ex);
        return null;
    } finally {
        if (session != null) {
            session.close();
        }
    }
}

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) {//from w  w w  .j a va 2  s.c om

    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 .  jav  a2s .c o  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) {/*from  ww  w  .  j a  v a 2s. c om*/

    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.lp.server.stueckliste.ejbfac.StuecklisteFacBean.java

License:Open Source License

@TransactionAttribute(TransactionAttributeType.SUPPORTS)
public ArrayList getStrukturDatenEinerStueckliste(Integer[] stuecklisteIId, TheClientDto theClientDto,
        int iOptionSortierung, int iEbene, ArrayList strukturMap, boolean bMitUnterstuecklisten,
        boolean bGleichePositionenZusammenfassen, BigDecimal nLosgroesse, BigDecimal nSatzgroesse,
        boolean bUnterstklstrukurBelassen) {

    if (nSatzgroesse == null) {
        nSatzgroesse = new BigDecimal(1);
    }/*from  w  w  w. jav a2  s  .  co  m*/
    if (strukturMap == null) {
        strukturMap = new ArrayList<StuecklisteMitStrukturDto>();
    }
    if (iEbene > 50) {
        throw new EJBExceptionLP(new Exception("STUECKLISTEN DEADLOCK"));
    }

    // Alle Positionen einer Stueckliste holen, sortiert nach Artikelart und
    // nach der angegebenen Option

    Session session = FLRSessionFactory.getFactory().openSession();
    org.hibernate.Criteria crit = session.createCriteria(FLRStuecklisteposition.class)
            .createAlias(StuecklisteFac.FLR_STUECKLISTEPOSITION_FLRARTIKEL, "a");
    crit.createAlias(StuecklisteFac.FLR_STUECKLISTEPOSITION_FLRSTUECKLISTE, "s");

    crit.add(Restrictions.in("s.i_id", stuecklisteIId));
    crit.addOrder(Order.asc("a." + ArtikelFac.FLR_ARTIKEL_ARTIKELART_C_NR));
    if (iOptionSortierung == StuecklisteReportFac.REPORT_STUECKLISTE_OPTION_SORTIERUNG_ARTIKELNR) {
        crit.addOrder(Order.asc("a.c_nr"));
    } else if (iOptionSortierung == StuecklisteReportFac.REPORT_STUECKLISTE_OPTION_SORTIERUNG_POSITION) {
        crit.addOrder(Order.asc(StuecklisteFac.FLR_STUECKLISTEPOSITION_C_POSITION));
    } else {
        crit.addOrder(Order.asc(StuecklisteFac.FLR_STUECKLISTEPOSITION_I_SORT));
    }

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

    FLRStuecklisteposition[] returnArray = new FLRStuecklisteposition[results.size()];
    returnArray = (FLRStuecklisteposition[]) results.toArray(returnArray);

    // NEU Projekt 9730
    ArrayList alKomp = new ArrayList<FLRStuecklisteposition>();
    if (bGleichePositionenZusammenfassen == true) {
        // Positionen zusammenfassen, wenn der Artikel und die
        // Positionseinheit gleich sind
        // Nur wenns kein Arbeitsplan ist und in derselben Ebene
        for (int i = 0; i < returnArray.length; i++) {
            boolean bGefunden = false;

            for (int j = 0; j < alKomp.size(); j++) {
                FLRStuecklisteposition temp = (FLRStuecklisteposition) alKomp.get(j);

                if (temp.getFlrartikel().getI_id().equals(returnArray[i].getFlrartikel().getI_id())
                        && temp.getEinheit_c_nr().equals(returnArray[i].getEinheit_c_nr())) {
                    temp.setN_menge(temp.getN_menge().add(returnArray[i].getN_menge()));

                    // SP1167
                    BigDecimal bdKalkPreis = temp.getN_kalkpreis();
                    if (bdKalkPreis != null && returnArray[i].getN_kalkpreis() != null
                            && bdKalkPreis.doubleValue() < returnArray[i].getN_kalkpreis().doubleValue()) {
                        temp.setN_kalkpreis(returnArray[i].getN_kalkpreis());
                    } else if (bdKalkPreis == null && returnArray[i].getN_kalkpreis() != null) {
                        temp.setN_kalkpreis(returnArray[i].getN_kalkpreis());
                    }

                    if (temp.getC_position() != null) {
                        if (returnArray[i].getC_position() != null) {
                            temp.setC_position(temp.getC_position() + "|" + returnArray[i].getC_position());
                        } else {
                            temp.setC_position(returnArray[i].getC_position());
                        }
                    } else {
                        temp.setC_position(returnArray[i].getC_position());
                    }

                    if (temp.getC_kommentar() != null) {
                        if (returnArray[i].getC_kommentar() != null) {
                            temp.setC_kommentar(temp.getC_kommentar() + "|" + returnArray[i].getC_kommentar());
                        } else {
                            temp.setC_kommentar(returnArray[i].getC_kommentar());
                        }
                    } else {
                        temp.setC_kommentar(returnArray[i].getC_kommentar());
                    }

                    if (Helper.short2boolean(temp.getB_mitdrucken()) == true
                            && Helper.short2boolean(returnArray[i].getB_mitdrucken()) == true) {

                    } else {
                        temp.setB_mitdrucken(Helper.boolean2Short(false));
                    }

                    alKomp.set(j, temp);

                    bGefunden = true;
                }

            }
            if (!bGefunden) {
                alKomp.add(returnArray[i]);
            }

        }
        returnArray = new FLRStuecklisteposition[alKomp.size()];
        returnArray = (FLRStuecklisteposition[]) alKomp.toArray(returnArray);
    }
    // -ENDE NEU

    for (int i = 0; i < returnArray.length; i++) {

        StuecklistepositionDto stuecklistepositionDto = new StuecklistepositionDto();
        stuecklistepositionDto.setArtikelIId(returnArray[i].getFlrartikel().getI_id());
        stuecklistepositionDto.setCKommentar(returnArray[i].getC_kommentar());
        stuecklistepositionDto.setCPosition(returnArray[i].getC_position());
        stuecklistepositionDto.setEinheitCNr(returnArray[i].getEinheit_c_nr());
        stuecklistepositionDto.setILfdnummer(returnArray[i].getI_lfdnummer());
        stuecklistepositionDto.setNMenge(returnArray[i].getN_menge());
        stuecklistepositionDto.setNKalkpreis(returnArray[i].getN_kalkpreis());
        stuecklistepositionDto.setIId(returnArray[i].getI_id());
        stuecklistepositionDto.setISort(returnArray[i].getI_sort());
        stuecklistepositionDto.setBMitdrucken(returnArray[i].getB_mitdrucken());

        try {

            // Menge nach Zieleinheit umrechnen
            BigDecimal bdMenge = returnArray[i].getN_menge().multiply(nSatzgroesse);

            EinheitDto einheitDto = getSystemFac().einheitFindByPrimaryKey(returnArray[i].getEinheit_c_nr(),
                    theClientDto);

            // Positionsmenge nach Zielenge umrechnen
            int dimension = einheitDto.getIDimension().intValue();

            if (dimension == 1) {
                if (returnArray[i].getF_dimension1() != null) {
                    bdMenge = bdMenge.multiply(new BigDecimal(returnArray[i].getF_dimension1().doubleValue()));
                }
            } else if (dimension == 2) {
                if (returnArray[i].getF_dimension1() != null && returnArray[i].getF_dimension2() != null) {
                    bdMenge = bdMenge.multiply(new BigDecimal(returnArray[i].getF_dimension1().doubleValue()))
                            .multiply(new BigDecimal(returnArray[i].getF_dimension2().doubleValue()));
                }
            } else if (dimension == 3) {
                if (returnArray[i].getF_dimension1() != null && returnArray[i].getF_dimension2() != null
                        && returnArray[i].getF_dimension3() != null) {
                    bdMenge = bdMenge.multiply(new BigDecimal(returnArray[i].getF_dimension1().doubleValue()))
                            .multiply(new BigDecimal(returnArray[i].getF_dimension2().doubleValue()))
                            .multiply(new BigDecimal(returnArray[i].getF_dimension3().doubleValue()));
                }
            }
            BigDecimal faktor = null;
            if (returnArray[i].getFlrartikel().getEinheit_c_nr().equals(returnArray[i].getEinheit_c_nr())) {
                faktor = new BigDecimal(1);
            } else {
                faktor = getSystemFac().rechneUmInAndereEinheit(new BigDecimal(1),
                        returnArray[i].getFlrartikel().getEinheit_c_nr(), returnArray[i].getEinheit_c_nr(),
                        returnArray[i].getI_id(), theClientDto);
            }
            if (faktor.doubleValue() != 0) {
                bdMenge = bdMenge.divide(faktor, BigDecimal.ROUND_HALF_EVEN);

                bdMenge = Helper.berechneMengeInklusiveVerschnitt(bdMenge,
                        returnArray[i].getFlrartikel().getF_verschnittfaktor(),
                        returnArray[i].getFlrartikel().getF_verschnittbasis(), nLosgroesse);

                // PJ 14352
                bdMenge = bdMenge.divide(
                        new BigDecimal(
                                returnArray[i].getFlrstueckliste().getI_erfassungsfaktor().doubleValue()),
                        4, BigDecimal.ROUND_HALF_EVEN);

                stuecklistepositionDto.setNZielmenge(bdMenge);
            } else {
                ArrayList<Object> al = new ArrayList<Object>();

                EinheitDto von = getSystemFac().einheitFindByPrimaryKey(returnArray[i].getEinheit_c_nr(),
                        theClientDto);
                EinheitDto zu = getSystemFac().einheitFindByPrimaryKey(
                        returnArray[i].getFlrartikel().getEinheit_c_nr(), theClientDto);
                al.add(von.formatBez() + " <-> " + zu.formatBez());
                throw new EJBExceptionLP(EJBExceptionLP.FEHLER_EINHEITKONVERTIERUNG_KEIN_DIVISOR_DEFINIERT, al,
                        new Exception("FEHLER_EINHEITKONVERTIERUNG_KEIN_DIVISOR_DEFINIERT"));
            }

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

        MontageartDto ma = new MontageartDto();
        ma.setIId(returnArray[i].getFlrmontageart().getI_id());
        ma.setCBez(returnArray[i].getFlrmontageart().getC_bez());
        stuecklistepositionDto.setMontageartDto(ma);
        if (returnArray[i].getF_dimension1() != null) {
            stuecklistepositionDto.setFDimension1(new Float(returnArray[i].getF_dimension1().doubleValue()));
        }
        if (returnArray[i].getF_dimension2() != null) {
            stuecklistepositionDto.setFDimension2(new Float(returnArray[i].getF_dimension2().doubleValue()));
        }
        if (returnArray[i].getF_dimension3() != null) {
            stuecklistepositionDto.setFDimension3(new Float(returnArray[i].getF_dimension3().doubleValue()));
        }

        if (bMitUnterstuecklisten == true && bUnterstklstrukurBelassen == false
                && bGleichePositionenZusammenfassen == true) {
            boolean bGefunden = false;
            for (int k = 0; k < strukturMap.size(); k++) {
                StuecklisteMitStrukturDto tempDto = (StuecklisteMitStrukturDto) strukturMap.get(k);
                if (tempDto.getStuecklistepositionDto().getArtikelIId()
                        .equals(stuecklistepositionDto.getArtikelIId())
                        && tempDto.getStuecklistepositionDto().getEinheitCNr()
                                .equals(stuecklistepositionDto.getEinheitCNr())) {
                    tempDto.getStuecklistepositionDto().setNMenge(tempDto.getStuecklistepositionDto()
                            .getNMenge().add(stuecklistepositionDto.getNMenge()));
                    tempDto.getStuecklistepositionDto().setNZielmenge(tempDto.getStuecklistepositionDto()
                            .getNZielmenge().add(stuecklistepositionDto.getNZielmenge()));
                    strukturMap.set(k, tempDto);
                    bGefunden = true;
                    break;
                }
            }
            if (bGefunden == false) {
                strukturMap.add(new StuecklisteMitStrukturDto(iEbene, stuecklistepositionDto));
            }
        } else {
            strukturMap.add(new StuecklisteMitStrukturDto(iEbene, stuecklistepositionDto));
        }

        if (bMitUnterstuecklisten == true) {
            try {
                Query query = em.createNamedQuery("StuecklistefindByArtikelIIdMandantCNr");
                query.setParameter(1, returnArray[i].getFlrartikel().getI_id());
                query.setParameter(2, theClientDto.getMandant());
                Stueckliste stkl = (Stueckliste) query.getSingleResult();
                if (stkl != null) {

                    // wenn Fremdfertigungsstueckliste, dann keine
                    // Aufloesung
                    if (Helper.short2boolean(stkl.getBFremdfertigung()) == false) {
                        query = em.createNamedQuery("StuecklistepositionfindByStuecklisteIId");
                        query.setParameter(1, stkl.getIId());
                        int iAnzahlPositionen = query.getResultList().size();
                        query = em.createNamedQuery("StuecklistearbeitsplanfindByStuecklisteIId");
                        query.setParameter(1, stkl.getIId());
                        int iAnzahlPositionenArbeitsplan = query.getResultList().size();
                        // Wenn keine Positionen und kein Arbeitsplan, dann
                        // auch keinen Aufloesung
                        if (iAnzahlPositionen + iAnzahlPositionenArbeitsplan > 0) {
                            StuecklisteMitStrukturDto strukturTemp = (StuecklisteMitStrukturDto) strukturMap
                                    .get(strukturMap.size() - 1);
                            strukturTemp.setBStueckliste(true);
                            strukturTemp.setStuecklisteDto(assembleStuecklisteDto(stkl));
                            strukturMap.set(strukturMap.size() - 1, strukturTemp);
                            // Wenn Unterstklstrukur nicht belassen, dann
                            // Kopfstuecklisten weglassen (lt. WH
                            // 2008-06-09)
                            if (bUnterstklstrukurBelassen == false) {
                                strukturMap.remove(strukturMap.size() - 1);
                                iEbene--;
                            }

                            strukturMap = getStrukturDatenEinerStueckliste(stkl.getIId(), theClientDto,
                                    iOptionSortierung, iEbene + 1, strukturMap, bMitUnterstuecklisten,
                                    bGleichePositionenZusammenfassen, nLosgroesse,
                                    stuecklistepositionDto.getNZielmenge(), bUnterstklstrukurBelassen); // .multiply(
                            // nSatzgroesse
                            // )); ->
                            // Ausgebaut
                            // wegen
                            // Naemo-
                            // Stueckliste
                            // FC002
                        } else {
                            if (bUnterstklstrukurBelassen == false) {
                                strukturMap.remove(strukturMap.size() - 1);
                            }
                        }
                    }
                }
            } catch (NoResultException ex) {
                // Dann keine Stueckliste
            } catch (NonUniqueResultException ex1) {
                throw new EJBExceptionLP(EJBExceptionLP.FEHLER_NO_UNIQUE_RESULT, ex1);
            }
        }
    }

    session.close();

    return strukturMap;
}

From source file:com.lp.server.system.ejbfac.PanelFacBean.java

License:Open Source License

public JasperPrintLP printPanel(String panelCNr, String report, String cKey, TheClientDto theClientDto) {
    HashMap<String, Object> parameter = new HashMap<String, Object>();
    index = -1;/* w w w .jav  a  2s  .  co m*/

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

    String[] typen = new String[3];
    typen[0] = PanelFac.TYP_WRAPPERCHECKBOX;
    typen[1] = PanelFac.TYP_WRAPPEREDITOR;
    typen[2] = PanelFac.TYP_WRAPPERTEXTFIELD;

    org.hibernate.Criteria crit = session.createCriteria(FLRPanelbeschreibung.class);
    crit.add(Restrictions.in(PanelFac.FLR_PANELBESCHREIBUNG_C_TYP, typen));
    crit.add(Restrictions.eq(PanelFac.FLR_PANELBESCHREIBUNG_PANEL_C_NR, panelCNr));
    crit.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant()));
    List<?> results = crit.list();
    Iterator<?> resultListIterator = results.iterator();

    felder = new String[results.size()];
    data = new Object[1][results.size()];

    int row = 0;
    while (resultListIterator.hasNext()) {
        FLRPanelbeschreibung flrPanelbeschreibung = (FLRPanelbeschreibung) resultListIterator.next();
        felder[row] = flrPanelbeschreibung.getC_name();

        // try {
        Query query = em.createNamedQuery("PaneldatenfindByPanelCNrPanelbeschreibungIIdCKey");
        query.setParameter(1, panelCNr);
        query.setParameter(2, flrPanelbeschreibung.getI_id());
        query.setParameter(3, cKey);
        Paneldaten paneldaten = (Paneldaten) query.getSingleResult();
        if (paneldaten == null) {
            data[0][row] = null;
        } else {
            data[0][row] = new String(paneldaten.getOInhalt());
        }

        // }
        // catch (FinderException ex) {
        // data[0][row] = null;
        // }
        row++;
    }
    session.close();

    initJRDS(parameter, PanelFac.REPORT_MODUL, report, theClientDto.getMandant(), theClientDto.getLocUi(),
            theClientDto);

    return getReportPrint();
}

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

License:Apache License

/**
 * combogrid/*w ww  .  j a  va 2  s .com*/
 *
 * @return
 * @throws Exception
 */
@RequestMapping(value = { "combogrid" })
@ResponseBody
public Datagrid<AviationBuyers> combogrid(@RequestParam(value = "ids", required = false) List<Long> ids,
        String loginNameOrName, Integer rows) throws Exception {
    Criterion statusCriterion = Restrictions.eq("status", StatusState.normal.getValue());
    Criterion[] criterions = new Criterion[0];
    criterions = (Criterion[]) ArrayUtils.add(criterions, 0, statusCriterion);
    Criterion criterion = null;
    if (Collections3.isNotEmpty(ids)) {
        //in?
        Criterion inCriterion = Restrictions.in("id", ids);

        if (StringUtils.isNotBlank(loginNameOrName)) {
            Criterion loginNameCriterion = Restrictions.like("loginName", loginNameOrName, MatchMode.ANYWHERE);
            Criterion nameCriterion = Restrictions.like("name", loginNameOrName, MatchMode.ANYWHERE);
            Criterion criterion1 = Restrictions.or(loginNameCriterion, nameCriterion);
            criterion = Restrictions.or(inCriterion, criterion1);
        } else {
            criterion = inCriterion;
        }
        //??
        criterions = (Criterion[]) ArrayUtils.add(criterions, 0, criterion);
    } else {
        if (StringUtils.isNotBlank(loginNameOrName)) {
            Criterion loginNameCriterion = Restrictions.like("loginName", loginNameOrName, MatchMode.ANYWHERE);
            Criterion nameCriterion = Restrictions.like("name", loginNameOrName, MatchMode.ANYWHERE);
            criterion = Restrictions.or(loginNameCriterion, nameCriterion);
            //??
            criterions = (Criterion[]) ArrayUtils.add(criterions, 0, criterion);
        }
    }

    //
    Page<AviationBuyers> p = new Page<AviationBuyers>(rows);//
    p = aviationBuyersManager.findByCriteria(p, criterions);
    Datagrid<AviationBuyers> dg = new Datagrid<AviationBuyers>(p.getTotalCount(), p.getResult());
    return dg;
}