Java tutorial
/******************************************************************************* * HELIUM V, Open Source ERP software for sustained success * at small and medium-sized enterprises. * Copyright (C) 2004 - 2014 HELIUM V IT-Solutions GmbH * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published * by the Free Software Foundation, either version 3 of theLicense, or * (at your option) any later version. * * According to sec. 7 of the GNU Affero General Public License, version 3, * the terms of the AGPL are supplemented with the following terms: * * "HELIUM V" and "HELIUM 5" are registered trademarks of * HELIUM V IT-Solutions GmbH. The licensing of the program under the * AGPL does not imply a trademark license. Therefore any rights, title and * interest in our trademarks remain entirely with us. If you want to propagate * modified versions of the Program under the name "HELIUM V" or "HELIUM 5", * you may only do so if you have a written permission by HELIUM V IT-Solutions * GmbH (to acquire a permission please contact HELIUM V IT-Solutions * at trademark@heliumv.com). * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * * Contact: developers@heliumv.com ******************************************************************************/ package com.lp.server.bestellung.ejbfac; import java.math.BigDecimal; import java.rmi.RemoteException; import java.sql.Date; import java.sql.Timestamp; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.Hashtable; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Locale; import java.util.Map; import java.util.TreeMap; import javax.ejb.Stateless; import javax.ejb.TransactionAttribute; import javax.ejb.TransactionAttributeType; import javax.interceptor.Interceptors; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import net.sf.jasperreports.engine.JRDataSource; import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JRField; import net.sf.jasperreports.engine.JasperExportManager; import org.hibernate.Criteria; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.criterion.Order; import org.hibernate.criterion.Restrictions; import com.lp.server.anfrage.service.AnfrageDto; import com.lp.server.artikel.fastlanereader.generated.FLRArtikel; import com.lp.server.artikel.fastlanereader.generated.FLRArtikelbestellt; import com.lp.server.artikel.service.ArtgruDto; import com.lp.server.artikel.service.ArtikelDto; import com.lp.server.artikel.service.ArtikelFac; import com.lp.server.artikel.service.ArtikelbestelltFac; import com.lp.server.artikel.service.ArtikelkommentarDto; import com.lp.server.artikel.service.ArtikellieferantDto; import com.lp.server.artikel.service.ArtklaDto; import com.lp.server.artikel.service.HerstellerDto; import com.lp.server.artikel.service.LagerDto; import com.lp.server.artikel.service.MaterialDto; import com.lp.server.artikel.service.MaterialzuschlagDto; import com.lp.server.artikel.service.SeriennrChargennrMitMengeDto; import com.lp.server.auftrag.service.AuftragDto; import com.lp.server.benutzer.service.RechteFac; import com.lp.server.bestellung.ejb.BsmahnstufePK; import com.lp.server.bestellung.fastlanereader.generated.FLRBSMahnung; import com.lp.server.bestellung.fastlanereader.generated.FLRBestellposition; import com.lp.server.bestellung.fastlanereader.generated.FLRBestellpositionReport; import com.lp.server.bestellung.fastlanereader.generated.FLRBestellung; import com.lp.server.bestellung.fastlanereader.generated.FLRBestellvorschlag; import com.lp.server.bestellung.fastlanereader.generated.FLRWareneingangspositionen; import com.lp.server.bestellung.service.BSMahnlaufDto; import com.lp.server.bestellung.service.BSMahnstufeDto; import com.lp.server.bestellung.service.BSMahntextDto; import com.lp.server.bestellung.service.BSMahnungDto; import com.lp.server.bestellung.service.BSMahnwesenFac; import com.lp.server.bestellung.service.BSSammelmahnungDto; import com.lp.server.bestellung.service.BestellpositionDto; import com.lp.server.bestellung.service.BestellpositionFac; import com.lp.server.bestellung.service.BestellungDto; import com.lp.server.bestellung.service.BestellungFac; import com.lp.server.bestellung.service.BestellungReportFac; import com.lp.server.bestellung.service.BestellungServiceFac; import com.lp.server.bestellung.service.BestellungtextDto; import com.lp.server.bestellung.service.BestellvorschlagFac; import com.lp.server.bestellung.service.ReportBestellungOffeneDto; import com.lp.server.bestellung.service.WareneingangDto; import com.lp.server.bestellung.service.WareneingangFac; import com.lp.server.bestellung.service.WareneingangspositionDto; import com.lp.server.fertigung.service.LosDto; import com.lp.server.fertigung.service.LossollarbeitsplanDto; import com.lp.server.fertigung.service.LossollmaterialDto; import com.lp.server.inserat.service.InseratDto; import com.lp.server.partner.service.AnsprechpartnerDto; import com.lp.server.partner.service.KundeDto; import com.lp.server.partner.service.LieferantDto; import com.lp.server.partner.service.LieferantFac; import com.lp.server.partner.service.PartnerDto; import com.lp.server.partner.service.PartnerFac; import com.lp.server.personal.service.PersonalDto; import com.lp.server.projekt.service.ProjektDto; import com.lp.server.stueckliste.fastlanereader.generated.FLRStuecklisteposition; import com.lp.server.stueckliste.service.StuecklisteDto; import com.lp.server.system.jcr.service.PrintInfoDto; import com.lp.server.system.pkgenerator.format.LpBelegnummerFormat; import com.lp.server.system.service.BelegartDto; import com.lp.server.system.service.KostenstelleDto; import com.lp.server.system.service.LocaleFac; import com.lp.server.system.service.MandantDto; import com.lp.server.system.service.MandantFac; import com.lp.server.system.service.MediaFac; import com.lp.server.system.service.MediastandardDto; import com.lp.server.system.service.ParameterFac; import com.lp.server.system.service.ParametermandantDto; import com.lp.server.system.service.ReportJournalKriterienDto; import com.lp.server.system.service.SpediteurDto; import com.lp.server.system.service.TheClientDto; import com.lp.server.system.service.VersandauftragDto; import com.lp.server.util.BelegPositionDruckIdentDto; import com.lp.server.util.BelegPositionDruckTextbausteinDto; import com.lp.server.util.HelperServer; import com.lp.server.util.LPReport; import com.lp.server.util.fastlanereader.FLRSessionFactory; import com.lp.server.util.fastlanereader.service.query.QueryParameters; import com.lp.server.util.report.JasperPrintLP; import com.lp.server.util.report.TimingInterceptor; import com.lp.util.EJBExceptionLP; import com.lp.util.Helper; import com.lp.util.LPDatenSubreport; @Stateless @Interceptors(TimingInterceptor.class) public class BestellungReportFacBean extends LPReport implements BestellungReportFac, JRDataSource { @PersistenceContext private EntityManager em; private final static int UC_ALLE = 0; private final static int UC_BESTELLUNG = 1; private final static int UC_OFFENE = 2; private final static int UC_OFFENE_OD = 3; private final static int UC_BESTELLVORSCHLAG = 4; private final static int UC_WEP_ETIKETT = 5; private final static int UC_BSSAMMELMAHNUNG = 6; private final static int UC_BSMAHNUNG = 7; private final static int UC_BESTELLUNG_WARENEINGANG = 8; private final static int UC_ABHOLAUFTRAG = 9; private final static int UC_GEAENDERTE_ARTIKEL = 10; private final static int ALLE_BESTELLNUMMER = 0; private final static int ALLE_BELEGDATUM = 1; private final static int ALLE_BESTELLWERT = 2; private final static int ALLE_LIEFERTERMIN = 3; private final static int ALLE_LIEFERANT = 4; private final static int ALLE_KOSTENSTELLENUMMER = 5; private final static int ALLE_STATUS = 6; public static int REPORT_ABHOLAUFTRAG_POSITION = 0; public static int REPORT_ABHOLAUFTRAG_IDENT = 1; public static int REPORT_ABHOLAUFTRAG_MENGE = 2; public static int REPORT_ABHOLAUFTRAG_EINHEIT = 3; public static int REPORT_ABHOLAUFTRAG_EINZELPREIS = 4; public static int REPORT_ABHOLAUFTRAG_RABATT = 5; public static int REPORT_ABHOLAUFTRAG_GESAMTPREIS = 6; public static int REPORT_ABHOLAUFTRAG_POSITIONSART = 7; public static int REPORT_ABHOLAUFTRAG_FREIERTEXT = 8; public static int REPORT_ABHOLAUFTRAG_LEERZEILE = 9; public static int REPORT_ABHOLAUFTRAG_IMAGE = 10; public static int REPORT_ABHOLAUFTRAG_GEWICHT = 11; public static int REPORT_ABHOLAUFTRAG_SEITENUMBRUCH = 12; public static int REPORT_ABHOLAUFTRAG_GEWICHTEINHEIT = 13; public static int REPORT_ABHOLAUFTRAG_POSITIONTERMIN = 14; public static int REPORT_ABHOLAUFTRAG_IDENTNUMMER = 15; public static int REPORT_ABHOLAUFTRAG_BEZEICHNUNG = 16; public static int REPORT_ABHOLAUFTRAG_KURZBEZEICHNUNG = 17; public static int REPORT_ABHOLAUFTRAG_PREISPEREINHEIT = 18; public static int REPORT_ABHOLAUFTRAG_ARTIKELCZBEZ2 = 19; public static int REPORT_ABHOLAUFTRAG_LIEFERANT_ARTIKEL_IDENTNUMMER = 20; public static int REPORT_ABHOLAUFTRAG_LIEFERANT_ARTIKEL_BEZEICHNUNG = 21; public static int REPORT_ABHOLAUFTRAG_ARTIKEL_HERSTELLER = 22; public static int REPORT_ABHOLAUFTRAG_REFERENZNUMMER = 23; public static int REPORT_ABHOLAUFTRAG_ARTIKELKOMMENTAR = 24; public static int REPORT_ABHOLAUFTRAG_ZUSATZBEZEICHNUNG = 25; public static int REPORT_ABHOLAUFTRAG_BAUFORM = 26; public static int REPORT_ABHOLAUFTRAG_VERPACKUNGSART = 27; public static int REPORT_ABHOLAUFTRAG_ARTIKEL_MATERIAL = 28; public static int REPORT_ABHOLAUFTRAG_ARTIKEL_BREITE = 29; public static int REPORT_ABHOLAUFTRAG_ARTIKEL_HOEHE = 30; public static int REPORT_ABHOLAUFTRAG_ARTIKEL_TIEFE = 31; public static int REPORT_ABHOLAUFTRAG_ARTIKEL_HERSTELLER_NAME = 32; public static int REPORT_ABHOLAUFTRAG_POSITIONOBKJEKT = 33; public static int REPORT_ABHOLAUFTRAG_OFFENERAHMENMENGE = 34; public static int REPORT_ABHOLAUFTRAG_ANGEBOTSNUMMER = 35; public static int REPORT_ABHOLAUFTRAG_ANZAHL_SPALTEN = 36; private final static int REPORT_BSSAMMELMAHNUNG_BESTELLNUMMER = 0; private final static int REPORT_BSSAMMELMAHNUNG_BELEGDATUM = 1; private final static int REPORT_BSSAMMELMAHNUNG_LIEFERTERMIN = 2; private final static int REPORT_BSSAMMELMAHNUNG_WERT = 3; private final static int REPORT_BSSAMMELMAHNUNG_OFFENEMENGE = 4; private final static int REPORT_BSSAMMELMAHNUNG_MAHNSTUFE = 5; private final static int REPORT_BSSAMMELMAHNUNG_BESTELLPOSITION_BEZEICHNUNG = 6; private static final int REPORT_BSSAMMELMAHNUNG_IDENTNUMMER = 7; private static final int REPORT_BSSAMMELMAHNUNG_LIEFERANT_IDENTNUMMER = 8; private static final int REPORT_BSSAMMELMAHNUNG_LIEFERANT_ARTIKEL_BEZEICHNUNG = 9; private static final int REPORT_BSSAMMELMAHNUNG_ARTIKEL_HERSTELLER = 10; private static final int REPORT_BSSAMMELMAHNUNG_REFERENZNUMMER = 11; private static final int REPORT_BSSAMMELMAHNUNG_ARTIKELCZBEZ2 = 12; private static final int REPORT_BSSAMMELMAHNUNG_ABTERMIN = 13; private static final int REPORT_BSSAMMELMAHNUNG_SIZE = 14; private final static int REPORT_BSWARENEINGANGSJOURNAL_DATUM = 0; private final static int REPORT_BSWARENEINGANGSJOURNAL_BESTELLNUMMER = 1; private final static int REPORT_BSWARENEINGANGSJOURNAL_IDENT = 2; private final static int REPORT_BSWARENEINGANGSJOURNAL_BEZEICHNUNG = 3; private final static int REPORT_BSWARENEINGANGSJOURNAL_MENGE = 4; private final static int REPORT_BSWARENEINGANGSJOURNAL_GELIEFERTERPREIS = 5; private final static int REPORT_BSWARENEINGANGSJOURNAL_EINSTANDSPREIS = 6; private final static int REPORT_BSWARENEINGANGSJOURNAL_PROJEKT = 7; private final static int REPORT_BSWARENEINGANGSJOURNAL_LIEFERANT = 8; private final static int REPORT_BSWARENEINGANGSJOURNAL_LIEFERSCHEIN = 9; private final static int REPORT_BSWARENEINGANGSJOURNAL_LIEFERSCHEINDATUM = 10; private final static int REPORT_BSWARENEINGANGSJOURNAL_KOSTENSTELLE = 11; private final static int REPORT_BSWARENEINGANGSJOURNAL_ZUBUCHUNGSLAGER = 12; private final static int REPORT_BSWARENEINGANGSJOURNAL_EINGANGSRECHNUNG = 13; private final static int REPORT_BSWARENEINGANGSJOURNAL_RABATTSATZ = 14; private final static int REPORT_BSWARENEINGANGSJOURNAL_AUFTRAG = 15; private final static int REPORT_BSWARENEINGANGSJOURNAL_ARTIKELKLASSE = 16; private final static int REPORT_BSWARENEINGANGSJOURNAL_ARTIKELGRUPPE = 17; private final static int REPORT_BSWARENEINGANGSJOURNAL_TRANSPORTKOSTEN = 18; private final static int REPORT_BSWARENEINGANGSJOURNAL_BANKSPESEN = 19; private final static int REPORT_BSWARENEINGANGSJOURNAL_ZOLLKOSTEN = 20; private final static int REPORT_BSWARENEINGANGSJOURNAL_SONSTIGEKOSTEN = 21; private final static int REPORT_BSWARENEINGANGSJOURNAL_GK_FAKTOR = 22; private final static int REPORT_BSWARENEINGANGSJOURNAL_SETARTIKEL_TYP = 23; private final static int REPORT_BSWARENEINGANGSJOURNAL_WA_REFERENZ = 24; private final static int REPORT_BSWARENEINGANGSJOURNAL_ANZAHL_SPALTEN = 25; private int useCase; private Object[][] data = null; public boolean next() throws JRException { index++; return (index < data.length); } public Object getFieldValue(JRField field) throws JRException { Object value = null; String fieldName = field.getName(); switch (useCase) { case UC_ALLE: { if ("F_BESTELLNUMMER".equals(fieldName)) { value = data[index][ALLE_BESTELLNUMMER]; } else if ("F_BELEGDATUM".equals(fieldName)) { value = data[index][ALLE_BELEGDATUM]; } else if ("F_BESTELLWERT".equals(fieldName)) { value = data[index][ALLE_BESTELLWERT]; } else if ("F_LIEFERTERMIN".equals(fieldName)) { value = data[index][ALLE_LIEFERTERMIN]; } else if ("F_LIEFERANT".equals(fieldName)) { value = data[index][ALLE_LIEFERANT]; } else if ("F_KOSTENSTELLENUMMER".equals(fieldName)) { value = data[index][ALLE_KOSTENSTELLENUMMER]; } else if ("F_STATUS".equals(fieldName)) { value = data[index][ALLE_STATUS]; } } break; case UC_BESTELLUNG_WARENEINGANG: { if ("F_DATUM".equals(fieldName)) { value = data[index][REPORT_BSWARENEINGANGSJOURNAL_DATUM]; } else if ("F_BESTELLNUMMER".equals(fieldName)) { value = data[index][REPORT_BSWARENEINGANGSJOURNAL_BESTELLNUMMER]; } else if ("F_IDENT".equals(fieldName)) { value = data[index][REPORT_BSWARENEINGANGSJOURNAL_IDENT]; } else if ("F_BEZEICHNUNG".equals(fieldName)) { value = data[index][REPORT_BSWARENEINGANGSJOURNAL_BEZEICHNUNG]; } else if ("F_MENGE".equals(fieldName)) { value = data[index][REPORT_BSWARENEINGANGSJOURNAL_MENGE]; } else if ("F_GELIEFERTERPREIS".equals(fieldName)) { value = data[index][REPORT_BSWARENEINGANGSJOURNAL_GELIEFERTERPREIS]; } else if ("F_EINSTANDSPREIS".equals(fieldName)) { value = data[index][REPORT_BSWARENEINGANGSJOURNAL_EINSTANDSPREIS]; } else if ("F_PROJEKT".equals(fieldName)) { value = data[index][REPORT_BSWARENEINGANGSJOURNAL_PROJEKT]; } else if ("F_LIEFERANT".equals(fieldName)) { value = data[index][REPORT_BSWARENEINGANGSJOURNAL_LIEFERANT]; } else if ("F_SETARTIKEL_TYP".equals(fieldName)) { value = data[index][REPORT_BSWARENEINGANGSJOURNAL_SETARTIKEL_TYP]; } else if ("F_WA_REFERENZ".equals(fieldName)) { value = data[index][REPORT_BSWARENEINGANGSJOURNAL_WA_REFERENZ]; } else if ("F_LIEFERSCHEIN".equals(fieldName)) { value = data[index][REPORT_BSWARENEINGANGSJOURNAL_LIEFERSCHEIN]; } else if ("F_LIEFERSCHEINDATUM".equals(fieldName)) { value = data[index][REPORT_BSWARENEINGANGSJOURNAL_LIEFERSCHEINDATUM]; } else if ("F_KOSTENSTELLE".equals(fieldName)) { value = data[index][REPORT_BSWARENEINGANGSJOURNAL_KOSTENSTELLE]; } else if ("F_ZUBUCHUNGSLAGER".equals(fieldName)) { value = data[index][REPORT_BSWARENEINGANGSJOURNAL_ZUBUCHUNGSLAGER]; } else if ("F_EINGANGSRECHNUNG".equals(fieldName)) { value = data[index][REPORT_BSWARENEINGANGSJOURNAL_EINGANGSRECHNUNG]; } else if ("F_RABATTSATZ".equals(fieldName)) { value = data[index][REPORT_BSWARENEINGANGSJOURNAL_RABATTSATZ]; } else if ("F_AUFTRAG".equals(fieldName)) { value = data[index][REPORT_BSWARENEINGANGSJOURNAL_AUFTRAG]; } else if ("F_ARTIKELKLASSE".equals(fieldName)) { value = data[index][REPORT_BSWARENEINGANGSJOURNAL_ARTIKELKLASSE]; } else if ("F_ARTIKELGRUPPE".equals(fieldName)) { value = data[index][REPORT_BSWARENEINGANGSJOURNAL_ARTIKELGRUPPE]; } else if ("F_TRANSPORTKOSTEN".equals(fieldName)) { value = data[index][REPORT_BSWARENEINGANGSJOURNAL_TRANSPORTKOSTEN]; } else if ("F_BANKSPESEN".equals(fieldName)) { value = data[index][REPORT_BSWARENEINGANGSJOURNAL_BANKSPESEN]; } else if ("F_ZOLLKOSTEN".equals(fieldName)) { value = data[index][REPORT_BSWARENEINGANGSJOURNAL_ZOLLKOSTEN]; } else if ("F_SONSTIGEKOSTEN".equals(fieldName)) { value = data[index][REPORT_BSWARENEINGANGSJOURNAL_SONSTIGEKOSTEN]; } else if ("F_GK_FAKTOR".equals(fieldName)) { value = data[index][REPORT_BSWARENEINGANGSJOURNAL_GK_FAKTOR]; } } break; case UC_OFFENE: { if ("F_BESTELLUNGCNR".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGCNR]; } else if ("F_BESTELLUNGARTCNR".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGARTCNR]; } else if ("F_LIEFERTERMIN".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGLIEFERTERMIN]; } else if ("F_WERT".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_WERT]; } else if ("F_OFFEN".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_WERT_OFFEN]; } else if ("F_BESTELLUNGLIEFERANT".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGLIEFERANT]; } else if ("F_KOSTENSTELLE".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_KOSTENSTELLECNR]; } else if ("F_ARTIKELCNR".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELCNR]; } else if ("F_ARTIKELBEZEICHNUNG".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELBEZ]; } else if ("F_ARTIKELPREIS".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELPREIS]; } else if ("F_ARTIKELMENGE".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELMENGE]; } else if ("F_ARTIKELLAGERSTAND".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELLAGERSTAND]; } else if ("F_ARTIKELEINHEIT".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELEINHEIT]; } else if ("F_ARTIKELOFENEMENGE".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELOFFENEMENGE]; } else if ("F_ARTIKELGELIFERTEMENGE".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELGELIFERTEMENGE]; } else if ("F_ARTIKELOFFENEWERT".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELOFFENEWERT]; } else if ("F_PROJEKT".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_PROJEKT]; } else if ("F_ABTERMIN".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ABTERMIN]; } else if ("F_ABNUMMER".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ABNUMMER]; } else if ("F_ABKOMMENTAR".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ABKOMMENTAR]; } else if ("F_OFFENELIEFERUNG".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_OFFENELIEFERUNGEN]; } else if ("F_SETARTIKEL_TYP".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_SETARTIKEL_TYP]; } } break; case UC_BESTELLVORSCHLAG: { if ("F_BELEGART".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLVORSCHLAG_BELEGART]; } else if ("F_BELEGCNR".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLVORSCHLAG_BELEGCNR]; } else if ("F_BESTELLTERMIN".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLVORSCHLAG_BESTELLTERMIN]; } else if ("F_WERT".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLVORSCHLAG_WERT]; } else if ("F_OFFEN".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLVORSCHLAG_WERT_OFFEN]; } else if ("F_BESTELLUNGLIEFERANT".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLVORSCHLAG_BESTELLUNGLIEFERANT]; } else if ("F_ARTIKELRESERVIERUNG".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKELRESERVIERUNG]; } else if ("F_ARTIKELFEHLMENGE".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKELFEHLMENGE]; } else if ("F_ARTIKELCNR".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKELCNR]; } else if ("F_ARTIKELLAGERBEWIRTSCHAFTET".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKEL_LAGERBEWIRTSCHAFTET]; } else if ("F_ARTIKELBEZEICHNUNG".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKELBEZ]; } else if ("F_ARTIKELZUSATZBEZEICHNUNG".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKELZBEZ]; } else if ("F_ARTIKELZUSATZBEZEICHNUNG2".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKELZBEZ2]; } else if ("F_PROJEKT".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLVORSCHLAG_PROJEKT]; } else if ("F_ARTIKELKURZBEZEICHNUNG".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKELKBEZ]; } else if ("F_ARTIKELSPERREN".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLVORSCHLAG_SPERREN]; } else if ("F_ARTIKELPREIS".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKELPREIS]; } else if ("F_ARTIKELMENGE".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKELMENGE]; } else if ("F_ARTIKELLAGERSTAND".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKELLAGERSTAND]; } else if ("F_ARTIKELEINHEIT".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKELEINHEIT]; } else if ("F_ARTIKELLAGERMINDESTSTAND".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKELLAGERMINDESTSTAND]; } else if ("F_ARTIKELLAGERSOLL".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKELLAGERSOLL]; } else if (F_ARTIKEL_RAHMENDETAILBEDARF.equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKEL_RAHMENDETAILBEDARF]; } else if (F_ARTIKELLIEFERANT_ARTIKELNR.equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLVORSCHLAG_LIEFERANT_ARTIKEL_IDENTNUMMER]; } else if (F_ARTIKELLIEFERANT_STDMENGE.equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLVORSCHLAG_LIEFERANT_STANDARDMENGE]; } else if (F_ARTIKELLIEFERANT_BEZ.equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLVORSCHLAG_LIEFERANT_ARTIKEL_BEZEICHNUNG]; } else if (F_ARTIKELMENGE_OFFEN.equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKEL_MENGE_OFFEN]; } else if (F_ARTIKELRAHMENMENGE_OFFEN.equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKEL_RAHMENMENGE_OFFEN]; } else if ("F_ARTIKELRAHMENMENGE_OFFEN_BESTELLCNR".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKEL_RAHMENBESTELLNR]; } else if ("F_ARTIKEL_OFFEN_BESTELLCNR".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKEL_OFFENE_BESTELLNR]; } else if ("F_LIEFERANT_MATERIALZUSCHLAG".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLVORSCHLAG_LIEFERANT_MATERIALZUSCHLAG]; } else if ("F_SUBREPORT_VERWENDUNGSNACHWEIS".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLVORSCHLAG_SUBREPORT_VERWENDUNGSNACHWEIS]; } } break; case UC_WEP_ETIKETT: { if ("F_ANLIEFERMENGE".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_WEP_ETIKETT_ANLIEFERMENGE]; } else if ("F_BESTELLNUMMER".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_WEP_ETIKETT_BESTELLNUMMER]; } else if ("F_CHARGENNUMMER".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_WEP_ETIKETT_CHARGENNUMMER]; } else if ("F_SERIENNUMMER".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_WEP_ETIKETT_SERIENNUMMER]; } else if ("F_VERPACKUNGSEINHEIT".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_WEP_ETIKETT_VERPACKUNGSEINHEIT]; } else if ("F_WARENVERKEHRSNUMMER".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_WEP_ETIKETT_WARENVERKEHRSNUMMER]; } else if ("F_GEWICHT".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_WEP_ETIKETT_GEWICHT]; } else if ("F_LAGER".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_WEP_ETIKETT_LAGER]; } else if ("F_LAGERORT".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_WEP_ETIKETT_LAGERORT]; } else if ("F_URSPRUNGSLAND".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_WEP_ETIKETT_URSPRUNGSLAND]; } else if ("F_KOMMENTAR".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_WEP_ETIKETT_KOMMENTAR]; } else if ("F_IDENT".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_WEP_ETIKETT_IDENT]; } else if ("F_BEZ".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_WEP_ETIKETT_BEZ]; } else if ("F_ZBEZ".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_WEP_ETIKETT_ZBEZ]; } else if ("F_ZBEZ2".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_WEP_ETIKETT_ZBEZ2]; } else if ("F_LIEFERANTENARTIKELNUMMER".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_WEP_ETIKETT_LIEFERANTENARTIKELNUMMER]; } else if ("F_LIEFERANTENARTIKELBEZ".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_WEP_ETIKETT_LIEFERANTENARTIKELBEZ]; } else if ("F_WE_DATUM".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_WEP_ETIKETT_WE_DATUM]; } else if ("F_EINHEIT".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_WEP_ETIKETT_EINHEIT]; } else if ("F_PROJEKTBEZ".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_WEP_ETIKETT_PROJEKTBEZ]; } else if ("F_LIEFERANTENNAME".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_WEP_ETIKETT_LIEFERANTNAME]; } else if ("F_HERSTELLER".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_WEP_ETIKETT_HERSTELLER]; } else if ("F_HANDMENGE".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_WEP_ETIKETT_HANDMENGE]; } else if ("F_HERSTELLERNAME".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_WEP_ETIKETT_HERSTELLERNAME]; } else if ("F_WE_REFERENZ".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_WEP_ETIKETT_WE_REFERENZ]; } } break; case UC_BSMAHNUNG: { } break; case UC_BSSAMMELMAHNUNG: { if ("F_BELEGDATUM".equals(fieldName)) { value = data[index][REPORT_BSSAMMELMAHNUNG_BELEGDATUM]; } else if ("F_LIEFERTERMIN".equals(fieldName)) { value = data[index][REPORT_BSSAMMELMAHNUNG_LIEFERTERMIN]; } else if ("F_MAHNSTUFE".equals(fieldName)) { value = data[index][REPORT_BSSAMMELMAHNUNG_MAHNSTUFE]; } else if ("F_OFFENEMENGE".equals(fieldName)) { value = data[index][REPORT_BSSAMMELMAHNUNG_OFFENEMENGE]; } else if ("F_BESTELLUNGSNUMMER".equals(fieldName)) { value = data[index][REPORT_BSSAMMELMAHNUNG_BESTELLNUMMER]; } else if ("F_WERT".equals(fieldName)) { value = data[index][REPORT_BSSAMMELMAHNUNG_WERT]; } else if ("F_BESPOSBEZEICHNUNG".equals(fieldName)) { value = data[index][REPORT_BSSAMMELMAHNUNG_BESTELLPOSITION_BEZEICHNUNG]; } else if ("F_IDENTNUMMER".equals(fieldName)) { value = data[index][REPORT_BSSAMMELMAHNUNG_IDENTNUMMER]; } else if ("F_LIEFERANT_ARTIKEL_IDENTNUMMER".equals(fieldName)) { value = data[index][REPORT_BSSAMMELMAHNUNG_LIEFERANT_IDENTNUMMER]; } else if ("F_LIEFERANT_ARTIKEL_BEZEICHNUNG".equals(fieldName)) { value = data[index][REPORT_BSSAMMELMAHNUNG_LIEFERANT_ARTIKEL_BEZEICHNUNG]; } else if ("F_ARTIKEL_HERSTELLER".equals(fieldName)) { value = data[index][REPORT_BSSAMMELMAHNUNG_ARTIKEL_HERSTELLER]; } else if ("F_REFERENZNUMMER".equals(fieldName)) { value = data[index][REPORT_BSSAMMELMAHNUNG_REFERENZNUMMER]; } else if ("F_ARTIKELCZBEZ2".equals(fieldName)) { value = data[index][REPORT_BSSAMMELMAHNUNG_ARTIKELCZBEZ2]; } else if ("F_ABTERMIN".equals(fieldName)) { value = data[index][REPORT_BSSAMMELMAHNUNG_ABTERMIN]; } } break; case UC_GEAENDERTE_ARTIKEL: { if ("F_ARTIKELNUMMER_AKTUELL".equals(fieldName)) { value = data[index][REPORT_GEAENDERTEARTIKEL_ARTIKELNUMMER_AKTUELL]; } else if ("F_ARTIKELBEZEICHNUNG_AKTUELL".equals(fieldName)) { value = data[index][REPORT_GEAENDERTEARTIKEL_ARTIKELBEZEICHNUNG_AKTUELL]; } else if ("F_ARTIKELZUSATZBEZEICHNUNG_AKTUELL".equals(fieldName)) { value = data[index][REPORT_GEAENDERTEARTIKEL_ARTIKELZUSATZBEZEICHNUNG_AKTUELL]; } else if ("F_ARTIKELZUSATZBEZEICHNUNG2_AKTUELL".equals(fieldName)) { value = data[index][REPORT_GEAENDERTEARTIKEL_ARTIKELZUSATZBEZEICHNUNG2_AKTUELL]; } else if ("F_ARTIKELNUMMER_BESTELLUNG".equals(fieldName)) { value = data[index][REPORT_GEAENDERTEARTIKEL_ARTIKELNUMMER_BESTELLUNG]; } else if ("F_ARTIKELBEZEICHNUNG_BESTELLUNG".equals(fieldName)) { value = data[index][REPORT_GEAENDERTEARTIKEL_ARTIKELBEZEICHNUNG_BESTELLUNG]; } else if ("F_ARTIKELZUSATZBEZEICHNUNG_BESTELLUNG".equals(fieldName)) { value = data[index][REPORT_GEAENDERTEARTIKEL_ARTIKELZUSATZBEZEICHNUNG_BESTELLUNG]; } else if ("F_ARTIKELZUSATZBEZEICHNUNG2_BESTELLUNG".equals(fieldName)) { value = data[index][REPORT_GEAENDERTEARTIKEL_ARTIKELZUSATZBEZEICHNUNG2_BESTELLUNG]; } else if ("F_LIEFERANT".equals(fieldName)) { value = data[index][REPORT_GEAENDERTEARTIKEL_LIEFERANT]; } else if ("F_BESTELLDATUM".equals(fieldName)) { value = data[index][REPORT_GEAENDERTEARTIKEL_BESTELLDATUM]; } else if ("F_BESTELLNUMMER".equals(fieldName)) { value = data[index][REPORT_GEAENDERTEARTIKEL_BESTELLNUMMER]; } else if ("F_POSITIONSTERMIN".equals(fieldName)) { value = data[index][REPORT_GEAENDERTEARTIKEL_POSITIONSTERMIN]; } else if ("F_ABTERMIN".equals(fieldName)) { value = data[index][REPORT_GEAENDERTEARTIKEL_ABTERMIN]; } else if ("F_ABNUMMER".equals(fieldName)) { value = data[index][REPORT_GEAENDERTEARTIKEL_ABNUMMER]; } else if ("F_MENGE".equals(fieldName)) { value = data[index][REPORT_GEAENDERTEARTIKEL_MENGE]; } else if ("F_PREIS".equals(fieldName)) { value = data[index][REPORT_GEAENDERTEARTIKEL_PREIS]; } } break; case UC_BESTELLUNG: if ("Position".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_POSITION]; } else if ("Ident".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_IDENT]; } else if ("Menge".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_MENGE]; } else if ("Einheit".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_EINHEIT]; } else if ("Gewicht".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_GEWICHT]; } else if ("Gewichteinheit".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_GEWICHTEINHEIT]; } else if ("F_ARTIKELCZBEZ2".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_ARTIKELCZBEZ2]; } else if ("F_POSITIONTERMIN".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_POSITIONTERMIN]; } else if ("Einzelpreis".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_EINZELPREIS]; } else if ("Rabatt".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_RABATT]; } else if ("Gesamtpreis".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_GESAMTPREIS]; } else if ("Positionsart".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_POSITIONSART]; } else if ("Freiertext".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_FREIERTEXT]; } else if ("Leerzeile".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_LEERZEILE]; } else if ("Image".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_IMAGE]; } else if ("Seitenumbruch".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_SEITENUMBRUCH]; } else if ("F_PREISPEREINHEIT".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_PREISPEREINHEIT]; } else if (F_IDENTNUMMER.equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_IDENTNUMMER]; } else if (F_BEZEICHNUNG.equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_BEZEICHNUNG]; } else if (F_KURZBEZEICHNUNG.equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_KURZBEZEICHNUNG]; } else if ("F_LIEFERANT_ARTIKEL_VERPACKUNGSEINHEIT".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_LIEFERANT_VERPACKUNGSEINHEIT]; } else if ("F_LIEFERANT_ARTIKEL_IDENTNUMMER".equals(fieldName)) { value = Helper.formatStyledTextForJasper( data[index][BestellungReportFac.REPORT_BESTELLUNG_LIEFERANT_ARTIKEL_IDENTNUMMER]); } else if ("F_LIEFERANT_ARTIKEL_BEZEICHNUNG".equals(fieldName)) { value = Helper.formatStyledTextForJasper( data[index][BestellungReportFac.REPORT_BESTELLUNG_LIEFERANT_ARTIKEL_BEZEICHNUNG]); } else if ("F_ARTIKEL_HERSTELLER".equals(fieldName)) { value = Helper.formatStyledTextForJasper( data[index][BestellungReportFac.REPORT_BESTELLUNG_ARTIKEL_HERSTELLER]); } else if (F_REFERENZNUMMER.equals(fieldName)) { value = Helper.formatStyledTextForJasper( data[index][BestellungReportFac.REPORT_BESTELLUNG_REFERENZNUMMER]); } else if (F_ARTIKELKOMMENTAR.equals(fieldName)) { value = Helper.formatStyledTextForJasper( data[index][BestellungReportFac.REPORT_BESTELLUNG_ARTIKELKOMMENTAR]); } else if (F_ZUSATZBEZEICHNUNG.equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_ZUSATZBEZEICHNUNG]; } else if (F_ARTIKEL_BAUFORM.equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_BAUFORM]; } else if (F_ARTIKEL_VERPACKUNGSART.equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_VERPACKUNGSART]; } else if (F_ARTIKEL_MATERIAL.equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_ARTIKEL_MATERIAL]; } else if (F_ARTIKEL_MATERIALGEWICHT.equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_ARTIKEL_MATERIALGEWICHT]; } else if (F_ARTIKEL_KURS_MATERIALZUSCHLAG.equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_ARTIKEL_KURS_MATERIALZUSCHLAG]; } else if (F_ARTIKEL_DATUM_MATERIALZUSCHLAG.equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_ARTIKEL_DATUM_MATERIALZUSCHLAG]; } else if (F_ARTIKEL_BREITE.equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_ARTIKEL_BREITE]; } else if (F_ARTIKEL_HOEHE.equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_ARTIKEL_HOEHE]; } else if (F_ARTIKEL_TIEFE.equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_ARTIKEL_TIEFE]; } else if (F_HERSTELLER_NAME.equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_ARTIKEL_HERSTELLER_NAME]; } else if ("F_POSITIONSOBJEKT".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_POSITIONOBKJEKT]; } else if ("F_OFFENERAHMENMENGE".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_OFFENERAHMENMENGE]; } else if ("F_ANGEBOTSNUMMER".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_ANGEBOTSNUMMER]; } else if ("F_MATERIALZUSCHLAG".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_MATERIALZUSCHLAG]; } else if ("F_ARTIKEL_INDEX".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_ARTIKEL_INDEX]; } else if ("F_ARTIKEL_REVISION".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_ARTIKEL_REVISION]; } else if ("F_SOLLMATERIAL_KOMMENTAR".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_SOLLMATERIAL_KOMMENTAR]; } else if ("F_SOLLMATERIAL_LOS_STKLKBEZ".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_SOLLMATERIAL_LOS_STKLKBEZ]; } else if ("F_SOLLMATERIAL_LOS_STKLBEZ".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_SOLLMATERIAL_LOS_STKLBEZ]; } else if ("F_SOLLMATERIAL_LOSNUMMER".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_SOLLMATERIAL_LOSNUMMER]; } else if ("F_SOLLMATERIAL_LOS_STKLNUMMER".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_SOLLMATERIAL_LOS_STKLNUMMER]; } else if ("F_SOLLMATERIAL_LOS_KOMMENTAR".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_SOLLMATERIAL_LOS_KOMMENTAR]; } else if ("F_SOLLMATERIAL_LOS_PROJEKT".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_SOLLMATERIAL_LOS_PROJEKT]; } else if ("F_SOLLMATERIAL_SUBREPORT_ARBEITSGAENGE".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_SOLLMATERIAL_SUBREPORT_ARBEITSGAENGE]; } else if ("F_SETARTIKEL_TYP".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_SETARTIKEL_TYP]; } else if ("F_INSERAT_DTO".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_INSERAT_DTO]; } else if ("F_INSERAT_KUNDE".equals(fieldName)) { value = data[index][BestellungReportFac.REPORT_BESTELLUNG_INSERAT_KUNDE]; } break; case UC_ABHOLAUFTRAG: if ("Position".equals(fieldName)) { value = data[index][REPORT_ABHOLAUFTRAG_POSITION]; } else if ("Ident".equals(fieldName)) { value = data[index][REPORT_ABHOLAUFTRAG_IDENT]; } else if ("Menge".equals(fieldName)) { value = data[index][REPORT_ABHOLAUFTRAG_MENGE]; } else if ("Einheit".equals(fieldName)) { value = data[index][REPORT_ABHOLAUFTRAG_EINHEIT]; } else if ("Gewicht".equals(fieldName)) { value = data[index][REPORT_ABHOLAUFTRAG_GEWICHT]; } else if ("Gewichteinheit".equals(fieldName)) { value = data[index][REPORT_ABHOLAUFTRAG_GEWICHTEINHEIT]; } else if ("F_ARTIKELCZBEZ2".equals(fieldName)) { value = data[index][REPORT_ABHOLAUFTRAG_ARTIKELCZBEZ2]; } else if ("F_POSITIONTERMIN".equals(fieldName)) { value = data[index][REPORT_ABHOLAUFTRAG_POSITIONTERMIN]; } else if ("Einzelpreis".equals(fieldName)) { value = data[index][REPORT_ABHOLAUFTRAG_EINZELPREIS]; } else if ("Rabatt".equals(fieldName)) { value = data[index][REPORT_ABHOLAUFTRAG_RABATT]; } else if ("Gesamtpreis".equals(fieldName)) { value = data[index][REPORT_ABHOLAUFTRAG_GESAMTPREIS]; } else if ("Positionsart".equals(fieldName)) { value = data[index][REPORT_ABHOLAUFTRAG_POSITIONSART]; } else if ("Freiertext".equals(fieldName)) { value = data[index][REPORT_ABHOLAUFTRAG_FREIERTEXT]; } else if ("Leerzeile".equals(fieldName)) { value = data[index][REPORT_ABHOLAUFTRAG_LEERZEILE]; } else if ("Image".equals(fieldName)) { value = data[index][REPORT_ABHOLAUFTRAG_IMAGE]; } else if ("Seitenumbruch".equals(fieldName)) { value = data[index][REPORT_ABHOLAUFTRAG_SEITENUMBRUCH]; } else if ("F_PREISPEREINHEIT".equals(fieldName)) { value = data[index][REPORT_ABHOLAUFTRAG_PREISPEREINHEIT]; } else if (F_IDENTNUMMER.equals(fieldName)) { value = data[index][REPORT_ABHOLAUFTRAG_IDENTNUMMER]; } else if (F_BEZEICHNUNG.equals(fieldName)) { value = data[index][REPORT_ABHOLAUFTRAG_BEZEICHNUNG]; } else if (F_KURZBEZEICHNUNG.equals(fieldName)) { value = data[index][REPORT_ABHOLAUFTRAG_KURZBEZEICHNUNG]; } else if ("F_LIEFERANT_ARTIKEL_IDENTNUMMER".equals(fieldName)) { value = Helper .formatStyledTextForJasper(data[index][REPORT_ABHOLAUFTRAG_LIEFERANT_ARTIKEL_IDENTNUMMER]); } else if ("F_LIEFERANT_ARTIKEL_BEZEICHNUNG".equals(fieldName)) { value = Helper .formatStyledTextForJasper(data[index][REPORT_ABHOLAUFTRAG_LIEFERANT_ARTIKEL_BEZEICHNUNG]); } else if ("F_ARTIKEL_HERSTELLER".equals(fieldName)) { value = Helper.formatStyledTextForJasper(data[index][REPORT_ABHOLAUFTRAG_ARTIKEL_HERSTELLER]); } else if (F_REFERENZNUMMER.equals(fieldName)) { value = Helper.formatStyledTextForJasper(data[index][REPORT_ABHOLAUFTRAG_REFERENZNUMMER]); } else if (F_ARTIKELKOMMENTAR.equals(fieldName)) { value = Helper.formatStyledTextForJasper(data[index][REPORT_ABHOLAUFTRAG_ARTIKELKOMMENTAR]); } else if (F_ZUSATZBEZEICHNUNG.equals(fieldName)) { value = data[index][REPORT_ABHOLAUFTRAG_ZUSATZBEZEICHNUNG]; } else if (F_ARTIKEL_BAUFORM.equals(fieldName)) { value = data[index][REPORT_ABHOLAUFTRAG_BAUFORM]; } else if (F_ARTIKEL_VERPACKUNGSART.equals(fieldName)) { value = data[index][REPORT_ABHOLAUFTRAG_VERPACKUNGSART]; } else if (F_ARTIKEL_MATERIAL.equals(fieldName)) { value = data[index][REPORT_ABHOLAUFTRAG_ARTIKEL_MATERIAL]; } else if (F_ARTIKEL_BREITE.equals(fieldName)) { value = data[index][REPORT_ABHOLAUFTRAG_ARTIKEL_BREITE]; } else if (F_ARTIKEL_HOEHE.equals(fieldName)) { value = data[index][REPORT_ABHOLAUFTRAG_ARTIKEL_HOEHE]; } else if (F_ARTIKEL_TIEFE.equals(fieldName)) { value = data[index][REPORT_ABHOLAUFTRAG_ARTIKEL_TIEFE]; } else if (F_HERSTELLER_NAME.equals(fieldName)) { value = data[index][REPORT_ABHOLAUFTRAG_ARTIKEL_HERSTELLER_NAME]; } else if ("F_POSITIONSOBJEKT".equals(fieldName)) { value = data[index][REPORT_ABHOLAUFTRAG_POSITIONOBKJEKT]; } else if ("F_OFFENERAHMENMENGE".equals(fieldName)) { value = data[index][REPORT_ABHOLAUFTRAG_OFFENERAHMENMENGE]; } else if ("F_ANGEBOTSNUMMER".equals(fieldName)) { value = data[index][REPORT_ABHOLAUFTRAG_ANGEBOTSNUMMER]; } break; } return value; } public JasperPrintLP printBestellungenAlle(ReportJournalKriterienDto krit, TheClientDto theClientDto) throws EJBExceptionLP { Session session = null; try { this.useCase = UC_ALLE; SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); boolean darfEinkaufspreisSehen = getTheJudgeFac().hatRecht(RechteFac.RECHT_LP_DARF_PREISE_SEHEN_EINKAUF, theClientDto); // reportjournal: 00 Erzeugen einer Hibernate-Criteria-Query Criteria c = session.createCriteria(FLRBestellung.class); // reportjournal: 01 Filter nach Mandant c.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_MANDANT_C_NR, theClientDto.getMandant())); // reportjournal: 02 Filter: nur eine Kostenstelle if (krit.kostenstelleIId != null) { c.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_KOSTENSTELLE_I_ID, krit.kostenstelleIId)); } // reportjournal: 03 Filter: nur ein Lieferant if (krit.lieferantIId != null) { c.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_LIEFERANT_I_ID_BESTELLADRESSE, krit.lieferantIId)); } String sVon = null; String sBis = null; // reportjournal: 04 Datum von if (krit.dVon != null) { c.add(Restrictions.ge(BestellungFac.FLR_BESTELLUNG_T_LIEFERTERMIN, Helper.cutDate(krit.dVon))); sVon = Helper.formatDatum(krit.dVon, theClientDto.getLocUi()); } // reportjournal: 05 Datum bis if (krit.dBis != null) { c.add(Restrictions.lt(BestellungFac.FLR_BESTELLUNG_T_LIEFERTERMIN, Helper.cutDate(Helper.addiereTageZuDatum(krit.dBis, 1)))); sBis = Helper.formatDatum(krit.dBis, theClientDto.getLocUi()); } // reportjournalbelegnummer: 0 dazu muss ich das Belegnummernformat // und das // aktuelle Geschaeftsjahr des Mandanten kennen. LpBelegnummerFormat f = getBelegnummerGeneratorObj().getBelegnummernFormat(theClientDto.getMandant()); Integer iGeschaeftsjahr = getParameterFac().getGeschaeftsjahr(theClientDto.getMandant()); String sMandantKuerzel = getParameterFac().getMandantparameter(theClientDto.getMandant(), ParameterFac.KATEGORIE_ALLGEMEIN, ParameterFac.PARAMETER_BELEGNUMMER_MANDANTKENNUNG).getCWert(); // reportjournal: 06 belegnummer von // reportjournalbelegnummer: 1 (von) hier funktionierts fast gleich // wie bei den Direktfiltern if (krit.sBelegnummerVon != null) { sVon = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr, sMandantKuerzel, krit.sBelegnummerVon); c.add(Restrictions.ge(BestellungFac.FLR_BESTELLUNG_C_NR, sVon)); } // reportjournal: 07 belegnummer bis // reportjournalbelegnummer: 2 (bis) detto if (krit.sBelegnummerBis != null) { sBis = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr, sMandantKuerzel, krit.sBelegnummerBis); c.add(Restrictions.le(BestellungFac.FLR_BESTELLUNG_C_NR, sBis)); } // reportjournal: 08 Sortierung nach Kostenstelle if (krit.bSortiereNachKostenstelle) { c.createCriteria(BestellungFac.FLR_BESTELLUNG_FLRKOSTENSTELLE).addOrder(Order.asc("c_nr")); } // reportjournal: 09 Sortierung nach Lieferant if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) { c.createCriteria(BestellungFac.FLR_BESTELLUNG_FLRLIEFERANT).createCriteria(LieferantFac.FLR_PARTNER) .addOrder(Order.asc(PartnerFac.FLR_PARTNER_NAME1NACHNAMEFIRMAZEILE1)); } // reportjournal: 10 Sortierung nach Belegnummer else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_BELEGNUMMER) { c.addOrder(Order.asc(BestellungFac.FLR_BESTELLUNG_C_NR)); } // reportjournal: 11 Und nun zusammenbauen der Daten List<?> list = c.list(); data = new Object[list.size()][7]; int i = 0; for (Iterator<?> iter = list.iterator(); iter.hasNext();) { FLRBestellung b = (FLRBestellung) iter.next(); // reportjournal: 12 Fuer die Performance: so wenige // ejb-Methoden wie moeglich aufrufen! data[i][ALLE_BELEGDATUM] = b.getT_belegdatum(); data[i][ALLE_BESTELLNUMMER] = b.getC_nr(); data[i][ALLE_STATUS] = b.getBestellungstatus_c_nr(); if (darfEinkaufspreisSehen) { data[i][ALLE_BESTELLWERT] = b.getN_bestellwert(); } else { data[i][ALLE_BESTELLWERT] = null; } data[i][ALLE_KOSTENSTELLENUMMER] = b.getFlrkostenstelle() != null ? b.getFlrkostenstelle().getC_nr() : null; data[i][ALLE_LIEFERANT] = b.getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1(); data[i][ALLE_LIEFERTERMIN] = b.getT_liefertermin(); i++; } Map<String, Object> map = new TreeMap<String, Object>(); MandantDto mandantDto = getMandantFac().mandantFindByPrimaryKey(theClientDto.getMandant(), theClientDto); // Waehrung map.put(LPReport.P_WAEHRUNG, mandantDto.getWaehrungCNr()); StringBuffer sSortierung = new StringBuffer(); // Sortierung nach Kostenstelle // reportjournalparameter: 0 nach Kostenstelle map.put(LPReport.P_SORTIERENACHKOSTENSTELLE, new Boolean(krit.bSortiereNachKostenstelle)); if (krit.bSortiereNachKostenstelle) { sSortierung.append( getTextRespectUISpr("lp.kostenstelle", theClientDto.getMandant(), theClientDto.getLocUi())); sSortierung.append(", "); } // Sortierung nach Lieferant // reportjournalparameter: 1 nach Lieferanten map.put(LPReport.P_SORTIERENACHLIEFERANT, new Boolean(krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER)); if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) { sSortierung.append( getTextRespectUISpr("lp.lieferant", theClientDto.getMandant(), theClientDto.getLocUi())); } // reportjournalparameter: 2 nach Belegnummer else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_BELEGNUMMER) { sSortierung.append( getTextRespectUISpr("bes.bestnr", 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()); } // reportjournalparameter: 3 Uebergabe map.put(LPReport.P_SORTIERUNG, sSortierung.toString()); map.put(LPReport.P_FILTER, sFilter.toString()); initJRDS(map, BestellungReportFac.REPORT_MODUL, BestellungReportFac.REPORT_BESTELLUNGEN_ALLE, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); } catch (RemoteException ex) { throwEJBExceptionLPRespectOld(ex); } finally { closeSession(session); } return getReportPrint(); } public JasperPrintLP printBSMahnungAusMahnlauf(Integer bsmahnungIId, boolean bMitLogo, TheClientDto theClientDto) throws EJBExceptionLP { try { this.useCase = UC_BSMAHNUNG; data = new Object[1][1]; BSMahnungDto bsmahnungDto = getBSMahnwesenFac().bsmahnungFindByPrimaryKey(bsmahnungIId); return printBSMahnungFuerBestellung(bsmahnungDto.getBestellpositionIId(), bsmahnungDto.getBestellungIId(), bsmahnungDto.getMahnstufeIId(), new Date(bsmahnungDto.getTMahndatum().getTime()), bMitLogo, theClientDto); } catch (Exception ex) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_BEIM_DRUCKEN, ex); } } public JasperPrintLP printBSMahnungFuerBestellung(Integer bestellpositionIId, Integer bestellungIId, Integer bsmahnstufeIId, Date dMahndatum, boolean bMitLogo, TheClientDto theClientDto) throws EJBExceptionLP { try { this.useCase = UC_BSMAHNUNG; data = new Object[1][1]; Map<String, Object> map = new TreeMap<String, Object>(); BestellungDto bestellungDto = getBestellungFac().bestellungFindByPrimaryKey(bestellungIId); BestellpositionDto besposDto = getBestellpositionFac() .bestellpositionFindByPrimaryKey(bestellpositionIId); LieferantDto lieferantDto = getLieferantFac() .lieferantFindByPrimaryKey(bestellungDto.getLieferantIIdBestelladresse(), theClientDto); Locale locDruck = Helper.string2Locale(lieferantDto.getPartnerDto().getLocaleCNrKommunikation()); AnsprechpartnerDto oAnsprechpartner = null; if (bestellungDto.getAnsprechpartnerIId() != null) { oAnsprechpartner = getAnsprechpartnerFac() .ansprechpartnerFindByPrimaryKey(bestellungDto.getAnsprechpartnerIId(), theClientDto); } // // data = new Object[1][1]; // // // data[0][REPORT_BSSAMMELMAHNUNG_OFFENEMENGE] = item.getBdOffen(); // data[1][REPORT_BSSAMMELMAHNUNG_WERT] = item.getBdWert(); // data[2][REPORT_BSSAMMELMAHNUNG_BESTELLPOSITION_BEZEICHNUNG] = // item. // getSBestellpositionbezeichung(); // data[3][REPORT_BSSAMMELMAHNUNG_BELEGDATUM] = // item.getDBelegdatum(); // data[4][REPORT_BSSAMMELMAHNUNG_LIEFERTERMIN] = // item.getDFaelligkeitsdatum(); // data[5][REPORT_BSSAMMELMAHNUNG_MAHNSTUFE] = item.getIMahnstufe(); // data[6][REPORT_BSSAMMELMAHNUNG_BESTELLNUMMER] = // item.getSRechnungsnummer(); MandantDto mandantDto = getMandantFac().mandantFindByPrimaryKey(theClientDto.getMandant(), theClientDto); map.put("P_LIEFERANT_ADRESSBLOCK", formatAdresseFuerAusdruck(lieferantDto.getPartnerDto(), oAnsprechpartner, mandantDto, locDruck)); map.put("P_LIEFERANT_UID", lieferantDto.getPartnerDto().getCUid()); PersonalDto oPersonalBenutzer = getPersonalFac().personalFindByPrimaryKey(theClientDto.getIDPersonal(), theClientDto); PersonalDto oPersonalAnleger = getPersonalFac() .personalFindByPrimaryKey(bestellungDto.getPersonalIIdAnlegen(), theClientDto); map.put("P_UNSER_ZEICHEN", Helper.getKurzzeichenkombi(oPersonalBenutzer.getCKurzzeichen(), oPersonalAnleger.getCKurzzeichen())); map.put("P_DATUM", new java.util.Date(getDate().getTime())); map.put("P_BERUECKSICHTIGTBIS", dMahndatum); Integer partnerIIdAnsprechpartner = null; if (oAnsprechpartner != null) { partnerIIdAnsprechpartner = oAnsprechpartner.getPartnerIIdAnsprechpartner(); } // belegkommunikation: 2 daten holen String sEmail = getPartnerFac().partnerkommFindRespectPartnerAsStringOhneExec(partnerIIdAnsprechpartner, lieferantDto.getPartnerDto(), PartnerFac.KOMMUNIKATIONSART_EMAIL, theClientDto.getMandant(), theClientDto); String sFax = getPartnerFac().partnerkommFindRespectPartnerAsStringOhneExec(partnerIIdAnsprechpartner, lieferantDto.getPartnerDto(), PartnerFac.KOMMUNIKATIONSART_FAX, theClientDto.getMandant(), theClientDto); String sTelefon = getPartnerFac().partnerkommFindRespectPartnerAsStringOhneExec( partnerIIdAnsprechpartner, lieferantDto.getPartnerDto(), PartnerFac.KOMMUNIKATIONSART_TELEFON, theClientDto.getMandant(), theClientDto); // belegkommunikation: 3 daten als parameter an den Report // weitergeben map.put(LPReport.P_ANSPRECHPARTNEREMAIL, sEmail != null ? sEmail : ""); map.put(LPReport.P_ANSPRECHPARTNERFAX, sFax != null ? sFax : ""); map.put(LPReport.P_ANSPRECHPARTNERTELEFON, sTelefon != null ? sTelefon : ""); BSMahntextDto bsmahntextDto = getBSMahnwesenFac().bsmahntextFindByMandantLocaleCNr(mandantDto.getCNr(), Helper.locale2String(locDruck), bsmahnstufeIId); String sPMahnstufe; if (bsmahnstufeIId.intValue() == BSMahnwesenFac.MAHNSTUFE_99) { sPMahnstufe = "Letzte"; } else { sPMahnstufe = bsmahnstufeIId.toString() + "."; } map.put("P_MAHNSTUFE", sPMahnstufe); map.put("Mandantenadresse", Helper.formatMandantAdresse(mandantDto)); if (bsmahntextDto != null) { map.put("P_MAHNTEXT", Helper.formatStyledTextForJasper(bsmahntextDto.getXTextinhalt())); } else { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FINANZ_KEINE_MAHNTEXTE_EINGETRAGEN, ""); } map.put("P_BESTELLUNGSNUMMER", bestellungDto.getCNr()); map.put("P_BESTELLUNGSDATUM", bestellungDto.getDBelegdatum()); map.put("P_BEZEICHNUNG", besposDto.getCBez()); map.put("P_ZUSATZBEZEICHNUNG", besposDto.getCZusatzbez()); ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKey(besposDto.getArtikelIId(), theClientDto); map.put("P_LIEFERANT_ARTIKEL_IDENTNUMMER", artikelDto.getCArtikelnrhersteller()); map.put("P_IDENT", artikelDto.getCNr()); map.put("P_ARTIKELCZBEZ2", artikelDto.formatBezeichnung()); ArtikellieferantDto artLiefDto = getArtikelFac().artikellieferantFindByArtikellIIdLieferantIIdOhneExc( besposDto.getArtikelIId(), lieferantDto.getIId(), theClientDto); if (artLiefDto != null) { map.put("P_LIEFERANT_ARTIKEL_BEZEICHNUNG", artLiefDto.getCBezbeilieferant()); } BigDecimal bdOffeneMenge = getBestellpositionFac().berechneOffeneMenge(besposDto); map.put("P_OFFENEMENGE", bdOffeneMenge); map.put("P_EINHEIT", getSystemFac().formatEinheit(besposDto.getEinheitCNr(), locDruck, theClientDto)); map.put("P_BSWERT", bdOffeneMenge.multiply(besposDto.getNNettogesamtpreis())); if (besposDto.getTUebersteuerterLiefertermin() != null) { map.put("P_LIEFERTERMIN", new Date(besposDto.getTUebersteuerterLiefertermin().getTime())); } else { map.put("P_LIEFERTERMIN", bestellungDto.getDLiefertermin()); } if (besposDto.getTAuftragsbestaetigungstermin() != null) { map.put("P_ABTERMIN", new Date(besposDto.getTAuftragsbestaetigungstermin().getTime())); } else { map.put("P_ABTERMIN", null); } BSMahnstufeDto bsmahnstufeDto = getBSMahnwesenFac() .bsmahnstufeFindByPrimaryKeyOhneExc(new BsmahnstufePK(bsmahnstufeIId, mandantDto.getCNr())); map.put("P_MAHNSTUFE_TAGE", bsmahnstufeDto.getITage()); map.put(LPReport.P_WAEHRUNG, mandantDto.getWaehrungCNr()); map.put("P_ABSENDER", mandantDto.getPartnerDto().formatAnrede()); map.put("P_BENUTZERNAME", oPersonalBenutzer.getPartnerDto().formatAnrede()); map.put("P_MITLOGO", bMitLogo); initJRDS(map, BestellungReportFac.REPORT_MODUL, BestellungReportFac.REPORT_BSMAHNUNG, theClientDto.getMandant(), locDruck, theClientDto, bMitLogo, null); return getReportPrint(); } catch (Exception ex) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_BEIM_DRUCKEN, ex); } } public JasperPrintLP[] printBSSammelMahnung(Integer bsmahnlaufIId, boolean bMitLogo, TheClientDto theClientDto) throws EJBExceptionLP, RemoteException { Session session = null; try { HashMap<Integer, Integer> hm = getAllLieferantenFromMahnlauf(bsmahnlaufIId); Collection<JasperPrintLP> c = new LinkedList<JasperPrintLP>(); for (Iterator<Integer> iter = hm.keySet().iterator(); iter.hasNext();) { ArrayList<JasperPrintLP> print = printBSSammelMahnung(bsmahnlaufIId, (Integer) iter.next(), theClientDto, false, bMitLogo); if (print != null) { for (int i = 0; i < print.size(); i++) { c.add(print.get(i)); } } } JasperPrintLP[] prints = new JasperPrintLP[c.size()]; int i = 0; for (Iterator<JasperPrintLP> iter = c.iterator(); iter.hasNext(); i++) { JasperPrintLP item = (JasperPrintLP) iter.next(); prints[i] = item; } return prints; } finally { closeSession(session); } } private HashMap<Integer, Integer> getAllLieferantenFromMahnlauf(Integer bsmahnlaufIId) { Session session = null; SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); Criteria crit = session.createCriteria(FLRBSMahnung.class); crit.add(Restrictions.eq(BSMahnwesenFac.FLR_MAHNUNG_MAHNLAUF_I_ID, bsmahnlaufIId)); List<?> list = crit.list(); HashMap<Integer, Integer> hm = new HashMap<Integer, Integer>(); // alle lieferantenIds in eine hashmap -> quasi distinct for (Iterator<?> iter = list.iterator(); iter.hasNext();) { FLRBSMahnung item = (FLRBSMahnung) iter.next(); hm.put(item.getFlrbestellung().getFlrlieferant().getI_id(), item.getFlrbestellung().getFlrlieferant().getI_id()); } return hm; } public ArrayList<JasperPrintLP> getMahnungenFuerAlleLieferanten(Integer bsmahnlaufIId, TheClientDto theClientDto, boolean bNurNichtGemahnte, boolean bMitLogo) throws EJBExceptionLP, RemoteException { HashMap<Integer, Integer> hm = getAllLieferantenFromMahnlauf(bsmahnlaufIId); ArrayList<JasperPrintLP> hmPrints = new ArrayList<JasperPrintLP>(); for (Iterator<Integer> iter = hm.keySet().iterator(); iter.hasNext();) { Integer iLieferantIId = (Integer) iter.next(); ArrayList<JasperPrintLP> print = null; try { print = printBSSammelMahnung(bsmahnlaufIId, iLieferantIId, theClientDto, bNurNichtGemahnte, bMitLogo); } catch (EJBExceptionLP e) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_BEIM_DRUCKEN, e); } catch (RemoteException e) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_BEIM_DRUCKEN, e); } if (print != null) { for (int i = 0; i < print.size(); i++) hmPrints.add(print.get(i)); } } return hmPrints; } public JasperPrintLP printWepEtikett(Integer iIdWepI, Integer iIdBestellpositionI, Integer iIdLagerI, Integer iExemplare, Integer iVerpackungseinheit, Double dGewicht, String sWarenverkehrsnummer, String sLagerort, String sUrsprungsland, String sKommentar, BigDecimal bdHandmenge, Integer wePosIId, TheClientDto theClientDto) throws EJBExceptionLP { this.useCase = UC_WEP_ETIKETT; try { WareneingangspositionDto wepDto = null; WareneingangDto weDto = null; LagerDto lagerDto = null; BestellpositionDto bespDto = getBestellpositionFac() .bestellpositionFindByPrimaryKey(iIdBestellpositionI); if (iIdWepI != null) { wepDto = getWareneingangFac().wareneingangspositionFindByPrimaryKey(iIdWepI); weDto = getWareneingangFac().wareneingangFindByPrimaryKey(wepDto.getWareneingangIId()); } BestellungDto bestellungDto = getBestellungFac().bestellungFindByPrimaryKey(bespDto.getBestellungIId()); lagerDto = getLagerFac().lagerFindByPrimaryKey(iIdLagerI); ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKey(bespDto.getArtikelIId(), theClientDto); ArtikellieferantDto artikellieferantDto = null; try { artikellieferantDto = getArtikelFac().artikellieferantFindByArtikellIIdLieferantIIdOhneExc( artikelDto.getIId(), bestellungDto.getLieferantIIdBestelladresse(), theClientDto); } catch (RemoteException ex) { // throwEJBExceptionLPRespectOld(ex); } LieferantDto lieferantDto = getLieferantFac() .lieferantFindByPrimaryKey(bestellungDto.getLieferantIIdBestelladresse(), theClientDto); // es gilt das Locale des Lieferanten Locale locDruck = Helper.string2Locale(lieferantDto.getPartnerDto().getLocaleCNrKommunikation()); int iAnzahlZeilen = 1; // Anzahl der Zeilen in der Gruppe data = new Object[iAnzahlZeilen][BestellungReportFac.REPORT_WEP_ETIKETT_ANZAHL_SPALTEN]; // die Datenmatrix befuellen for (int i = 0; i < iAnzahlZeilen; i++) { if (wepDto != null) { data[i][BestellungReportFac.REPORT_WEP_ETIKETT_ANLIEFERMENGE] = wepDto.getNGeliefertemenge(); data[i][BestellungReportFac.REPORT_WEP_ETIKETT_EINHEIT] = bespDto.getEinheitCNr().trim(); if (Helper.short2boolean(artikelDto.getBChargennrtragend())) { data[i][BestellungReportFac.REPORT_WEP_ETIKETT_CHARGENNUMMER] = SeriennrChargennrMitMengeDto .erstelleStringAusMehrerenSeriennummern(wepDto.getSeriennrChargennrMitMenge()); } if (Helper.short2boolean(artikelDto.getBSeriennrtragend())) { data[i][BestellungReportFac.REPORT_WEP_ETIKETT_SERIENNUMMER] = SeriennrChargennrMitMengeDto .erstelleStringAusMehrerenSeriennummern(wepDto.getSeriennrChargennrMitMenge()); } } if (weDto != null) { data[i][BestellungReportFac.REPORT_WEP_ETIKETT_WE_DATUM] = Helper .formatDatum(Helper.extractDate(weDto.getTWareneingangsdatum()), locDruck); } data[i][BestellungReportFac.REPORT_WEP_ETIKETT_BESTELLNUMMER] = bestellungDto.getCNr(); data[i][BestellungReportFac.REPORT_WEP_ETIKETT_PROJEKTBEZ] = bestellungDto.getCBez(); data[i][BestellungReportFac.REPORT_WEP_ETIKETT_WARENVERKEHRSNUMMER] = sWarenverkehrsnummer; data[i][BestellungReportFac.REPORT_WEP_ETIKETT_VERPACKUNGSEINHEIT] = iVerpackungseinheit; data[i][BestellungReportFac.REPORT_WEP_ETIKETT_HANDMENGE] = bdHandmenge; data[i][BestellungReportFac.REPORT_WEP_ETIKETT_LAGER] = lagerDto.getCNr(); data[i][BestellungReportFac.REPORT_WEP_ETIKETT_LAGERORT] = sLagerort; data[i][BestellungReportFac.REPORT_WEP_ETIKETT_URSPRUNGSLAND] = sUrsprungsland; data[i][BestellungReportFac.REPORT_WEP_ETIKETT_GEWICHT] = dGewicht; data[i][BestellungReportFac.REPORT_WEP_ETIKETT_KOMMENTAR] = sKommentar; if (artikellieferantDto != null) { data[i][BestellungReportFac.REPORT_WEP_ETIKETT_LIEFERANTENARTIKELNUMMER] = artikellieferantDto .getCArtikelnrlieferant(); data[i][BestellungReportFac.REPORT_WEP_ETIKETT_LIEFERANTENARTIKELBEZ] = artikellieferantDto .getCBezbeilieferant(); } data[i][BestellungReportFac.REPORT_WEP_ETIKETT_IDENT] = artikelDto.getCNr(); if (artikelDto.getArtikelsprDto() != null) { data[i][BestellungReportFac.REPORT_WEP_ETIKETT_BEZ] = artikelDto.getArtikelsprDto().getCBez(); data[i][BestellungReportFac.REPORT_WEP_ETIKETT_ZBEZ] = artikelDto.getArtikelsprDto().getCZbez(); data[i][BestellungReportFac.REPORT_WEP_ETIKETT_ZBEZ2] = artikelDto.getArtikelsprDto() .getCZbez2(); } data[i][BestellungReportFac.REPORT_WEP_ETIKETT_WE_REFERENZ] = getLagerFac() .getWareneingangsreferenzSubreport(LocaleFac.BELEGART_BESTELLUNG, wepDto.getIId(), wepDto.getSeriennrChargennrMitMenge(), false, theClientDto); if (lieferantDto != null) { data[i][BestellungReportFac.REPORT_WEP_ETIKETT_LIEFERANTNAME] = lieferantDto.getPartnerDto() .formatFixName1Name2(); } else { data[i][BestellungReportFac.REPORT_WEP_ETIKETT_LIEFERANTNAME] = ""; } HerstellerDto hersteller = null; if (artikelDto.getHerstellerIId() != null) { hersteller = getArtikelFac().herstellerFindByPrimaryKey(artikelDto.getHerstellerIId(), theClientDto); } if (hersteller != null) { data[i][BestellungReportFac.REPORT_WEP_ETIKETT_HERSTELLER] = hersteller.getCNr(); if (hersteller.getPartnerDto() != null) { data[i][BestellungReportFac.REPORT_WEP_ETIKETT_HERSTELLERNAME] = hersteller.getPartnerDto() .formatAnrede(); } } else { data[i][BestellungReportFac.REPORT_WEP_ETIKETT_HERSTELLER] = ""; data[i][BestellungReportFac.REPORT_WEP_ETIKETT_HERSTELLERNAME] = ""; } } Map<String, Object> parameter = new TreeMap<String, Object>(); initJRDS(parameter, BestellungReportFac.REPORT_MODUL, BestellungReportFac.REPORT_WEP_ETIKETT, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); return getReportPrint(); } catch (Exception ex) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_BEIM_DRUCKEN, ex); } } public ArrayList<JasperPrintLP> printBSSammelMahnung(Integer bsmahnlaufIId, Integer lieferantIId, TheClientDto theClientDto, boolean bNurNichtGemahnte, boolean bMitLogo) throws EJBExceptionLP, RemoteException { ArrayList alBestellungen = new ArrayList<JasperPrintLP>(); try { this.useCase = UC_BSSAMMELMAHNUNG; // TODO create following query to get bsmahnungen: // SELECT * FROM BES_BSMAHNUNG INNER JOIN BES_BESTELLUNG ON // BES_BSMAHNUNG.BESTELLUNG_I_ID = BES_BESTELLUNG.I_ID WHERE // LIEFERANT_I_ID_BESTELLADRESSE = lieferantIId AND BSMAHNLAUF_I_ID // = bsmahnlaufIId // AND BES_BSMAHNUNG.MANDANT_C_NR = theClientDto.getMandant() // BSMahnungDto[] bsmahnungen = // getBSMahnwesenFac().bsmahnungFindByBSMahnlaufIId( // bsmahnlaufIId, theClientDto); BSMahnungDto[] bsmahnungen = getBSMahnwesenFac().bsmahnungFindByBSMahnlaufIIdLieferantIId(bsmahnlaufIId, lieferantIId, theClientDto.getMandant()); if (bNurNichtGemahnte) { Collection<BSMahnungDto> cMahnungen = new LinkedList<BSMahnungDto>(); for (int y = 0; y < bsmahnungen.length; y++) { if (bsmahnungen[y].getTGedruckt() == null) { cMahnungen.add(bsmahnungen[y]); } } bsmahnungen = new BSMahnungDto[cMahnungen.size()]; bsmahnungen = cMahnungen.toArray(bsmahnungen); } boolean bAbsenderIstAnforderer = false; try { ParametermandantDto parameter = (ParametermandantDto) getParameterFac().getMandantparameter( theClientDto.getMandant(), ParameterFac.KATEGORIE_BESTELLUNG, ParameterFac.PARAMETER_MAHNUNGSABSENDER); int iWert = ((Integer) parameter.getCWertAsObject()).intValue(); if (iWert == 1) { bAbsenderIstAnforderer = true; } } catch (RemoteException ex5) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER, ex5); } HashMap hmSammelmahnungProAnsprechpartner = new HashMap(); Integer partnerIIdErsterAnsprechpartner = null; Integer iMaxMahnstufe = null; if (bsmahnungen != null && bsmahnungen.length > 0) { for (int i = 0; i < bsmahnungen.length; i++) { BestellungDto bestellungDto = null; bestellungDto = getBestellungFac() .bestellungFindByPrimaryKey(bsmahnungen[i].getBestellungIId()); AnsprechpartnerDto oAnsprechpartner = null; if (bestellungDto.getAnsprechpartnerIId() != null) { oAnsprechpartner = getAnsprechpartnerFac().ansprechpartnerFindByPrimaryKey( bestellungDto.getAnsprechpartnerIId(), theClientDto); } if (oAnsprechpartner != null && i == 0) { partnerIIdErsterAnsprechpartner = oAnsprechpartner.getPartnerIIdAnsprechpartner(); } BestellpositionDto besposDto; Integer lieferantIIdMahnung = bestellungDto.getLieferantIIdBestelladresse(); // if (lieferantIIdMahnung.equals(lieferantIId)) { if (iMaxMahnstufe == null) { iMaxMahnstufe = bsmahnungen[i].getMahnstufeIId(); } else { if (bsmahnungen[i].getMahnstufeIId().intValue() > iMaxMahnstufe.intValue()) { iMaxMahnstufe = bsmahnungen[i].getMahnstufeIId(); } } besposDto = getBestellpositionFac() .bestellpositionFindByPrimaryKey(bsmahnungen[i].getBestellpositionIId()); String key = bestellungDto.getAnsprechpartnerIId() + ""; if (bAbsenderIstAnforderer == true) { if (bestellungDto.getPersonalIIdAnforderer() != null) { key += " " + bestellungDto.getPersonalIIdAnforderer(); } } if (hmSammelmahnungProAnsprechpartner.containsKey(key)) { Collection<BSSammelmahnungDto> c = (Collection<BSSammelmahnungDto>) hmSammelmahnungProAnsprechpartner .get(key); BSSammelmahnungDto smDto = new BSSammelmahnungDto(); BigDecimal bdOffeneMenge = getBestellpositionFac().berechneOffeneMenge(besposDto); smDto.setBdOffen(bdOffeneMenge); smDto.setAnsprechpartnerIId(bestellungDto.getAnsprechpartnerIId()); smDto.setPersonalIIdAnforderer(bestellungDto.getPersonalIIdAnforderer()); smDto.setsBestellnummern(bestellungDto.getCNr()); smDto.setBdWert(besposDto.getNNettoeinzelpreis().multiply(bdOffeneMenge)); // BSMahnstufeDto bsmahnstufeDto = getBSMahnwesenFac(). // bsmahnstufeFindByPrimaryKeyOhneExc(new // BSMahnstufePK(bsmahnungen[i]. // getMahnstufeIId(), theClientDto.getMandant())); smDto.setDBelegdatum(bestellungDto.getDBelegdatum()); /* * Date dZieldatum = new * Date(bestellungDto.getDBelegdatum() .getTime()); if * (bestellungDto.getZahlungszielIId() != null) { * ZahlungszielDto zzDto = getMandantFac() * .zahlungszielFindByPrimaryKey( * bestellungDto.getZahlungszielIId(), theClientDto); * dZieldatum = Helper.addiereTageZuDatum(dZieldatum, * zzDto .getAnzahlZieltageFuerNetto().intValue()); } */ smDto.setDFaelligkeitsdatum(/* dZieldatum */besposDto.getTUebersteuerterLiefertermin()); smDto.setDABTermin(besposDto.getTAuftragsbestaetigungstermin()); smDto.setIMahnstufe(bsmahnungen[i].getMahnstufeIId()); smDto.setSRechnungsnummer(bestellungDto.getCNr()); smDto.setSBestellpositionbezeichung(besposDto.getCBez()); ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKey(besposDto.getArtikelIId(), theClientDto); smDto.setSIdentnummer(artikelDto.getCNr()); ArtikellieferantDto artLiefDto = getArtikelFac() .artikellieferantFindByArtikellIIdLieferantIIdOhneExc(besposDto.getArtikelIId(), lieferantIIdMahnung, theClientDto); smDto.setSHerstellerIdentnummer(artikelDto.getCArtikelnrhersteller()); if (artLiefDto != null) { smDto.setSHerstellerbezeichnung(artLiefDto.getCBezbeilieferant()); } else { smDto.setSHerstellerbezeichnung(null); } if (artikelDto.getHerstellerIId() != null) { smDto.setSArtikelhersteller(getArtikelFac() .herstellerFindByPrimaryKey(artikelDto.getHerstellerIId(), theClientDto) .getCNr()); } else { smDto.setSArtikelhersteller(""); } smDto.setSReferenznummer(artikelDto.getCReferenznr()); smDto.setSArtikelbez(artikelDto.formatArtikelbezeichnung()); c.add(smDto); hmSammelmahnungProAnsprechpartner.put(key, c); } else { Collection<BSSammelmahnungDto> c = new LinkedList<BSSammelmahnungDto>(); BSSammelmahnungDto smDto = new BSSammelmahnungDto(); BigDecimal bdOffeneMenge = getBestellpositionFac().berechneOffeneMenge(besposDto); smDto.setBdOffen(bdOffeneMenge); smDto.setsBestellnummern(bestellungDto.getCNr()); smDto.setBdWert(besposDto.getNNettoeinzelpreis().multiply(bdOffeneMenge)); // BSMahnstufeDto bsmahnstufeDto = getBSMahnwesenFac(). // bsmahnstufeFindByPrimaryKeyOhneExc(new // BSMahnstufePK(bsmahnungen[i]. // getMahnstufeIId(), theClientDto.getMandant())); smDto.setDBelegdatum(bestellungDto.getDBelegdatum()); smDto.setAnsprechpartnerIId(bestellungDto.getAnsprechpartnerIId()); smDto.setPersonalIIdAnforderer(bestellungDto.getPersonalIIdAnforderer()); smDto.setDFaelligkeitsdatum(/* dZieldatum */besposDto.getTUebersteuerterLiefertermin()); smDto.setDABTermin(besposDto.getTAuftragsbestaetigungstermin()); smDto.setIMahnstufe(bsmahnungen[i].getMahnstufeIId()); smDto.setSRechnungsnummer(bestellungDto.getCNr()); smDto.setSBestellpositionbezeichung(besposDto.getCBez()); ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKey(besposDto.getArtikelIId(), theClientDto); smDto.setSIdentnummer(artikelDto.getCNr()); ArtikellieferantDto artLiefDto = getArtikelFac() .artikellieferantFindByArtikellIIdLieferantIIdOhneExc(besposDto.getArtikelIId(), lieferantIIdMahnung, theClientDto); smDto.setSHerstellerIdentnummer(artikelDto.getCArtikelnrhersteller()); if (artLiefDto != null) { smDto.setSHerstellerbezeichnung(artLiefDto.getCBezbeilieferant()); } else { smDto.setSHerstellerbezeichnung(null); } if (artikelDto.getHerstellerIId() != null) { smDto.setSArtikelhersteller(getArtikelFac() .herstellerFindByPrimaryKey(artikelDto.getHerstellerIId(), theClientDto) .getCNr()); } else { smDto.setSArtikelhersteller(""); } smDto.setSReferenznummer(artikelDto.getCReferenznr()); smDto.setSArtikelbez(artikelDto.formatArtikelbezeichnung()); c.add(smDto); hmSammelmahnungProAnsprechpartner.put(key, c); } // } } for (Iterator iterA = hmSammelmahnungProAnsprechpartner.keySet().iterator(); iterA.hasNext();) { String key = (String) iterA.next(); HashMap hmBestellnummern = new HashMap(); Collection<BSSammelmahnungDto> c = (Collection<BSSammelmahnungDto>) hmSammelmahnungProAnsprechpartner .get(key); Integer anspIId = null; Integer personalIIdAnforderer = null; data = new Object[c.size()][REPORT_BSSAMMELMAHNUNG_SIZE]; int i = 0; for (Iterator<BSSammelmahnungDto> iter = c.iterator(); iter.hasNext();) { BSSammelmahnungDto item = (BSSammelmahnungDto) iter.next(); anspIId = item.getAnsprechpartnerIId(); if (bAbsenderIstAnforderer == true) { personalIIdAnforderer = item.getPersonalIIdAnforderer(); } data[i][REPORT_BSSAMMELMAHNUNG_OFFENEMENGE] = item.getBdOffen(); data[i][REPORT_BSSAMMELMAHNUNG_WERT] = item.getBdWert(); data[i][REPORT_BSSAMMELMAHNUNG_BESTELLPOSITION_BEZEICHNUNG] = item .getSBestellpositionbezeichung(); data[i][REPORT_BSSAMMELMAHNUNG_BELEGDATUM] = new java.util.Date( item.getDBelegdatum().getTime()); if (!hmBestellnummern.containsKey(item.getsBestellnummern())) { hmBestellnummern.put(item.getsBestellnummern(), item.getsBestellnummern()); } data[i][REPORT_BSSAMMELMAHNUNG_LIEFERTERMIN] = new java.util.Date( item.getDFaelligkeitsdatum().getTime()); if (item.getDABTermin() != null) { data[i][REPORT_BSSAMMELMAHNUNG_ABTERMIN] = new java.util.Date( item.getDABTermin().getTime()); } else { data[i][REPORT_BSSAMMELMAHNUNG_ABTERMIN] = null; } data[i][REPORT_BSSAMMELMAHNUNG_MAHNSTUFE] = item.getIMahnstufe(); data[i][REPORT_BSSAMMELMAHNUNG_BESTELLNUMMER] = item.getSRechnungsnummer(); data[i][REPORT_BSSAMMELMAHNUNG_IDENTNUMMER] = item.getSIdentnummer(); data[i][REPORT_BSSAMMELMAHNUNG_LIEFERANT_IDENTNUMMER] = item.getSHerstellerIdentnummer(); data[i][REPORT_BSSAMMELMAHNUNG_LIEFERANT_ARTIKEL_BEZEICHNUNG] = item .getSHerstellerbezeichnung(); data[i][REPORT_BSSAMMELMAHNUNG_ARTIKEL_HERSTELLER] = item.getSArtikelhersteller(); data[i][REPORT_BSSAMMELMAHNUNG_REFERENZNUMMER] = item.getSReferenznummer(); data[i][REPORT_BSSAMMELMAHNUNG_ARTIKELCZBEZ2] = item.getSArtikelbez(); i++; } Map<String, Object> map = new TreeMap<String, Object>(); LieferantDto lieferantDto = getLieferantFac().lieferantFindByPrimaryKey(lieferantIId, theClientDto); Locale locDruck = Helper .string2Locale(lieferantDto.getPartnerDto().getLocaleCNrKommunikation()); MandantDto mandantDto = getMandantFac().mandantFindByPrimaryKey(theClientDto.getMandant(), theClientDto); if (anspIId != null) { AnsprechpartnerDto ansprechpartnerDto = getAnsprechpartnerFac() .ansprechpartnerFindByPrimaryKey(anspIId, theClientDto); map.put("P_LIEFERANT_ADRESSBLOCK", formatAdresseFuerAusdruck(lieferantDto.getPartnerDto(), ansprechpartnerDto, mandantDto, locDruck)); } else { map.put("P_LIEFERANT_ADRESSBLOCK", formatAdresseFuerAusdruck(lieferantDto.getPartnerDto(), null, mandantDto, locDruck)); } // belegkommunikation: 2 daten holen String sEmail = getPartnerFac().partnerkommFindRespectPartnerAsStringOhneExec( partnerIIdErsterAnsprechpartner, lieferantDto.getPartnerDto(), PartnerFac.KOMMUNIKATIONSART_EMAIL, theClientDto.getMandant(), theClientDto); String sFax = getPartnerFac().partnerkommFindRespectPartnerAsStringOhneExec( partnerIIdErsterAnsprechpartner, lieferantDto.getPartnerDto(), PartnerFac.KOMMUNIKATIONSART_FAX, theClientDto.getMandant(), theClientDto); String sTelefon = getPartnerFac().partnerkommFindRespectPartnerAsStringOhneExec( partnerIIdErsterAnsprechpartner, lieferantDto.getPartnerDto(), PartnerFac.KOMMUNIKATIONSART_TELEFON, theClientDto.getMandant(), theClientDto); // belegkommunikation: 3 daten als parameter an den Report // weitergeben map.put(LPReport.P_ANSPRECHPARTNEREMAIL, sEmail != null ? sEmail : ""); map.put(LPReport.P_ANSPRECHPARTNERFAX, sFax != null ? sFax : ""); map.put(LPReport.P_ANSPRECHPARTNERTELEFON, sTelefon != null ? sTelefon : ""); map.put("P_LIEFERANT_UID", lieferantDto.getPartnerDto().getCUid()); PersonalDto oPersonalBenutzer = getPersonalFac() .personalFindByPrimaryKey(theClientDto.getIDPersonal(), theClientDto); map.put("P_UNSER_ZEICHEN", Helper.getKurzzeichenkombi(oPersonalBenutzer.getCKurzzeichen(), oPersonalBenutzer.getCKurzzeichen())); BSMahnlaufDto mahnlaufDto = getBSMahnwesenFac().bsmahnlaufFindByPrimaryKey(bsmahnlaufIId); map.put("P_BERUECKSICHTIGTBIS", new java.util.Date(mahnlaufDto.getTAnlegen().getTime())); map.put("P_DATUM", new java.util.Date(getDate().getTime())); BSMahntextDto bsmahntextDto = getBSMahnwesenFac().bsmahntextFindByMandantLocaleCNr( mandantDto.getCNr(), Helper.locale2String(locDruck), iMaxMahnstufe); if (bsmahntextDto != null) { map.put("P_MAHNTEXT", Helper.formatStyledTextForJasper(bsmahntextDto.getXTextinhalt())); } else { ArrayList al = new ArrayList(); al.add(lieferantDto.getPartnerDto().formatAnrede() + " (" + Helper.locale2String(locDruck).trim() + ")"); throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FINANZ_KEINE_MAHNTEXTE_EINGETRAGEN, al, new Exception("FEHLER_FINANZ_KEINE_MAHNTEXTE_EINGETRAGEN")); } BSMahnstufeDto bsmahnstufeDto = getBSMahnwesenFac().bsmahnstufeFindByPrimaryKeyOhneExc( new BsmahnstufePK(iMaxMahnstufe, theClientDto.getMandant())); map.put("P_MAXMAHNSTUFE", bsmahnstufeDto.getIId()); map.put("P_MAXMAHNSTUFE_TAGE", bsmahnstufeDto.getITage()); map.put("P_BERUECKSICHTIGTBIS", new java.sql.Date(System.currentTimeMillis())); map.put(LPReport.P_WAEHRUNG, mandantDto.getWaehrungCNr()); map.put("P_ABSENDER", mandantDto.getPartnerDto().formatAnrede()); map.put("P_BENUTZERNAME", oPersonalBenutzer.getPartnerDto().formatAnrede()); map.put("Mandantenadresse", Helper.formatMandantAdresse(mandantDto)); map.put("P_MITLOGO", bMitLogo); initJRDS(map, BestellungReportFac.REPORT_MODUL, BestellungReportFac.REPORT_BSSAMMELMAHNUNG, theClientDto.getMandant(), locDruck, theClientDto, bMitLogo, null); JasperPrintLP print = getReportPrint(); print.putAdditionalInformation("ansprechpartnerIId", anspIId); print.putAdditionalInformation("personalIIdAnforderer", personalIIdAnforderer); print.putAdditionalInformation("lieferantIId", lieferantIId); print.putAdditionalInformation("bestellnummern", hmBestellnummern); alBestellungen.add(print); } return alBestellungen; } return null; } catch (RemoteException ex) { throwEJBExceptionLPRespectOld(ex); return null; } } /** * String zum Andrucken der Sortierkriterien. * * @param reportJournalKriterienDtoI * die Kriterien * @param theClientDto * der aktuelle Benutzer * @return String die Sortierkriterien */ private String buildSortierungBestellungOffene(ReportJournalKriterienDto reportJournalKriterienDtoI, TheClientDto theClientDto) { StringBuffer buff = new StringBuffer( getTextRespectUISpr("lp.sortierungnach", theClientDto.getMandant(), theClientDto.getLocUi())); buff.append(" "); if (reportJournalKriterienDtoI.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_BELEGNUMMER) { buff.append(getTextRespectUISpr("bes.bestnr", theClientDto.getMandant(), theClientDto.getLocUi())); } if (reportJournalKriterienDtoI.bSortiereNachKostenstelle) { buff.append(getTextRespectUISpr("lp.kostenstelle", theClientDto.getMandant(), theClientDto.getLocUi())) .append(", "); } if (reportJournalKriterienDtoI.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) { buff.append(getTextRespectUISpr("lp.lieferant", theClientDto.getMandant(), theClientDto.getLocUi())) .append(", "); } if (reportJournalKriterienDtoI.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_IDENT) { buff.append(getTextRespectUISpr("bes.offene.lieferantartikel", theClientDto.getMandant(), theClientDto.getLocUi())).append(", "); } if (reportJournalKriterienDtoI.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PROJEKT) { buff.append(getTextRespectUISpr("lp.projekt", theClientDto.getMandant(), theClientDto.getLocUi())); } if (reportJournalKriterienDtoI.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PROJEKT) { buff.append(getTextRespectUISpr("lp.projekt", theClientDto.getMandant(), theClientDto.getLocUi())); } if (reportJournalKriterienDtoI.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_ART) { buff.append( getTextRespectUISpr("bes.bestellungsart", theClientDto.getMandant(), theClientDto.getLocUi())); } return buff.toString(); } private String buildSortierungBestellvorschlag(ReportJournalKriterienDto reportJournalKriterienDtoI, TheClientDto theClientDto) { StringBuffer buff = new StringBuffer( getTextRespectUISpr("lp.sortierungnach", theClientDto.getMandant(), theClientDto.getLocUi())); buff.append(" "); if (reportJournalKriterienDtoI.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_BELEGNUMMER) { buff.append(getTextRespectUISpr("bes.bestnr", theClientDto.getMandant(), theClientDto.getLocUi())); } if (reportJournalKriterienDtoI.bSortiereNachKostenstelle) { buff.append(getTextRespectUISpr("lp.kostenstelle", theClientDto.getMandant(), theClientDto.getLocUi())) .append(", "); } if (reportJournalKriterienDtoI.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) { buff.append(getTextRespectUISpr("lp.lieferant", theClientDto.getMandant(), theClientDto.getLocUi())) .append(", "); } if (reportJournalKriterienDtoI.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_IDENT) { buff.append(getTextRespectUISpr("lp.artikel", theClientDto.getMandant(), theClientDto.getLocUi())) .append(", "); } if (reportJournalKriterienDtoI.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PROJEKT) { buff.append(getTextRespectUISpr("lp.projekt", theClientDto.getMandant(), theClientDto.getLocUi())); } if (reportJournalKriterienDtoI.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PROJEKT) { buff.append(getTextRespectUISpr("lp.projekt", theClientDto.getMandant(), theClientDto.getLocUi())); } if (reportJournalKriterienDtoI.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_ART) { buff.append( getTextRespectUISpr("bes.bestellungsart", theClientDto.getMandant(), theClientDto.getLocUi())); } return buff.toString(); } /** * String zum Andrucken der Filterkriterien. * * @param reportJournalKriterienDtoI * die Kriterien * @param artikelklasseIId * Integer * @param artikelgruppeIId * Integer * @param artikelCNrVon * String * @param artikelCNrBis * String * @param projektCBezeichnung * String * @param theClientDto * der aktuelle Benutzer * @return String die Filterkriterien * @throws EJBExceptionLP * Ausnahme */ private String buildFilterBestellungOffene(ReportJournalKriterienDto reportJournalKriterienDtoI, Integer artikelklasseIId, Integer artikelgruppeIId, String artikelCNrVon, String artikelCNrBis, String projektCBezeichnung, TheClientDto theClientDto) throws EJBExceptionLP { StringBuffer buff = new StringBuffer(""); try { // Kostenstelle if (reportJournalKriterienDtoI.kostenstelleIId != null) { buff.append(" ").append( getTextRespectUISpr("lp.kostenstelle", theClientDto.getMandant(), theClientDto.getLocUi())); buff.append(" ").append(getSystemFac() .kostenstelleFindByPrimaryKey(reportJournalKriterienDtoI.kostenstelleIId).getCNr()); } // Belegdatum if (reportJournalKriterienDtoI.dVon != null || reportJournalKriterienDtoI.dBis != null) { buff.append( getTextRespectUISpr("bes.belegdatum", theClientDto.getMandant(), theClientDto.getLocUi())); } // Lieferant if (reportJournalKriterienDtoI.lieferantIId != null) { buff.append(" ").append( getTextRespectUISpr("lp.lieferant", theClientDto.getMandant(), theClientDto.getLocUi())); buff.append(" ") .append(getLieferantFac() .lieferantFindByPrimaryKey(reportJournalKriterienDtoI.lieferantIId, theClientDto) .getPartnerDto().getCName1nachnamefirmazeile1()); } if (projektCBezeichnung != null) { buff.append(" ").append(getTextRespectUISpr("lp.projektbezeichnung", theClientDto.getMandant(), theClientDto.getLocUi())); buff.append(" ").append(projektCBezeichnung); } if (artikelklasseIId != null) { buff.append(" ").append(getTextRespectUISpr("lp.artikelklasse", theClientDto.getMandant(), theClientDto.getLocUi())); ArtklaDto artikelklasseDto = getArtikelFac().artklaFindByPrimaryKey(artikelklasseIId, theClientDto); if (artikelklasseDto.getArtklasprDto() != null) { buff.append(" ").append(artikelklasseDto.getArtklasprDto().getCBez()); } } if (artikelgruppeIId != null) { buff.append(" ").append(getTextRespectUISpr("lp.artikelgruppe", theClientDto.getMandant(), theClientDto.getLocUi())); ArtgruDto artikelgruppeDto = getArtikelFac().artgruFindByPrimaryKey(artikelgruppeIId, theClientDto); if (artikelgruppeDto.getArtgrusprDto() != null) { buff.append(" ").append(artikelgruppeDto.getArtgrusprDto().getCBez()); } } } catch (RemoteException re) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_BEIM_DRUCKEN, re); } return buff.toString().trim(); } /** * String zum Andrucken der Filterkriterien. * * @param reportJournalKriterienDtoI * die Kriterien * @param theClientDto * der aktuelle Benutzer * @return String die Filterkriterien * @throws EJBExceptionLP * Ausnahme */ private String buildFilterBestellungOffene(ReportJournalKriterienDto reportJournalKriterienDtoI, TheClientDto theClientDto) throws EJBExceptionLP { StringBuffer buff = new StringBuffer(""); // Belegdatum if (reportJournalKriterienDtoI.dVon != null || reportJournalKriterienDtoI.dBis != null) { buff.append(getTextRespectUISpr("bes.belegdatum", theClientDto.getMandant(), theClientDto.getLocUi())); } // Lieferant if (reportJournalKriterienDtoI.kundeIId != null) { buff.append(" ").append( getTextRespectUISpr("lp.lieferant", theClientDto.getMandant(), theClientDto.getLocUi())); buff.append(" ") .append(getLieferantFac() .lieferantFindByPrimaryKey(reportJournalKriterienDtoI.lieferantIId, theClientDto) .getPartnerDto().getCName1nachnamefirmazeile1()); } return buff.toString().trim(); } /** * Alle offenen Bestellungen fuer einen bestimmten Mandanten drucken. * * @param krit * die Filter- und Sortierkriterien * @param dStichtag * Date * @param bSortierungNachLiefertermin * Boolean * @param artikelklasseIId * Integer * @param artikelgruppeIId * Integer * @param artikelCNrVon * String * @param artikelCNrBis * String * @param projektCBezeichnung * String * @param auftragIId * Integer * @param theClientDto * der aktuelle Benutzer * @throws EJBExceptionLP * Ausnahme * @return JasperPrint der Druck */ @TransactionAttribute(TransactionAttributeType.NEVER) public JasperPrintLP printBestellungOffene(ReportJournalKriterienDto krit, Date dStichtag, Boolean bSortierungNachLiefertermin, Integer artikelklasseIId, Integer artikelgruppeIId, String artikelCNrVon, String artikelCNrBis, String projektCBezeichnung, Integer auftragIId, Integer iArt, boolean bNurAngelegte, boolean bNurOffeneMengenAnfuehren, Integer[] projekte, TheClientDto theClientDto) throws EJBExceptionLP { useCase = UC_OFFENE; int iAnzahlZeilen = 0; SessionFactory factory = FLRSessionFactory.getFactory(); Session session = null; // vom Stichtag die Uhrzeit abschneiden dStichtag = Helper.cutDate(dStichtag); // die dem Report uebergeben HashMap<String, Object> parameter = new HashMap<String, Object>(); parameter.put("P_STICHTAG", Helper.formatDatum(dStichtag, theClientDto.getLocUi())); dStichtag = Helper.addiereTageZuDatum(dStichtag, 1); session = factory.openSession(); boolean darfEinkaufspreisSehen = getTheJudgeFac().hatRecht(RechteFac.RECHT_LP_DARF_PREISE_SEHEN_EINKAUF, theClientDto); boolean bProjektklammer = getMandantFac().darfAnwenderAufZusatzfunktionZugreifen( MandantFac.ZUSATZFUNKTION_PROJEKTKLAMMER, theClientDto.getMandant()); // Hiberante Criteria fuer alle Tabellen ausgehend von meiner // Haupttabelle anlegen, // nach denen ich filtern und sortieren kann Criteria crit = session.createCriteria(FLRBestellung.class); // Einschraenkung auf den aktuellen Mandanten crit.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_MANDANT_C_NR, theClientDto.getMandant())); // Einschraenkung nach Status Offen, Erledigt Collection<String> cStati = new LinkedList<String>(); cStati.add(BestellungFac.BESTELLSTATUS_ANGELEGT); if (bNurAngelegte == false) { cStati.add(BestellungFac.BESTELLSTATUS_OFFEN); cStati.add(BestellungFac.BESTELLSTATUS_BESTAETIGT); cStati.add(BestellungFac.BESTELLSTATUS_ERLEDIGT); } crit.add(Restrictions.in(BestellungFac.FLR_BESTELLUNG_BESTELLUNGSTATUS_C_NR, cStati)); // Das Belegdatum muss vor dem Stichtag liegen crit.add(Restrictions.le(BestellungFac.FLR_BESTELLUNG_T_BELEGDATUM, dStichtag)); /** * @todo MB->MB hier sollte auch das erledigt-datum ziehen, das gibts * aber in der BS nicht :-( */ crit.add(Restrictions.or(Restrictions.ge(BestellungFac.FLR_BESTELLUNG_T_MANUELLGELIEFERT, dStichtag), Restrictions.isNull(BestellungFac.FLR_BESTELLUNG_T_MANUELLGELIEFERT))); // Das Belegdatum muss vor dem Stichtag liegen crit.add(Restrictions.le(BestellungFac.FLR_BESTELLUNG_T_BELEGDATUM, dStichtag)); // Filter nach Projektbezeichnung if (projektCBezeichnung != null) { crit.add(Restrictions.ilike(BestellungFac.FLR_BESTELLUNG_C_BEZPROJEKTBEZEICHNUNG, "%" + projektCBezeichnung + "%")); } // Projektklammer if (projekte != null && projekte.length > 0) { crit.add(Restrictions.in(BestellungFac.FLR_BESTELLUNG_PROJEKT_I_ID, projekte)); String text = ""; for (int i = 0; i < projekte.length; i++) { try { ProjektDto pDto = getProjektFac().projektFindByPrimaryKey(projekte[i]); text += pDto.getCNr() + ", "; } catch (RemoteException e) { throwEJBExceptionLPRespectOld(e); } } parameter.put("P_PROJEKTE", text); } // Filter nach Auftrag if (auftragIId != null) { crit.add(Restrictions.like(BestellungFac.FLR_BESTELLUNG_AUFTRAG_I_ID, auftragIId)); } // Einschraenkung nach einer bestimmten Kostenstelle if (krit.kostenstelleIId != null) { crit.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_KOSTENSTELLE_I_ID, krit.kostenstelleIId)); } // Einschraenkung nach einem bestimmten Lieferanten if (krit.lieferantIId != null) { crit.add( Restrictions.eq(BestellungFac.FLR_BESTELLUNG_LIEFERANT_I_ID_BESTELLADRESSE, krit.lieferantIId)); } // Filter nach Bestellungsart Collection<String> cArt = null; if (iArt != null) { if (iArt == 1) { // Ohne Rahmenbestellungen cArt = new LinkedList<String>(); cArt.add(BestellungFac.BESTELLUNGART_FREIE_BESTELLUNG_C_NR); cArt.add(BestellungFac.BESTELLUNGART_ABRUFBESTELLUNG_C_NR); cArt.add(BestellungFac.BESTELLUNGART_LEIHBESTELLUNG_C_NR); crit.add(Restrictions.in(BestellungFac.FLR_BESTELLUNG_BESTELLUNGART_C_NR, cArt)); } else if (iArt == 2) { // Nur Rahmenbestellungen cArt = new LinkedList<String>(); cArt.add(BestellungFac.BESTELLUNGART_RAHMENBESTELLUNG_C_NR); crit.add(Restrictions.in(BestellungFac.FLR_BESTELLUNG_BESTELLUNGART_C_NR, cArt)); } } // Sortierung nach Kostenstelle ist immer die erste Sortierung if (krit.bSortiereNachKostenstelle) { crit.createCriteria(BestellungFac.FLR_BESTELLUNG_FLRKOSTENSTELLE).addOrder(Order.asc("c_nr")); } // Sortierung nach Kunde, eventuell innerhalb der Kostenstelle if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) { crit.createCriteria(BestellungFac.FLR_BESTELLUNG_FLRLIEFERANT).createCriteria(LieferantFac.FLR_PARTNER) .addOrder(Order.asc(PartnerFac.FLR_PARTNER_NAME1NACHNAMEFIRMAZEILE1)); } // Sortierung nach Projekt, eventuell innerhalb der Kostenstelle else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PROJEKT) { if (bProjektklammer == true) { crit.createAlias(BestellungFac.FLR_BESTELLUNG_FLRPROJEKT, "p"); crit.addOrder(Order.asc("p.c_nr")); } else { crit.addOrder(Order.asc(BestellungFac.FLR_BESTELLUNG_C_BEZPROJEKTBEZEICHNUNG)); } } // Sortierung nach Bestellungart, eventuell innerhalb der // Kostenstelle // else if (krit.iSortierung == // ReportJournalKriterienDto.KRIT_SORT_NACH_ART) { // crit.addOrder(Order // .asc(BestellungFac.FLR_BESTELLUNG_BESTELLUNGART_C_NR)); // } // Sortierung nach Liefertermin (optional) if (bSortierungNachLiefertermin != null && bSortierungNachLiefertermin.booleanValue()) { crit.addOrder(Order.asc(BestellungFac.FLR_BESTELLUNG_T_LIEFERTERMIN)); } // es wird in jedem Fall nach der Belegnummer sortiert crit.addOrder(Order.asc("c_nr")); List<?> list = crit.list(); Iterator<?> it = list.iterator(); ArrayList<FLRBestellung> bestellung = new ArrayList<FLRBestellung>(); while (it.hasNext()) { FLRBestellung flrbestellung = (FLRBestellung) it.next(); session = factory.openSession(); Criteria crit1 = session.createCriteria(FLRBestellposition.class); Criteria crit1Bestellung = crit1.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRBESTELLUNG); // nur Positionen der aktuellen Bestellung. crit1Bestellung.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_I_ID, flrbestellung.getI_id())); // keine erledigten Positionen. crit1.add(Restrictions.ne(BestellpositionFac.FLR_BESTELLPOSITION_BESTELLPOSITIONSTATUS_C_NR, BestellpositionFac.BESTELLPOSITIONSTATUS_ERLEDIGT)); // keine geliferten Positionen. crit1.add(Restrictions.ne(BestellpositionFac.FLR_BESTELLPOSITION_BESTELLPOSITIONSTATUS_C_NR, BestellpositionFac.BESTELLPOSITIONSTATUS_GELIEFERT)); // Der Liefertermin muss vor dem Stichtag liegen crit1.add(Restrictions.or(Restrictions.and( // Wenn der AB-Termin // eingegeben ist, zieht // der Restrictions.isNotNull(BestellpositionFac.FLR_BESTELLPOSITION_T_AUFTRAGSBESTAETIGUNGSTERMIN), Restrictions .le(BestellpositionFac.FLR_BESTELLPOSITION_T_AUFTRAGSBESTAETIGUNGSTERMIN, dStichtag)), Restrictions.and( // sonst der // uebersteuerte // Liefertermin Restrictions .isNull(BestellpositionFac.FLR_BESTELLPOSITION_T_AUFTRAGSBESTAETIGUNGSTERMIN), Restrictions.le(BestellpositionFac.FLR_BESTELLPOSITION_T_UEBERSTEUERTERLIEFERTERMIN, dStichtag)))); if (artikelklasseIId != null || artikelgruppeIId != null || artikelCNrVon != null || artikelCNrBis != null) { // Wenn nach Artikelklassen/Gruppen gefiltert wird, dann // kommen nur Ident-Positionen crit1.add(Restrictions.eq(BestellpositionFac.FLR_BESTELLPOSITION_BESTELLPOSITIONART_C_NR, BestellpositionFac.BESTELLPOSITIONART_IDENT)); Criteria critArtikel = crit1.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRARTIKEL); if (artikelklasseIId != null) { critArtikel.createCriteria(ArtikelFac.FLR_ARTIKEL_FLRARTIKELKLASSE) .add(Restrictions.eq("i_id", artikelklasseIId)); } if (artikelgruppeIId != null) { critArtikel.createCriteria(ArtikelFac.FLR_ARTIKEL_FLRARTIKELGRUPPE) .add(Restrictions.eq("i_id", artikelgruppeIId)); } if (artikelCNrVon != null) { critArtikel.add(Restrictions.ge(ArtikelFac.FLR_ARTIKEL_C_NR, artikelCNrVon)); } if (artikelCNrBis != null) { critArtikel.add(Restrictions.le(ArtikelFac.FLR_ARTIKEL_C_NR, artikelCNrBis)); } } List<?> resultList = crit1.list(); // Wenn die Bestellung anzuzeigende Positionen enthaelt, dann in // die Liste aufnehmen. if (resultList.size() > 0) { bestellung.add(flrbestellung); iAnzahlZeilen++; } for (Iterator<?> iter = resultList.iterator(); iter.hasNext();) { FLRBestellposition item = (FLRBestellposition) iter.next(); if (item.getN_menge() != null) { bestellung.add(null); iAnzahlZeilen++; } } } data = new Object[iAnzahlZeilen][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ANZAHL_SPALTEN]; int i = 0; while (i < iAnzahlZeilen) { FLRBestellung flrbestellung = null; if (bestellung.get(i) != null) { flrbestellung = (FLRBestellung) bestellung.get(i); data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGCNR] = flrbestellung.getC_nr(); data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGARTCNR] = flrbestellung .getBestellungart_c_nr(); if (bProjektklammer && flrbestellung.getProjekt_i_id() != null) { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_PROJEKT] = flrbestellung.getFlrprojekt() .getC_nr(); } else { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_PROJEKT] = flrbestellung .getC_bezprojektbezeichnung(); } data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGLIEFERANT] = flrbestellung .getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1(); // PJ 14752 String sortierstring = ""; if (krit.bSortiereNachKostenstelle == true) { sortierstring = Helper.fitString2Length(flrbestellung.getFlrkostenstelle().getC_nr(), 80, ' '); } if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_IDENT) { sortierstring += Helper.fitString2Length( flrbestellung.getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1(), 80, ' ') + Helper.fitString2Length("", 80, ' '); } if (bSortierungNachLiefertermin == true) { sortierstring += Helper.fitString2Length(flrbestellung.getT_liefertermin() + "", 15, ' '); } data[i][REPORT_BESTELLUNG_OFFENE_SORTIERKRITERIUM] = sortierstring; data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGDATUM] = Helper .formatDatum(flrbestellung.getT_belegdatum(), theClientDto.getLocUi()); if (flrbestellung.getFlrkostenstelle() != null) { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_KOSTENSTELLECNR] = flrbestellung .getFlrkostenstelle().getC_nr(); } i++; } session = factory.openSession(); Criteria crit1 = session.createCriteria(FLRBestellpositionReport.class); // Keine erledigten Positionen. crit1.add(Restrictions.ne(BestellpositionFac.FLR_BESTELLPOSITION_BESTELLPOSITIONSTATUS_C_NR, BestellpositionFac.BESTELLPOSITIONSTATUS_ERLEDIGT)); crit1.add(Restrictions.ne(BestellpositionFac.FLR_BESTELLPOSITION_BESTELLPOSITIONSTATUS_C_NR, BestellpositionFac.BESTELLPOSITIONSTATUS_GELIEFERT)); // Der Liefertermin muss vor dem Stichtag liegen crit1.add(Restrictions.or(Restrictions.and( // Wenn der AB-Termin // eingegeben ist, zieht // der Restrictions.isNotNull(BestellpositionFac.FLR_BESTELLPOSITION_T_AUFTRAGSBESTAETIGUNGSTERMIN), Restrictions .le(BestellpositionFac.FLR_BESTELLPOSITION_T_AUFTRAGSBESTAETIGUNGSTERMIN, dStichtag)), Restrictions.and( // sonst der // uebersteuerte // Liefertermin Restrictions .isNull(BestellpositionFac.FLR_BESTELLPOSITION_T_AUFTRAGSBESTAETIGUNGSTERMIN), Restrictions.le(BestellpositionFac.FLR_BESTELLPOSITION_T_UEBERSTEUERTERLIEFERTERMIN, dStichtag)))); // Nur Positionen der aktuellen Bestellung. Criteria crit1Bestellung = crit1.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRBESTELLUNG); crit1Bestellung.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_I_ID, flrbestellung.getI_id())); if (artikelklasseIId != null || artikelgruppeIId != null || artikelCNrVon != null || artikelCNrBis != null) { // Wenn nach Artikelklassen/Gruppen gefiltert wird, dann // kommen nur Ident-Positionen crit1.add(Restrictions.eq(BestellpositionFac.FLR_BESTELLPOSITION_BESTELLPOSITIONART_C_NR, BestellpositionFac.BESTELLPOSITIONART_IDENT)); Criteria critArtikel = crit1.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRARTIKEL); if (artikelklasseIId != null) { critArtikel.createCriteria(ArtikelFac.FLR_ARTIKEL_FLRARTIKELKLASSE) .add(Restrictions.eq("i_id", artikelklasseIId)); } if (artikelgruppeIId != null) { critArtikel.createCriteria(ArtikelFac.FLR_ARTIKEL_FLRARTIKELGRUPPE) .add(Restrictions.eq("i_id", artikelgruppeIId)); } if (artikelCNrVon != null) { critArtikel.add(Restrictions.ge(ArtikelFac.FLR_ARTIKEL_C_NR, artikelCNrVon)); } if (artikelCNrBis != null) { critArtikel.add(Restrictions.le(ArtikelFac.FLR_ARTIKEL_C_NR, artikelCNrBis)); } } List<?> resultList = crit1.list(); for (Iterator<?> iter = resultList.iterator(); iter.hasNext();) { FLRBestellpositionReport item = (FLRBestellpositionReport) iter.next(); if (item.getN_menge() != null) { String artikelCNr = null; /** * @todo das ist nicht sehr sauber ... */ if (item.getFlrartikel().getC_nr().startsWith("~")) { artikelCNr = BestellungReportFac.REPORT_VORKALKULATION_ZEICHEN_FUER_HANDEINGABE; } else { artikelCNr = item.getFlrartikel().getC_nr(); } Criteria critWep = session.createCriteria(FLRWareneingangspositionen.class); critWep.createCriteria("flrbestellposition").add(Restrictions.eq("i_id", item.getI_id())); List<?> wepResultList = critWep.list(); Iterator<?> wepResultListIterator = wepResultList.iterator(); data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGCNR] = flrbestellung.getC_nr(); data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGARTCNR] = flrbestellung .getBestellungart_c_nr(); data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_PROJEKT] = flrbestellung .getC_bezprojektbezeichnung(); data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGLIEFERANT] = flrbestellung .getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1(); data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELCNR] = artikelCNr; // SP903 if (item.getPosition_i_id_artikelset() != null) { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_SETARTIKEL_TYP] = ArtikelFac.SETARTIKEL_TYP_POSITION; } else { Session sessionSet = FLRSessionFactory.getFactory().openSession(); sessionSet = factory.openSession(); Criteria critSet = sessionSet.createCriteria(FLRBestellpositionReport.class); critSet.add(Restrictions.eq("position_i_id_artikelset", item.getI_id())); int iZeilen = critSet.list().size(); if (iZeilen > 0) { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_SETARTIKEL_TYP] = ArtikelFac.SETARTIKEL_TYP_KOPF; } sessionSet.close(); } // PJ 14752 String sortierstring = ""; if (krit.bSortiereNachKostenstelle == true) { sortierstring = Helper.fitString2Length(flrbestellung.getFlrkostenstelle().getC_nr(), 80, ' '); } if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_IDENT) { sortierstring += Helper .fitString2Length(flrbestellung.getFlrlieferant().getFlrpartner() .getC_name1nachnamefirmazeile1(), 80, ' ') + Helper.fitString2Length(artikelCNr, 80, ' '); } if (bSortierungNachLiefertermin == true) { sortierstring += Helper.fitString2Length(flrbestellung.getT_liefertermin() + "", 15, ' '); } data[i][REPORT_BESTELLUNG_OFFENE_SORTIERKRITERIUM] = sortierstring; data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELMENGE] = item.getN_menge(); BigDecimal bdOffeneLiefermenge = new BigDecimal(0); if (BestellungFac.BESTELLUNGART_RAHMENBESTELLUNG_C_NR .equals(flrbestellung.getBestellungart_c_nr())) { try { BestellpositionDto[] abrufPos = getBestellpositionFac() .bestellpositionFindByBestellpositionIIdRahmenposition(item.getI_id(), theClientDto); for (int y = 0; y < abrufPos.length; y++) { bdOffeneLiefermenge = bdOffeneLiefermenge .add(getBestellpositionFac().berechneOffeneMenge(abrufPos[y])); } } catch (RemoteException e) { } data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_OFFENELIEFERUNGEN] = bdOffeneLiefermenge; } else { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_OFFENELIEFERUNGEN] = null; } StringBuffer sbArtikelInfo = new StringBuffer(); if (item.getC_bezeichnung() != null) { sbArtikelInfo.append(item.getC_bezeichnung()); } else { ArtikelDto artikelDto = getArtikelFac() .artikelFindByPrimaryKey(item.getFlrartikel().getI_id(), theClientDto); if (artikelDto.getArtikelsprDto() != null) { if (artikelDto.getArtikelsprDto().getCBez() != null) { sbArtikelInfo.append(artikelDto.getArtikelsprDto().getCBez()); } } } data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELBEZ] = sbArtikelInfo.toString(); // der Preis wird in Mandantenwaehrung angezeigt, es // gilt der hinterlegte Wechselkurs BigDecimal bdPreisinmandantenwaehrung = item.getN_nettogesamtpreis(); BigDecimal wechselkursmandantwaehrungzuauftragswaehrung = null; if (!flrbestellung.getWaehrung_c_nr_bestellwaehrung() .equals(theClientDto.getSMandantenwaehrung())) { wechselkursmandantwaehrungzuauftragswaehrung = new BigDecimal( flrbestellung.getF_wechselkursmandantwaehrungbestellungswaehrung().doubleValue()); bdPreisinmandantenwaehrung = getBetragMalWechselkurs(bdPreisinmandantenwaehrung, Helper.getKehrwert(wechselkursmandantwaehrungzuauftragswaehrung)); } if (darfEinkaufspreisSehen) { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELPREIS] = bdPreisinmandantenwaehrung; } else { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELPREIS] = null; } if (item.getEinheit_c_nr() != null) { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELEINHEIT] = item .getEinheit_c_nr().trim(); } if (item.getT_auftragsbestaetigungstermin() != null) { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ABTERMIN] = Helper .formatDatum(item.getT_auftragsbestaetigungstermin(), theClientDto.getLocUi()); } data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ABNUMMER] = item.getC_abnummer(); data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ABKOMMENTAR] = item.getC_abkommentar(); if (item.getT_uebersteuerterliefertermin() != null) { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGLIEFERTERMIN] = Helper .formatDatum(item.getT_uebersteuerterliefertermin(), theClientDto.getLocUi()); } else { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGLIEFERTERMIN] = Helper .formatDatum(item.getFlrbestellung().getT_liefertermin(), theClientDto.getLocUi()); } BigDecimal noffeneMenge = item.getN_menge(); BigDecimal ngeliferteMenge = new BigDecimal(0); if (flrbestellung.getBestellungart_c_nr() .equals(BestellungFac.BESTELLUNGART_RAHMENBESTELLUNG_C_NR)) { noffeneMenge = item.getN_offenemenge(); while (wepResultListIterator.hasNext()) { FLRWareneingangspositionen waren = (FLRWareneingangspositionen) wepResultListIterator .next(); ngeliferteMenge = ngeliferteMenge.add(waren.getN_geliefertemenge()); } } else { while (wepResultListIterator.hasNext()) { FLRWareneingangspositionen waren = (FLRWareneingangspositionen) wepResultListIterator .next(); noffeneMenge = noffeneMenge.subtract(waren.getN_geliefertemenge()); } } data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELGELIFERTEMENGE] = ngeliferteMenge; data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELOFFENEMENGE] = noffeneMenge; if (darfEinkaufspreisSehen) { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELOFFENEWERT] = noffeneMenge .multiply(bdPreisinmandantenwaehrung); } else { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELOFFENEWERT] = null; } i++; } } } closeSession(session); // PJ 15254 if (bNurOffeneMengenAnfuehren) { ArrayList alTemp = new ArrayList(); for (int k = 0; k < data.length; k++) { BigDecimal bdOffeneMenge = (BigDecimal) data[k][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELOFFENEMENGE]; if (bdOffeneMenge != null && bdOffeneMenge.doubleValue() > 0) { alTemp.add(data[k]); } } Object[][] returnArray = new Object[alTemp .size()][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ANZAHL_SPALTEN]; data = (Object[][]) alTemp.toArray(returnArray); } // PJ 14752 Manuell nachsortieren (in Besprechung mit AD+WH besprochen) if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_IDENT) { for (int k = data.length - 1; k > 0; --k) { for (int j = 0; j < k; ++j) { Object[] o = data[j]; Object[] o1 = data[j + 1]; String s = (String) o[REPORT_BESTELLUNG_OFFENE_SORTIERKRITERIUM]; String s1 = (String) o1[REPORT_BESTELLUNG_OFFENE_SORTIERKRITERIUM]; if (s.toUpperCase().compareTo(s1.toUpperCase()) > 0) { data[j] = o1; data[j + 1] = o; } } } } parameter.put(LPReport.P_SORTIERUNG, buildSortierungBestellungOffene(krit, theClientDto)); parameter.put(LPReport.P_FILTER, buildFilterBestellungOffene(krit, artikelklasseIId, artikelgruppeIId, artikelCNrVon, artikelCNrBis, projektCBezeichnung, theClientDto)); parameter.put(LPReport.P_SORTIERENACHLIEFERANT, new Boolean(krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER)); parameter.put("P_SORTIERENACHBESTELLUNGART", new Boolean(krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_ART)); parameter.put("P_TITLE", getTextRespectUISpr("bes.print.offene", theClientDto.getMandant(), theClientDto.getLocUi())); parameter.put(P_MANDANTWAEHRUNG, theClientDto.getSMandantenwaehrung()); initJRDS(parameter, BestellungReportFac.REPORT_MODUL, BestellungReportFac.REPORT_BESTELLUNG_JOURNAL_OFFENE, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); return getReportPrint(); } /** * Alle offenen Bestellungen fuer einen bestimmten Mandanten drucken. * * @param krit * die Filter- und Sortierkriterien * @param bSortierungNachLiefertermin * Boolean * @param bAnfragevorschlag * @param theClientDto * der aktuelle Benutzer * @throws EJBExceptionLP * Ausnahme * @return JasperPrint der Druck */ @TransactionAttribute(TransactionAttributeType.NEVER) public JasperPrintLP printBestellVorschlag(ReportJournalKriterienDto krit, Boolean bSortierungNachLiefertermin, boolean bAnfragevorschlag, TheClientDto theClientDto) throws EJBExceptionLP { JasperPrintLP oPrintO = null; useCase = UC_BESTELLVORSCHLAG; int iAnzahlZeilen = 0; Locale locDruck = theClientDto.getLocUi(); ArrayList<FLRBestellvorschlag> bestellung = new ArrayList(); SessionFactory factory = FLRSessionFactory.getFactory(); Session session = null; try { LagerDto[] lagerDto = getLagerFac().lagerFindByMandantCNr(theClientDto.getMandant()); session = factory.openSession(); // Hiberante Criteria fuer alle Tabellen ausgehend von meiner // Haupttabelle anlegen, // nach denen ich filtern und sortieren kann Criteria crit = session.createCriteria(FLRBestellvorschlag.class); // Einschraenkung auf den aktuellen Mandanten crit.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant())); // Einschraenkung nach einem bestimmten Kunden if (krit.lieferantIId != null) { crit.add(Restrictions.eq(BestellvorschlagFac.FLR_BESTELLVORSCHLAG_LIEFERANT_I_ID, krit.lieferantIId)); } // Sortierung nach Kunde, eventuell innerhalb der Kostenstelle if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) { crit.createCriteria(BestellungFac.FLR_BESTELLUNG_FLRLIEFERANT) .createCriteria(LieferantFac.FLR_PARTNER) .addOrder(Order.asc(PartnerFac.FLR_PARTNER_NAME1NACHNAMEFIRMAZEILE1)); } if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_IDENT) { crit.createCriteria(BestellvorschlagFac.FLR_BESTELLVORSCHLAG_FLRARTIKEL) .addOrder(Order.asc("c_nr")); } // Sortierung nach Liefertermin (optional) if (bSortierungNachLiefertermin != null && bSortierungNachLiefertermin.booleanValue()) { crit.addOrder(Order.asc(BestellungFac.FLR_BESTELLUNG_T_LIEFERTERMIN)); } crit.addOrder(Order.asc(BestellvorschlagFac.FLR_BESTELLVORSCHLAG_BELEGART_C_NR)); List<?> list = crit.list(); Iterator<?> it = list.iterator(); while (it.hasNext()) { FLRBestellvorschlag flrbestellvorschlag = (FLRBestellvorschlag) it.next(); bestellung.add(flrbestellvorschlag); iAnzahlZeilen++; } // Danach wenn nach Lieferant sortiert auch noch die null // Lieferanten anfuegen if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) { Criteria crit2 = session.createCriteria(FLRBestellvorschlag.class); crit2.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant())); crit2.add(Restrictions.isNull(BestellungFac.FLR_BESTELLUNG_FLRLIEFERANT)); if (bSortierungNachLiefertermin != null && bSortierungNachLiefertermin.booleanValue()) { crit2.addOrder(Order.asc(BestellungFac.FLR_BESTELLUNG_T_LIEFERTERMIN)); } crit2.addOrder(Order.asc(BestellvorschlagFac.FLR_BESTELLVORSCHLAG_BELEGART_C_NR)); if (krit.kundeIId != null) { crit2.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_LIEFERANT_I_ID_BESTELLADRESSE, krit.lieferantIId)); } list = crit2.list(); it = list.iterator(); while (it.hasNext()) { FLRBestellvorschlag flrbestellvorschlag = (FLRBestellvorschlag) it.next(); bestellung.add(flrbestellvorschlag); iAnzahlZeilen++; } } data = new Object[iAnzahlZeilen][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ANZAHL_SPALTEN]; int i = 0; FLRBestellvorschlag flrbestellung = null; while (i < iAnzahlZeilen) { flrbestellung = (FLRBestellvorschlag) bestellung.get(i); data[i][BestellungReportFac.REPORT_BESTELLVORSCHLAG_BELEGART] = flrbestellung.getBelegart_c_nr(); String belegCNr = ""; if (flrbestellung.getBelegart_c_nr() != null) { // Es gibt auch // Eintraege // ohne // Belegart, zb // fuer den // mindestlagerstand if (flrbestellung.getBelegart_c_nr().equals(LocaleFac.BELEGART_AUFTRAG)) { AuftragDto aDto = getAuftragFac().auftragFindByPrimaryKey(flrbestellung.getI_belegartid()); belegCNr = aDto.getCNr(); } else if (flrbestellung.getBelegart_c_nr().equals(LocaleFac.BELEGART_LOS)) { LosDto aDto = getFertigungFac().losFindByPrimaryKey(flrbestellung.getI_belegartid()); belegCNr = aDto.getCNr(); } } data[i][BestellungReportFac.REPORT_BESTELLVORSCHLAG_BELEGCNR] = belegCNr; if (flrbestellung.getLieferant_i_id() != null) { data[i][BestellungReportFac.REPORT_BESTELLVORSCHLAG_BESTELLUNGLIEFERANT] = flrbestellung .getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1(); } if (flrbestellung.getProjekt_i_id() != null) { data[i][BestellungReportFac.REPORT_BESTELLVORSCHLAG_PROJEKT] = flrbestellung.getFlrprojekt() .getC_nr(); } /* * locDruck = * Helper.string2Locale(flrbestellung.getFlrlieferant( * ).getFlrpartner(). getLocale_c_nr_kommunikation()); */ data[i][BestellungReportFac.REPORT_BESTELLVORSCHLAG_BESTELLTERMIN] = Helper .formatDatum(flrbestellung.getT_liefertermin(), locDruck); data[i][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKELCNR] = flrbestellung.getFlrartikel() .getC_nr(); data[i][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKEL_LAGERBEWIRTSCHAFTET] = Helper .short2Boolean(flrbestellung.getFlrartikel().getB_lagerbewirtschaftet()); data[i][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKELMENGE] = flrbestellung .getN_zubestellendemenge(); ArtikelDto oArtikelDto = getArtikelFac().artikelFindByPrimaryKey(flrbestellung.getArtikel_i_id(), theClientDto); data[i][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKELBEZ] = oArtikelDto.getArtikelsprDto() .getCBez(); data[i][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKELKBEZ] = oArtikelDto.getArtikelsprDto() .getCKbez(); data[i][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKELZBEZ] = oArtikelDto.getArtikelsprDto() .getCZbez(); data[i][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKELZBEZ2] = oArtikelDto.getArtikelsprDto() .getCZbez2(); // Sperren data[i][BestellungReportFac.REPORT_BESTELLVORSCHLAG_SPERREN] = getArtikelFac() .getArtikelsperrenText(flrbestellung.getArtikel_i_id()); // offene Bestellmenge data[i][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKEL_MENGE_OFFEN] = getArtikelbestelltFac() .getAnzahlBestellt(flrbestellung.getArtikel_i_id()); // offene Rahmenbestellmenge Hashtable<?, ?> htRahmenbestellt = getArtikelbestelltFac() .getAnzahlRahmenbestellt(flrbestellung.getArtikel_i_id(), theClientDto); if (htRahmenbestellt.containsKey(ArtikelbestelltFac.KEY_RAHMENBESTELLT_ANZAHL)) { data[i][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKEL_RAHMENMENGE_OFFEN] = htRahmenbestellt .get(ArtikelbestelltFac.KEY_RAHMENBESTELLT_ANZAHL); } // alle offenen Rahmenbestellnr if (htRahmenbestellt.containsKey(ArtikelbestelltFac.KEY_RAHMENBESTELLT_BELEGCNR)) { Collection<?> aRahmenbestellnr = (Collection<?>) htRahmenbestellt .get(ArtikelbestelltFac.KEY_RAHMENBESTELLT_BELEGCNR); if (aRahmenbestellnr != null && aRahmenbestellnr.size() > 0) { String[] aRahmenbestellnrStringArray = (String[]) aRahmenbestellnr.toArray(new String[0]); data[i][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKEL_RAHMENBESTELLNR] = Helper .erzeugeStringAusStringArray(aRahmenbestellnrStringArray); } } // alle offenenen Bestellungen CNr ArrayList<String> alBestellungnr = new ArrayList<String>(); Collection<?> lFLRArtikelbestellt = getArtikelbestelltFac() .getArtikelbestellt(flrbestellung.getArtikel_i_id(), null, null); Iterator<?> iteratorFLRArtikelbestellt = lFLRArtikelbestellt.iterator(); while (iteratorFLRArtikelbestellt.hasNext()) { FLRArtikelbestellt fLRArtikelbestellt = (FLRArtikelbestellt) iteratorFLRArtikelbestellt.next(); BestellpositionDto bestellpositionDto = null; BestellungDto bestellungDto = null; if (fLRArtikelbestellt.getC_belegartnr().equals(LocaleFac.BELEGART_BESTELLUNG)) { bestellpositionDto = getBestellpositionFac() .bestellpositionFindByPrimaryKey(fLRArtikelbestellt.getI_belegartpositionid()); if (!bestellpositionDto.getBestellpositionstatusCNr() .equals(BestellpositionFac.BESTELLPOSITIONSTATUS_ERLEDIGT)) { bestellungDto = getBestellungFac() .bestellungFindByPrimaryKey(bestellpositionDto.getBestellungIId()); alBestellungnr.add(bestellungDto.getCNr()); } } } // offene Bestellungen CNr als String uebergeben if (alBestellungnr.size() > 0) { String[] aArtikelbestellNr = (String[]) alBestellungnr.toArray(new String[0]); data[i][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKEL_OFFENE_BESTELLNR] = Helper .erzeugeStringAusStringArray(aArtikelbestellNr); } // ---------------- // Artikellieferant, wenn vorhanden ArtikellieferantDto artikellieferantDto = getArtikelFac() .artikellieferantFindByArtikellIIdLieferantIIdOhneExc(flrbestellung.getArtikel_i_id(), flrbestellung.getLieferant_i_id(), theClientDto); if (artikellieferantDto != null) { data[i][BestellungReportFac.REPORT_BESTELLVORSCHLAG_LIEFERANT_ARTIKEL_IDENTNUMMER] = artikellieferantDto .getCArtikelnrlieferant(); data[i][BestellungReportFac.REPORT_BESTELLVORSCHLAG_LIEFERANT_ARTIKEL_BEZEICHNUNG] = artikellieferantDto .getCBezbeilieferant(); data[i][BestellungReportFac.REPORT_BESTELLVORSCHLAG_LIEFERANT_STANDARDMENGE] = artikellieferantDto .getFStandardmenge(); data[i][BestellungReportFac.REPORT_BESTELLVORSCHLAG_LIEFERANT_MATERIALZUSCHLAG] = artikellieferantDto .getNMaterialzuschlag(); } BigDecimal rahmenbedarf = this.getRahmenbedarfeFac() .getSummeAllerRahmenbedarfeEinesArtikels(flrbestellung.getArtikel_i_id()); data[i][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKEL_RAHMENDETAILBEDARF] = rahmenbedarf; BigDecimal nLagersoll = new BigDecimal(0); BigDecimal nLagermindest = new BigDecimal(0); BigDecimal nArtikelPreis = new BigDecimal(0); BigDecimal nAnzahlArtikelRes = new BigDecimal(0); BigDecimal nFehlMenge = new BigDecimal(0); if (oArtikelDto.getFLagermindest() != null) { nLagermindest = new BigDecimal(oArtikelDto.getFLagermindest()); } data[i][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKELLAGERMINDESTSTAND] = nLagermindest; if (oArtikelDto.getFLagersoll() != null) { nLagersoll = new BigDecimal(oArtikelDto.getFLagersoll()); } data[i][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKELLAGERSOLL] = nLagersoll; // PJ 14828 BigDecimal bdLagerstand = new BigDecimal(0); if (Helper.short2Boolean(flrbestellung.getFlrartikel().getB_lagerbewirtschaftet())) { for (int j = 0; j < lagerDto.length; j++) { if (Helper.short2boolean(lagerDto[j].getBBestellvorschlag())) { bdLagerstand = bdLagerstand.add(getLagerFac().getLagerstand(oArtikelDto.getIId(), lagerDto[j].getIId(), theClientDto)); } } } data[i][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKELLAGERSTAND] = bdLagerstand; data[i][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKELEINHEIT] = flrbestellung.getFlrartikel() .getEinheit_c_nr(); if (flrbestellung.getN_nettoeinzelpreis() != null) { nArtikelPreis = flrbestellung.getN_nettoeinzelpreis(); } data[i][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKELPREIS] = nArtikelPreis; nAnzahlArtikelRes = getReservierungFac().getAnzahlReservierungen(flrbestellung.getArtikel_i_id(), theClientDto); data[i][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKELRESERVIERUNG] = nAnzahlArtikelRes; nFehlMenge = getFehlmengeFac().getAnzahlFehlmengeEinesArtikels(flrbestellung.getArtikel_i_id(), theClientDto); data[i][BestellungReportFac.REPORT_BESTELLVORSCHLAG_ARTIKELFEHLMENGE] = nFehlMenge; // Verwendungsnachweis Session session2 = FLRSessionFactory.getFactory().openSession(); org.hibernate.Criteria critVW = session2.createCriteria(FLRStuecklisteposition.class) .createAlias( com.lp.server.stueckliste.service.StuecklisteFac.FLR_STUECKLISTEPOSITION_FLRARTIKEL, "a") .add(Restrictions.eq("a.i_id", flrbestellung.getArtikel_i_id())) .addOrder(Order.asc("a.c_nr")); List<?> results = critVW.list(); Iterator itVW = results.iterator(); Object[][] dataSub = new Object[results.size()][3]; String[] fieldnames = new String[] { "F_ARTIKEL", "F_BEZEICHNUNG", "F_MENGE" }; int iZeileSub = 0; while (itVW.hasNext()) { FLRStuecklisteposition stkpos = (FLRStuecklisteposition) itVW.next(); dataSub[iZeileSub][0] = stkpos.getFlrstueckliste().getFlrartikel().getC_nr(); ArtikelDto aDto = getArtikelFac().artikelFindByPrimaryKeySmall( stkpos.getFlrstueckliste().getFlrartikel().getI_id(), theClientDto); dataSub[iZeileSub][1] = aDto.formatBezeichnung(); dataSub[iZeileSub][2] = stkpos.getN_menge(); iZeileSub++; } data[i][BestellungReportFac.REPORT_BESTELLVORSCHLAG_SUBREPORT_VERWENDUNGSNACHWEIS] = new LPDatenSubreport( dataSub, fieldnames); session2.close(); i++; } // die Parameter dem Report uebergeben HashMap<String, Object> mapParameter = new HashMap<String, Object>(); mapParameter.put(LPReport.P_SORTIERUNG, buildSortierungBestellvorschlag(krit, theClientDto)); mapParameter.put(LPReport.P_FILTER, buildFilterBestellungOffene(krit, theClientDto)); mapParameter.put("P_SORTIERENACHBELEGART", new Boolean(krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_BELEGNUMMER)); mapParameter.put("P_SORTIERENACHIDENT", new Boolean(krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_IDENT)); mapParameter.put(LPReport.P_SORTIERENACHLIEFERANT, new Boolean(krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER)); mapParameter.put(P_MANDANTWAEHRUNG, theClientDto.getSMandantenwaehrung()); mapParameter.put("P_ANFRAGEVORSCHLAG", new Boolean(bAnfragevorschlag)); initJRDS(mapParameter, BestellungReportFac.REPORT_MODUL, BestellungReportFac.REPORT_BESTELLUNG_JOURNAL_BESTELLVORSCHLAG, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); oPrintO = getReportPrint(); } catch (RemoteException ex) { throwEJBExceptionLPRespectOld(ex); } finally { closeSession(session); } return oPrintO; } /** * Diese Methode liefert eine Liste von allen offenen Bestellungen eines * Mandanten, die nach den eingegebenen Kriterien des Benutzers * zusammengestellt wird. <br> * Achtung: Hibernate verwendet lazy initialization, d.h. der Zugriff auf * Collections muss innerhalb der Session erfolgen. * * @param reportJournalKriterienDtoI * die Kriterien des Benutzers * @param dStichtag * Date * @param bSortierungNachLiefertermin * Boolean * @param artikelklasseIId * Integer * @param artikelgruppeIId * Integer * @param theClientDto * der aktuelle Benutzer * @return ReportBestellungOffeneDto[] die Liste der Bestellungen * @throws EJBExceptionLP * Ausnahme */ private ReportBestellungOffeneDto[] getListeReportBestellungOffene( ReportJournalKriterienDto reportJournalKriterienDtoI, Date dStichtag, Boolean bSortierungNachLiefertermin, Integer artikelklasseIId, Integer artikelgruppeIId, TheClientDto theClientDto) throws EJBExceptionLP { ReportBestellungOffeneDto[] aResult = null; SessionFactory factory = FLRSessionFactory.getFactory(); Session session = null; // vom Stichtag die Uhrzeit abschneiden dStichtag = Helper.cutDate(dStichtag); try { session = factory.openSession(); // Hiberante Criteria fuer alle Tabellen ausgehend von meiner // Haupttabelle anlegen, // nach denen ich filtern und sortieren kann Criteria crit = session.createCriteria(FLRBestellung.class); // Einschraenkung auf den aktuellen Mandanten crit.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant())); // Einschraenkung nach Bestelllungart crit.add(Restrictions.ne(BestellungFac.FLR_BESTELLUNG_BESTELLUNGART_C_NR, BestellungFac.BESTELLUNGART_RAHMENBESTELLUNG_C_NR)); crit.add(Restrictions.ne(BestellungFac.FLR_BESTELLUNG_BESTELLUNGART_C_NR, BestellungFac.BESTELLUNGART_ABRUFBESTELLUNG_C_NR)); crit.add(Restrictions.ne(BestellungFac.FLR_BESTELLUNG_BESTELLUNGART_C_NR, BestellungFac.BESTELLUNGART_LEIHBESTELLUNG_C_NR)); // Einschraenkung nach Status Offen, Erledigt Collection<String> cStati = new LinkedList<String>(); cStati.add(BestellungFac.BESTELLSTATUS_OFFEN); cStati.add(BestellungFac.BESTELLSTATUS_BESTAETIGT); cStati.add(BestellungFac.BESTELLSTATUS_ERLEDIGT); crit.add(Restrictions.in(BestellungFac.FLR_BESTELLUNG_BESTELLUNGSTATUS_C_NR, cStati)); // Das Belegdatum muss vor dem Stichtag liegen crit.add(Restrictions.le(BestellungFac.FLR_BESTELLUNG_T_BELEGDATUM, dStichtag)); // Einschraenkung nach einer bestimmten Kostenstelle if (reportJournalKriterienDtoI.kostenstelleIId != null) { crit.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_KOSTENSTELLE_I_ID, reportJournalKriterienDtoI.kostenstelleIId)); } // Einschraenkung nach einem bestimmten Lieferanten if (reportJournalKriterienDtoI.lieferantIId != null) { crit.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_LIEFERANT_I_ID_BESTELLADRESSE, reportJournalKriterienDtoI.lieferantIId)); } // Sortierung nach Kostenstelle ist immer die erste Sortierung if (reportJournalKriterienDtoI.bSortiereNachKostenstelle) { crit.createCriteria(BestellungFac.FLR_BESTELLUNG_FLRKOSTENSTELLE).addOrder(Order.asc("c_nr")); } // Sortierung nach Kunde, eventuell innerhalb der Kostenstelle if (reportJournalKriterienDtoI.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) { crit.createCriteria(BestellungFac.FLR_BESTELLUNG_FLRLIEFERANT) .createCriteria(LieferantFac.FLR_PARTNER) .addOrder(Order.asc(PartnerFac.FLR_PARTNER_NAME1NACHNAMEFIRMAZEILE1)); } // Sortierung nach Projekt, eventuell innerhalb der Kostenstelle else if (reportJournalKriterienDtoI.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PROJEKT) { crit.addOrder(Order.asc(BestellungFac.FLR_BESTELLUNG_C_BEZPROJEKTBEZEICHNUNG)); } // Sortierung nach Liefertermin (optional) if (bSortierungNachLiefertermin != null && bSortierungNachLiefertermin.booleanValue()) { crit.addOrder(Order.asc(BestellungFac.FLR_BESTELLUNG_T_LIEFERTERMIN)); } // es wird in jedem Fall nach der Belegnummer sortiert crit.addOrder(Order.asc("c_nr")); List<?> list = crit.list(); aResult = new ReportBestellungOffeneDto[list.size()]; int iIndex = 0; Iterator<?> it = list.iterator(); ReportBestellungOffeneDto reportDto = null; while (it.hasNext()) { FLRBestellung flrbestellung = (FLRBestellung) it.next(); Session session1 = null; session1 = factory.openSession(); Criteria crit1 = session1.createCriteria(FLRBestellposition.class); // keine erledigten Positionen. crit1.add(Restrictions.ne(BestellpositionFac.FLR_BESTELLPOSITION_BESTELLPOSITIONSTATUS_C_NR, BestellpositionFac.BESTELLPOSITIONSTATUS_ERLEDIGT)); // und nur die, die sich auf den aktuellen Bestellung beziehen. Criteria crit1Bestellung = crit1 .createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRBESTELLUNG); crit1Bestellung.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_I_ID, flrbestellung.getI_id())); int anzahlPositionen = 0; List<?> resultList = crit1.list(); for (Iterator<?> iter = resultList.iterator(); iter.hasNext();) { FLRBestellposition item = (FLRBestellposition) iter.next(); if (item.getBestellpositionart_c_nr().equals(BestellpositionFac.BESTELLPOSITIONART_IDENT) || item.getBestellpositionart_c_nr() .equals(BestellpositionFac.BESTELLPOSITIONART_HANDEINGABE)) { anzahlPositionen++; } } reportDto = new ReportBestellungOffeneDto(); reportDto.setIIdBestellung(flrbestellung.getI_id()); reportDto.setCNrBestellung(flrbestellung.getC_nr()); reportDto.setLieferantCName1( flrbestellung.getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1()); reportDto.setIAnzahlPositionen(anzahlPositionen); aResult[iIndex] = reportDto; iIndex++; } } finally { closeSession(session); } return aResult; } /** * Eine Bestellung drucken. * * @param iIdBestellungI * PK der Bestellung * @param iAnzahlKopienI * Integer * @param bMitLogo * Boolean * @param theClientDto * der aktuelle Benutzer * @return JasperPrint der Druck * @throws EJBExceptionLP * Ausnahme */ public JasperPrintLP[] printBestellung(Integer iIdBestellungI, Integer iAnzahlKopienI, Boolean bMitLogo, TheClientDto theClientDto) throws EJBExceptionLP { Timestamp tStart = new Timestamp(System.currentTimeMillis()); JasperPrintLP[] prints = null; if (iIdBestellungI == null) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_PARAMETER_IS_NULL, new Exception("iIdBestellungI == null")); } BestellungDto bestellungDto = null; BestellpositionDto[] aPositionDtos = null; // Erstellung des Report Boolean bbSeitenumbruch = new Boolean(false); // dieser Wert wechselt // mit jedem // Seitenumbruch // zwischen true und // false boolean bTermineUnterschiedlich = false; useCase = UC_BESTELLUNG; try { bestellungDto = getBestellungFac().bestellungFindByPrimaryKey(iIdBestellungI); aPositionDtos = getBestellpositionFac().bestellpositionFindByBestellung(iIdBestellungI, theClientDto); // den Druckzeitpunkt vermerken // bestellungDto.setTGedruckt(getTimestamp()); // getBestellungFac().updateBestellung(bestellungDto, theClientDto); // rk: passiert jetzt in BestellungFacBean.aktiviereBestellung() LieferantDto lieferantDto = getLieferantFac() .lieferantFindByPrimaryKey(bestellungDto.getLieferantIIdBestelladresse(), theClientDto); AnsprechpartnerDto oAnsprechpartnerDto = null; Integer partnerIIdAnsprechpartner = null; if (bestellungDto.getAnsprechpartnerIId() != null) { oAnsprechpartnerDto = getAnsprechpartnerFac() .ansprechpartnerFindByPrimaryKey(bestellungDto.getAnsprechpartnerIId(), theClientDto); if (oAnsprechpartnerDto != null) { partnerIIdAnsprechpartner = oAnsprechpartnerDto.getPartnerIIdAnsprechpartner(); } } MandantDto mandantDto = getMandantFac().mandantFindByPrimaryKey(theClientDto.getMandant(), theClientDto); // es gilt das Locale des Lieferanten Locale locDruck = Helper.string2Locale(lieferantDto.getPartnerDto().getLocaleCNrKommunikation()); int iAnzahlZeilen = aPositionDtos.length; // Anzahl der Zeilen in // der Gruppe data = new Object[iAnzahlZeilen][BestellungReportFac.REPORT_BESTELLUNG_ANZAHL_SPALTEN]; // die Datenmatrix befuellen for (int i = 0; i < iAnzahlZeilen; i++) { data[i][BestellungReportFac.REPORT_BESTELLUNG_POSITIONOBKJEKT] = getSystemReportFac() .getPositionForReport(LocaleFac.BELEGART_BESTELLUNG, aPositionDtos[i].getIId(), theClientDto); data[i][BestellungReportFac.REPORT_BESTELLUNG_POSITION] = getBestellpositionFac() .getPositionNummer(aPositionDtos[i].getIId(), theClientDto); if (aPositionDtos[i].getTUebersteuerterLiefertermin() != null) { Timestamp tposLieferTermin = Helper .cutTimestamp(aPositionDtos[i].getTUebersteuerterLiefertermin()); if (!(bestellungDto.getDLiefertermin().equals(tposLieferTermin))) { bTermineUnterschiedlich = true; } } // Artikelpositionen if (aPositionDtos[i].getPositionsartCNr().equals(BestellpositionFac.BESTELLPOSITIONART_IDENT) || aPositionDtos[i].getPositionsartCNr() .equals(BestellpositionFac.BESTELLPOSITIONART_HANDEINGABE)) { // Typ, wenn Setartikel if (aPositionDtos[i].getPositioniIdArtikelset() != null) { data[i][BestellungReportFac.REPORT_BESTELLUNG_SETARTIKEL_TYP] = ArtikelFac.SETARTIKEL_TYP_POSITION; } else { Session session = null; SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); Criteria crit = session.createCriteria(FLRBestellposition.class); crit.add(Restrictions.eq("position_i_id_artikelset", aPositionDtos[i].getIId())); int iZeilen = crit.list().size(); if (iZeilen > 0) { data[i][BestellungReportFac.REPORT_BESTELLUNG_SETARTIKEL_TYP] = ArtikelFac.SETARTIKEL_TYP_KOPF; } session.close(); } if (!bestellungDto.getDLiefertermin() .equals(aPositionDtos[i].getTUebersteuerterLiefertermin())) { data[i][BestellungReportFac.REPORT_BESTELLUNG_POSITIONTERMIN] = Helper.formatDatum( Helper.extractDate(aPositionDtos[i].getTUebersteuerterLiefertermin()), locDruck); } ArtikelDto artikelDto = getArtikelFac() .artikelFindByPrimaryKey(aPositionDtos[i].getArtikelIId(), theClientDto); BelegPositionDruckIdentDto druckDto = printIdent(aPositionDtos[i], LocaleFac.BELEGART_BESTELLUNG, artikelDto, locDruck, lieferantDto.getPartnerIId(), theClientDto); data[i][BestellungReportFac.REPORT_BESTELLUNG_ARTIKELCZBEZ2] = druckDto .getSArtikelZusatzBezeichnung2(); // Artikel Bezeichnung data[i][BestellungReportFac.REPORT_BESTELLUNG_BEZEICHNUNG] = druckDto.getSBezeichnung(); // Artikel Kurzbezeichnung data[i][BestellungReportFac.REPORT_BESTELLUNG_KURZBEZEICHNUNG] = druckDto.getSKurzbezeichnung(); data[i][BestellungReportFac.REPORT_BESTELLUNG_ZUSATZBEZEICHNUNG] = druckDto .getSZusatzBezeichnung(); data[i][BestellungReportFac.REPORT_BESTELLUNG_IDENT] = druckDto.getSArtikelInfo(); data[i][BestellungReportFac.REPORT_BESTELLUNG_ARTIKELKOMMENTAR] = druckDto .getSArtikelkommentar(); data[i][BestellungReportFac.REPORT_BESTELLUNG_REFERENZNUMMER] = artikelDto.getCReferenznr(); InseratDto insDto = getInseratFac() .istInseratAufBestellpositionVorhanden(aPositionDtos[i].getIId()); data[i][BestellungReportFac.REPORT_BESTELLUNG_INSERAT_DTO] = insDto; if (insDto != null && insDto.getInseratrechnungDto() != null) { KundeDto kDto = getKundeFac() .kundeFindByPrimaryKey(insDto.getInseratrechnungDto().getKundeIId(), theClientDto); data[i][BestellungReportFac.REPORT_BESTELLUNG_INSERAT_KUNDE] = kDto.getPartnerDto() .formatTitelAnrede(); } // Wenn Bezug zu Lossollmaterial (PJ 16215) if (aPositionDtos[i].getLossollmaterialIId() != null) { LossollmaterialDto lossollmaterialDto = getFertigungFac() .lossollmaterialFindByPrimaryKey(aPositionDtos[i].getLossollmaterialIId()); LosDto losDto = getFertigungFac().losFindByPrimaryKey(lossollmaterialDto.getLosIId()); data[i][BestellungReportFac.REPORT_BESTELLUNG_SOLLMATERIAL_KOMMENTAR] = lossollmaterialDto .getCKommentar(); data[i][BestellungReportFac.REPORT_BESTELLUNG_SOLLMATERIAL_LOSNUMMER] = losDto.getCNr(); data[i][BestellungReportFac.REPORT_BESTELLUNG_SOLLMATERIAL_LOS_KOMMENTAR] = losDto .getCKommentar(); data[i][BestellungReportFac.REPORT_BESTELLUNG_SOLLMATERIAL_LOS_PROJEKT] = losDto .getCProjekt(); if (losDto.getStuecklisteIId() != null) { StuecklisteDto stklDto = getStuecklisteFac() .stuecklisteFindByPrimaryKey(losDto.getStuecklisteIId(), theClientDto); data[i][BestellungReportFac.REPORT_BESTELLUNG_SOLLMATERIAL_LOS_STKLNUMMER] = stklDto .getArtikelDto().getCNr(); if (stklDto.getArtikelDto().getArtikelsprDto() != null) { data[i][BestellungReportFac.REPORT_BESTELLUNG_SOLLMATERIAL_LOS_STKLBEZ] = stklDto .getArtikelDto().getArtikelsprDto().getCBez(); data[i][BestellungReportFac.REPORT_BESTELLUNG_SOLLMATERIAL_LOS_STKLKBEZ] = stklDto .getArtikelDto().getArtikelsprDto().getCKbez(); } } LossollarbeitsplanDto[] sollarbeitsplanDtos = getFertigungFac() .lossollarbeitsplanFindByLossollmaterialIId(lossollmaterialDto.getIId(), theClientDto); Object[][] oSubData = new Object[sollarbeitsplanDtos.length][13]; for (int s = 0; s < sollarbeitsplanDtos.length; s++) { LossollarbeitsplanDto lossollarbeitsplanDto = sollarbeitsplanDtos[s]; ArtikelDto artikelDtoSollarbeitsplan = getArtikelFac().artikelFindByPrimaryKeySmall( lossollarbeitsplanDto.getArtikelIIdTaetigkeit(), theClientDto); oSubData[s][0] = artikelDtoSollarbeitsplan.getCNr(); oSubData[s][1] = artikelDtoSollarbeitsplan.formatBezeichnung(); oSubData[s][2] = new BigDecimal(lossollarbeitsplanDto.getLStueckzeit()) .divide(new BigDecimal(3600000), 4, BigDecimal.ROUND_HALF_EVEN); oSubData[s][3] = new BigDecimal(lossollarbeitsplanDto.getLRuestzeit()) .divide(new BigDecimal(3600000), 4, BigDecimal.ROUND_HALF_EVEN); oSubData[s][4] = lossollarbeitsplanDto.getIArbeitsgangnummer(); oSubData[s][5] = lossollarbeitsplanDto.getIUnterarbeitsgang(); oSubData[s][6] = lossollarbeitsplanDto.getCKomentar(); oSubData[s][7] = lossollarbeitsplanDto.getXText(); } String[] fieldnames = new String[] { "F_ARTIKEL", "F_BEZEICHNUNG", "F_STUECKZEIT", "F_RUESTZEIT", "F_AGNUMMER", "F_UAGNUMMER", "F_KOMMENTAR", "F_TEXT" }; data[i][BestellungReportFac.REPORT_BESTELLUNG_SOLLMATERIAL_SUBREPORT_ARBEITSGAENGE] = new LPDatenSubreport( oSubData, fieldnames); } // Lieferantendaten: Artikelnummer, Bezeichnung ArtikellieferantDto artikellieferantDto = getArtikelFac() .artikellieferantFindByArtikellIIdLieferantIIdOhneExc(aPositionDtos[i].getArtikelIId(), bestellungDto.getLieferantIIdBestelladresse(), theClientDto); if (artikellieferantDto != null) { if (Helper.short2boolean(artikellieferantDto.getBHerstellerbez()) == true) { // PJ18293 data[i][BestellungReportFac.REPORT_BESTELLUNG_LIEFERANT_ARTIKEL_IDENTNUMMER] = artikelDto .getCArtikelnrhersteller(); data[i][BestellungReportFac.REPORT_BESTELLUNG_LIEFERANT_ARTIKEL_BEZEICHNUNG] = artikelDto .getCArtikelbezhersteller(); } else { if (artikellieferantDto.getCArtikelnrlieferant() != null) { data[i][BestellungReportFac.REPORT_BESTELLUNG_LIEFERANT_ARTIKEL_IDENTNUMMER] = artikellieferantDto .getCArtikelnrlieferant(); } if (artikellieferantDto.getCBezbeilieferant() != null) { data[i][BestellungReportFac.REPORT_BESTELLUNG_LIEFERANT_ARTIKEL_BEZEICHNUNG] = artikellieferantDto .getCBezbeilieferant(); } } data[i][BestellungReportFac.REPORT_BESTELLUNG_LIEFERANT_VERPACKUNGSEINHEIT] = artikellieferantDto .getNVerpackungseinheit(); } if (artikelDto.getHerstellerIId() != null) { HerstellerDto herstellerDto = getArtikelFac() .herstellerFindByPrimaryKey(artikelDto.getHerstellerIId(), theClientDto); data[i][BestellungReportFac.REPORT_BESTELLUNG_ARTIKEL_HERSTELLER] = herstellerDto.getCNr(); PartnerDto partnerDto = getPartnerFac() .partnerFindByPrimaryKey(herstellerDto.getPartnerIId(), theClientDto); data[i][BestellungReportFac.REPORT_BESTELLUNG_ARTIKEL_HERSTELLER_NAME] = partnerDto .formatFixName1Name2(); } if (artikelDto.getEinheitCNrBestellung() != null && artikelDto.getNUmrechnungsfaktor().doubleValue() != 0) { boolean bInvers = Helper.short2boolean(artikelDto.getbBestellmengeneinheitInvers()); BigDecimal gewicht = null; if (bInvers) { gewicht = aPositionDtos[i].getNMenge().divide(artikelDto.getNUmrechnungsfaktor(), 4, BigDecimal.ROUND_HALF_EVEN); } else { gewicht = aPositionDtos[i].getNMenge().multiply(artikelDto.getNUmrechnungsfaktor()); } BigDecimal umrechnung = new BigDecimal(0); gewicht = Helper.rundeKaufmaennisch(gewicht, 4); data[i][BestellungReportFac.REPORT_BESTELLUNG_GEWICHT] = gewicht; data[i][BestellungReportFac.REPORT_BESTELLUNG_GEWICHTEINHEIT] = getSystemFac() .formatEinheit(artikelDto.getEinheitCNrBestellung(), locDruck, theClientDto); if (bInvers) { umrechnung = aPositionDtos[i].getNNettoeinzelpreis() .multiply(artikelDto.getNUmrechnungsfaktor()); } else { umrechnung = aPositionDtos[i].getNNettoeinzelpreis() .divide(artikelDto.getNUmrechnungsfaktor(), 4, BigDecimal.ROUND_HALF_EVEN); } data[i][BestellungReportFac.REPORT_BESTELLUNG_PREISPEREINHEIT] = umrechnung; } // PJ 14867 if (aPositionDtos[i].getIBestellpositionIIdRahmenposition() != null && bestellungDto .getBestellungartCNr().equals(BestellungFac.BESTELLUNGART_ABRUFBESTELLUNG_C_NR)) { Session sessionRahmen = FLRSessionFactory.getFactory().openSession(); String query = "FROM FLRBestellpositionReport bs WHERE bs.i_id=" + aPositionDtos[i].getIBestellpositionIIdRahmenposition(); Query q = sessionRahmen.createQuery(query); List l = q.list(); if (l.size() > 0) { FLRBestellpositionReport eintrag = (FLRBestellpositionReport) l.iterator().next(); BigDecimal offeneMenge = eintrag.getN_menge(); for (Iterator<?> iter = eintrag.getAbrufpositionenset().iterator(); iter.hasNext();) { FLRBestellpositionReport item = (FLRBestellpositionReport) iter.next(); if (item.getFlrbestellung().getT_belegdatum().getTime() <= bestellungDto .getDBelegdatum().getTime()) { offeneMenge = offeneMenge.subtract(item.getN_menge()); } } data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENERAHMENMENGE] = offeneMenge; } sessionRahmen.close(); } if (aPositionDtos[i].getPositionsartCNr().equals(BestellpositionFac.BESTELLPOSITIONART_IDENT)) { data[i][BestellungReportFac.REPORT_BESTELLUNG_IDENTNUMMER] = artikelDto.getCNr(); data[i][BestellungReportFac.REPORT_BESTELLUNG_ARTIKEL_INDEX] = artikelDto.getCIndex(); data[i][BestellungReportFac.REPORT_BESTELLUNG_ARTIKEL_REVISION] = artikelDto.getCRevision(); if (artikelDto.getVerpackungDto() != null) { data[i][BestellungReportFac.REPORT_BESTELLUNG_BAUFORM] = artikelDto.getVerpackungDto() .getCBauform(); data[i][BestellungReportFac.REPORT_BESTELLUNG_VERPACKUNGSART] = artikelDto .getVerpackungDto().getCVerpackungsart(); } if (artikelDto.getMaterialIId() != null) { MaterialDto materialDto = getMaterialFac() .materialFindByPrimaryKey(artikelDto.getMaterialIId(), theClientDto); if (materialDto.getMaterialsprDto() != null) { /** * @todo MR->MR richtige Mehrsprachigkeit: * Material in Drucksprache. */ data[i][BestellungReportFac.REPORT_BESTELLUNG_ARTIKEL_MATERIAL] = materialDto .getMaterialsprDto().getCBez(); } else { data[i][BestellungReportFac.REPORT_BESTELLUNG_ARTIKEL_MATERIAL] = materialDto .getCNr(); } MaterialzuschlagDto mzDto = getMaterialFac().getKursMaterialzuschlagDtoInZielwaehrung( artikelDto.getMaterialIId(), bestellungDto.getDBelegdatum(), bestellungDto.getWaehrungCNr(), theClientDto); data[i][BestellungReportFac.REPORT_BESTELLUNG_ARTIKEL_KURS_MATERIALZUSCHLAG] = mzDto .getNZuschlag(); data[i][BestellungReportFac.REPORT_BESTELLUNG_ARTIKEL_DATUM_MATERIALZUSCHLAG] = mzDto .getTGueltigab(); } data[i][BestellungReportFac.REPORT_BESTELLUNG_ARTIKEL_MATERIALGEWICHT] = artikelDto .getFMaterialgewicht(); if (artikelDto.getGeometrieDto() != null) { data[i][BestellungReportFac.REPORT_BESTELLUNG_ARTIKEL_BREITE] = artikelDto .getGeometrieDto().getFBreite(); data[i][BestellungReportFac.REPORT_BESTELLUNG_ARTIKEL_HOEHE] = artikelDto .getGeometrieDto().getFHoehe(); data[i][BestellungReportFac.REPORT_BESTELLUNG_ARTIKEL_TIEFE] = artikelDto .getGeometrieDto().getFTiefe(); } } data[i][BestellungReportFac.REPORT_BESTELLUNG_MENGE] = aPositionDtos[i].getNMenge(); data[i][BestellungReportFac.REPORT_BESTELLUNG_EINHEIT] = getSystemFac() .formatEinheit(aPositionDtos[i].getEinheitCNr(), locDruck, theClientDto); data[i][BestellungReportFac.REPORT_BESTELLUNG_ANGEBOTSNUMMER] = aPositionDtos[i] .getCAngebotnummer(); if (aPositionDtos[i].getPositioniIdArtikelset() == null) { data[i][BestellungReportFac.REPORT_BESTELLUNG_EINZELPREIS] = aPositionDtos[i] .getNNettoeinzelpreis(); data[i][BestellungReportFac.REPORT_BESTELLUNG_MATERIALZUSCHLAG] = aPositionDtos[i] .getNMaterialzuschlag(); data[i][BestellungReportFac.REPORT_BESTELLUNG_RABATT] = aPositionDtos[i].getDRabattsatz(); BigDecimal bdGesamtpreis = null; if (aPositionDtos[i].getNNettogesamtpreis() != null && aPositionDtos[i].getNMenge() != null) { bdGesamtpreis = aPositionDtos[i].getNNettogesamtpreis() .multiply(aPositionDtos[i].getNMenge()); } data[i][BestellungReportFac.REPORT_BESTELLUNG_GESAMTPREIS] = bdGesamtpreis; } /** * @todo MR-> Wird nicht mehr benoetigt, da * LPReport.printIdent das abbildet. Wegen kurzer Zeit * vor deploy nicht mehr geloescht. */ ArrayList<Object> images = new ArrayList<Object>(); ArtikelkommentarDto[] artikelkommentarDto = getArtikelkommentarFac() .artikelkommentardruckFindByArtikelIIdBelegartCNr(aPositionDtos[i].getArtikelIId(), LocaleFac.BELEGART_BESTELLUNG, theClientDto.getLocUiAsString(), theClientDto); if (artikelkommentarDto != null && artikelkommentarDto.length > 0) { String cPositionKommentarText = ""; for (int j = 0; j < artikelkommentarDto.length; j++) { if (artikelkommentarDto[j].getArtikelkommentarsprDto() != null) { String cDatenformat = artikelkommentarDto[j].getDatenformatCNr(); if (cDatenformat.equals(MediaFac.DATENFORMAT_MIMETYPE_IMAGE_JPEG) || artikelkommentarDto[j].getDatenformatCNr() .equals(MediaFac.DATENFORMAT_MIMETYPE_IMAGE_PNG) || artikelkommentarDto[j].getDatenformatCNr() .equals(MediaFac.DATENFORMAT_MIMETYPE_IMAGE_GIF)) { byte[] bild = artikelkommentarDto[j].getArtikelkommentarsprDto().getOMedia(); if (bild != null) { java.awt.Image myImage = Helper.byteArrayToImage(bild); data[i][BestellungReportFac.REPORT_BESTELLUNG_IMAGE] = myImage; images.add(myImage); } } else if (artikelkommentarDto[j].getDatenformatCNr() .equals(MediaFac.DATENFORMAT_MIMETYPE_IMAGE_TIFF)) { byte[] bild = artikelkommentarDto[j].getArtikelkommentarsprDto().getOMedia(); java.awt.Image[] tiffs = Helper.tiffToImageArray(bild); if (tiffs != null) { for (int k = 0; k < tiffs.length; k++) { images.add(tiffs[k]); } } } } } } } // Betrifft Positionen if (aPositionDtos[i].getPositionsartCNr().equals(BestellpositionFac.BESTELLPOSITIONART_BETRIFFT)) { data[i][BestellungReportFac.REPORT_BESTELLUNG_FREIERTEXT] = aPositionDtos[i].getCBez(); } // Texteingabe Positionen if (aPositionDtos[i].getPositionsartCNr() .equals(BestellpositionFac.BESTELLPOSITIONART_TEXTEINGABE)) { // IMS 1619 leerer Text soll als Leerezeile erscheinen String sText = aPositionDtos[i].getXTextinhalt(); if (sText != null && sText.trim().equals("")) { data[i][BestellungReportFac.REPORT_BESTELLUNG_LEERZEILE] = " "; } else { data[i][BestellungReportFac.REPORT_BESTELLUNG_FREIERTEXT] = sText; } } // Textbaustein Positionen if (aPositionDtos[i].getPositionsartCNr() .equals(BestellpositionFac.BESTELLPOSITIONART_TEXTBAUSTEIN)) { // Dto holen MediastandardDto oMediastandardDto = getMediaFac() .mediastandardFindByPrimaryKey(aPositionDtos[i].getMediastandardIId()); // zum Drucken vorbereiten BelegPositionDruckTextbausteinDto druckDto = printTextbaustein(oMediastandardDto, theClientDto); data[i][BestellungReportFac.REPORT_BESTELLUNG_FREIERTEXT] = druckDto.getSFreierText(); data[i][BestellungReportFac.REPORT_BESTELLUNG_IMAGE] = druckDto.getOImage(); } // Leerzeile Positionen if (aPositionDtos[i].getPositionsartCNr().equals(BestellpositionFac.BESTELLPOSITIONART_LEERZEILE)) { data[i][BestellungReportFac.REPORT_BESTELLUNG_LEERZEILE] = " "; } // Seitenumbruch Positionen if (aPositionDtos[i].getPositionsartCNr() .equals(BestellpositionFac.BESTELLPOSITIONART_SEITENUMBRUCH)) { bbSeitenumbruch = new Boolean(!bbSeitenumbruch.booleanValue()); // toggle } data[i][BestellungReportFac.REPORT_BESTELLUNG_SEITENUMBRUCH] = bbSeitenumbruch; data[i][BestellungReportFac.REPORT_BESTELLUNG_POSITIONSART] = aPositionDtos[i].getPositionsartCNr(); } // Kopftext String sKopftext = bestellungDto.getCKopftextUebersteuert(); if (sKopftext == null || sKopftext.length() == 0) { BestellungtextDto oBestellungtextDto = getBestellungServiceFac() .bestellungtextFindByMandantLocaleCNr(theClientDto.getMandant(), lieferantDto.getPartnerDto().getLocaleCNrKommunikation(), BestellungServiceFac.BESTELLUNGTEXT_KOPFTEXT, theClientDto); sKopftext = oBestellungtextDto.getXTextinhalt(); } // Fusstext String sFusstext = bestellungDto.getCFusstextUebersteuert(); if (sFusstext == null || sFusstext.length() == 0) { BestellungtextDto oBestellungtextDto = getBestellungServiceFac() .bestellungtextFindByMandantLocaleCNr(theClientDto.getMandant(), lieferantDto.getPartnerDto().getLocaleCNrKommunikation(), BestellungServiceFac.BESTELLUNGTEXT_FUSSTEXT, theClientDto); sFusstext = oBestellungtextDto.getXTextinhalt(); } // Erstellung des Report HashMap<String, Object> mapParameter = new HashMap<String, Object>(); // CK: PJ 13849 mapParameter.put("P_BEARBEITER", getPersonalFac().getPersonRpt(bestellungDto.getPersonalIIdAnlegen(), theClientDto)); // die Parameter uebergeben if (bestellungDto.getBTeillieferungMoeglich() != null) { mapParameter.put("P_TEILLIEFERUNGMOEGLICH", new Boolean(Helper.short2boolean(bestellungDto.getBTeillieferungMoeglich()))); } String sSpediteur = null; if (bestellungDto.getSpediteurIId() != null) { SpediteurDto spediteurDto = getMandantFac() .spediteurFindByPrimaryKey(bestellungDto.getSpediteurIId()); sSpediteur = spediteurDto.getCNamedesspediteurs(); if (spediteurDto.getPartnerIId() != null) { PartnerDto partnerDto = getPartnerFac().partnerFindByPrimaryKey(spediteurDto.getPartnerIId(), theClientDto); AnsprechpartnerDto ansprechpartnerDtoSpediteur = null; if (spediteurDto.getAnsprechpartnerIId() != null) { ansprechpartnerDtoSpediteur = getAnsprechpartnerFac().ansprechpartnerFindByPrimaryKey( spediteurDto.getAnsprechpartnerIId(), theClientDto); } mapParameter.put("P_SPEDITEUR_ADRESSBLOCK", formatAdresseFuerAusdruck(partnerDto, ansprechpartnerDtoSpediteur, mandantDto, locDruck)); } } mapParameter.put("P_SPEDITEUR", sSpediteur != null ? sSpediteur : ""); mapParameter.put("P_LIEFERANTENANGEBOT", bestellungDto.getCLieferantenangebot()); mapParameter.put("P_LIEFERANTINTERNERKOMMENTAR", lieferantDto.getCHinweisintern()); mapParameter.put("P_LIEFERANTEXTERNERKOMMENTAR", lieferantDto.getCHinweisextern()); if (bestellungDto.getAuftragIId() != null) { AuftragDto auftragDto = getAuftragFac().auftragFindByPrimaryKey(bestellungDto.getAuftragIId()); mapParameter.put("P_AUFTRAGSNUMMER", auftragDto.getCNr()); } if (bestellungDto.getStatusCNr().equals(BestellpositionFac.BESTELLPOSITIONSTATUS_STORNIERT)) { mapParameter.put("P_STORNIERT", true); } else { mapParameter.put("P_STORNIERT", false); } mapParameter.put("Mandantenadresse", Helper.formatMandantAdresse(mandantDto)); mapParameter.put("P_LIEFERADRESSE_IST_NICHT_MANDANT", new Boolean(true)); if (bestellungDto.getPartnerIIdLieferadresse() != null) { PartnerDto lieferadresseDto = getPartnerFac() .partnerFindByPrimaryKey(bestellungDto.getPartnerIIdLieferadresse(), theClientDto); // SP581 if (lieferantDto.getPartnerDto().getLandplzortDto() != null && lieferadresseDto.getLandplzortDto() != null && !lieferantDto.getPartnerDto().getLandplzortDto().getLandDto().getIID() .equals(lieferadresseDto.getLandplzortDto().getLandDto().getIID())) { if (lieferadresseDto.getLandplzortDto().getLandDto().getLandIIdGemeinsamespostland() != null && lieferadresseDto.getLandplzortDto().getLandDto().getLandIIdGemeinsamespostland() .equals(lieferantDto.getPartnerDto().getLandplzortDto().getIlandID())) { mapParameter.put("P_LIEFERADRESSE", formatAdresseFuerAusdruck(lieferadresseDto, null, mandantDto, Helper.string2Locale(lieferadresseDto.getLocaleCNrKommunikation()), LocaleFac.BELEGART_BESTELLUNG)); } else if (lieferantDto.getPartnerDto().getLandplzortDto().getLandDto() .getLandIIdGemeinsamespostland() != null && lieferantDto.getPartnerDto().getLandplzortDto().getLandDto() .getLandIIdGemeinsamespostland() .equals(lieferadresseDto.getLandplzortDto().getIlandID())) { mapParameter.put("P_LIEFERADRESSE", formatAdresseFuerAusdruck(lieferadresseDto, null, mandantDto, Helper.string2Locale(lieferadresseDto.getLocaleCNrKommunikation()), LocaleFac.BELEGART_BESTELLUNG)); } else { mapParameter.put("P_LIEFERADRESSE", formatAdresseFuerAusdruck(lieferadresseDto, null, mandantDto, Helper.string2Locale(lieferadresseDto.getLocaleCNrKommunikation()), true, LocaleFac.BELEGART_BESTELLUNG)); } } else { mapParameter.put("P_LIEFERADRESSE", formatAdresseFuerAusdruck(lieferadresseDto, null, mandantDto, Helper.string2Locale(lieferadresseDto.getLocaleCNrKommunikation()), LocaleFac.BELEGART_BESTELLUNG)); } mapParameter.put("P_LIEFERADRESSENICHTNULL", new Boolean(true)); if (mandantDto.getPartnerIId().equals(bestellungDto.getPartnerIIdLieferadresse())) { mapParameter.put("P_LIEFERADRESSE_IST_NICHT_MANDANT", new Boolean(false)); } } if (lieferantDto.getPartnerRechnungsadresseDto() != null) { mapParameter.put("P_RECHNUNGADRESSE", formatAdresseFuerAusdruck(lieferantDto.getPartnerRechnungsadresseDto(), oAnsprechpartnerDto, mandantDto, Helper.string2Locale( lieferantDto.getPartnerRechnungsadresseDto().getLocaleCNrKommunikation()), LocaleFac.BELEGART_BESTELLUNG)); if (oAnsprechpartnerDto != null) { mapParameter .put("P_ANSPRECHPARTNER_RECHNUNGADRESSE", getPartnerFac().formatFixAnredeTitelName2Name1FuerAdresskopf( oAnsprechpartnerDto.getPartnerDto(), Helper.string2Locale(lieferantDto .getPartnerRechnungsadresseDto().getLocaleCNrKommunikation()), null)); } } mapParameter.put("Adressefuerausdruck", formatAdresseFuerAusdruck(lieferantDto.getPartnerDto(), oAnsprechpartnerDto, mandantDto, Helper.string2Locale(lieferantDto.getPartnerDto().getLocaleCNrKommunikation()), LocaleFac.BELEGART_BESTELLUNG)); if (oAnsprechpartnerDto != null) { mapParameter.put("P_ANSPRECHPARTNER_ADRESSBLOCK", getPartnerFac().formatFixAnredeTitelName2Name1FuerAdresskopf( oAnsprechpartnerDto.getPartnerDto(), Helper.string2Locale(lieferantDto.getPartnerDto().getLocaleCNrKommunikation()), null)); } if (bestellungDto.getAnfrageIId() != null) { AnfrageDto anfrageDto = getAnfrageFac().anfrageFindByPrimaryKey(bestellungDto.getAnfrageIId(), theClientDto); mapParameter.put("P_ANFRAGENUMMER", anfrageDto.getCNr()); } /** * @todo fuer diesen Block eine zentrale Methode bauen. */ // die partnerIId des ansprechpartners brauch ich // daten holen String sEmail = getPartnerFac().partnerkommFindRespectPartnerAsStringOhneExec(partnerIIdAnsprechpartner, lieferantDto.getPartnerDto(), PartnerFac.KOMMUNIKATIONSART_EMAIL, theClientDto.getMandant(), theClientDto); String sFax = getPartnerFac().partnerkommFindRespectPartnerAsStringOhneExec(partnerIIdAnsprechpartner, lieferantDto.getPartnerDto(), PartnerFac.KOMMUNIKATIONSART_FAX, theClientDto.getMandant(), theClientDto); String sTelefon = getPartnerFac().partnerkommFindRespectPartnerAsStringOhneExec( partnerIIdAnsprechpartner, lieferantDto.getPartnerDto(), PartnerFac.KOMMUNIKATIONSART_TELEFON, theClientDto.getMandant(), theClientDto); // daten als parameter an den Report weitergeben mapParameter.put(LPReport.P_ANSPRECHPARTNEREMAIL, sEmail != null ? sEmail : ""); mapParameter.put(LPReport.P_ANSPRECHPARTNERFAX, sFax != null ? sFax : ""); mapParameter.put(LPReport.P_ANSPRECHPARTNERTELEFON, sTelefon != null ? sTelefon : ""); mapParameter.put("P_LIEFERANT_UID", lieferantDto.getPartnerDto().getCUid()); mapParameter.put("P_LIEFERANT_EORI", lieferantDto.getPartnerDto().getCEori()); if (lieferantDto.getKontoIIdKreditorenkonto() != null) { mapParameter.put("P_KREDITORENKONTO", getFinanzFac().kontoFindByPrimaryKey(lieferantDto.getKontoIIdKreditorenkonto()).getCNr()); } mapParameter.put("P_KUNDENNUMMER", lieferantDto.getCKundennr()); String cLabelRahmenOderLiefertermin = getTextRespectUISpr("lp.liefertermin", theClientDto.getMandant(), locDruck); String cLabelBestellungnr = null; if (bestellungDto.getBestellungartCNr().equals(BestellungFac.BESTELLUNGART_RAHMENBESTELLUNG_C_NR)) { cLabelRahmenOderLiefertermin = getTextRespectUISpr("lp.rahmentermin", theClientDto.getMandant(), locDruck); cLabelBestellungnr = getTextRespectUISpr("bes.bestellungnr.rahmen", theClientDto.getMandant(), locDruck); } else if (bestellungDto.getBestellungartCNr() .equals(BestellungFac.BESTELLUNGART_ABRUFBESTELLUNG_C_NR)) { BestellungDto rahmenbestellungDto = getBestellungFac() .bestellungFindByPrimaryKey(bestellungDto.getIBestellungIIdRahmenbestellung()); cLabelBestellungnr = getTextRespectUISpr("bes.bestellungnr.abrufrahmen", theClientDto.getMandant(), locDruck) + " " + rahmenbestellungDto.getCNr(); } else if (bestellungDto.getBestellungartCNr() .equals(BestellungFac.BESTELLUNGART_LEIHBESTELLUNG_C_NR)) { cLabelBestellungnr = getTextRespectUISpr("bes.bestellungnr.leihbestellung", theClientDto.getMandant(), locDruck); } else { cLabelBestellungnr = getTextRespectUISpr("bes.bestellungnr.bestellung", theClientDto.getMandant(), locDruck); } mapParameter.put("P_LABELBESTELLUNGNR", cLabelBestellungnr); mapParameter.put("P_BELEGKENNUNG", baueKennungBestellung(bestellungDto, theClientDto)); mapParameter.put("P_LABELRAHMENODERLIEFERTERMIN", cLabelRahmenOderLiefertermin); mapParameter.put("P_LIEFERTERMIN", Helper.formatDatum(bestellungDto.getDLiefertermin(), locDruck)); mapParameter.put("P_POENALE", Helper.short2Boolean(bestellungDto.getBPoenale())); mapParameter.put("P_LIEFERART", getLocaleFac() .lieferartFindByIIdLocaleOhneExc(bestellungDto.getLieferartIId(), locDruck, theClientDto)); mapParameter.put("P_LIEFERART_ORT", bestellungDto.getCLieferartort()); mapParameter.put("P_ZAHLUNGSKONDITION", getMandantFac().zahlungszielFindByIIdLocaleOhneExc( bestellungDto.getZahlungszielIId(), locDruck, theClientDto)); mapParameter.put("P_PROJEKTBEZ", bestellungDto.getCBez()); if (bestellungDto.getProjektIId() != null) { ProjektDto pjDto = getProjektFac().projektFindByPrimaryKey(bestellungDto.getProjektIId()); mapParameter.put("P_PROJEKTNUMMER", pjDto.getCNr()); } if (bestellungDto.getKostenstelleIId() != null) { KostenstelleDto kostenstelleDto = getSystemFac() .kostenstelleFindByPrimaryKey(bestellungDto.getKostenstelleIId()); mapParameter.put(LPReport.P_KOSTENSTELLE, kostenstelleDto.getCNr()); } String cBriefanrede = ""; if (oAnsprechpartnerDto != null) { cBriefanrede = getPartnerServicesFac().getBriefanredeFuerBeleg( bestellungDto.getAnsprechpartnerIId(), lieferantDto.getPartnerIId(), locDruck, theClientDto); } else { // neutrale Anrede cBriefanrede = getBriefanredeNeutralOderPrivatperson(lieferantDto.getPartnerIId(), locDruck, theClientDto); } mapParameter.put("Briefanrede", cBriefanrede); PersonalDto oPersonalBenutzer = getPersonalFac().personalFindByPrimaryKey(theClientDto.getIDPersonal(), theClientDto); PersonalDto oPersonalAnleger = getPersonalFac() .personalFindByPrimaryKey(bestellungDto.getPersonalIIdAnlegen(), theClientDto); mapParameter.put("P_UNSER_ZEICHEN", Helper.getKurzzeichenkombi(oPersonalBenutzer.getCKurzzeichen(), oPersonalAnleger.getCKurzzeichen())); mapParameter.put("P_BELEGDATUM", Helper.formatDatum(bestellungDto.getDBelegdatum(), locDruck)); mapParameter.put("P_WAEHRUNG", bestellungDto.getWaehrungCNr()); mapParameter.put("P_ALLGEMEINER_RABATT", bestellungDto.getFAllgemeinerRabattsatz()); mapParameter.put("P_ALLGEMEINER_RABATT_STRING", Helper.formatZahl(bestellungDto.getFAllgemeinerRabattsatz(), locDruck)); mapParameter.put("P_TERMINEUNTERSCHIEDLICH", new Boolean(bTermineUnterschiedlich)); mapParameter.put("Kopftext", Helper.formatStyledTextForJasper(sKopftext)); mapParameter.put("P_BELEGWERT", bestellungDto.getNBestellwert()); // die folgenden Felder werden im Report mit jeweils einer // trennenden Leerzeile // hintereinandergehaengt // MR 20071014 Folgende Felder muessen auch einzeln an Report // uebergeben werden. StringBuffer buff = new StringBuffer(); // Externer Kommentar if (bestellungDto.getXExternerKommentar() != null && bestellungDto.getXExternerKommentar().length() > 0) { mapParameter.put(P_EXTERNERKOMMENTAR, Helper.formatStyledTextForJasper(bestellungDto.getXExternerKommentar())); buff.append(bestellungDto.getXExternerKommentar()).append("\n\n"); } // Fusstext if (sFusstext != null) { mapParameter.put("P_FUSSTEXT", Helper.formatStyledTextForJasper(sFusstext)); buff.append(sFusstext).append("\n\n"); } StringBuffer buffVertreter = new StringBuffer(); // Anrede des Mandanten String sMandantAnrede = mandantDto.getPartnerDto().formatFixName1Name2(); if (sMandantAnrede != null) { mapParameter.put(P_MANDANT_ANREDE_UND_NAME, sMandantAnrede); buff.append(sMandantAnrede).append("\n\n"); buffVertreter.append(sMandantAnrede).append("\n\n"); } // P_SUMMARY: Die Unterschrift fuer Belege inclusive // Unterschriftstext und -funktion // Beispiel: // "i.A. Ing. Werner Hehenwarter" - im Falle der Bestellung der // Vertreter aus den Kopfdaten // "Einkaufsleiter" PersonalDto vertreterDto = null; if (bestellungDto.getPersonalIIdAnforderer() != null) { vertreterDto = getPersonalFac().personalFindByPrimaryKey(bestellungDto.getPersonalIIdAnforderer(), theClientDto); } if (vertreterDto != null) { String sVertreterUFTitelName2Name1 = vertreterDto.formatFixUFTitelName2Name1(); mapParameter.put(P_VERTRETER, vertreterDto.formatAnrede()); mapParameter.put(P_VERTRETER_UNTERSCHRIFTSFUNKTION_UND_NAME, sVertreterUFTitelName2Name1); buff.append(sVertreterUFTitelName2Name1); buffVertreter.append(sVertreterUFTitelName2Name1); if (vertreterDto.getCUnterschriftstext() != null && vertreterDto.getCUnterschriftstext().length() > 0) { String sUnterschriftstext = vertreterDto.getCUnterschriftstext(); mapParameter.put(P_VERTRETER_UNTERSCHRIFTSTEXT, sUnterschriftstext); buff.append("\n").append(sUnterschriftstext); buffVertreter.append("\n").append(sUnterschriftstext); } } mapParameter.put("P_SUMMARY", Helper.formatStyledTextForJasper(buff.toString())); mapParameter.put("P_STORNIERUNGSDATUM", bestellungDto.getTStorniert()); mapParameter.put("P_AENDERUNGSBESTELLUNGSDATUM", bestellungDto.getTAenderungsbestellung()); if (bestellungDto.getTAenderungsbestellung() != null) { mapParameter.put("P_AENDERUNGSBESTELLUNG", new Boolean(true)); } else { mapParameter.put("P_AENDERUNGSBESTELLUNG", new Boolean(false)); } if (bestellungDto.getAnsprechpartnerIIdLieferadresse() != null) { AnsprechpartnerDto ansprechpartnerLieferadresseDto = getAnsprechpartnerFac() .ansprechpartnerFindByPrimaryKey(bestellungDto.getAnsprechpartnerIIdLieferadresse(), theClientDto); mapParameter.put("P_ANSPRECHPARTNER_LIEFERADRESSE", ansprechpartnerLieferadresseDto.getPartnerDto().formatFixTitelName1Name2()); } // Die Anzahl der Exemplare ist 1 + Anzahl der Kopien int iExemplare; if (iAnzahlKopienI == null || iAnzahlKopienI.intValue() <= 0) { iExemplare = 1; } else { iExemplare = 1 + iAnzahlKopienI.intValue(); } prints = new JasperPrintLP[iExemplare]; // Print-Array in der Schleife befuellen for (int iKopieNummer = 0; iKopieNummer < iExemplare; iKopieNummer++) { // jede Kopie erhaelt seine Kopiennummer // die "0." Kopie ist das Original und kriegt deshalb keine if (iKopieNummer > 0) { mapParameter.put(LPReport.P_KOPIE_NUMMER, new Integer(iKopieNummer)); } // Index zuruecksetzen index = -1; initJRDS(mapParameter, BestellungReportFac.REPORT_MODUL, BestellungReportFac.REPORT_BESTELLUNG, theClientDto.getMandant(), locDruck, theClientDto, bMitLogo.booleanValue(), bestellungDto.getKostenstelleIId()); prints[iKopieNummer] = getReportPrint(); } } catch (RemoteException ex) { throwEJBExceptionLPRespectOld(ex); } PrintInfoDto values = getJCRDocFac().getPathAndPartnerAndTable(bestellungDto.getIId(), QueryParameters.UC_ID_BESTELLUNG, theClientDto); prints[0].setOInfoForArchive(values); prints[0].putAdditionalInformation(JasperPrintLP.KEY_BELEGART, LocaleFac.BELEGART_BESTELLUNG); prints[0].putAdditionalInformation(JasperPrintLP.KEY_BELEGIID, bestellungDto.getIId()); Timestamp tend = new Timestamp(System.currentTimeMillis()); System.out.println("Took: " + (tend.getTime() - tStart.getTime()) + "ms"); return prints; } /** * Eine Bestellung drucken. * * @param theClientDto * der aktuelle Benutzer * @return JasperPrint der Druck * @throws EJBExceptionLP * Ausnahme */ public Object[] getGeaenderteArtikelDaten(TheClientDto theClientDto) { ArrayList<Object[]> alDaten = new ArrayList<Object[]>(); SessionFactory factory = FLRSessionFactory.getFactory(); Session session = null; session = factory.openSession(); String sQuery = "SELECT distinct(b.flrartikel) FROM FLRBestellvorschlag b WHERE b.mandant_c_nr='" + theClientDto.getMandant() + "'"; Query querylagerbewegungen = session.createQuery(sQuery); List<?> list = querylagerbewegungen.list(); Iterator<?> it = list.iterator(); HashMap hmAeltereVersionen = new HashMap(); while (it.hasNext()) { FLRArtikel flrartikelAktuell = (FLRArtikel) it.next(); // Gibt es aeltere Versionen des Artikels if (flrartikelAktuell.getC_nr().length() > 4 && flrartikelAktuell.getC_nr().charAt(flrartikelAktuell.getC_nr().length() - 4) == '_') { // Es ist eine neuere Version // Nun alle aelteren Versionen suchen: Session session3 = FLRSessionFactory.getFactory().openSession(); String queryString = "SELECT a FROM FLRArtikel a WHERE a.mandant_c_nr='" + theClientDto.getMandant() + "' AND c_nr LIKE '" + flrartikelAktuell.getC_nr().substring(0, flrartikelAktuell.getC_nr().length() - 4) + "%' AND c_nr < '" + flrartikelAktuell.getC_nr() + "'"; org.hibernate.Query query3 = session3.createQuery(queryString); List<?> results3 = query3.list(); Iterator<?> resultListIterator3 = results3.iterator(); while (resultListIterator3.hasNext()) { FLRArtikel flrArtikel = (FLRArtikel) resultListIterator3.next(); Session session2 = null; session2 = factory.openSession(); String sQuery2 = "SELECT b FROM FLRBestellposition b WHERE b.flrbestellung.mandant_c_nr='" + theClientDto.getMandant() + "' AND b.flrartikel.i_id=" + flrArtikel.getI_id() + " AND b.flrbestellung.bestellungstatus_c_nr IN ('" + BestellungFac.BESTELLSTATUS_ANGELEGT + "','" + BestellungFac.BESTELLSTATUS_BESTAETIGT + "','" + BestellungFac.BESTELLSTATUS_OFFEN + "','" + BestellungFac.BESTELLSTATUS_TEILERLEDIGT + "')"; Query q2 = session2.createQuery(sQuery2); List<?> list2 = q2.list(); Iterator<?> it2 = list2.iterator(); while (it2.hasNext()) { FLRBestellposition flrBestellposition = (FLRBestellposition) it2.next(); hmAeltereVersionen.put(flrartikelAktuell.getI_id(), null); Object[] oZeile = new Object[BestellungReportFac.REPORT_GEAENDERTEARTIKEL_ANZAHL_SPALTEN]; oZeile[BestellungReportFac.REPORT_GEAENDERTEARTIKEL_ARTIKELNUMMER_AKTUELL] = flrartikelAktuell .getC_nr(); ArtikelDto aDto = getArtikelFac().artikelFindByPrimaryKey(flrartikelAktuell.getI_id(), theClientDto); if (aDto.getArtikelsprDto() != null) { oZeile[BestellungReportFac.REPORT_GEAENDERTEARTIKEL_ARTIKELBEZEICHNUNG_AKTUELL] = aDto .getArtikelsprDto().getCBez(); oZeile[BestellungReportFac.REPORT_GEAENDERTEARTIKEL_ARTIKELZUSATZBEZEICHNUNG_AKTUELL] = aDto .getArtikelsprDto().getCZbez(); oZeile[BestellungReportFac.REPORT_GEAENDERTEARTIKEL_ARTIKELZUSATZBEZEICHNUNG2_AKTUELL] = aDto .getArtikelsprDto().getCZbez2(); } oZeile[BestellungReportFac.REPORT_GEAENDERTEARTIKEL_ARTIKELNUMMER_BESTELLUNG] = flrBestellposition .getFlrartikel().getC_nr(); aDto = getArtikelFac().artikelFindByPrimaryKey(flrBestellposition.getFlrartikel().getI_id(), theClientDto); if (aDto.getArtikelsprDto() != null) { oZeile[BestellungReportFac.REPORT_GEAENDERTEARTIKEL_ARTIKELBEZEICHNUNG_BESTELLUNG] = aDto .getArtikelsprDto().getCBez(); oZeile[BestellungReportFac.REPORT_GEAENDERTEARTIKEL_ARTIKELZUSATZBEZEICHNUNG_BESTELLUNG] = aDto .getArtikelsprDto().getCZbez(); oZeile[BestellungReportFac.REPORT_GEAENDERTEARTIKEL_ARTIKELZUSATZBEZEICHNUNG2_BESTELLUNG] = aDto .getArtikelsprDto().getCZbez2(); } oZeile[BestellungReportFac.REPORT_GEAENDERTEARTIKEL_BESTELLNUMMER] = flrBestellposition .getFlrbestellung().getC_nr(); oZeile[BestellungReportFac.REPORT_GEAENDERTEARTIKEL_MENGE] = flrBestellposition .getN_menge(); oZeile[BestellungReportFac.REPORT_GEAENDERTEARTIKEL_PREIS] = flrBestellposition .getN_nettogesamtpreis(); oZeile[BestellungReportFac.REPORT_GEAENDERTEARTIKEL_ABNUMMER] = flrBestellposition .getC_abnummer(); oZeile[BestellungReportFac.REPORT_GEAENDERTEARTIKEL_ABTERMIN] = flrBestellposition .getT_auftragsbestaetigungstermin(); oZeile[BestellungReportFac.REPORT_GEAENDERTEARTIKEL_POSITIONSTERMIN] = flrBestellposition .getT_uebersteuerterliefertermin(); oZeile[BestellungReportFac.REPORT_GEAENDERTEARTIKEL_BESTELLDATUM] = flrBestellposition .getFlrbestellung().getT_belegdatum(); oZeile[BestellungReportFac.REPORT_GEAENDERTEARTIKEL_LIEFERANT] = HelperServer .formatNameAusFLRPartner( flrBestellposition.getFlrbestellung().getFlrlieferant().getFlrpartner()); alDaten.add(oZeile); } session2.close(); } } } session.close(); // Sortieren nach Artikel aktuell und dann nach Artikel Bestellung for (int k = alDaten.size() - 1; k > 0; --k) { for (int j = 0; j < k; ++j) { Object[] o = alDaten.get(j); Object[] o1 = alDaten.get(j + 1); String s = (String) o[REPORT_GEAENDERTEARTIKEL_ARTIKELNUMMER_AKTUELL]; String s1 = (String) o1[REPORT_GEAENDERTEARTIKEL_ARTIKELNUMMER_AKTUELL]; if (s.toUpperCase().compareTo(s1.toUpperCase()) > 0) { alDaten.set(j, o1); alDaten.set(j + 1, o); } else if (s.toUpperCase().compareTo(s1.toUpperCase()) == 0) { s = (String) o[REPORT_GEAENDERTEARTIKEL_ARTIKELNUMMER_BESTELLUNG]; s1 = (String) o1[REPORT_GEAENDERTEARTIKEL_ARTIKELNUMMER_BESTELLUNG]; if (s.toUpperCase().compareTo(s1.toUpperCase()) > 0) { alDaten.set(j, o1); alDaten.set(j + 1, o); } } } } Object[] oReturn = new Object[2]; oReturn[0] = hmAeltereVersionen; oReturn[1] = alDaten; return oReturn; } public JasperPrintLP printGeaenderteArtikel(TheClientDto theClientDto) { useCase = UC_GEAENDERTE_ARTIKEL; HashMap<String, Object> mapParameter = new HashMap<String, Object>(); Object[] o = getGeaenderteArtikelDaten(theClientDto); ArrayList<Object[]> alDaten = (ArrayList<Object[]>) o[1]; data = new Object[alDaten.size()][BestellungReportFac.REPORT_GEAENDERTEARTIKEL_ANZAHL_SPALTEN]; data = (Object[][]) alDaten.toArray(data); initJRDS(mapParameter, BestellungReportFac.REPORT_MODUL, BestellungReportFac.REPORT_GEAENDERTE_ARTIKEL, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); return getReportPrint(); } public JasperPrintLP printAbholauftrag(Integer iIdBestellungI, TheClientDto theClientDto) { JasperPrintLP print = null; if (iIdBestellungI == null) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_PARAMETER_IS_NULL, new Exception("iIdBestellungI == null")); } BestellungDto bestellungDto = null; BestellpositionDto[] aPositionDtos = null; // Erstellung des Report Boolean bbSeitenumbruch = new Boolean(false); // dieser Wert wechselt // mit jedem // Seitenumbruch // zwischen true und // false boolean bTermineUnterschiedlich = false; useCase = UC_ABHOLAUFTRAG; try { bestellungDto = getBestellungFac().bestellungFindByPrimaryKey(iIdBestellungI); aPositionDtos = getBestellpositionFac().bestellpositionFindByBestellung(iIdBestellungI, theClientDto); // den Druckzeitpunkt vermerken bestellungDto.setTGedruckt(getTimestamp()); LieferantDto lieferantDto = getLieferantFac() .lieferantFindByPrimaryKey(bestellungDto.getLieferantIIdBestelladresse(), theClientDto); AnsprechpartnerDto oAnsprechpartnerDto = null; Integer partnerIIdAnsprechpartner = null; if (bestellungDto.getAnsprechpartnerIId() != null) { oAnsprechpartnerDto = getAnsprechpartnerFac() .ansprechpartnerFindByPrimaryKey(bestellungDto.getAnsprechpartnerIId(), theClientDto); if (oAnsprechpartnerDto != null) { partnerIIdAnsprechpartner = oAnsprechpartnerDto.getPartnerIIdAnsprechpartner(); } } MandantDto mandantDto = getMandantFac().mandantFindByPrimaryKey(theClientDto.getMandant(), theClientDto); // es gilt das Locale des Lieferanten Locale locDruck = Helper.string2Locale(lieferantDto.getPartnerDto().getLocaleCNrKommunikation()); int iAnzahlZeilen = aPositionDtos.length; // Anzahl der Zeilen in // der Gruppe data = new Object[iAnzahlZeilen][BestellungReportFac.REPORT_BESTELLUNG_ANZAHL_SPALTEN]; // die Datenmatrix befuellen for (int i = 0; i < iAnzahlZeilen; i++) { data[i][REPORT_ABHOLAUFTRAG_POSITIONOBKJEKT] = getSystemReportFac().getPositionForReport( LocaleFac.BELEGART_BESTELLUNG, aPositionDtos[i].getIId(), theClientDto); data[i][REPORT_ABHOLAUFTRAG_POSITION] = getBestellpositionFac() .getPositionNummer(aPositionDtos[i].getIId(), theClientDto); if (aPositionDtos[i].getTUebersteuerterLiefertermin() != null) { Timestamp tposLieferTermin = Helper .cutTimestamp(aPositionDtos[i].getTUebersteuerterLiefertermin()); if (!(bestellungDto.getDLiefertermin().equals(tposLieferTermin))) { bTermineUnterschiedlich = true; } } // Artikelpositionen if (aPositionDtos[i].getPositionsartCNr().equals(BestellpositionFac.BESTELLPOSITIONART_IDENT) || aPositionDtos[i].getPositionsartCNr() .equals(BestellpositionFac.BESTELLPOSITIONART_HANDEINGABE)) { if (!bestellungDto.getDLiefertermin() .equals(aPositionDtos[i].getTUebersteuerterLiefertermin())) { data[i][REPORT_ABHOLAUFTRAG_POSITIONTERMIN] = Helper.formatDatum( Helper.extractDate(aPositionDtos[i].getTUebersteuerterLiefertermin()), locDruck); } ArtikelDto artikelDto = getArtikelFac() .artikelFindByPrimaryKey(aPositionDtos[i].getArtikelIId(), theClientDto); BelegPositionDruckIdentDto druckDto = printIdent(aPositionDtos[i], LocaleFac.BELEGART_BESTELLUNG, artikelDto, locDruck, lieferantDto.getPartnerIId(), theClientDto); data[i][REPORT_ABHOLAUFTRAG_ARTIKELCZBEZ2] = druckDto.getSArtikelZusatzBezeichnung2(); // Artikel Bezeichnung data[i][REPORT_ABHOLAUFTRAG_BEZEICHNUNG] = druckDto.getSBezeichnung(); // Artikel Kurzbezeichnung data[i][REPORT_ABHOLAUFTRAG_KURZBEZEICHNUNG] = druckDto.getSKurzbezeichnung(); data[i][REPORT_ABHOLAUFTRAG_ZUSATZBEZEICHNUNG] = druckDto.getSZusatzBezeichnung(); data[i][REPORT_ABHOLAUFTRAG_IDENT] = druckDto.getSArtikelInfo(); data[i][REPORT_ABHOLAUFTRAG_ARTIKELKOMMENTAR] = druckDto.getSArtikelkommentar(); data[i][REPORT_ABHOLAUFTRAG_REFERENZNUMMER] = artikelDto.getCReferenznr(); // Lieferantendaten: Artikelnummer, Bezeichnung ArtikellieferantDto artikellieferantDto = getArtikelFac() .artikellieferantFindByArtikellIIdLieferantIIdOhneExc(aPositionDtos[i].getArtikelIId(), bestellungDto.getLieferantIIdBestelladresse(), theClientDto); if (artikellieferantDto != null) { if (artikellieferantDto.getCArtikelnrlieferant() != null) { data[i][REPORT_ABHOLAUFTRAG_LIEFERANT_ARTIKEL_IDENTNUMMER] = artikellieferantDto .getCArtikelnrlieferant(); } if (artikellieferantDto.getCBezbeilieferant() != null) { data[i][REPORT_ABHOLAUFTRAG_LIEFERANT_ARTIKEL_BEZEICHNUNG] = artikellieferantDto .getCBezbeilieferant(); } } if (artikelDto.getHerstellerIId() != null) { HerstellerDto herstellerDto = getArtikelFac() .herstellerFindByPrimaryKey(artikelDto.getHerstellerIId(), theClientDto); data[i][REPORT_ABHOLAUFTRAG_ARTIKEL_HERSTELLER] = herstellerDto.getCNr(); PartnerDto partnerDto = getPartnerFac() .partnerFindByPrimaryKey(herstellerDto.getPartnerIId(), theClientDto); data[i][REPORT_ABHOLAUFTRAG_ARTIKEL_HERSTELLER_NAME] = partnerDto.formatFixName1Name2(); } if (artikelDto.getEinheitCNrBestellung() != null) { boolean bInvers = Helper.short2boolean(artikelDto.getbBestellmengeneinheitInvers()); BigDecimal gewicht = null; if (bInvers) { gewicht = aPositionDtos[i].getNMenge().divide(artikelDto.getNUmrechnungsfaktor(), 4, BigDecimal.ROUND_HALF_EVEN); } else { gewicht = aPositionDtos[i].getNMenge().multiply(artikelDto.getNUmrechnungsfaktor()); } BigDecimal umrechnung = new BigDecimal(0); gewicht = Helper.rundeKaufmaennisch(gewicht, 4); data[i][REPORT_ABHOLAUFTRAG_GEWICHT] = gewicht; data[i][REPORT_ABHOLAUFTRAG_GEWICHTEINHEIT] = getSystemFac() .formatEinheit(artikelDto.getEinheitCNrBestellung(), locDruck, theClientDto); if (bInvers) { umrechnung = aPositionDtos[i].getNNettoeinzelpreis() .multiply(artikelDto.getNUmrechnungsfaktor()); } else { umrechnung = aPositionDtos[i].getNNettoeinzelpreis() .divide(artikelDto.getNUmrechnungsfaktor(), 4, BigDecimal.ROUND_HALF_EVEN); } umrechnung = aPositionDtos[i].getNNettoeinzelpreis() .divide(artikelDto.getNUmrechnungsfaktor(), 4, BigDecimal.ROUND_HALF_EVEN); data[i][REPORT_ABHOLAUFTRAG_PREISPEREINHEIT] = umrechnung; } // PJ 14867 if (aPositionDtos[i].getIBestellpositionIIdRahmenposition() != null && bestellungDto .getBestellungartCNr().equals(BestellungFac.BESTELLUNGART_ABRUFBESTELLUNG_C_NR)) { Session sessionRahmen = FLRSessionFactory.getFactory().openSession(); String query = "FROM FLRBestellpositionReport bs WHERE bs.i_id=" + aPositionDtos[i].getIBestellpositionIIdRahmenposition(); Query q = sessionRahmen.createQuery(query); List l = q.list(); if (l.size() > 0) { FLRBestellpositionReport eintrag = (FLRBestellpositionReport) l.iterator().next(); BigDecimal offeneMenge = eintrag.getN_menge(); for (Iterator<?> iter = eintrag.getAbrufpositionenset().iterator(); iter.hasNext();) { FLRBestellpositionReport item = (FLRBestellpositionReport) iter.next(); if (item.getFlrbestellung().getT_belegdatum().getTime() <= bestellungDto .getDBelegdatum().getTime()) { offeneMenge = offeneMenge.subtract(item.getN_menge()); } } data[i][REPORT_ABHOLAUFTRAG_OFFENERAHMENMENGE] = offeneMenge; } sessionRahmen.close(); } if (aPositionDtos[i].getPositionsartCNr().equals(BestellpositionFac.BESTELLPOSITIONART_IDENT)) { data[i][REPORT_ABHOLAUFTRAG_IDENTNUMMER] = artikelDto.getCNr(); if (artikelDto.getVerpackungDto() != null) { data[i][REPORT_ABHOLAUFTRAG_BAUFORM] = artikelDto.getVerpackungDto().getCBauform(); data[i][REPORT_ABHOLAUFTRAG_VERPACKUNGSART] = artikelDto.getVerpackungDto() .getCVerpackungsart(); } if (artikelDto.getMaterialIId() != null) { MaterialDto materialDto = getMaterialFac() .materialFindByPrimaryKey(artikelDto.getMaterialIId(), theClientDto); if (materialDto.getMaterialsprDto() != null) { /** * @todo MR->MR richtige Mehrsprachigkeit: * Material in Drucksprache. */ data[i][REPORT_ABHOLAUFTRAG_ARTIKEL_MATERIAL] = materialDto.getMaterialsprDto() .getCBez(); } else { data[i][REPORT_ABHOLAUFTRAG_ARTIKEL_MATERIAL] = materialDto.getCNr(); } } if (artikelDto.getGeometrieDto() != null) { data[i][REPORT_ABHOLAUFTRAG_ARTIKEL_BREITE] = artikelDto.getGeometrieDto().getFBreite(); data[i][REPORT_ABHOLAUFTRAG_ARTIKEL_HOEHE] = artikelDto.getGeometrieDto().getFHoehe(); data[i][REPORT_ABHOLAUFTRAG_ARTIKEL_TIEFE] = artikelDto.getGeometrieDto().getFTiefe(); } } data[i][REPORT_ABHOLAUFTRAG_MENGE] = aPositionDtos[i].getNMenge(); data[i][REPORT_ABHOLAUFTRAG_EINHEIT] = getSystemFac() .formatEinheit(aPositionDtos[i].getEinheitCNr(), locDruck, theClientDto); data[i][REPORT_ABHOLAUFTRAG_EINZELPREIS] = aPositionDtos[i].getNNettoeinzelpreis(); data[i][REPORT_ABHOLAUFTRAG_RABATT] = aPositionDtos[i].getDRabattsatz(); data[i][REPORT_ABHOLAUFTRAG_ANGEBOTSNUMMER] = aPositionDtos[i].getCAngebotnummer(); BigDecimal bdGesamtpreis = null; if (aPositionDtos[i].getNNettogesamtpreis() != null && aPositionDtos[i].getNMenge() != null) { bdGesamtpreis = aPositionDtos[i].getNNettogesamtpreis() .multiply(aPositionDtos[i].getNMenge()); } data[i][REPORT_ABHOLAUFTRAG_GESAMTPREIS] = bdGesamtpreis; /** * @todo MR-> Wird nicht mehr benoetigt, da * LPReport.printIdent das abbildet. Wegen kurzer Zeit * vor deploy nicht mehr geloescht. */ ArrayList<Object> images = new ArrayList<Object>(); ArtikelkommentarDto[] artikelkommentarDto = getArtikelkommentarFac() .artikelkommentardruckFindByArtikelIIdBelegartCNr(aPositionDtos[i].getArtikelIId(), LocaleFac.BELEGART_BESTELLUNG, theClientDto.getLocUiAsString(), theClientDto); if (artikelkommentarDto != null && artikelkommentarDto.length > 0) { String cPositionKommentarText = ""; for (int j = 0; j < artikelkommentarDto.length; j++) { if (artikelkommentarDto[j].getArtikelkommentarsprDto() != null) { String cDatenformat = artikelkommentarDto[j].getDatenformatCNr(); if (cDatenformat.equals(MediaFac.DATENFORMAT_MIMETYPE_IMAGE_JPEG) || artikelkommentarDto[j].getDatenformatCNr() .equals(MediaFac.DATENFORMAT_MIMETYPE_IMAGE_PNG) || artikelkommentarDto[j].getDatenformatCNr() .equals(MediaFac.DATENFORMAT_MIMETYPE_IMAGE_GIF)) { byte[] bild = artikelkommentarDto[j].getArtikelkommentarsprDto().getOMedia(); if (bild != null) { java.awt.Image myImage = Helper.byteArrayToImage(bild); data[i][REPORT_ABHOLAUFTRAG_IMAGE] = myImage; images.add(myImage); } } else if (artikelkommentarDto[j].getDatenformatCNr() .equals(MediaFac.DATENFORMAT_MIMETYPE_IMAGE_TIFF)) { byte[] bild = artikelkommentarDto[j].getArtikelkommentarsprDto().getOMedia(); java.awt.Image[] tiffs = Helper.tiffToImageArray(bild); if (tiffs != null) { for (int k = 0; k < tiffs.length; k++) { images.add(tiffs[k]); } } } } } } } // Betrifft Positionen if (aPositionDtos[i].getPositionsartCNr().equals(BestellpositionFac.BESTELLPOSITIONART_BETRIFFT)) { data[i][REPORT_ABHOLAUFTRAG_FREIERTEXT] = aPositionDtos[i].getCBez(); } // Texteingabe Positionen if (aPositionDtos[i].getPositionsartCNr() .equals(BestellpositionFac.BESTELLPOSITIONART_TEXTEINGABE)) { // IMS 1619 leerer Text soll als Leerezeile erscheinen String sText = aPositionDtos[i].getXTextinhalt(); if (sText != null && sText.trim().equals("")) { data[i][REPORT_ABHOLAUFTRAG_LEERZEILE] = " "; } else { data[i][REPORT_ABHOLAUFTRAG_FREIERTEXT] = sText; } } // Textbaustein Positionen if (aPositionDtos[i].getPositionsartCNr() .equals(BestellpositionFac.BESTELLPOSITIONART_TEXTBAUSTEIN)) { // Dto holen MediastandardDto oMediastandardDto = getMediaFac() .mediastandardFindByPrimaryKey(aPositionDtos[i].getMediastandardIId()); // zum Drucken vorbereiten BelegPositionDruckTextbausteinDto druckDto = printTextbaustein(oMediastandardDto, theClientDto); data[i][REPORT_ABHOLAUFTRAG_FREIERTEXT] = druckDto.getSFreierText(); data[i][REPORT_ABHOLAUFTRAG_IMAGE] = druckDto.getOImage(); } // Leerzeile Positionen if (aPositionDtos[i].getPositionsartCNr().equals(BestellpositionFac.BESTELLPOSITIONART_LEERZEILE)) { data[i][REPORT_ABHOLAUFTRAG_LEERZEILE] = " "; } // Seitenumbruch Positionen if (aPositionDtos[i].getPositionsartCNr() .equals(BestellpositionFac.BESTELLPOSITIONART_SEITENUMBRUCH)) { bbSeitenumbruch = new Boolean(!bbSeitenumbruch.booleanValue()); // toggle } data[i][REPORT_ABHOLAUFTRAG_SEITENUMBRUCH] = bbSeitenumbruch; data[i][REPORT_ABHOLAUFTRAG_POSITIONSART] = aPositionDtos[i].getPositionsartCNr(); } // Kopftext String sKopftext = bestellungDto.getCKopftextUebersteuert(); if (sKopftext == null || sKopftext.length() == 0) { BestellungtextDto oBestellungtextDto = getBestellungServiceFac() .bestellungtextFindByMandantLocaleCNr(theClientDto.getMandant(), lieferantDto.getPartnerDto().getLocaleCNrKommunikation(), BestellungServiceFac.BESTELLUNGTEXT_KOPFTEXT, theClientDto); sKopftext = oBestellungtextDto.getXTextinhalt(); } // Fusstext String sFusstext = bestellungDto.getCFusstextUebersteuert(); if (sFusstext == null || sFusstext.length() == 0) { BestellungtextDto oBestellungtextDto = getBestellungServiceFac() .bestellungtextFindByMandantLocaleCNr(theClientDto.getMandant(), lieferantDto.getPartnerDto().getLocaleCNrKommunikation(), BestellungServiceFac.BESTELLUNGTEXT_FUSSTEXT, theClientDto); sFusstext = oBestellungtextDto.getXTextinhalt(); } // Erstellung des Report HashMap<String, Object> mapParameter = new HashMap<String, Object>(); // CK: PJ 13849 mapParameter.put("P_BEARBEITER", getPersonalFac().getPersonRpt(bestellungDto.getPersonalIIdAnlegen(), theClientDto)); // die Parameter uebergeben if (bestellungDto.getBTeillieferungMoeglich() != null) { mapParameter.put("P_TEILLIEFERUNGMOEGLICH", new Boolean(Helper.short2boolean(bestellungDto.getBTeillieferungMoeglich()))); } String sSpediteur = null; if (bestellungDto.getSpediteurIId() != null) { if (getMandantFac().spediteurFindByPrimaryKey(bestellungDto.getSpediteurIId()) != null) { sSpediteur = getMandantFac().spediteurFindByPrimaryKey(bestellungDto.getSpediteurIId()) .getCNamedesspediteurs(); } } mapParameter.put("P_SPEDITEUR", sSpediteur != null ? sSpediteur : ""); mapParameter.put("P_LIEFERANTINTERNERKOMMENTAR", lieferantDto.getCHinweisintern()); mapParameter.put("P_LIEFERANTEXTERNERKOMMENTAR", lieferantDto.getCHinweisextern()); if (bestellungDto.getAuftragIId() != null) { AuftragDto auftragDto = getAuftragFac().auftragFindByPrimaryKey(bestellungDto.getAuftragIId()); mapParameter.put("P_AUFTRAGSNUMMER", auftragDto.getCNr()); } if (bestellungDto.getStatusCNr().equals(BestellpositionFac.BESTELLPOSITIONSTATUS_STORNIERT)) { mapParameter.put("P_STORNIERT", true); } else { mapParameter.put("P_STORNIERT", false); } mapParameter.put("Mandantenadresse", Helper.formatMandantAdresse(mandantDto)); mapParameter.put("P_LIEFERADRESSE_IST_NICHT_MANDANT", new Boolean(true)); if (bestellungDto.getPartnerIIdLieferadresse() != null) { PartnerDto lieferadresseDto = getPartnerFac() .partnerFindByPrimaryKey(bestellungDto.getPartnerIIdLieferadresse(), theClientDto); /** * @todo MR: Wenn ueber Client Ansprechpartner ausgewaehlt * werden kann, hier den richtigen Ansprechpartner * uebergeben. */ // SP581 if (lieferantDto.getPartnerDto().getLandplzortDto() != null && lieferadresseDto.getLandplzortDto() != null && !lieferantDto.getPartnerDto().getLandplzortDto().getLandDto().getIID() .equals(lieferadresseDto.getLandplzortDto().getLandDto().getIID())) { if (lieferadresseDto.getLandplzortDto().getLandDto().getLandIIdGemeinsamespostland() != null && lieferadresseDto.getLandplzortDto().getLandDto().getLandIIdGemeinsamespostland() .equals(lieferantDto.getPartnerDto().getLandplzortDto().getIlandID())) { mapParameter.put("P_LIEFERADRESSE", formatAdresseFuerAusdruck(lieferadresseDto, null, mandantDto, Helper.string2Locale(lieferadresseDto.getLocaleCNrKommunikation()))); } else if (lieferantDto.getPartnerDto().getLandplzortDto().getLandDto() .getLandIIdGemeinsamespostland() != null && lieferantDto.getPartnerDto().getLandplzortDto().getLandDto() .getLandIIdGemeinsamespostland() .equals(lieferadresseDto.getLandplzortDto().getIlandID())) { mapParameter.put("P_LIEFERADRESSE", formatAdresseFuerAusdruck(lieferadresseDto, null, mandantDto, Helper.string2Locale(lieferadresseDto.getLocaleCNrKommunikation()), LocaleFac.BELEGART_BESTELLUNG)); } else { mapParameter.put("P_LIEFERADRESSE", formatAdresseFuerAusdruck(lieferadresseDto, null, mandantDto, Helper.string2Locale(lieferadresseDto.getLocaleCNrKommunikation()), true, LocaleFac.BELEGART_BESTELLUNG)); } } else { mapParameter.put("P_LIEFERADRESSE", formatAdresseFuerAusdruck(lieferadresseDto, null, mandantDto, Helper.string2Locale(lieferadresseDto.getLocaleCNrKommunikation()), LocaleFac.BELEGART_BESTELLUNG)); } mapParameter.put("P_LIEFERADRESSENICHTNULL", new Boolean(true)); if (mandantDto.getPartnerIId().equals(bestellungDto.getPartnerIIdLieferadresse())) { mapParameter.put("P_LIEFERADRESSE_IST_NICHT_MANDANT", new Boolean(false)); } } if (bestellungDto.getAnfrageIId() != null) { AnfrageDto anfrageDto = getAnfrageFac().anfrageFindByPrimaryKey(bestellungDto.getAnfrageIId(), theClientDto); mapParameter.put("P_ANFRAGENUMMER", anfrageDto.getCNr()); } if (bestellungDto.getPartnerIIdAbholadresse() != null) { PartnerDto abholadresseDto = getPartnerFac() .partnerFindByPrimaryKey(bestellungDto.getPartnerIIdAbholadresse(), theClientDto); AnsprechpartnerDto oAnsprechpartnerDtoAbholadresse = null; if (bestellungDto.getAnsprechpartnerIIdAbholadresse() != null) { oAnsprechpartnerDtoAbholadresse = getAnsprechpartnerFac().ansprechpartnerFindByPrimaryKey( bestellungDto.getAnsprechpartnerIIdAbholadresse(), theClientDto); } mapParameter.put("P_ABHOLADRESSE", formatAdresseFuerAusdruck(abholadresseDto, oAnsprechpartnerDtoAbholadresse, mandantDto, Helper.string2Locale(abholadresseDto.getLocaleCNrKommunikation()), LocaleFac.BELEGART_BESTELLUNG)); if (oAnsprechpartnerDtoAbholadresse != null) { mapParameter.put("P_ANSPRECHPARTNER_ABHOLADRESSE", getPartnerFac().formatFixAnredeTitelName2Name1FuerAdresskopf( oAnsprechpartnerDtoAbholadresse.getPartnerDto(), Helper.string2Locale(abholadresseDto.getLocaleCNrKommunikation()), null)); } } if (lieferantDto.getPartnerRechnungsadresseDto() != null) { mapParameter.put("P_RECHNUNGADRESSE", formatAdresseFuerAusdruck(lieferantDto.getPartnerRechnungsadresseDto(), oAnsprechpartnerDto, mandantDto, Helper.string2Locale( lieferantDto.getPartnerRechnungsadresseDto().getLocaleCNrKommunikation()), LocaleFac.BELEGART_BESTELLUNG)); } mapParameter.put("Adressefuerausdruck", formatAdresseFuerAusdruck(lieferantDto.getPartnerDto(), oAnsprechpartnerDto, mandantDto, Helper.string2Locale(lieferantDto.getPartnerDto().getLocaleCNrKommunikation()), LocaleFac.BELEGART_BESTELLUNG)); if (oAnsprechpartnerDto != null) { mapParameter.put("P_ANSPRECHPARTNER_ADRESSBLOCK", getPartnerFac().formatFixAnredeTitelName2Name1FuerAdresskopf( oAnsprechpartnerDto.getPartnerDto(), Helper.string2Locale(lieferantDto.getPartnerDto().getLocaleCNrKommunikation()), null)); } /** * @todo fuer diesen Block eine zentrale Methode bauen. */ // die partnerIId des ansprechpartners brauch ich // daten holen String sEmail = getPartnerFac().partnerkommFindRespectPartnerAsStringOhneExec(partnerIIdAnsprechpartner, lieferantDto.getPartnerDto(), PartnerFac.KOMMUNIKATIONSART_EMAIL, theClientDto.getMandant(), theClientDto); String sFax = getPartnerFac().partnerkommFindRespectPartnerAsStringOhneExec(partnerIIdAnsprechpartner, lieferantDto.getPartnerDto(), PartnerFac.KOMMUNIKATIONSART_FAX, theClientDto.getMandant(), theClientDto); String sTelefon = getPartnerFac().partnerkommFindRespectPartnerAsStringOhneExec( partnerIIdAnsprechpartner, lieferantDto.getPartnerDto(), PartnerFac.KOMMUNIKATIONSART_TELEFON, theClientDto.getMandant(), theClientDto); // daten als parameter an den Report weitergeben mapParameter.put(LPReport.P_ANSPRECHPARTNEREMAIL, sEmail != null ? sEmail : ""); mapParameter.put(LPReport.P_ANSPRECHPARTNERFAX, sFax != null ? sFax : ""); mapParameter.put(LPReport.P_ANSPRECHPARTNERTELEFON, sTelefon != null ? sTelefon : ""); mapParameter.put("P_LIEFERANT_UID", lieferantDto.getPartnerDto().getCUid()); mapParameter.put("P_LIEFERANT_EORI", lieferantDto.getPartnerDto().getCEori()); if (lieferantDto.getKontoIIdKreditorenkonto() != null) { mapParameter.put("P_KREDITORENKONTO", getFinanzFac().kontoFindByPrimaryKey(lieferantDto.getKontoIIdKreditorenkonto()).getCNr()); } mapParameter.put("P_KUNDENNUMMER", lieferantDto.getCKundennr()); String cLabelRahmenOderLiefertermin = getTextRespectUISpr("lp.liefertermin", theClientDto.getMandant(), locDruck); String cLabelBestellungnr = null; if (bestellungDto.getBestellungartCNr().equals(BestellungFac.BESTELLUNGART_RAHMENBESTELLUNG_C_NR)) { cLabelRahmenOderLiefertermin = getTextRespectUISpr("lp.rahmentermin", theClientDto.getMandant(), locDruck); cLabelBestellungnr = getTextRespectUISpr("bes.bestellungnr.rahmen", theClientDto.getMandant(), locDruck); } else if (bestellungDto.getBestellungartCNr() .equals(BestellungFac.BESTELLUNGART_ABRUFBESTELLUNG_C_NR)) { BestellungDto rahmenbestellungDto = getBestellungFac() .bestellungFindByPrimaryKey(bestellungDto.getIBestellungIIdRahmenbestellung()); cLabelBestellungnr = getTextRespectUISpr("bes.bestellungnr.abrufrahmen", theClientDto.getMandant(), locDruck) + " " + rahmenbestellungDto.getCNr(); } else if (bestellungDto.getBestellungartCNr() .equals(BestellungFac.BESTELLUNGART_LEIHBESTELLUNG_C_NR)) { cLabelBestellungnr = getTextRespectUISpr("bes.bestellungnr.leihbestellung", theClientDto.getMandant(), locDruck); } else { cLabelBestellungnr = getTextRespectUISpr("bes.bestellungnr.bestellung", theClientDto.getMandant(), locDruck); } mapParameter.put("P_LABELBESTELLUNGNR", cLabelBestellungnr); mapParameter.put("P_BELEGKENNUNG", baueKennungBestellung(bestellungDto, theClientDto)); mapParameter.put("P_LABELRAHMENODERLIEFERTERMIN", cLabelRahmenOderLiefertermin); mapParameter.put("P_LIEFERTERMIN", Helper.formatDatum(bestellungDto.getDLiefertermin(), locDruck)); mapParameter.put("P_LIEFERART", getLocaleFac() .lieferartFindByIIdLocaleOhneExc(bestellungDto.getLieferartIId(), locDruck, theClientDto)); mapParameter.put("P_ZAHLUNGSKONDITION", getMandantFac().zahlungszielFindByIIdLocaleOhneExc( bestellungDto.getZahlungszielIId(), locDruck, theClientDto)); mapParameter.put("P_PROJEKTBEZ", bestellungDto.getCBez()); if (bestellungDto.getKostenstelleIId() != null) { KostenstelleDto kostenstelleDto = getSystemFac() .kostenstelleFindByPrimaryKey(bestellungDto.getKostenstelleIId()); mapParameter.put(LPReport.P_KOSTENSTELLE, kostenstelleDto.getCNr()); } String cBriefanrede = ""; if (oAnsprechpartnerDto != null) { cBriefanrede = getPartnerServicesFac().getBriefanredeFuerBeleg( bestellungDto.getAnsprechpartnerIId(), lieferantDto.getPartnerIId(), locDruck, theClientDto); } else { // neutrale Anrede cBriefanrede = getBriefanredeNeutralOderPrivatperson(lieferantDto.getPartnerIId(), locDruck, theClientDto); } mapParameter.put("Briefanrede", cBriefanrede); PersonalDto oPersonalBenutzer = getPersonalFac().personalFindByPrimaryKey(theClientDto.getIDPersonal(), theClientDto); PersonalDto oPersonalAnleger = getPersonalFac() .personalFindByPrimaryKey(bestellungDto.getPersonalIIdAnlegen(), theClientDto); mapParameter.put("P_UNSER_ZEICHEN", Helper.getKurzzeichenkombi(oPersonalBenutzer.getCKurzzeichen(), oPersonalAnleger.getCKurzzeichen())); mapParameter.put("P_BELEGDATUM", Helper.formatDatum(bestellungDto.getDBelegdatum(), locDruck)); mapParameter.put("P_WAEHRUNG", bestellungDto.getWaehrungCNr()); mapParameter.put("P_ALLGEMEINER_RABATT", bestellungDto.getFAllgemeinerRabattsatz()); mapParameter.put("P_ALLGEMEINER_RABATT_STRING", Helper.formatZahl(bestellungDto.getFAllgemeinerRabattsatz(), locDruck)); mapParameter.put("P_TERMINEUNTERSCHIEDLICH", new Boolean(bTermineUnterschiedlich)); mapParameter.put("Kopftext", Helper.formatStyledTextForJasper(sKopftext)); mapParameter.put("P_BELEGWERT", bestellungDto.getNBestellwert()); // die folgenden Felder werden im Report mit jeweils einer // trennenden Leerzeile // hintereinandergehaengt // MR 20071014 Folgende Felder muessen auch einzeln an Report // uebergeben werden. StringBuffer buff = new StringBuffer(); // Externer Kommentar if (bestellungDto.getXExternerKommentar() != null && bestellungDto.getXExternerKommentar().length() > 0) { mapParameter.put(P_EXTERNERKOMMENTAR, Helper.formatStyledTextForJasper(bestellungDto.getXExternerKommentar())); buff.append(bestellungDto.getXExternerKommentar()).append("\n\n"); } // Fusstext if (sFusstext != null) { mapParameter.put("P_FUSSTEXT", Helper.formatStyledTextForJasper(sFusstext)); buff.append(sFusstext).append("\n\n"); } StringBuffer buffVertreter = new StringBuffer(); // Anrede des Mandanten String sMandantAnrede = mandantDto.getPartnerDto().formatFixName1Name2(); if (sMandantAnrede != null) { mapParameter.put(P_MANDANT_ANREDE_UND_NAME, sMandantAnrede); buff.append(sMandantAnrede).append("\n\n"); buffVertreter.append(sMandantAnrede).append("\n\n"); } // P_SUMMARY: Die Unterschrift fuer Belege inclusive // Unterschriftstext und -funktion // Beispiel: // "i.A. Ing. Werner Hehenwarter" - im Falle der Bestellung der // Vertreter aus den Kopfdaten // "Einkaufsleiter" PersonalDto vertreterDto = null; if (bestellungDto.getPersonalIIdAnforderer() != null) { vertreterDto = getPersonalFac().personalFindByPrimaryKey(bestellungDto.getPersonalIIdAnforderer(), theClientDto); } if (vertreterDto != null) { String sVertreterUFTitelName2Name1 = vertreterDto.formatFixUFTitelName2Name1(); mapParameter.put(P_VERTRETER_UNTERSCHRIFTSFUNKTION_UND_NAME, sVertreterUFTitelName2Name1); buff.append(sVertreterUFTitelName2Name1); buffVertreter.append(sVertreterUFTitelName2Name1); if (vertreterDto.getCUnterschriftstext() != null && vertreterDto.getCUnterschriftstext().length() > 0) { String sUnterschriftstext = vertreterDto.getCUnterschriftstext(); mapParameter.put(P_VERTRETER_UNTERSCHRIFTSTEXT, sUnterschriftstext); buff.append("\n").append(sUnterschriftstext); buffVertreter.append("\n").append(sUnterschriftstext); } } mapParameter.put(P_VERTRETER, Helper.formatStyledTextForJasper(buffVertreter.toString())); mapParameter.put("P_SUMMARY", Helper.formatStyledTextForJasper(buff.toString())); mapParameter.put("P_STORNIERUNGSDATUM", bestellungDto.getTStorniert()); mapParameter.put("P_AENDERUNGSBESTELLUNGSDATUM", bestellungDto.getTAenderungsbestellung()); if (bestellungDto.getTAenderungsbestellung() != null) { mapParameter.put("P_AENDERUNGSBESTELLUNG", new Boolean(true)); } else { mapParameter.put("P_AENDERUNGSBESTELLUNG", new Boolean(false)); } if (bestellungDto.getAnsprechpartnerIIdLieferadresse() != null) { AnsprechpartnerDto ansprechpartnerLieferadresseDto = getAnsprechpartnerFac() .ansprechpartnerFindByPrimaryKey(bestellungDto.getAnsprechpartnerIIdLieferadresse(), theClientDto); mapParameter.put("P_ANSPRECHPARTNER_LIEFERADRESSE", ansprechpartnerLieferadresseDto.getPartnerDto().formatFixTitelName1Name2()); } initJRDS(mapParameter, BestellungReportFac.REPORT_MODUL, BestellungReportFac.REPORT_ABHOLAUFTRAG, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); return getReportPrint(); } catch (RemoteException ex) { throwEJBExceptionLPRespectOld(ex); } return print; } /** * Kennung fuer eine Bestellung zum Andrucken zusammenbauen. * * @param bestellungDtoI * die Bestellung * @param sUserI * der aktuelle Benutzer * @throws EJBExceptionLP * Ausnahme * @return String die Kennung */ private String baueKennungBestellung(BestellungDto bestellungDtoI, TheClientDto theClientDto) throws EJBExceptionLP { StringBuffer kennung = null; try { BelegartDto belegartDto = getLocaleFac().belegartFindByPrimaryKey(bestellungDtoI.getBelegartCNr(), theClientDto); kennung = new StringBuffer(belegartDto.getCKurzbezeichnung()); kennung.append(" ").append(bestellungDtoI.getCNr()); } catch (RemoteException ex) { throwEJBExceptionLPRespectOld(ex); } return kennung.toString(); } public JasperPrintLP printBestellungWareneingangsJournal(ReportJournalKriterienDto krit, Integer artikelklasseIId, Integer artikelgruppeIId, String artikelCNrVon, String artikelCNrBis, String projektCBezeichnung, Integer auftragIId, boolean bMitWarenverbrauch, TheClientDto theClientDto) throws EJBExceptionLP, RemoteException { Session session = null; useCase = UC_BESTELLUNG_WARENEINGANG; SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); boolean darfEinkaufspreisSehen = getTheJudgeFac().hatRecht(RechteFac.RECHT_LP_DARF_PREISE_SEHEN_EINKAUF, theClientDto); Criteria c = session.createCriteria(FLRWareneingangspositionen.class); Criteria cWe = c.createCriteria(WareneingangFac.FLR_WEPOS_FLRWARENEINGANG); Criteria cBesPos = c.createCriteria(WareneingangFac.FLR_WEPOS_FLRBESTELLPOSITION); Criteria cArt = cBesPos.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRARTIKEL); Criteria cBestellung = cWe.createCriteria(WareneingangFac.FLR_WE_FLRBESTELLUNG); cBestellung.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_MANDANT_C_NR, theClientDto.getMandant())); // Datum von if (krit.dVon != null) { cWe.add(Restrictions.ge(WareneingangFac.FLRSPALTE_T_WARENEINGANGSDATUM, Helper.cutDate(krit.dVon))); } // Datum bis if (krit.dBis != null) { java.sql.Date dBisTemp = Helper.cutDate(new java.sql.Date(krit.dBis.getTime() + 24 * 3600000)); cWe.add(Restrictions.lt(WareneingangFac.FLRSPALTE_T_WARENEINGANGSDATUM, dBisTemp)); } // Filter nach Projektbezeichnung if (projektCBezeichnung != null) { cBestellung.add(Restrictions.ilike(BestellungFac.FLR_BESTELLUNG_C_BEZPROJEKTBEZEICHNUNG, "%" + projektCBezeichnung + "%")); } // Filter nach Auftrag if (auftragIId != null) { cBestellung.add(Restrictions.like(BestellungFac.FLR_BESTELLUNG_AUFTRAG_I_ID, auftragIId)); } LpBelegnummerFormat f = getBelegnummerGeneratorObj().getBelegnummernFormat(theClientDto.getMandant()); Integer iGeschaeftsjahr = getParameterFac().getGeschaeftsjahr(theClientDto.getMandant()); String sMandantKuerzel = getParameterFac().getMandantparameter(theClientDto.getMandant(), ParameterFac.KATEGORIE_ALLGEMEIN, ParameterFac.PARAMETER_BELEGNUMMER_MANDANTKENNUNG).getCWert(); // reportjournal: 06 belegnummer von // reportjournalbelegnummer: 1 (von) hier funktionierts fast gleich // wie bei den Direktfiltern if (krit.sBelegnummerVon != null) { String sVon = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr, sMandantKuerzel, krit.sBelegnummerVon); cBestellung.add(Restrictions.ge(BestellungFac.FLR_BESTELLUNG_C_NR, sVon)); } // reportjournal: 07 belegnummer bis // reportjournalbelegnummer: 2 (bis) detto if (krit.sBelegnummerBis != null) { String sBis = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr, sMandantKuerzel, krit.sBelegnummerBis); cBestellung.add(Restrictions.le(BestellungFac.FLR_BESTELLUNG_C_NR, sBis)); } // Einschraenkung nach einer bestimmten Kostenstelle if (krit.kostenstelleIId != null) { cBestellung.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_KOSTENSTELLE_I_ID, krit.kostenstelleIId)); } // Einschraenkung nach einem bestimmten Lieferanten if (krit.lieferantIId != null) { cBestellung.add( Restrictions.eq(BestellungFac.FLR_BESTELLUNG_LIEFERANT_I_ID_BESTELLADRESSE, krit.lieferantIId)); } if (artikelklasseIId != null) { cArt.createCriteria(ArtikelFac.FLR_ARTIKEL_FLRARTIKELKLASSE) .add(Restrictions.eq("i_id", artikelklasseIId)); } if (artikelgruppeIId != null) { cArt.createCriteria(ArtikelFac.FLR_ARTIKEL_FLRARTIKELGRUPPE) .add(Restrictions.eq("i_id", artikelgruppeIId)); } if (artikelCNrVon != null) { cArt.add(Restrictions.ge(ArtikelFac.FLR_ARTIKEL_C_NR, artikelCNrVon)); } if (artikelCNrBis != null) { cArt.add(Restrictions.le(ArtikelFac.FLR_ARTIKEL_C_NR, artikelCNrBis)); } // Sortierung nach Kostenstelle ist immer die erste Sortierung if (krit.bSortiereNachKostenstelle) { cBestellung.createCriteria(BestellungFac.FLR_BESTELLUNG_FLRKOSTENSTELLE).addOrder(Order.asc("c_nr")); } Map<String, Object> map = new TreeMap<String, Object>(); if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_DATUM) { cWe.addOrder(Order.asc(WareneingangFac.FLRSPALTE_T_WARENEINGANGSDATUM)); map.put(LPReport.P_SORTIERUNG, getTextRespectUISpr("bes.wedatum", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_IDENT) { cArt.addOrder(Order.asc(ArtikelFac.FLR_ARTIKEL_C_NR)); map.put(LPReport.P_SORTIERUNG, getTextRespectUISpr("lp.artikel", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_BELEGNUMMER) { cBestellung.addOrder(Order.asc(BestellungFac.FLR_BESTELLUNG_C_NR)); map.put(LPReport.P_SORTIERUNG, getTextRespectUISpr("bes.belegnummer", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PROJEKT) { cBestellung.addOrder(Order.asc(BestellungFac.FLR_BESTELLUNG_C_BEZPROJEKTBEZEICHNUNG)); map.put(LPReport.P_SORTIERUNG, getTextRespectUISpr("lp.projekt", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) { cBestellung.createCriteria(BestellungFac.FLR_BESTELLUNG_FLRLIEFERANT) .createCriteria(LieferantFac.FLR_PARTNER) .addOrder(Order.asc(PartnerFac.FLR_PARTNER_NAME1NACHNAMEFIRMAZEILE1)); map.put(LPReport.P_SORTIERUNG, getTextRespectUISpr("lp.partner", theClientDto.getMandant(), theClientDto.getLocUi())); } else { c.addOrder(Order.asc("i_id")); map.put(LPReport.P_SORTIERUNG, "i_id"); } List<?> list = c.list(); data = new Object[list.size()][REPORT_BSWARENEINGANGSJOURNAL_ANZAHL_SPALTEN]; int i = 0; for (Iterator<?> iter = list.iterator(); iter.hasNext();) { FLRWareneingangspositionen w = (FLRWareneingangspositionen) iter.next(); if (w.getFlrwareneingang().getT_wareneingansdatum() != null) { data[i][REPORT_BSWARENEINGANGSJOURNAL_DATUM] = w.getFlrwareneingang().getT_wareneingansdatum(); } if (w.getFlrwareneingang().getFlrbestellung().getC_nr() != null) { data[i][REPORT_BSWARENEINGANGSJOURNAL_BESTELLNUMMER] = w.getFlrwareneingang().getFlrbestellung() .getC_nr(); } else { data[i][REPORT_BSWARENEINGANGSJOURNAL_BESTELLNUMMER] = ""; } if (w.getFlrbestellposition().getFlrartikel().getC_nr() != null) { data[i][REPORT_BSWARENEINGANGSJOURNAL_IDENT] = w.getFlrbestellposition().getFlrartikel().getC_nr(); } else { data[i][REPORT_BSWARENEINGANGSJOURNAL_IDENT] = ""; } if (w.getFlrbestellposition().getC_bezeichnung() != null) { data[i][REPORT_BSWARENEINGANGSJOURNAL_BEZEICHNUNG] = w.getFlrbestellposition().getC_bezeichnung(); } else { ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKeySmall( w.getFlrbestellposition().getFlrartikel().getI_id(), theClientDto); data[i][REPORT_BSWARENEINGANGSJOURNAL_BEZEICHNUNG] = artikelDto.formatBezeichnung(); } if (bMitWarenverbrauch) { data[i][REPORT_BSWARENEINGANGSJOURNAL_WA_REFERENZ] = getLagerFac() .getWarenausgangsreferenzSubreport(LocaleFac.BELEGART_BESTELLUNG, w.getI_id(), null, theClientDto); } // SP903 if (w.getFlrbestellposition().getPosition_i_id_artikelset() != null) { data[i][REPORT_BSWARENEINGANGSJOURNAL_SETARTIKEL_TYP] = ArtikelFac.SETARTIKEL_TYP_POSITION; } else { Session sessionSet = FLRSessionFactory.getFactory().openSession(); sessionSet = factory.openSession(); Criteria critSet = sessionSet.createCriteria(FLRBestellpositionReport.class); critSet.add(Restrictions.eq("position_i_id_artikelset", w.getFlrbestellposition().getI_id())); int iZeilen = critSet.list().size(); if (iZeilen > 0) { data[i][REPORT_BSWARENEINGANGSJOURNAL_SETARTIKEL_TYP] = ArtikelFac.SETARTIKEL_TYP_KOPF; } sessionSet.close(); } data[i][REPORT_BSWARENEINGANGSJOURNAL_PROJEKT] = w.getFlrbestellposition().getFlrbestellung() .getC_bezprojektbezeichnung(); data[i][REPORT_BSWARENEINGANGSJOURNAL_LIEFERANT] = w.getFlrbestellposition().getFlrbestellung() .getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1(); if (w.getN_geliefertemenge() != null) { data[i][REPORT_BSWARENEINGANGSJOURNAL_MENGE] = w.getN_geliefertemenge(); } else { data[i][REPORT_BSWARENEINGANGSJOURNAL_MENGE] = new BigDecimal(0); } if (w.getN_gelieferterpreis() != null) { if (darfEinkaufspreisSehen) { BigDecimal kurs = new BigDecimal(w.getFlrwareneingang().getFlrbestellung() .getF_wechselkursmandantwaehrungbestellungswaehrung()); if (kurs.doubleValue() != 0) { data[i][REPORT_BSWARENEINGANGSJOURNAL_GELIEFERTERPREIS] = w.getN_gelieferterpreis() .divide(kurs, 4, BigDecimal.ROUND_HALF_EVEN); } else { data[i][REPORT_BSWARENEINGANGSJOURNAL_GELIEFERTERPREIS] = new BigDecimal(0); } } else { data[i][REPORT_BSWARENEINGANGSJOURNAL_GELIEFERTERPREIS] = null; } } else { if (darfEinkaufspreisSehen) { data[i][REPORT_BSWARENEINGANGSJOURNAL_GELIEFERTERPREIS] = new BigDecimal(0); } else { data[i][REPORT_BSWARENEINGANGSJOURNAL_GELIEFERTERPREIS] = null; } } if (w.getN_einstandspreis() != null) { if (darfEinkaufspreisSehen) { BigDecimal kurs = new BigDecimal(w.getFlrwareneingang().getFlrbestellung() .getF_wechselkursmandantwaehrungbestellungswaehrung()); if (kurs.doubleValue() != 0) { data[i][REPORT_BSWARENEINGANGSJOURNAL_EINSTANDSPREIS] = w.getN_einstandspreis().divide(kurs, 4, BigDecimal.ROUND_HALF_EVEN); } else { data[i][REPORT_BSWARENEINGANGSJOURNAL_EINSTANDSPREIS] = new BigDecimal(0); } } else { data[i][REPORT_BSWARENEINGANGSJOURNAL_EINSTANDSPREIS] = null; } } else { if (darfEinkaufspreisSehen) { data[i][REPORT_BSWARENEINGANGSJOURNAL_EINSTANDSPREIS] = new BigDecimal(0); } else { data[i][REPORT_BSWARENEINGANGSJOURNAL_EINSTANDSPREIS] = null; } } data[i][REPORT_BSWARENEINGANGSJOURNAL_LIEFERSCHEIN] = w.getFlrwareneingang().getC_lieferscheinnr(); data[i][REPORT_BSWARENEINGANGSJOURNAL_LIEFERSCHEINDATUM] = w.getFlrwareneingang() .getT_lieferscheindatum(); if (w.getFlrwareneingang().getFlreingangsrechnung() != null) { data[i][REPORT_BSWARENEINGANGSJOURNAL_EINGANGSRECHNUNG] = w.getFlrwareneingang() .getFlreingangsrechnung().getC_nr(); } if (w.getFlrwareneingang().getFlrbestellung().getFlrkostenstelle() != null) { data[i][REPORT_BSWARENEINGANGSJOURNAL_KOSTENSTELLE] = w.getFlrwareneingang().getFlrbestellung() .getFlrkostenstelle().getC_nr(); } data[i][REPORT_BSWARENEINGANGSJOURNAL_ZUBUCHUNGSLAGER] = w.getFlrwareneingang().getFlrlager().getC_nr(); data[i][REPORT_BSWARENEINGANGSJOURNAL_RABATTSATZ] = w.getFlrwareneingang().getF_rabattsatz(); if (w.getFlrwareneingang().getFlrbestellung().getAuftrag_i_id() != null) { data[i][REPORT_BSWARENEINGANGSJOURNAL_AUFTRAG] = w.getFlrwareneingang().getFlrbestellung() .getFlrauftrag().getC_nr(); } if (w.getFlrbestellposition().getFlrartikel().getFlrartikelklasse() != null) { w.getFlrbestellposition().getFlrartikel().getFlrartikelklasse().getC_nr(); data[i][REPORT_BSWARENEINGANGSJOURNAL_ARTIKELKLASSE] = w.getFlrbestellposition().getFlrartikel() .getFlrartikelklasse().getC_nr(); } if (w.getFlrbestellposition().getFlrartikel().getFlrartikelgruppe() != null) { w.getFlrbestellposition().getFlrartikel().getFlrartikelgruppe().getC_nr(); data[i][REPORT_BSWARENEINGANGSJOURNAL_ARTIKELGRUPPE] = w.getFlrbestellposition().getFlrartikel() .getFlrartikelgruppe().getC_nr(); } data[i][REPORT_BSWARENEINGANGSJOURNAL_TRANSPORTKOSTEN] = w.getFlrwareneingang().getN_transportkosten(); data[i][REPORT_BSWARENEINGANGSJOURNAL_BANKSPESEN] = w.getFlrwareneingang().getN_bankspesen(); data[i][REPORT_BSWARENEINGANGSJOURNAL_ZOLLKOSTEN] = w.getFlrwareneingang().getN_zollkosten(); data[i][REPORT_BSWARENEINGANGSJOURNAL_SONSTIGEKOSTEN] = w.getFlrwareneingang().getN_sonstigespesen(); data[i][REPORT_BSWARENEINGANGSJOURNAL_GK_FAKTOR] = w.getFlrwareneingang().getF_gemeinkostenfaktor(); i++; } if (krit.dBis != null) { map.put("P_BIS", new Timestamp(krit.dBis.getTime())); } if (krit.dVon != null) { map.put("P_VON", new Timestamp(krit.dVon.getTime())); } map.put("P_MIT_WARENVERBRAUCH", new Boolean(bMitWarenverbrauch)); map.put(LPReport.P_REPORT_INFORMATION, ""); initJRDS(map, BestellungReportFac.REPORT_MODUL, BestellungReportFac.REPORT_BESTELLUNG_JOURNAL_WARENEINGANG, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); session.close(); return getReportPrint(); } public void sendMahnlauf(String cKommuniaktionsart, BSMahnlaufDto bsMahnlaufDto, Locale absenderLocale, TheClientDto theClientDto) throws EJBExceptionLP, Throwable { // BSMahnlaufDto bsMahnlaufDto = getBSMahnlaufDto(); if (bsMahnlaufDto != null) { Integer mahnlaufIId = bsMahnlaufDto.getIId(); String sAbsenderadresse = null; if (mahnlaufIId != null) { // Pruefung ob fuer Personal Mail definiert ist if (PartnerFac.KOMMUNIKATIONSART_EMAIL.equals(cKommuniaktionsart)) { PersonalDto personalDto = getPersonalFac() .personalFindByPrimaryKey(theClientDto.getIDPersonal(), theClientDto); if (personalDto.getCEmail() != null) { sAbsenderadresse = personalDto.getCEmail(); if (sAbsenderadresse == null) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_MAHNUNGSVERSAND_KEINE_ABSENDERADRESSE, new Exception(getTextRespectUISpr("bestellung.fehler.keinemailadressedefiniert", theClientDto.getMandant(), absenderLocale))); } if (!Helper.validateEmailadresse(sAbsenderadresse)) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_UNGUELTIGE_EMAILADRESSE, new Exception( getTextRespectUISpr("bestellung.fehler.ungueltigemailadressedefiniert", theClientDto.getMandant(), absenderLocale))); } } else { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_MAHNUNGSVERSAND_KEINE_ABSENDERADRESSE, new Exception(getTextRespectUISpr("bestellung.fehler.keinemailadressedefiniert", theClientDto.getMandant(), absenderLocale))); } } // Holen der Sammelmahnungen ArrayList<JasperPrintLP> hm = getBestellungReportFac().getMahnungenFuerAlleLieferanten(mahnlaufIId, theClientDto, true, true); if (!hm.isEmpty()) { for (int j = 0; j < hm.size(); j++) { JasperPrintLP print = hm.get(j); Integer iLieferant = (Integer) print.getAdditionalInformation("lieferantIId"); Integer ansprechpartnerIId = (Integer) print.getAdditionalInformation("ansprechpartnerIId"); HashMap bestellnummern = (HashMap) print.getAdditionalInformation("bestellnummern"); // Lieferant holen Integer iPartnerIId = getLieferantFac().lieferantFindByPrimaryKey(iLieferant, theClientDto) .getPartnerIId(); // Kommunikation holen PartnerDto partnerDto = getPartnerFac().partnerFindByPrimaryKey(iPartnerIId, theClientDto); String partkommDto = null; String sEmpfaenger = null; if (PartnerFac.KOMMUNIKATIONSART_EMAIL.equals(cKommuniaktionsart)) { partkommDto = partnerDto.getCEmail(); if (ansprechpartnerIId != null) { AnsprechpartnerDto ansprechpartnerDto = getAnsprechpartnerFac() .ansprechpartnerFindByPrimaryKey(ansprechpartnerIId, theClientDto); String komm = getPartnerFac().partnerkommFindOhneExec( partnerDto.getIId(), ansprechpartnerDto.getPartnerIIdAnsprechpartner(), PartnerFac.KOMMUNIKATIONSART_EMAIL, theClientDto.getMandant(), theClientDto); if (komm != null) { if (!Helper.validateEmailadresse(komm)) { sEmpfaenger = null; } else { sEmpfaenger = komm; } } } if (sEmpfaenger == null && partkommDto != null) { sEmpfaenger = partkommDto; if (!Helper.validateEmailadresse(sEmpfaenger)) { sEmpfaenger = null; } } } if (PartnerFac.KOMMUNIKATIONSART_FAX.equals(cKommuniaktionsart)) { partkommDto = partnerDto.getCFax(); if (partkommDto != null) { if (ansprechpartnerIId != null) { AnsprechpartnerDto ansprechpartnerDto = getAnsprechpartnerFac() .ansprechpartnerFindByPrimaryKey(ansprechpartnerIId, theClientDto); if (ansprechpartnerDto.getCFax() != null) { partkommDto = ansprechpartnerDto.getCFax(); if (!Helper.validateFaxnummer(ansprechpartnerDto.getCFax())) { sEmpfaenger = null; } else { sEmpfaenger = ansprechpartnerDto.getCFax(); } } } sEmpfaenger = getPartnerFac().passeInlandsAuslandsVorwahlAn(partnerDto.getIId(), theClientDto.getMandant(), partkommDto, theClientDto); // = partkommDto.getCInhalt(); if (sEmpfaenger == null && !Helper.validateFaxnummer(sEmpfaenger)) { sEmpfaenger = null; } } } if (sEmpfaenger != null) { VersandauftragDto versDto = new VersandauftragDto(); versDto.setCEmpfaenger(sEmpfaenger); versDto.setCAbsenderadresse(sAbsenderadresse); String sLocMahnung = getTextRespectUISpr("lp.mahnung", theClientDto.getMandant(), absenderLocale); versDto.setCDateiname(sLocMahnung + ".pdf"); long fiveMinutesInMillis = 1000 * 60 * 5; versDto.setTSendezeitpunktwunsch( new Timestamp(System.currentTimeMillis() + fiveMinutesInMillis)); partnerDto.getLocaleCNrKommunikation(); String betreff = sLocMahnung; if (bestellnummern.size() > 0) { Iterator it = bestellnummern.keySet().iterator(); while (it.hasNext()) { betreff += " " + it.next(); if (it.hasNext()) { betreff += ","; } } } if (betreff.length() > 95) { betreff = betreff.substring(0, 94) + "..."; } versDto.setCBetreff(betreff); versDto.setOInhalt(JasperExportManager.exportReportToPdf(print.getPrint())); getVersandFac().createVersandauftrag(versDto, false, theClientDto); // Mahnungen auf gemahnt setzen BSMahnungDto[] bsMahnungDto = getBSMahnwesenFac() .bsmahnungFindByBSMahnlaufIIdLieferantIId(mahnlaufIId, iLieferant, theClientDto.getMandant()); for (int i = 0; i < bsMahnungDto.length; i++) { getBSMahnwesenFac().mahneBSMahnung(bsMahnungDto[i].getIId(), theClientDto); } } } } } } } }