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.eingangsrechnung.ejbfac; import java.math.BigDecimal; import java.math.RoundingMode; import java.rmi.RemoteException; import java.sql.Date; import java.sql.Timestamp; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.TreeMap; import java.util.TreeSet; import javax.ejb.Stateless; import javax.ejb.TransactionAttribute; import javax.ejb.TransactionAttributeType; import javax.interceptor.Interceptors; import net.sf.jasperreports.engine.JRDataSource; import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JRField; 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.eingangsrechnung.fastlanereader.generated.FLREingangsrechnung; import com.lp.server.eingangsrechnung.fastlanereader.generated.FLREingangsrechnungKontierung; import com.lp.server.eingangsrechnung.fastlanereader.generated.FLREingangsrechnungReport; import com.lp.server.eingangsrechnung.fastlanereader.generated.FLREingangsrechnungzahlung; import com.lp.server.eingangsrechnung.service.EingangsrechnungDto; import com.lp.server.eingangsrechnung.service.EingangsrechnungFac; import com.lp.server.eingangsrechnung.service.EingangsrechnungKontierungDto; import com.lp.server.eingangsrechnung.service.EingangsrechnungReportFac; import com.lp.server.eingangsrechnung.service.EingangsrechnungzahlungDto; import com.lp.server.eingangsrechnung.service.ReportEingangsrechnungKontierungsjournalDto; import com.lp.server.finanz.ejbfac.BuchungDetailQueryBuilder; import com.lp.server.finanz.ejbfac.FinanzSubreportGenerator; import com.lp.server.finanz.fastlanereader.generated.FLRFinanzBuchungDetail; import com.lp.server.finanz.service.BankverbindungDto; import com.lp.server.finanz.service.FinanzFac; import com.lp.server.finanz.service.KontoDto; import com.lp.server.finanz.service.KontoDtoSmall; import com.lp.server.lieferschein.fastlanereader.generated.FLRLieferschein; import com.lp.server.lieferschein.service.LieferscheinDto; import com.lp.server.lieferschein.service.LieferscheinFac; import com.lp.server.partner.fastlanereader.generated.FLRLieferant; import com.lp.server.partner.service.BankDto; 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.partner.service.PartnerbankDto; import com.lp.server.system.pkgenerator.format.LpBelegnummerFormat; 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.MwstsatzDto; import com.lp.server.system.service.ParameterFac; import com.lp.server.system.service.ReportJournalKriterienDto; import com.lp.server.system.service.TheClientDto; import com.lp.server.system.service.WechselkursDto; import com.lp.server.system.service.ZahlungszielDto; import com.lp.server.util.HelperServer; import com.lp.server.util.LPReport; import com.lp.server.util.fastlanereader.FLRSessionFactory; 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 EingangsrechnungReportFacBean extends LPReport implements EingangsrechnungReportFac, JRDataSource { public final static int UC_OFFENE = 0; public final static int UC_ALLE = 1; public final static int UC_ZAHLUNGEN = 2; public final static int UC_KONTIERUNG = 3; public final static int UC_EINGANGSRECHNUNG = 4; public final static int UC_FEHLENDE_ZOLLPAPIERE = 5; public final static int UC_ERFASSTE_ZOLLPAPIERE = 6; private int useCase; private Object[][] data = null; private static int ZAHLUNGEN_FELD_ER_C_NR = 0; private static int ZAHLUNGEN_FELD_FIRMA = 1; private static int ZAHLUNGEN_FELD_ZAHLDATUM = 2; private static int ZAHLUNGEN_FELD_BETRAG = 3; private static int ZAHLUNGEN_FELD_BETRAG_UST = 4; private static int ZAHLUNGEN_FELD_BANK = 5; private static int ZAHLUNGEN_FELD_AUSZUG = 6; private static int ZAHLUNGEN_FELD_LAENDERART = 7; private static int ZAHLUNGEN_FELD_BETRAG_MANDANTENWAEHRUNG_ZU_BELEGZEIT = 8; private static int ZAHLUNGEN_FELD_BETRAG_UST_MANDANTENWAEHRUNG_ZU_BELEGZEIT = 9; private static int ZAHLUNGEN_FELD_BELEGWAEHRUNG = 10; private static int ZAHLUNGEN_FELD_BETRAG_FW = 11; private static int ZAHLUNGEN_FELD_BETRAG_UST_FW = 12; private static int ZAHLUNGEN_FELD_KONTO = 13; private static int ZAHLUNGEN_FELD_ZAHLUNGSART = 14; private static int ZAHLUNGEN_FELD_KASSENBUCH = 15; private static int ZAHLUNGEN_FELD_KREDITORENKONTO = 16; private static int ZAHLUNGEN_FELD_BLZ = 17; private static int ZAHLUNGEN_ANZAHL_FELDER = 18; private static int FEHLENDE_ZOLLPAPIERE_ER_C_NR = 0; private static int FEHLENDE_ZOLLPAPIERE_LIEFERANT = 1; private static int FEHLENDE_ZOLLPAPIERE_BRUTTOBETRAG = 2; private static int FEHLENDE_ZOLLPAPIERE_ER_DATUM = 3; private static int FEHLENDE_ZOLLPAPIERE_LIEFERSCHEIN_C_NR = 4; private static int FEHLENDE_ZOLLPAPIERE_ANZAHL_FELDER = 5; private static int ERFASSTE_ZOLLPAPIERE_ER_NUMMER = 0; private static int ERFASSTE_ZOLLPAPIERE_LIEFERANT = 1; private static int ERFASSTE_ZOLLPAPIERE_BRUTTOBETRAG = 2; private static int ERFASSTE_ZOLLPAPIERE_ER_DATUM = 3; private static int ERFASSTE_ZOLLPAPIERE_ZOLLPAPIERNUMMER = 4; private static int ERFASSTE_ZOLLPAPIERE_EINGANGSRECHNUNG_ZOLLPAPIER = 5; private static int ERFASSTE_ZOLLPAPIERE_ERFASSUNGSZEITPUNKT = 6; private static int ERFASSTE_ZOLLPAPIERE_PERSON_ERFASST = 7; private static int ERFASSTE_ZOLLPAPIERE_WAEHRUNG = 8; private static int ERFASSTE_ZOLLPAPIERE_LS_NUMMER = 9; private static int ERFASSTE_ZOLLPAPIERE_ANZAHL_FELDER = 10; private static int OFFENE_FELD_ER_C_NR = 0; private static int OFFENE_FELD_FIRMA = 1; private static int OFFENE_FELD_ERDATUM = 2; private static int OFFENE_FELD_WERT = 3; private static int OFFENE_FELD_ZAHLDATUM = 4; private static int OFFENE_FELD_BETRAG = 5; private static int OFFENE_FELD_OFFEN = 6; private static int OFFENE_FELD_LIEFERANTENRECHNUNGSNUMMER = 7; private static int OFFENE_FELD_TEXT = 8; private static int OFFENE_FELD_FREIGABEDATUM = 9; private static int OFFENE_FELD_BETRAG_KURS_BELEGDATUM = 10; private static int OFFENE_FELD_OFFEN_KURS_BELEGDATUM = 11; private static int OFFENE_FELD_ZAHLUNGSZIEL = 12; private static int OFFENE_FELD_SKONTOTAGE1 = 13; private static int OFFENE_FELD_SKONTOTAGE2 = 14; private static int OFFENE_FELD_SKONTOPROZENT1 = 15; private static int OFFENE_FELD_SKONTOPROZENT2 = 16; private static int OFFENE_FELD_NETTOTAGE = 17; private static int OFFENE_FELD_FAELLIGKEIT = 18; private static int OFFENE_FELD_FAELLIGKEIT_SKONTO1 = 19; private static int OFFENE_FELD_FAELLIGKEIT_SKONTO2 = 20; private static int OFFENE_FELD_OFFEN_FW = 21; private static int OFFENE_FELD_BETRAG_FW = 22; private static int OFFENE_FELD_ERWAEHRUNG = 23; private static int OFFENE_FELD_WERT_FW = 24; private static int OFFENE_FELD_ERKURS = 25; private static int OFFENE_FELD_KURS_STICHTAG = 26; private static int OFFENE_FELD_MAHNSTUFE = 27; private static int OFFENE_FELD_MAHNDATUM = 28; private static int OFFENE_FELD_KREDITORENNR = 29; private static int OFFENE_SUBREPORT_OFFENE_BUCHUNGEN = 30; private static final int OFFENE_ANZAHL_FELDER = 31; private static int KONTIERUNG_FELD_KOSTENSTELLE_C_NR = 0; private static int KONTIERUNG_FELD_KOSTENSTELLE_C_BEZ = 1; private static int KONTIERUNG_FELD_KONTO_C_NR = 2; private static int KONTIERUNG_FELD_KONTO_C_BEZ = 3; private static int KONTIERUNG_FELD_ER_C_NR = 4; private static int KONTIERUNG_FELD_ER_DATUM = 5; private static int KONTIERUNG_FELD_ER_LIEFERANT = 6; private static int KONTIERUNG_FELD_ER_TEXT = 7; private static int KONTIERUNG_FELD_WERT = 8; private static int KONTIERUNG_FELD_WERT_UST = 9; private static int KONTIERUNG_FELD_WERT_BEZAHLT = 10; private static int KONTIERUNG_FELD_KONTOART_C_NR = 11; private static int KONTIERUNG_FELD_LETZTES_ZAHLDATUM = 12; private static int KONTIERUNG_FELD_ERRECHNETER_STEUERSATZ = 13; private static int KONTIERUNG_FELD_LIEFERANTENRECHNUNGSNUMMER = 14; private static int KONTIERUNG_FELD_ER_FREIGABEDATUM = 15; private static int KONTIERUNG_FELD_WERT_BEZAHLT_ERKURS = 16; private static int KONTIERUNG_FELD_KREDITORENNUMMER = 17; private static int KONTIERUNG_FELD_WAEHRUNG_C_NR = 18; private static int KONTIERUNG_FELD_WERT_FW = 19; private static int KONTIERUNG_FELD_WERT_UST_FW = 20; private static int KONTIERUNG_FELD_WERT_BEZAHLT_FW = 21; private static int KONTIERUNG_FELD_ER_KURS = 22; private static int KONTIERUNG_FELD_ER_WEARTIKEL = 23; private static int KONTIERUNG_ANZAHL_FELDER = 24; private final static int FELD_ALLE_EINGANGSRECHNUNGSNUMMER = 0; private final static int FELD_ALLE_LIEFERANT = 1; private final static int FELD_ALLE_BELEGDATUM = 2; private final static int FELD_ALLE_FREIGABEDATUM = 3; private final static int FELD_ALLE_ZIELDATUM = 4; private final static int FELD_ALLE_BEZAHLTDATUM = 5; private final static int FELD_ALLE_TEXT = 6; private final static int FELD_ALLE_KOSTENSTELLENUMMER = 7; private final static int FELD_ALLE_WERTUST = 8; private final static int FELD_ALLE_WERT = 9; private final static int FELD_ALLE_WERTNETTO = 10; private final static int FELD_ALLE_BANK = 11; private final static int FELD_ALLE_AUSZUG = 12; private final static int FELD_ALLE_KREDITORENKONTO = 13; private final static int FELD_ALLE_KONTO = 14; private final static int FELD_ALLE_LAENDERART = 15; private final static int FELD_ALLE_KONTIERUNG = 16; private final static int FELD_ALLE_STATUS = 17; private final static int FELD_ALLE_ZAHLBETRAG = 18; private final static int FELD_ALLE_WERTUST_FW = 19; private final static int FELD_ALLE_WERT_FW = 20; private final static int FELD_ALLE_WERTNETTO_FW = 21; private final static int FELD_ALLE_ZAHLBETRAG_FW = 22; private final static int FELD_ALLE_KURS = 23; private final static int FELD_ALLE_WAEHRUNG = 24; private final static int FELD_ALLE_ZOLLBELEGNUMMER = 25; private final static int FELD_ALLE_UST = 26; private final static int FELD_ALLE_WEARTIKEL = 27; private final static int ALLE_ANZAHL_FELDER = 28; 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_AUSZUG".equals(fieldName)) { value = data[index][FELD_ALLE_AUSZUG]; } else if ("F_BANK".equals(fieldName)) { value = data[index][FELD_ALLE_BANK]; } else if ("F_BELEGDATUM".equals(fieldName)) { value = data[index][FELD_ALLE_BELEGDATUM]; } else if ("F_BEZAHLTDATUM".equals(fieldName)) { value = data[index][FELD_ALLE_BEZAHLTDATUM]; } else if ("F_EINGANGSRECHNUNGSNUMMER".equals(fieldName)) { value = data[index][FELD_ALLE_EINGANGSRECHNUNGSNUMMER]; } else if ("F_STATUS".equals(fieldName)) { value = data[index][FELD_ALLE_STATUS]; } else if ("F_FREIGABEDATUM".equals(fieldName)) { value = data[index][FELD_ALLE_FREIGABEDATUM]; } else if ("F_KOSTENSTELLENUMMER".equals(fieldName)) { value = data[index][FELD_ALLE_KOSTENSTELLENUMMER]; } else if ("F_LIEFERANT".equals(fieldName)) { value = data[index][FELD_ALLE_LIEFERANT]; } else if ("F_TEXT".equals(fieldName)) { value = data[index][FELD_ALLE_TEXT]; } else if ("F_WE_ARTIKEL".equals(fieldName)) { value = data[index][FELD_ALLE_WEARTIKEL]; } else if ("F_BETRAG".equals(fieldName)) { value = data[index][FELD_ALLE_WERT]; } else if ("F_BETRAGNETTO".equals(fieldName)) { value = data[index][FELD_ALLE_WERTNETTO]; } else if ("F_BETRAGUST".equals(fieldName)) { value = data[index][FELD_ALLE_WERTUST]; } else if ("F_BETRAG_FW".equals(fieldName)) { value = data[index][FELD_ALLE_WERT_FW]; } else if ("F_BETRAGNETTO_FW".equals(fieldName)) { value = data[index][FELD_ALLE_WERTNETTO_FW]; } else if ("F_BETRAGUST_FW".equals(fieldName)) { value = data[index][FELD_ALLE_WERTUST_FW]; } else if ("F_ZIELDATUM".equals(fieldName)) { value = data[index][FELD_ALLE_ZIELDATUM]; } else if ("F_KREDITORENKONTO".equals(fieldName)) { value = data[index][FELD_ALLE_KREDITORENKONTO]; } else if ("F_KONTO".equals(fieldName)) { value = data[index][FELD_ALLE_KONTO]; } else if ("F_LAENDERART".equals(fieldName)) { value = data[index][FELD_ALLE_LAENDERART]; } else if ("F_KONTIERUNG_SUBREPORT".equals(fieldName)) { value = data[index][FELD_ALLE_KONTIERUNG]; } else if ("F_ZAHLBETRAG".equals(fieldName)) { value = data[index][FELD_ALLE_ZAHLBETRAG]; } else if ("F_ZAHLBETRAG_FW".equals(fieldName)) { value = data[index][FELD_ALLE_ZAHLBETRAG_FW]; } else if ("F_KURS".equals(fieldName)) { value = data[index][FELD_ALLE_KURS]; } else if ("F_WAEHRUNG".equals(fieldName)) { value = data[index][FELD_ALLE_WAEHRUNG]; } else if ("F_ZOLLBELEGNUMMER".equals(fieldName)) { value = data[index][FELD_ALLE_ZOLLBELEGNUMMER]; } else if ("F_UST".equals(fieldName)) { value = data[index][FELD_ALLE_UST]; } } break; case UC_KONTIERUNG: { if ("KOSTENSTELLE_C_NR".equals(fieldName)) { value = data[index][KONTIERUNG_FELD_KOSTENSTELLE_C_NR]; } else if ("KOSTENSTELLE_C_BEZ".equals(fieldName)) { value = data[index][KONTIERUNG_FELD_KOSTENSTELLE_C_BEZ]; } else if ("KONTO_C_NR".equals(fieldName)) { value = data[index][KONTIERUNG_FELD_KONTO_C_NR]; } else if ("KONTO_C_BEZ".equals(fieldName)) { value = data[index][KONTIERUNG_FELD_KONTO_C_BEZ]; } else if ("ER_C_NR".equals(fieldName)) { value = data[index][KONTIERUNG_FELD_ER_C_NR]; } else if ("ER_DATUM".equals(fieldName)) { value = data[index][KONTIERUNG_FELD_ER_DATUM]; } else if ("ER_LIEFERANT".equals(fieldName)) { value = data[index][KONTIERUNG_FELD_ER_LIEFERANT]; } else if ("ER_TEXT".equals(fieldName)) { value = data[index][KONTIERUNG_FELD_ER_TEXT]; } else if ("ER_WE_ARTIKEL".equals(fieldName)) { value = data[index][KONTIERUNG_FELD_ER_WEARTIKEL]; } else if ("ER_WERT".equals(fieldName)) { value = data[index][KONTIERUNG_FELD_WERT]; } else if ("ER_WERT_UST".equals(fieldName)) { value = data[index][KONTIERUNG_FELD_WERT_UST]; } else if ("ER_WERT_BEZAHLT".equals(fieldName)) { value = data[index][KONTIERUNG_FELD_WERT_BEZAHLT]; } else if ("ER_WERT_FW".equals(fieldName)) { value = data[index][KONTIERUNG_FELD_WERT_FW]; } else if ("ER_WERT_UST_FW".equals(fieldName)) { value = data[index][KONTIERUNG_FELD_WERT_UST_FW]; } else if ("ER_WERT_BEZAHLT_FW".equals(fieldName)) { value = data[index][KONTIERUNG_FELD_WERT_BEZAHLT_FW]; } else if ("F_WAEHRUNG".equals(fieldName)) { value = data[index][KONTIERUNG_FELD_WAEHRUNG_C_NR]; } else if ("F_ER_KURS".equals(fieldName)) { value = data[index][KONTIERUNG_FELD_ER_KURS]; } else if ("KONTOART_C_NR".equals(fieldName)) { value = data[index][KONTIERUNG_FELD_KONTOART_C_NR]; } else if ("F_LETZTESZAHLDATUM".equals(fieldName)) { value = data[index][KONTIERUNG_FELD_LETZTES_ZAHLDATUM]; } else if ("F_ERRECHNETERSTEUERSATZ".equals(fieldName)) { value = data[index][KONTIERUNG_FELD_ERRECHNETER_STEUERSATZ]; } else if ("F_LIEFERANTENRECHNUNGSNUMMER".equals(fieldName)) { value = data[index][KONTIERUNG_FELD_LIEFERANTENRECHNUNGSNUMMER]; } else if ("ER_FREIGABEDATUM".equals(fieldName)) { value = data[index][KONTIERUNG_FELD_ER_FREIGABEDATUM]; } else if ("ER_WERT_BEZAHLT_ERKURS".equals(fieldName)) { value = data[index][KONTIERUNG_FELD_WERT_BEZAHLT_ERKURS]; } else if ("F_KREDITORENNUMMER".equals(fieldName)) { value = data[index][KONTIERUNG_FELD_KREDITORENNUMMER]; } } break; case UC_FEHLENDE_ZOLLPAPIERE: { if ("ER_C_NR".equals(fieldName)) { value = data[index][FEHLENDE_ZOLLPAPIERE_ER_C_NR]; } else if ("BRUTTOBETRAG".equals(fieldName)) { value = data[index][FEHLENDE_ZOLLPAPIERE_BRUTTOBETRAG]; } else if ("LIEFERANT".equals(fieldName)) { value = data[index][FEHLENDE_ZOLLPAPIERE_LIEFERANT]; } else if ("ER_DATUM".equals(fieldName)) { value = data[index][FEHLENDE_ZOLLPAPIERE_ER_DATUM]; } else if ("LIEFERSCHEIN_C_NR".equals(fieldName)) { value = data[index][FEHLENDE_ZOLLPAPIERE_LIEFERSCHEIN_C_NR]; } } break; case UC_ERFASSTE_ZOLLPAPIERE: { if ("F_ERNUMMER".equals(fieldName)) { value = data[index][ERFASSTE_ZOLLPAPIERE_ER_NUMMER]; } else if ("F_LIEFERANT".equals(fieldName)) { value = data[index][ERFASSTE_ZOLLPAPIERE_LIEFERANT]; } else if ("F_BRUTTOBETRAG".equals(fieldName)) { value = data[index][ERFASSTE_ZOLLPAPIERE_BRUTTOBETRAG]; } else if ("F_ERDATUM".equals(fieldName)) { value = data[index][ERFASSTE_ZOLLPAPIERE_ER_DATUM]; } else if ("F_ZOLLPAPIERNUMMER".equals(fieldName)) { value = data[index][ERFASSTE_ZOLLPAPIERE_ZOLLPAPIERNUMMER]; } else if ("F_EINGANGSRECHNUNGSNUMMER_ZOLLIMPORT".equals(fieldName)) { value = data[index][ERFASSTE_ZOLLPAPIERE_EINGANGSRECHNUNG_ZOLLPAPIER]; } else if ("F_ERFASSUNGSZEITPUNKT".equals(fieldName)) { value = data[index][ERFASSTE_ZOLLPAPIERE_ERFASSUNGSZEITPUNKT]; } else if ("F_PERSON_ERFASST".equals(fieldName)) { value = data[index][ERFASSTE_ZOLLPAPIERE_PERSON_ERFASST]; } else if ("F_WAEHRUNG".equals(fieldName)) { value = data[index][ERFASSTE_ZOLLPAPIERE_WAEHRUNG]; } else if ("F_LSNUMMER".equals(fieldName)) { value = data[index][ERFASSTE_ZOLLPAPIERE_LS_NUMMER]; } } break; case UC_OFFENE: { if ("ER_C_NR".equals(fieldName)) { value = data[index][OFFENE_FELD_ER_C_NR]; } else if ("FIRMA".equals(fieldName)) { value = data[index][OFFENE_FELD_FIRMA]; } else if ("ER_DATUM".equals(fieldName)) { value = data[index][OFFENE_FELD_ERDATUM]; } else if ("MAHNDATUM".equals(fieldName)) { value = data[index][OFFENE_FELD_MAHNDATUM]; } else if ("KREDITORENNR".equals(fieldName)) { value = data[index][OFFENE_FELD_KREDITORENNR]; } else if ("MAHNSTUFE".equals(fieldName)) { value = data[index][OFFENE_FELD_MAHNSTUFE]; } else if ("WERT".equals(fieldName)) { value = data[index][OFFENE_FELD_WERT]; } else if ("ZAHLDATUM".equals(fieldName)) { value = data[index][OFFENE_FELD_ZAHLDATUM]; } else if ("BETRAG".equals(fieldName)) { value = data[index][OFFENE_FELD_BETRAG]; } else if ("OFFEN".equals(fieldName)) { value = data[index][OFFENE_FELD_OFFEN]; } else if ("F_LIEFERANTENRECHNUNGSNUMMER".equals(fieldName)) { value = data[index][OFFENE_FELD_LIEFERANTENRECHNUNGSNUMMER]; } else if ("F_TEXT".equals(fieldName)) { value = data[index][OFFENE_FELD_TEXT]; } else if ("F_FREIGABEDATUM".equals(fieldName)) { value = data[index][OFFENE_FELD_FREIGABEDATUM]; } else if ("F_BETRAG_BELEGKURS".equals(fieldName)) { value = data[index][OFFENE_FELD_BETRAG_KURS_BELEGDATUM]; } else if ("F_OFFEN_BELEGKURS".equals(fieldName)) { value = data[index][OFFENE_FELD_OFFEN_KURS_BELEGDATUM]; } else if ("F_ZAHLUNGSZIEL".equals(fieldName)) { value = data[index][OFFENE_FELD_ZAHLUNGSZIEL]; } else if ("F_SKONTOTAGE1".equals(fieldName)) { value = data[index][OFFENE_FELD_SKONTOTAGE1]; } else if ("F_SKONTOTAGE2".equals(fieldName)) { value = data[index][OFFENE_FELD_SKONTOTAGE2]; } else if ("F_SKONTOPROZENT1".equals(fieldName)) { value = data[index][OFFENE_FELD_SKONTOPROZENT1]; } else if ("F_SKONTOPROZENT2".equals(fieldName)) { value = data[index][OFFENE_FELD_SKONTOPROZENT2]; } else if ("F_NETTOTAGE".equals(fieldName)) { value = data[index][OFFENE_FELD_NETTOTAGE]; } else if ("F_FAELLIGKEIT".equals(fieldName)) { value = data[index][OFFENE_FELD_FAELLIGKEIT]; } else if ("F_FAELLIGKEIT_SKONTO1".equals(fieldName)) { value = data[index][OFFENE_FELD_FAELLIGKEIT_SKONTO1]; } else if ("F_FAELLIGKEIT_SKONTO2".equals(fieldName)) { value = data[index][OFFENE_FELD_FAELLIGKEIT_SKONTO2]; } else if ("F_OFFEN_FW".equals(fieldName)) { value = data[index][OFFENE_FELD_OFFEN_FW]; } else if ("F_BETRAG_FW".equals(fieldName)) { value = data[index][OFFENE_FELD_BETRAG_FW]; } else if ("F_ER_WAEHRUNG".equals(fieldName)) { value = data[index][OFFENE_FELD_ERWAEHRUNG]; } else if ("F_ER_WERT_FW".equals(fieldName)) { value = data[index][OFFENE_FELD_WERT_FW]; } else if ("F_ER_KURS".equals(fieldName)) { value = data[index][OFFENE_FELD_ERKURS]; } else if ("F_KURS_STICHTAG".equals(fieldName)) { value = data[index][OFFENE_FELD_KURS_STICHTAG]; } else if ("F_SUBREPORT_OFFENE_BUCHUNGEN".equals(fieldName)) { value = data[index][OFFENE_SUBREPORT_OFFENE_BUCHUNGEN]; } } break; case UC_ZAHLUNGEN: { if ("ER_C_NR".equals(fieldName)) { value = data[index][ZAHLUNGEN_FELD_ER_C_NR]; } else if ("FIRMA".equals(fieldName)) { value = data[index][ZAHLUNGEN_FELD_FIRMA]; } else if ("ZAHLDATUM".equals(fieldName)) { value = data[index][ZAHLUNGEN_FELD_ZAHLDATUM]; } else if ("BETRAG".equals(fieldName)) { value = data[index][ZAHLUNGEN_FELD_BETRAG]; } else if ("BETRAG_UST".equals(fieldName)) { value = data[index][ZAHLUNGEN_FELD_BETRAG_UST]; } else if ("BANK".equals(fieldName)) { value = data[index][ZAHLUNGEN_FELD_BANK]; } else if ("AUSZUG".equals(fieldName)) { value = data[index][ZAHLUNGEN_FELD_AUSZUG]; } else if ("F_LAENDERART".equals(fieldName)) { value = data[index][ZAHLUNGEN_FELD_LAENDERART]; } else if ("F_BETRAG_BELEGZEIT".equals(fieldName)) { value = data[index][ZAHLUNGEN_FELD_BETRAG_MANDANTENWAEHRUNG_ZU_BELEGZEIT]; } else if ("F_BETRAG_UST_BELEGZEIT".equals(fieldName)) { value = data[index][ZAHLUNGEN_FELD_BETRAG_UST_MANDANTENWAEHRUNG_ZU_BELEGZEIT]; } else if ("F_WAEHRUNG".equals(fieldName)) { value = data[index][ZAHLUNGEN_FELD_BELEGWAEHRUNG]; } else if ("F_BETRAG_FW".equals(fieldName)) { value = data[index][ZAHLUNGEN_FELD_BETRAG_FW]; } else if ("F_BETRAG_UST_FW".equals(fieldName)) { value = data[index][ZAHLUNGEN_FELD_BETRAG_UST_FW]; } else if ("F_KONTO".equals(fieldName)) { value = data[index][ZAHLUNGEN_FELD_KONTO]; } else if ("F_BLZ".equals(fieldName)) { value = data[index][ZAHLUNGEN_FELD_BLZ]; } else if ("F_ZAHLUNGSART".equals(fieldName)) { value = data[index][ZAHLUNGEN_FELD_ZAHLUNGSART]; } else if ("F_KASSENBUCH".equals(fieldName)) { value = data[index][ZAHLUNGEN_FELD_KASSENBUCH]; } else if ("F_KREDITORENKONTO".equals(fieldName)) { value = data[index][ZAHLUNGEN_FELD_KREDITORENKONTO]; } } break; case UC_EINGANGSRECHNUNG: { value = null; } break; } return value; } @TransactionAttribute(TransactionAttributeType.NEVER) public JasperPrintLP printZahlungsjournal(TheClientDto theClientDto, int iSortierung, Date dVon, Date dBis, boolean bZusatzkosten) { this.useCase = UC_ZAHLUNGEN; boolean fertig = true; SessionFactory factory = FLRSessionFactory.getFactory(); Session session = null; try { session = factory.openSession(); String s = "from FLREingangsrechnungzahlung zahlung WHERE zahlung.flreingangsrechnung.mandant_c_nr='" + theClientDto.getMandant() + "'"; s += " AND zahlung.t_zahldatum>='" + Helper.formatDateWithSlashes(dVon) + "' "; s += " AND zahlung.t_zahldatum<'" + Helper.formatDateWithSlashes(Helper.addiereTageZuDatum(dBis, 1)) + "' "; if (bZusatzkosten) { s += " AND zahlung.flreingangsrechnung.eingangsrechnungart_c_nr='" + EingangsrechnungFac.EINGANGSRECHNUNGART_ZUSATZKOSTEN + "' "; } else { s += " AND zahlung.flreingangsrechnung.eingangsrechnungart_c_nr<>'" + EingangsrechnungFac.EINGANGSRECHNUNGART_ZUSATZKOSTEN + "' "; } Map<String, Object> mapParameter = new TreeMap<String, Object>(); mapParameter.put("P_VON", dVon); mapParameter.put("P_BIS", dBis); mapParameter.put("P_ZUSATZKOSTEN", new Boolean(bZusatzkosten)); mapParameter.put(LPReport.P_WAEHRUNG, theClientDto.getSMandantenwaehrung()); String sSortierung = null; if (iSortierung == EingangsrechnungReportFac.REPORT_ZAHLUNGEN_SORT_BANK_AUSZUG) { sSortierung = "Bank, Auszug"; s += " ORDER BY zahlung.flrbankverbindung.flrbank.flrpartner.c_name1nachnamefirmazeile1, " + "zahlung.i_auszug, zahlung.zahlungsart_c_nr"; } else if (iSortierung == EingangsrechnungReportFac.REPORT_ZAHLUNGEN_SORT_RECHNUNGSNUMMER) { sSortierung = "Rechnungsnummer"; s += " ORDER BY zahlung.flreingangsrechnung.c_nr"; // c_lieferantenrechnungsnummer"; } else if (iSortierung == EingangsrechnungReportFac.REPORT_ZAHLUNGEN_SORT_ZAHLUNGSAUSGANG) { sSortierung = "Zahlungsausgang"; s += " ORDER BY zahlung.t_zahldatum"; } Query query = session.createQuery(s); mapParameter.put(LPReport.P_SORTIERUNG, sSortierung); List<?> resultList = query.list(); Iterator resultListIterator = resultList.iterator(); int row = 0; data = new Object[resultList.size()][ZAHLUNGEN_ANZAHL_FELDER]; while (resultListIterator.hasNext()) { FLREingangsrechnungzahlung zahlung = (FLREingangsrechnungzahlung) resultListIterator.next(); EingangsrechnungDto erDto = getEingangsrechnungFac() .eingangsrechnungFindByPrimaryKey(zahlung.getEingangsrechnung_i_id()); String sErCNr = erDto.getCNr(); LieferantDto lieferantDto = getLieferantFac().lieferantFindByPrimaryKey(erDto.getLieferantIId(), theClientDto); PartnerDto partnerDto = lieferantDto.getPartnerDto(); String sFirma = partnerDto.formatFixTitelName1Name2(); String sLaenderart = getFinanzServiceFac().getLaenderartZuPartner(partnerDto.getIId(), theClientDto); data[row][ZAHLUNGEN_FELD_KREDITORENKONTO] = lieferantDto.getIKreditorenkontoAsIntegerNotiId(); data[row][ZAHLUNGEN_FELD_LAENDERART] = sLaenderart; data[row][ZAHLUNGEN_FELD_ER_C_NR] = sErCNr; data[row][ZAHLUNGEN_FELD_FIRMA] = sFirma; data[row][ZAHLUNGEN_FELD_ZAHLDATUM] = zahlung.getT_zahldatum(); data[row][ZAHLUNGEN_FELD_BETRAG] = zahlung.getN_betrag(); data[row][ZAHLUNGEN_FELD_BETRAG_UST] = zahlung.getN_betrag_ust(); if (zahlung.getN_betragfw() != null) { data[row][ZAHLUNGEN_FELD_BETRAG_MANDANTENWAEHRUNG_ZU_BELEGZEIT] = zahlung.getN_betragfw() .multiply(erDto.getNKurs()); } if (zahlung.getN_betragfw() != null) { data[row][ZAHLUNGEN_FELD_BETRAG_UST_MANDANTENWAEHRUNG_ZU_BELEGZEIT] = zahlung .getN_betrag_ustfw().multiply(erDto.getNKurs()); } if (zahlung.getFlrbankverbindung() != null) { data[row][ZAHLUNGEN_FELD_BANK] = zahlung.getFlrbankverbindung().getFlrbank().getFlrpartner() .getC_name1nachnamefirmazeile1(); data[row][ZAHLUNGEN_FELD_BLZ] = zahlung.getFlrbankverbindung().getFlrbank().getC_blz(); } data[row][ZAHLUNGEN_FELD_BELEGWAEHRUNG] = erDto.getWaehrungCNr(); data[row][ZAHLUNGEN_FELD_BETRAG_FW] = zahlung.getN_betragfw(); data[row][ZAHLUNGEN_FELD_BETRAG_UST_FW] = zahlung.getN_betrag_ustfw(); if (zahlung.getFlrbankverbindung() != null) { data[row][ZAHLUNGEN_FELD_KONTO] = zahlung.getFlrbankverbindung().getC_kontonummer(); } data[row][ZAHLUNGEN_FELD_AUSZUG] = zahlung.getI_auszug(); data[row][ZAHLUNGEN_FELD_ZAHLUNGSART] = zahlung.getZahlungsart_c_nr(); if (zahlung.getFlrkassenbuch() != null) { data[row][ZAHLUNGEN_FELD_KASSENBUCH] = zahlung.getFlrkassenbuch().getC_bez(); } else { data[row][ZAHLUNGEN_FELD_KASSENBUCH] = ""; } row++; } /* * int maxrow = row; row = 0; * * do{ for(int i = 0; i < maxrow; i++){ fertig = false; if(maxrow != * (row + 1)){ Character help = * data[row][ZAHLUNGEN_FELD_AUSZUG].toString().charAt(1); * if(data[row][ZAHLUNGEN_FELD_AUSZUG].toString().charAt(1) == * data[row][ZAHLUNGEN_FELD_AUSZUG].toString().charAt(9) && * data[row+1][ZAHLUNGEN_FELD_AUSZUG].toString().charAt(1) == * data[row+1][ZAHLUNGEN_FELD_AUSZUG].toString().charAt(9)){ * if(data[row][ZAHLUNGEN_FELD_AUSZUG].toString().charAt(0) > * data[row + 1][ZAHLUNGEN_FELD_AUSZUG].toString().charAt(0) || * data[row + 1][ZAHLUNGEN_FELD_AUSZUG].toString().charAt(0) == * '0'){ Object helpobj = new Object[resultList.size()]; helpobj = * data[row]; data[row] = data[row+1]; data[row+1] = (Object[]) * helpobj; fertig = true; } }else{ * * } } row++; } row = 0; }while(fertig == true); */ initJRDS(mapParameter, EingangsrechnungReportFac.REPORT_MODUL, EingangsrechnungReportFac.REPORT_EINGANGSRECHNUNG_ZAHLUNGSJOURNAL, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); } catch (RemoteException ex) { throwEJBExceptionLPRespectOld(ex); return null; } finally { closeSession(session); } return getReportPrint(); } /** * Den Mehrwertsteuersatz auf grund des Bruttobetrags und des * Mehrwertsteuerbetrags erraten </br> Bei Faellen wie Bruttobetrag 0,15??? * und 7,5% Mwst bzw. 8% Mwst funktioniert das leider auch nicht wirklich * * @param mandant * der Mandant fuer den der Mehrwertsteuersatz ermittelt werden * soll * @param tBelegDatum * das (Beleg)datum fuer das die zugrundeliegende Mwst ermittelt * werden soll * @param bruttoBetrag * @param mwstBetrag * @return den Mehrwertsteuersatz in Prozent, also 10, 20 oder auch 7,5 bzw. * 8%. */ protected BigDecimal getMwstSatzVonBruttoBetragUndUst(String mandant, Timestamp tBelegDatum, BigDecimal bruttoBetrag, BigDecimal mwstBetrag) { if (null == mwstBetrag || mwstBetrag.signum() == 0) return BigDecimal.ZERO; MwstsatzDto[] mwstdtos = getMandantFac().mwstsatzfindAllByMandant(mandant, tBelegDatum, false); BigDecimal minDiff = null; BigDecimal selectedMwstSatz = null; for (MwstsatzDto mwstsatzDto : mwstdtos) { BigDecimal satz = new BigDecimal(mwstsatzDto.getFMwstsatz()); BigDecimal mwst = Helper.getMehrwertsteuerBetrag(bruttoBetrag, satz); BigDecimal diff = mwstBetrag.subtract(mwst).abs(); if (minDiff == null || diff.compareTo(minDiff) < 0) { minDiff = diff; selectedMwstSatz = satz; } } return selectedMwstSatz; } @TransactionAttribute(TransactionAttributeType.NEVER) public JasperPrintLP printFehlendeZollpapiere(TheClientDto theClientDto) { this.useCase = UC_FEHLENDE_ZOLLPAPIERE; SessionFactory factory = FLRSessionFactory.getFactory(); Session session = null; session = factory.openSession(); String s = "from FLREingangsrechnung er WHERE er.flrlieferant.b_zollimportpapier=1 AND er.mandant_c_nr='" + theClientDto.getMandant() + "' AND er.t_zollimportpapier IS NULL AND er.eingangsrechnungart_c_nr = '" + EingangsrechnungFac.EINGANGSRECHNUNGART_EINGANGSRECHNUNG + "' ORDER BY er.flrlieferant.flrpartner.c_name1nachnamefirmazeile1, er.c_nr"; Map<String, Object> mapParameter = new TreeMap<String, Object>(); Query query = session.createQuery(s); List<?> resultList = query.list(); Iterator resultListIterator = resultList.iterator(); ArrayList alDaten = new ArrayList(); while (resultListIterator.hasNext()) { FLREingangsrechnung item = (FLREingangsrechnung) resultListIterator.next(); Object[] oZeile = new Object[FEHLENDE_ZOLLPAPIERE_ANZAHL_FELDER]; oZeile[FEHLENDE_ZOLLPAPIERE_ER_C_NR] = item.getC_nr(); oZeile[FEHLENDE_ZOLLPAPIERE_BRUTTOBETRAG] = item.getN_betrag(); oZeile[FEHLENDE_ZOLLPAPIERE_ER_DATUM] = item.getT_belegdatum(); oZeile[FEHLENDE_ZOLLPAPIERE_LIEFERANT] = HelperServer .formatNameAusFLRPartner(item.getFlrlieferant().getFlrpartner()); alDaten.add(oZeile); } session.close(); session = factory.openSession(); s = "SELECT ls, (select l.b_zollimportpapier from FLRLieferant l where l.mandant_c_nr=ls.mandant_c_nr and l.flrpartner.i_id=ls.flrkunde.flrpartner.i_id) as b_zollimport from FLRLieferschein ls WHERE ls.mandant_c_nr='" + theClientDto.getMandant() + "' AND ls.t_zollexportpapier IS NULL AND ls.lieferscheinart_c_nr = '" + LieferscheinFac.LSART_LIEFERANT + "' ORDER BY ls.flrkunde.flrpartner.c_name1nachnamefirmazeile1, ls.c_nr"; query = session.createQuery(s); resultList = query.list(); resultListIterator = resultList.iterator(); while (resultListIterator.hasNext()) { Object[] o = (Object[]) resultListIterator.next(); FLRLieferschein item = (FLRLieferschein) o[0]; Short bZoll = (Short) o[1]; if (bZoll != null && Helper.short2boolean(bZoll) == true) { Object[] oZeile = new Object[FEHLENDE_ZOLLPAPIERE_ANZAHL_FELDER]; oZeile[FEHLENDE_ZOLLPAPIERE_LIEFERSCHEIN_C_NR] = item.getC_nr(); oZeile[FEHLENDE_ZOLLPAPIERE_BRUTTOBETRAG] = item.getN_gesamtwertinlieferscheinwaehrung(); oZeile[FEHLENDE_ZOLLPAPIERE_ER_DATUM] = item.getD_belegdatum(); oZeile[FEHLENDE_ZOLLPAPIERE_LIEFERANT] = HelperServer .formatNameAusFLRPartner(item.getFlrkunde().getFlrpartner()); alDaten.add(oZeile); } } data = new Object[alDaten.size()][FEHLENDE_ZOLLPAPIERE_ANZAHL_FELDER]; data = (Object[][]) alDaten.toArray(data); initJRDS(mapParameter, EingangsrechnungReportFac.REPORT_MODUL, EingangsrechnungReportFac.REPORT_EINGANGSRECHNUNG_FEHLENDE_ZOLLPAPIERE, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); return getReportPrint(); } @TransactionAttribute(TransactionAttributeType.NEVER) public JasperPrintLP printErfassteZollpapiere(Date dVon, Date dBis, TheClientDto theClientDto) { this.useCase = UC_ERFASSTE_ZOLLPAPIERE; SessionFactory factory = FLRSessionFactory.getFactory(); Session session = null; session = factory.openSession(); Map<String, Object> mapParameter = new TreeMap<String, Object>(); mapParameter.put("P_VON", dVon); mapParameter.put("P_BIS", dBis); dBis = new Date(dBis.getTime() + 24 * 3600000); String s = "from FLREingangsrechnung er WHERE er.t_zollimportpapier>='" + Helper.formatDateWithSlashes(dVon) + "' AND er.t_zollimportpapier<'" + Helper.formatDateWithSlashes(dBis) + "' AND er.mandant_c_nr='" + theClientDto.getMandant() + "' ORDER BY er.flrlieferant.flrpartner.c_name1nachnamefirmazeile1, er.c_nr"; Query query = session.createQuery(s); List<?> resultList = query.list(); Iterator resultListIterator = resultList.iterator(); data = new Object[resultList.size()][ERFASSTE_ZOLLPAPIERE_ANZAHL_FELDER]; ArrayList alDaten = new ArrayList(); while (resultListIterator.hasNext()) { FLREingangsrechnung item = (FLREingangsrechnung) resultListIterator.next(); Object[] oZeile = new Object[ERFASSTE_ZOLLPAPIERE_ANZAHL_FELDER]; oZeile[ERFASSTE_ZOLLPAPIERE_ER_NUMMER] = item.getC_nr(); oZeile[ERFASSTE_ZOLLPAPIERE_BRUTTOBETRAG] = item.getN_betrag(); oZeile[ERFASSTE_ZOLLPAPIERE_ER_DATUM] = item.getT_belegdatum(); oZeile[ERFASSTE_ZOLLPAPIERE_LIEFERANT] = HelperServer .formatNameAusFLRPartner(item.getFlrlieferant().getFlrpartner()); oZeile[ERFASSTE_ZOLLPAPIERE_ERFASSUNGSZEITPUNKT] = item.getT_zollimportpapier(); try { EingangsrechnungDto erDto = getEingangsrechnungFac() .eingangsrechnungFindByPrimaryKey(item.getI_id()); oZeile[ERFASSTE_ZOLLPAPIERE_ZOLLPAPIERNUMMER] = erDto.getCZollimportpapier(); oZeile[ERFASSTE_ZOLLPAPIERE_WAEHRUNG] = erDto.getWaehrungCNr(); if (erDto.getPersonalIIdZollimportpapier() != null) { oZeile[ERFASSTE_ZOLLPAPIERE_PERSON_ERFASST] = getPersonalFac() .personalFindByPrimaryKey(erDto.getPersonalIIdZollimportpapier(), theClientDto) .formatFixName1Name2(); } if (erDto.getEingangsrechnungIdZollimport() != null) { EingangsrechnungDto erDtoZollmiport = getEingangsrechnungFac() .eingangsrechnungFindByPrimaryKey(erDto.getEingangsrechnungIdZollimport()); oZeile[ERFASSTE_ZOLLPAPIERE_EINGANGSRECHNUNG_ZOLLPAPIER] = erDtoZollmiport.getCNr(); } } catch (RemoteException ex) { throwEJBExceptionLPRespectOld(ex); } alDaten.add(oZeile); } session.close(); session = factory.openSession(); s = "from FLRLieferschein ls WHERE ls.t_zollexportpapier>='" + Helper.formatDateWithSlashes(dVon) + "' AND ls.t_zollexportpapier<'" + Helper.formatDateWithSlashes(dBis) + "' AND ls.mandant_c_nr='" + theClientDto.getMandant() + "' ORDER BY ls.flrkunde.flrpartner.c_name1nachnamefirmazeile1, ls.c_nr"; query = session.createQuery(s); resultList = query.list(); resultListIterator = resultList.iterator(); while (resultListIterator.hasNext()) { FLRLieferschein item = (FLRLieferschein) resultListIterator.next(); Object[] oZeile = new Object[ERFASSTE_ZOLLPAPIERE_ANZAHL_FELDER]; oZeile[ERFASSTE_ZOLLPAPIERE_LS_NUMMER] = item.getC_nr(); oZeile[ERFASSTE_ZOLLPAPIERE_BRUTTOBETRAG] = item.getN_gesamtwertinlieferscheinwaehrung(); oZeile[ERFASSTE_ZOLLPAPIERE_ER_DATUM] = item.getD_belegdatum(); oZeile[ERFASSTE_ZOLLPAPIERE_LIEFERANT] = HelperServer .formatNameAusFLRPartner(item.getFlrkunde().getFlrpartner()); oZeile[ERFASSTE_ZOLLPAPIERE_ERFASSUNGSZEITPUNKT] = item.getT_zollexportpapier(); try { LieferscheinDto lsDto = getLieferscheinFac().lieferscheinFindByPrimaryKey(item.getI_id()); oZeile[ERFASSTE_ZOLLPAPIERE_ZOLLPAPIERNUMMER] = lsDto.getCZollexportpapier(); oZeile[ERFASSTE_ZOLLPAPIERE_WAEHRUNG] = lsDto.getWaehrungCNr(); if (lsDto.getPersonalIIdZollexportpapier() != null) { oZeile[ERFASSTE_ZOLLPAPIERE_PERSON_ERFASST] = getPersonalFac() .personalFindByPrimaryKey(lsDto.getPersonalIIdZollexportpapier(), theClientDto) .formatFixName1Name2(); } if (lsDto.getEingangsrechnungIdZollexport() != null) { EingangsrechnungDto erDtoZollmiport = getEingangsrechnungFac() .eingangsrechnungFindByPrimaryKey(lsDto.getEingangsrechnungIdZollexport()); oZeile[ERFASSTE_ZOLLPAPIERE_EINGANGSRECHNUNG_ZOLLPAPIER] = erDtoZollmiport.getCNr(); } } catch (RemoteException ex) { throwEJBExceptionLPRespectOld(ex); } alDaten.add(oZeile); } data = new Object[alDaten.size()][ERFASSTE_ZOLLPAPIERE_ANZAHL_FELDER]; data = (Object[][]) alDaten.toArray(data); initJRDS(mapParameter, EingangsrechnungReportFac.REPORT_MODUL, EingangsrechnungReportFac.REPORT_EINGANGSRECHNUNG_ERFASSTE_ZOLLPAPIERE, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); return getReportPrint(); } @TransactionAttribute(TransactionAttributeType.NEVER) public JasperPrintLP printKontierungsjournal(TheClientDto theClientDto, int iFilterER, Integer kostenstelleIId, int iKritDatum, Date dVon, Date dBis, boolean bZusatzkosten) { Session session = null; try { this.useCase = UC_KONTIERUNG; SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); Criteria cKontierung = session.createCriteria(FLREingangsrechnungKontierung.class); if (kostenstelleIId != null) { cKontierung.add(Restrictions.eq(EingangsrechnungFac.FLR_KONTIERUNG_FLRKOSTENSTELLE + ".i_id", kostenstelleIId)); } // Filter nach ER-status Collection<String> cStati = new TreeSet<String>(); if (iFilterER == EingangsrechnungReportFac.REPORT_KONTIERUNG_FILTER_ER_ALLE) { cStati.add(EingangsrechnungFac.STATUS_ANGELEGT); cStati.add(EingangsrechnungFac.STATUS_ERLEDIGT); cStati.add(EingangsrechnungFac.STATUS_TEILBEZAHLT); // cStati.add(EingangsrechnungFac.STATUS_VERBUCHT); } else if (iFilterER == EingangsrechnungReportFac.REPORT_KONTIERUNG_FILTER_ER_BEZAHLT) { cStati.add(EingangsrechnungFac.STATUS_ERLEDIGT); } else if (iFilterER == EingangsrechnungReportFac.REPORT_KONTIERUNG_FILTER_ER_OFFENE) { cStati.add(EingangsrechnungFac.STATUS_ANGELEGT); cStati.add(EingangsrechnungFac.STATUS_TEILBEZAHLT); // cStati.add(EingangsrechnungFac.STATUS_VERBUCHT); } Collection<String> cArten = new TreeSet<String>(); if (bZusatzkosten) { cArten.add(EingangsrechnungFac.EINGANGSRECHNUNGART_ZUSATZKOSTEN); } else { cArten.add(EingangsrechnungFac.EINGANGSRECHNUNGART_ANZAHLUNG); cArten.add(EingangsrechnungFac.EINGANGSRECHNUNGART_EINGANGSRECHNUNG); cArten.add(EingangsrechnungFac.EINGANGSRECHNUNGART_GUTSCHRIFT); cArten.add(EingangsrechnungFac.EINGANGSRECHNUNGART_SCHLUSSZAHLUNG); } String mandantCNr = theClientDto.getMandant(); Criteria cEigangsrechnung = cKontierung .createCriteria(EingangsrechnungFac.FLR_KONTIERUNG_FLREINGANGSRECHNUNG); if (iKritDatum == EingangsrechnungReportFac.REPORT_KONTIERUNG_KRIT_DATUM_BELEG) { cEigangsrechnung.add(Restrictions.eq(EingangsrechnungFac.FLR_ER_MANDANT_C_NR, mandantCNr)) .add(Restrictions.ge(EingangsrechnungFac.FLR_ER_D_BELEGDATUM, dVon)) .add(Restrictions.le(EingangsrechnungFac.FLR_ER_D_BELEGDATUM, dBis)) .add(Restrictions.in(EingangsrechnungFac.FLR_ER_STATUS_C_NR, cStati)) .add(Restrictions.in(EingangsrechnungFac.FLR_ER_EINGANGSRECHNUNGART_C_NR, cArten)); } else if (iKritDatum == EingangsrechnungReportFac.REPORT_KONTIERUNG_KRIT_DATUM_FREIGABE) { cEigangsrechnung.add(Restrictions.eq(EingangsrechnungFac.FLR_ER_MANDANT_C_NR, mandantCNr)) .add(Restrictions.ge(EingangsrechnungFac.FLR_ER_D_FREIGABEDATUM, dVon)) .add(Restrictions.le(EingangsrechnungFac.FLR_ER_D_FREIGABEDATUM, dBis)) .add(Restrictions.in(EingangsrechnungFac.FLR_ER_STATUS_C_NR, cStati)) .add(Restrictions.in(EingangsrechnungFac.FLR_ER_EINGANGSRECHNUNGART_C_NR, cArten)); } // Sortierung noch kostenstelle, konto cKontierung.createCriteria(EingangsrechnungFac.FLR_KONTIERUNG_FLRKOSTENSTELLE) .addOrder(Order.asc("c_nr")); cKontierung.createCriteria(EingangsrechnungFac.FLR_KONTIERUNG_FLRKONTO).addOrder(Order.asc("c_nr")); List<?> listKontierung = cKontierung.list(); ArrayList<ReportEingangsrechnungKontierungsjournalDto> coll = new ArrayList<ReportEingangsrechnungKontierungsjournalDto>(); for (Iterator<?> iter = listKontierung.iterator(); iter.hasNext();) { FLREingangsrechnungKontierung item = (FLREingangsrechnungKontierung) iter.next(); EingangsrechnungDto erDto = getEingangsrechnungFac() .eingangsrechnungFindByPrimaryKey(item.getEingangsrechnung_i_id()); ReportEingangsrechnungKontierungsjournalDto dto = new ReportEingangsrechnungKontierungsjournalDto(); // Bezahlter Wert in Mandantenwaehrung BigDecimal bdBezahlt = getEingangsrechnungFac().getBezahltBetrag(erDto.getIId(), item.getI_id()); dto.setBdBezahlt(bdBezahlt); dto.setBdBezahltFW(getEingangsrechnungFac().getBezahltBetragFw(erDto.getIId(), item.getI_id())); // Bezahlt Wert mit Kurs der ER in Mandantenwaehrung BigDecimal bdBezahltERKurs = getEingangsrechnungFac().getBezahltBetragFwKontierung(erDto.getIId(), item.getI_id()); if (bdBezahltERKurs != null) { bdBezahltERKurs = bdBezahltERKurs.multiply(erDto.getNKurs()); } dto.setBdBezahltzuERKurs(bdBezahltERKurs); // Letztes Zahldatum EingangsrechnungzahlungDto letzteZahlung = getEingangsrechnungFac() .getLetzteZahlung(erDto.getIId()); Date dLetztesZahldatum = null; if (letzteZahlung != null) { dLetztesZahldatum = new Date(letzteZahlung.getTZahldatum().getTime()); } dto.setDLetzesZahldatum(dLetztesZahldatum); // Errechneter Steuersatz // BigDecimal bdErrechneterSteuersatz = erDto // .getNUstBetrag() // .divide(erDto.getNBetrag().subtract( // erDto.getNUstBetrag()), 4, // BigDecimal.ROUND_HALF_EVEN).movePointRight(2); // dto.setBdErrechneterSteuersatz(bdErrechneterSteuersatz); dto.setWaehrungCNr(erDto.getWaehrungCNr()); dto.setBdUst(item.getN_betrag_ust().multiply(erDto.getNKurs()).setScale(FinanzFac.NACHKOMMASTELLEN, BigDecimal.ROUND_HALF_EVEN)); dto.setBdUstFW(item.getN_betrag_ust()); dto.setBdWert(item.getN_betrag().multiply(erDto.getNKurs()).setScale(FinanzFac.NACHKOMMASTELLEN, BigDecimal.ROUND_HALF_EVEN)); dto.setBdWertFW(item.getN_betrag()); BigDecimal bdErrechneterSteuersatz = getMwstSatzVonBruttoBetragUndUst(erDto.getMandantCNr(), new Timestamp(erDto.getDBelegdatum().getTime()), dto.getBdWert(), dto.getBdUst()); // BigDecimal bdErrechneterSteuersatz = dto // .getBdUst() // .divide(dto.getBdWert().subtract( // dto.getBdUst()), 4, // BigDecimal.ROUND_HALF_EVEN).movePointRight(2); dto.setBdErrechneterSteuersatz(bdErrechneterSteuersatz); dto.setDEingangsrechnungsdatum(item.getFlreingangsrechnung().getT_belegdatum()); dto.setSEingangsrechnungsnummer(item.getFlreingangsrechnung().getC_nr()); dto.setSEingangsrechnungText(erDto.getCText()); dto.setSEingangsrechnungWeartikel(erDto.getCWeartikel()); dto.setSKontobezeichnung(item.getFlrkonto().getC_bez()); dto.setSKontonummer(item.getFlrkonto().getC_nr()); dto.setSKostenstelleBezeichnung(item.getFlrkostenstelle().getC_bez()); dto.setSKostenstellenummer(item.getFlrkostenstelle().getC_nr()); dto.setSLieferant(item.getFlreingangsrechnung().getFlrlieferant().getFlrpartner() .getC_name1nachnamefirmazeile1()); if (item.getFlrkonto().getFlrkontoart() != null) { dto.setSKontoart(getFinanzServiceFac().uebersetzeKontoartOptimal( item.getFlrkonto().getFlrkontoart().getC_nr(), theClientDto.getLocUi(), theClientDto.getLocMandant())); } coll.add(dto); } // jetzt noch die nicht mehrfach kontierten holen Criteria cER = session.createCriteria(FLREingangsrechnungReport.class); if (kostenstelleIId != null) { cER.add(Restrictions.eq(EingangsrechnungFac.FLR_ER_FLRKOSTENSTELLE + ".i_id", kostenstelleIId)); } if (bZusatzkosten) { cER.add(Restrictions.eq(EingangsrechnungFac.FLR_ER_EINGANGSRECHNUNGART_C_NR, EingangsrechnungFac.EINGANGSRECHNUNGART_ZUSATZKOSTEN)); } else { cER.add(Restrictions.not(Restrictions.eq(EingangsrechnungFac.FLR_ER_EINGANGSRECHNUNGART_C_NR, EingangsrechnungFac.EINGANGSRECHNUNGART_ZUSATZKOSTEN))); } if (iKritDatum == EingangsrechnungReportFac.REPORT_KONTIERUNG_KRIT_DATUM_BELEG) { cER.add(Restrictions.eq(EingangsrechnungFac.FLR_ER_MANDANT_C_NR, mandantCNr)) .add(Restrictions.ge(EingangsrechnungFac.FLR_ER_D_BELEGDATUM, dVon)) .add(Restrictions.le(EingangsrechnungFac.FLR_ER_D_BELEGDATUM, dBis)) .add(Restrictions.in(EingangsrechnungFac.FLR_ER_STATUS_C_NR, cStati)); } else if (iKritDatum == EingangsrechnungReportFac.REPORT_KONTIERUNG_KRIT_DATUM_FREIGABE) { cER.add(Restrictions.eq(EingangsrechnungFac.FLR_ER_MANDANT_C_NR, mandantCNr)) .add(Restrictions.ge(EingangsrechnungFac.FLR_ER_D_FREIGABEDATUM, dVon)) .add(Restrictions.le(EingangsrechnungFac.FLR_ER_D_FREIGABEDATUM, dBis)) .add(Restrictions.in(EingangsrechnungFac.FLR_ER_STATUS_C_NR, cStati)); } List<?> listER = cER.list(); for (Iterator<?> iter = listER.iterator(); iter.hasNext();) { FLREingangsrechnungReport item = (FLREingangsrechnungReport) iter.next(); EingangsrechnungDto erDto = getEingangsrechnungFac() .eingangsrechnungFindByPrimaryKey(item.getI_id()); if (erDto.getKostenstelleIId() != null) { ReportEingangsrechnungKontierungsjournalDto dto = new ReportEingangsrechnungKontierungsjournalDto(); // Bezahlter Wert in Mandantenwaehrung BigDecimal bdBezahlt = getEingangsrechnungFac().getBezahltBetrag(erDto.getIId(), null); dto.setBdBezahlt(bdBezahlt); // Bezahlt Wert mit Kurs der ER in Mandantenwaehrung BigDecimal bdBezahltERKurs = getEingangsrechnungFac().getBezahltBetragFw(erDto.getIId(), null); if (bdBezahltERKurs != null) { dto.setBdBezahltFW(new BigDecimal(bdBezahltERKurs.doubleValue())); bdBezahltERKurs = bdBezahltERKurs.multiply(erDto.getNKurs()); } dto.setBdBezahltzuERKurs(bdBezahltERKurs); // Letztes Zahldatum EingangsrechnungzahlungDto letzteZahlung = getEingangsrechnungFac() .getLetzteZahlung(erDto.getIId()); Date dLetztesZahldatum = null; if (letzteZahlung != null) { dLetztesZahldatum = new Date(letzteZahlung.getTZahldatum().getTime()); } dto.setBdERKurs(erDto.getNKurs()); dto.setWaehrungCNr(erDto.getWaehrungCNr()); dto.setDLetzesZahldatum(dLetztesZahldatum); // Werte dto.setBdUst( erDto.getNUstBetrag().setScale(FinanzFac.NACHKOMMASTELLEN, BigDecimal.ROUND_HALF_EVEN)); dto.setBdWert( erDto.getNBetrag().setScale(FinanzFac.NACHKOMMASTELLEN, BigDecimal.ROUND_HALF_EVEN)); dto.setBdUstFW(erDto.getNUstBetragfw().setScale(FinanzFac.NACHKOMMASTELLEN, BigDecimal.ROUND_HALF_EVEN)); dto.setBdWertFW( erDto.getNBetragfw().setScale(FinanzFac.NACHKOMMASTELLEN, BigDecimal.ROUND_HALF_EVEN)); // Errechneter Steuersatz BigDecimal bdErrechneterSteuersatz = null; if (erDto.getNBetrag().subtract(erDto.getNUstBetrag()).doubleValue() == 0) { bdErrechneterSteuersatz = new BigDecimal(100); } else { // bdErrechneterSteuersatz = erDto // .getNUstBetrag() // .divide(erDto.getNBetrag().subtract( // erDto.getNUstBetrag()), 4, // BigDecimal.ROUND_HALF_EVEN) // .movePointRight(2); bdErrechneterSteuersatz = getMwstSatzVonBruttoBetragUndUst(erDto.getMandantCNr(), new Timestamp(erDto.getDBelegdatum().getTime()), dto.getBdWert(), dto.getBdUst()); } dto.setBdErrechneterSteuersatz(bdErrechneterSteuersatz); dto.setDEingangsrechnungsdatum(item.getT_belegdatum()); dto.setSEingangsrechnungsnummer(item.getC_nr()); dto.setSEingangsrechnungText(erDto.getCText()); dto.setSEingangsrechnungWeartikel(erDto.getCWeartikel()); dto.setSLieferantenrechnungsnummer(item.getC_lieferantenrechnungsnummer()); dto.setDFreigabedatum(item.getT_freigabedatum()); if (erDto.getKontoIId() != null) { KontoDto kontoDto = getFinanzFac().kontoFindByPrimaryKey(erDto.getKontoIId()); dto.setSKontobezeichnung(kontoDto.getCBez()); dto.setSKontonummer(kontoDto.getCNr()); if (kontoDto.getKontoartCNr() != null) { dto.setSKontoart( getFinanzServiceFac().uebersetzeKontoartOptimal(kontoDto.getKontoartCNr(), theClientDto.getLocUi(), theClientDto.getLocMandant())); } } else { dto.setSKontobezeichnung(getTextRespectUISpr("er.kontierungfehlerhaft", theClientDto.getMandant(), theClientDto.getLocUi())); dto.setSKontonummer("ERR"); } dto.setSKostenstelleBezeichnung(item.getFlrkostenstelle().getC_bez()); dto.setSKostenstellenummer(item.getFlrkostenstelle().getC_nr()); dto.setSLieferant(item.getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1()); if (item.getFlrlieferant().getKonto_i_id_kreditorenkonto() != null) { KontoDto kredKontoDto = getFinanzFac() .kontoFindByPrimaryKey(item.getFlrlieferant().getKonto_i_id_kreditorenkonto()); dto.setSKreditorennummer(kredKontoDto.getCNr()); } else { dto.setSKreditorennummer(null); } coll.add(dto); } } // Sortieren Collections.sort(coll, new ComparatorKontierungsjournal(Helper.SORTIERUNG_NACH_KOSTENSTELLE_UND_KONTO)); data = new Object[coll.size()][KONTIERUNG_ANZAHL_FELDER]; int i = 0; for (Iterator<ReportEingangsrechnungKontierungsjournalDto> iter = coll.iterator(); iter .hasNext(); i++) { ReportEingangsrechnungKontierungsjournalDto item = (ReportEingangsrechnungKontierungsjournalDto) iter .next(); data[i][KONTIERUNG_FELD_WERT_BEZAHLT] = item.getBdBezahlt(); data[i][KONTIERUNG_FELD_WERT_UST] = item.getBdUst(); data[i][KONTIERUNG_FELD_WERT] = item.getBdWert(); data[i][KONTIERUNG_FELD_WERT_BEZAHLT_FW] = item.getBdBezahltFW(); data[i][KONTIERUNG_FELD_WERT_UST_FW] = item.getBdUstFW(); data[i][KONTIERUNG_FELD_WERT_FW] = item.getBdWertFW(); data[i][KONTIERUNG_FELD_ER_KURS] = item.getBdERKurs(); data[i][KONTIERUNG_FELD_WAEHRUNG_C_NR] = item.getWaehrungCNr(); data[i][KONTIERUNG_FELD_ER_DATUM] = item.getDEingangsrechnungsdatum(); data[i][KONTIERUNG_FELD_ER_C_NR] = item.getSEingangsrechnungsnummer(); data[i][KONTIERUNG_FELD_ER_TEXT] = item.getSEingangsrechnungText(); data[i][KONTIERUNG_FELD_ER_WEARTIKEL] = item.getSEingangsrechnungWeartikel(); data[i][KONTIERUNG_FELD_KONTOART_C_NR] = item.getSKontoart(); data[i][KONTIERUNG_FELD_KONTO_C_BEZ] = item.getSKontobezeichnung(); data[i][KONTIERUNG_FELD_KONTO_C_NR] = item.getSKontonummer(); data[i][KONTIERUNG_FELD_KOSTENSTELLE_C_BEZ] = item.getSKostenstelleBezeichnung(); data[i][KONTIERUNG_FELD_KOSTENSTELLE_C_NR] = item.getSKostenstellenummer(); data[i][KONTIERUNG_FELD_ER_LIEFERANT] = item.getSLieferant(); data[i][KONTIERUNG_FELD_LETZTES_ZAHLDATUM] = item.getDLetzesZahldatum(); data[i][KONTIERUNG_FELD_ERRECHNETER_STEUERSATZ] = item.getBdErrechneterSteuersatz(); data[i][KONTIERUNG_FELD_LIEFERANTENRECHNUNGSNUMMER] = item.getSLieferantenrechnungsnummer(); if (item.getDFreigabedatum() == null) { cKontierung = session.createCriteria(FLREingangsrechnungKontierung.class); if (kostenstelleIId != null) { cKontierung.add(Restrictions .eq(EingangsrechnungFac.FLR_KONTIERUNG_FLRKOSTENSTELLE + ".i_id", kostenstelleIId)); } // Filter nach ER-status cStati = new TreeSet<String>(); if (iFilterER == EingangsrechnungReportFac.REPORT_KONTIERUNG_FILTER_ER_ALLE) { cStati.add(EingangsrechnungFac.STATUS_ANGELEGT); cStati.add(EingangsrechnungFac.STATUS_ERLEDIGT); cStati.add(EingangsrechnungFac.STATUS_TEILBEZAHLT); // cStati.add(EingangsrechnungFac.STATUS_VERBUCHT); } else if (iFilterER == EingangsrechnungReportFac.REPORT_KONTIERUNG_FILTER_ER_BEZAHLT) { cStati.add(EingangsrechnungFac.STATUS_ERLEDIGT); } else if (iFilterER == EingangsrechnungReportFac.REPORT_KONTIERUNG_FILTER_ER_OFFENE) { cStati.add(EingangsrechnungFac.STATUS_ANGELEGT); cStati.add(EingangsrechnungFac.STATUS_TEILBEZAHLT); // cStati.add(EingangsrechnungFac.STATUS_VERBUCHT); } mandantCNr = theClientDto.getMandant(); if (iKritDatum == EingangsrechnungReportFac.REPORT_KONTIERUNG_KRIT_DATUM_BELEG) { cKontierung.createCriteria(EingangsrechnungFac.FLR_KONTIERUNG_FLREINGANGSRECHNUNG) .add(Restrictions.eq(EingangsrechnungFac.FLR_ER_MANDANT_C_NR, mandantCNr)) .add(Restrictions.ge(EingangsrechnungFac.FLR_ER_D_BELEGDATUM, dVon)) .add(Restrictions.le(EingangsrechnungFac.FLR_ER_D_BELEGDATUM, dBis)) .add(Restrictions.in(EingangsrechnungFac.FLR_ER_STATUS_C_NR, cStati)); } else if (iKritDatum == EingangsrechnungReportFac.REPORT_KONTIERUNG_KRIT_DATUM_FREIGABE) { cKontierung.createCriteria(EingangsrechnungFac.FLR_KONTIERUNG_FLREINGANGSRECHNUNG) .add(Restrictions.eq(EingangsrechnungFac.FLR_ER_MANDANT_C_NR, mandantCNr)) .add(Restrictions.ge(EingangsrechnungFac.FLR_ER_D_FREIGABEDATUM, dVon)) .add(Restrictions.le(EingangsrechnungFac.FLR_ER_D_FREIGABEDATUM, dBis)) .add(Restrictions.in(EingangsrechnungFac.FLR_ER_STATUS_C_NR, cStati)); } // Sortierung noch kostenstelle, konto cKontierung.createCriteria(EingangsrechnungFac.FLR_KONTIERUNG_FLRKOSTENSTELLE) .addOrder(Order.asc("c_nr")); cKontierung.createCriteria(EingangsrechnungFac.FLR_KONTIERUNG_FLRKONTO) .addOrder(Order.asc("c_nr")); listKontierung = cKontierung.list(); coll = new ArrayList<ReportEingangsrechnungKontierungsjournalDto>(); for (Iterator<?> iter1 = listKontierung.iterator(); iter1.hasNext();) { FLREingangsrechnungKontierung item1 = (FLREingangsrechnungKontierung) iter1.next(); EingangsrechnungDto erDto = getEingangsrechnungFac() .eingangsrechnungFindByPrimaryKey(item1.getEingangsrechnung_i_id()); ReportEingangsrechnungKontierungsjournalDto dto = new ReportEingangsrechnungKontierungsjournalDto(); BigDecimal bdBezahlt = getEingangsrechnungFac().getBezahltBetrag(erDto.getIId(), item1.getI_id()); dto.setBdBezahlt(bdBezahlt); // Bezahlt Wert mit Kurs der ER in Mandantenwaehrung BigDecimal bdBezahltERKurs = getEingangsrechnungFac().getBezahltBetragFw(erDto.getIId(), item1.getI_id()); if (bdBezahltERKurs != null) { dto.setBdBezahltFW(new BigDecimal(bdBezahltERKurs.doubleValue())); bdBezahltERKurs = bdBezahltERKurs.multiply(erDto.getNKurs()); } dto.setBdBezahltzuERKurs(bdBezahltERKurs); // Letztes Zahldatum EingangsrechnungzahlungDto letzteZahlung = getEingangsrechnungFac() .getLetzteZahlung(erDto.getIId()); Date dLetztesZahldatum = null; if (letzteZahlung != null) { dLetztesZahldatum = new Date(letzteZahlung.getTZahldatum().getTime()); } dto.setDLetzesZahldatum(dLetztesZahldatum); // Errechneter Steuersatz BigDecimal bdErrechneterSteuersatz = erDto.getNUstBetrag() .divide(erDto.getNBetrag().subtract(erDto.getNUstBetrag()), 4, BigDecimal.ROUND_HALF_EVEN) .movePointRight(2); dto.setBdErrechneterSteuersatz(bdErrechneterSteuersatz); dto.setBdUst(item1.getN_betrag_ust().multiply(erDto.getNKurs()) .setScale(FinanzFac.NACHKOMMASTELLEN, BigDecimal.ROUND_HALF_EVEN)); dto.setBdWert(item1.getN_betrag().multiply(erDto.getNKurs()) .setScale(FinanzFac.NACHKOMMASTELLEN, BigDecimal.ROUND_HALF_EVEN)); dto.setBdUstFW(item1.getN_betrag_ust().setScale(FinanzFac.NACHKOMMASTELLEN, BigDecimal.ROUND_HALF_EVEN)); dto.setBdWertFW(item1.getN_betrag().setScale(FinanzFac.NACHKOMMASTELLEN, BigDecimal.ROUND_HALF_EVEN)); dto.setWaehrungCNr(erDto.getWaehrungCNr()); dto.setDEingangsrechnungsdatum(item1.getFlreingangsrechnung().getT_belegdatum()); dto.setSEingangsrechnungsnummer(item1.getFlreingangsrechnung().getC_nr()); dto.setSEingangsrechnungText(erDto.getCText()); dto.setSEingangsrechnungWeartikel(erDto.getCWeartikel()); dto.setSKontobezeichnung(item1.getFlrkonto().getC_bez()); dto.setSKontonummer(item1.getFlrkonto().getC_nr()); dto.setSKostenstelleBezeichnung(item1.getFlrkostenstelle().getC_bez()); dto.setSKostenstellenummer(item1.getFlrkostenstelle().getC_nr()); dto.setSLieferant(item1.getFlreingangsrechnung().getFlrlieferant().getFlrpartner() .getC_name1nachnamefirmazeile1()); if (item1.getFlrkonto().getFlrkontoart() != null) { dto.setSKontoart(getFinanzServiceFac().uebersetzeKontoartOptimal( item1.getFlrkonto().getFlrkontoart().getC_nr(), theClientDto.getLocUi(), theClientDto.getLocMandant())); } if (erDto.getDFreigabedatum() != null) { item.setDFreigabedatum(erDto.getDFreigabedatum()); } } } data[i][KONTIERUNG_FELD_ER_FREIGABEDATUM] = item.getDFreigabedatum(); data[i][KONTIERUNG_FELD_WERT_BEZAHLT_ERKURS] = item.getBdBezahltzuERKurs(); data[i][KONTIERUNG_FELD_KREDITORENNUMMER] = item.getSKreditorennummer(); } // Datumsbereich StringBuffer sDatum = new StringBuffer(); if (iKritDatum == EingangsrechnungReportFac.REPORT_KONTIERUNG_KRIT_DATUM_BELEG) { sDatum.append("Belegdatum "); } else if (iKritDatum == EingangsrechnungReportFac.REPORT_KONTIERUNG_KRIT_DATUM_FREIGABE) { sDatum.append("Freigabedatum "); } if (dVon != null) { sDatum.append("von " + Helper.formatDatum(dVon, theClientDto.getLocUi())); } if (dBis != null) { sDatum.append(" bis " + Helper.formatDatum(dBis, theClientDto.getLocUi())); } Map<String, Object> mapParameter = new TreeMap<String, Object>(); mapParameter.put("P_DATUM", sDatum.toString()); mapParameter.put("P_ZUSATZKOSTEN", new Boolean(bZusatzkosten)); // Filter StringBuffer sFilter = new StringBuffer(); if (iFilterER == EingangsrechnungReportFac.REPORT_KONTIERUNG_FILTER_ER_ALLE) { sFilter.append("Alle Eingangsrechnungen"); } else if (iFilterER == EingangsrechnungReportFac.REPORT_KONTIERUNG_FILTER_ER_BEZAHLT) { sFilter.append("Bezahlte Eingangsrechnungen"); } else if (iFilterER == EingangsrechnungReportFac.REPORT_KONTIERUNG_FILTER_ER_OFFENE) { sFilter.append("Offene Eingangsrechnungen"); } sFilter.append(", "); if (kostenstelleIId == null) { sFilter.append("Alle Kostenstellen"); } else { sFilter.append("Eine Kostenstelle"); } mapParameter.put(LPReport.P_FILTER, sFilter.toString()); initJRDS(mapParameter, EingangsrechnungReportFac.REPORT_MODUL, EingangsrechnungReportFac.REPORT_EINGANGSRECHNUNG_KONTIERUNG, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); return getReportPrint(); } catch (RemoteException ex) { throwEJBExceptionLPRespectOld(ex); return null; } finally { closeSession(session); } } @TransactionAttribute(TransactionAttributeType.NEVER) public JasperPrintLP printOffene(TheClientDto theClientDto, int iSort, Integer lieferantIId, Date dStichtag, boolean bStichtagIstFreigabeDatum, boolean bZusatzkosten, boolean mitNichtZugeordnetenBelegen) { this.useCase = UC_OFFENE; SessionFactory factory = FLRSessionFactory.getFactory(); Session session = null; try { Map<Integer, ZahlungszielDto> mZahlungsziel = getMandantFac() .zahlungszielFindAllByMandantAsDto(theClientDto.getMandant(), theClientDto); session = factory.openSession(); List<Integer> lieferantenIIds = new ArrayList<Integer>(); if (lieferantIId != null) { lieferantenIIds.add(lieferantIId); } else if (iSort == EingangsrechnungReportFac.REPORT_OFFENE_SORT_LIEFERANT) { Iterator<?> iter = session.createCriteria(FLRLieferant.class).createAlias("flrpartner", "p") .addOrder(Order.asc("p.c_name1nachnamefirmazeile1")) .add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant())) .list().iterator(); while (iter.hasNext()) { lieferantenIIds.add(((FLRLieferant) iter.next()).getI_id()); } } else { lieferantenIIds.add(null); } List<Object[]> dataList = new ArrayList<Object[]>(); for (Integer liefIId : lieferantenIIds) { Criteria crit = session.createCriteria(FLREingangsrechnungReport.class); // Filter nach Mandant crit.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant())); Collection<String> cStati = new LinkedList<String>(); cStati.add(EingangsrechnungFac.STATUS_TEILBEZAHLT); cStati.add(EingangsrechnungFac.STATUS_ANGELEGT); cStati.add(EingangsrechnungFac.STATUS_ERLEDIGT); crit.add(Restrictions.in("status_c_nr", cStati)); if (bZusatzkosten) { crit.add(Restrictions.eq(EingangsrechnungFac.FLR_ER_EINGANGSRECHNUNGART_C_NR, EingangsrechnungFac.EINGANGSRECHNUNGART_ZUSATZKOSTEN)); } else { crit.add(Restrictions.not(Restrictions.eq(EingangsrechnungFac.FLR_ER_EINGANGSRECHNUNGART_C_NR, EingangsrechnungFac.EINGANGSRECHNUNGART_ZUSATZKOSTEN))); } if (liefIId != null) { crit.add(Restrictions.eq("lieferant_i_id", liefIId)); } if (bStichtagIstFreigabeDatum) { crit.add(Restrictions.le("t_freigabedatum", dStichtag)); } else { crit.add(Restrictions.le("t_belegdatum", dStichtag)); } crit.add(Restrictions.or(Restrictions.gt("t_bezahltdatum", dStichtag), Restrictions.isNull("t_bezahltdatum"))); crit.add(Restrictions.or(Restrictions.gt("t_manuellerledigt", dStichtag), Restrictions.isNull("t_manuellerledigt"))); if (iSort == EingangsrechnungReportFac.REPORT_OFFENE_SORT_RECHNUNGSNUMMER) { crit.addOrder(Order.asc("c_nr")); } else if (iSort == EingangsrechnungReportFac.REPORT_OFFENE_SORT_LIEFERANT) { crit.addOrder(Order.asc("c_nr")); } else if (iSort == EingangsrechnungReportFac.REPORT_OFFENE_SORT_FAELLIGKEIT) { crit.addOrder(Order.asc("t_faelligkeit")).addOrder(Order.asc("c_nr")); // Inerhalb wird immer nach // Rechnungsnummer sortiert } else if (iSort == EingangsrechnungReportFac.REPORT_OFFENE_SORT_FAELLIGKEIT_SKONTO1) { crit.addOrder(Order.asc("t_faelligkeit_skonto1")).addOrder(Order.asc("c_nr")); } else if (iSort == EingangsrechnungReportFac.REPORT_OFFENE_SORT_FAELLIGKEIT_SKONTO2) { crit.addOrder(Order.asc("t_faelligkeit_skonto2")).addOrder(Order.asc("c_nr")); } if (iSort != EingangsrechnungReportFac.REPORT_OFFENE_SORT_LIEFERANT) { mitNichtZugeordnetenBelegen = false; } List<?> resultList = crit.list(); Iterator<?> resultListIterator = resultList.iterator(); int row = 0; Object[][] tempData = new Object[resultList.size()][OFFENE_ANZAHL_FELDER]; if (mitNichtZugeordnetenBelegen) { LieferantDto liefDto = getLieferantFac().lieferantFindByPrimaryKey(liefIId, theClientDto); if (liefDto.getKontoIIdKreditorenkonto() != null) { // TODO: nur FLRFinanzBuchungDetail holen Query query = session.createQuery( "SELECT buchungdetail from FLRFinanzBuchungDetail buchungdetail LEFT OUTER JOIN buchungdetail.flrbuchung AS buchung" + " WHERE" + BuchungDetailQueryBuilder.buildNurOffeneBuchungDetails("buchungdetail") + "AND" + BuchungDetailQueryBuilder.buildNichtZuordenbareVonKonto("buchungdetail", "buchung", liefDto.getKontoIIdKreditorenkonto()) + (dStichtag == null ? "" : ("AND buchung.d_buchungsdatum<='" + Helper.formatDateWithSlashes(dStichtag) + "'"))); @SuppressWarnings("unchecked") List<FLRFinanzBuchungDetail> bdList = query.list(); if (bdList.size() > 0) { if (tempData.length < 1) { tempData = new Object[1][OFFENE_ANZAHL_FELDER]; String sFirma = liefDto.getPartnerDto().formatFixTitelName1Name2(); tempData[0][OFFENE_FELD_FIRMA] = sFirma; tempData[0][OFFENE_FELD_KREDITORENNR] = getFinanzFac() .kontoFindByPrimaryKeySmall(liefDto.getKontoIIdKreditorenkonto()).getCNr(); } tempData[0][OFFENE_SUBREPORT_OFFENE_BUCHUNGEN] = FinanzSubreportGenerator .createBuchungsdetailSubreport(bdList, false); } } } while (resultListIterator.hasNext()) { FLREingangsrechnungReport er = (FLREingangsrechnungReport) resultListIterator.next(); EingangsrechnungDto erDto = getEingangsrechnungFac() .eingangsrechnungFindByPrimaryKey(er.getI_id()); LieferantDto liefDto = getLieferantFac().lieferantFindByPrimaryKey(erDto.getLieferantIId(), theClientDto); String sErCNr = erDto.getCNr(); String sFirma = liefDto.getPartnerDto().formatFixTitelName1Name2(); ZahlungszielDto zzDto = mZahlungsziel.get(erDto.getZahlungszielIId()); tempData[row][OFFENE_FELD_ER_C_NR] = sErCNr; tempData[row][OFFENE_FELD_FIRMA] = sFirma; tempData[row][OFFENE_FELD_ERDATUM] = er.getT_belegdatum(); tempData[row][OFFENE_FELD_MAHNDATUM] = erDto.getTMahndatum(); tempData[row][OFFENE_FELD_KREDITORENNR] = liefDto.getKontoIIdKreditorenkonto() != null ? getFinanzFac().kontoFindByPrimaryKeySmall(liefDto.getKontoIIdKreditorenkonto()) .getCNr() : null; tempData[row][OFFENE_FELD_MAHNSTUFE] = er.getMahnstufe_i_id(); tempData[row][OFFENE_FELD_FREIGABEDATUM] = er.getT_freigabedatum(); tempData[row][OFFENE_FELD_WERT] = erDto.getNBetrag(); tempData[row][OFFENE_FELD_LIEFERANTENRECHNUNGSNUMMER] = erDto.getCLieferantenrechnungsnummer(); tempData[row][OFFENE_FELD_TEXT] = erDto.getCText(); if (zzDto != null) { tempData[row][OFFENE_FELD_ZAHLUNGSZIEL] = zzDto.getCBez(); tempData[row][OFFENE_FELD_SKONTOTAGE1] = zzDto.getSkontoAnzahlTage1(); tempData[row][OFFENE_FELD_SKONTOTAGE2] = zzDto.getSkontoAnzahlTage2(); tempData[row][OFFENE_FELD_SKONTOPROZENT1] = zzDto.getSkontoProzentsatz1(); tempData[row][OFFENE_FELD_SKONTOPROZENT2] = zzDto.getSkontoProzentsatz2(); tempData[row][OFFENE_FELD_NETTOTAGE] = zzDto.getAnzahlZieltageFuerNetto(); if (erDto.getDFreigabedatum() != null) { if (zzDto.getAnzahlZieltageFuerNetto() != null) { tempData[row][OFFENE_FELD_FAELLIGKEIT] = er.getT_faelligkeit(); } if (zzDto.getSkontoAnzahlTage1() != null) { tempData[row][OFFENE_FELD_FAELLIGKEIT_SKONTO1] = er.getT_faelligkeit_skonto1(); } if (zzDto.getSkontoAnzahlTage2() != null) { tempData[row][OFFENE_FELD_FAELLIGKEIT_SKONTO2] = er.getT_faelligkeit_skonto2(); } } } // datum der letzten zahlung bis zum stichtag ermitteln EingangsrechnungzahlungDto[] zahlungen = getEingangsrechnungFac() .eingangsrechnungzahlungFindByEingangsrechnungIId(er.getI_id()); java.sql.Date dZahldatum = null; for (int i = 0; i < zahlungen.length; i++) { if ((dZahldatum == null || zahlungen[i].getTZahldatum().after(dZahldatum)) && !zahlungen[i].getTZahldatum().after(dStichtag)) { dZahldatum = new Date(zahlungen[i].getTZahldatum().getTime()); } } tempData[row][OFFENE_FELD_ZAHLDATUM] = dZahldatum; // Zahlungsbetrag bis zum Stichtag ermitteln BigDecimal bdBezahltFw = new BigDecimal(0); BigDecimal bdBezahltKursBelegdatum = new BigDecimal(0); for (int i = 0; i < zahlungen.length; i++) { if (!zahlungen[i].getTZahldatum().after(dStichtag)) { bdBezahltFw = bdBezahltFw.add(zahlungen[i].getNBetragfw()); bdBezahltKursBelegdatum = bdBezahltKursBelegdatum .add(zahlungen[i].getNBetragfw().multiply(erDto.getNKurs())); } } tempData[row][OFFENE_FELD_BETRAG] = getLocaleFac().rechneUmInAndereWaehrungZuDatum(bdBezahltFw, erDto.getWaehrungCNr(), theClientDto.getSMandantenwaehrung(), // new Date(System.currentTimeMillis()), dStichtag, theClientDto); tempData[row][OFFENE_FELD_BETRAG_KURS_BELEGDATUM] = bdBezahltKursBelegdatum; tempData[row][OFFENE_FELD_OFFEN] = getLocaleFac().rechneUmInAndereWaehrungZuDatum( erDto.getNBetragfw().subtract(bdBezahltFw), erDto.getWaehrungCNr(), theClientDto.getSMandantenwaehrung(), // new Date(System.currentTimeMillis()), dStichtag, theClientDto); tempData[row][OFFENE_FELD_OFFEN_KURS_BELEGDATUM] = erDto.getNBetrag() .subtract(bdBezahltKursBelegdatum); tempData[row][OFFENE_FELD_BETRAG_FW] = bdBezahltFw; tempData[row][OFFENE_FELD_OFFEN_FW] = erDto.getNBetragfw().subtract(bdBezahltFw); tempData[row][OFFENE_FELD_ERWAEHRUNG] = erDto.getWaehrungCNr(); tempData[row][OFFENE_FELD_WERT_FW] = erDto.getNBetragfw(); tempData[row][OFFENE_FELD_ERKURS] = erDto.getNKurs(); WechselkursDto wkDto = getLocaleFac().getKursZuDatum(erDto.getWaehrungCNr(), theClientDto.getSMandantenwaehrung(), dStichtag, theClientDto); tempData[row][OFFENE_FELD_KURS_STICHTAG] = wkDto.getNKurs() .setScale(LocaleFac.ANZAHL_NACHKOMMASTELLEN_WECHSELKURS, RoundingMode.HALF_EVEN); row++; } dataList.addAll(Arrays.asList(tempData)); } data = dataList.toArray(new Object[0][]); Map<String, Object> mapParameter = new TreeMap<String, Object>(); mapParameter.put("P_DATUM", dStichtag); mapParameter.put("P_STICHTAGISTFREIGABEDATUM", new Boolean(bStichtagIstFreigabeDatum)); mapParameter.put("P_ZUSATZKOSTEN", new Boolean(bZusatzkosten)); String sSortierung = null; if (iSort == EingangsrechnungReportFac.REPORT_OFFENE_SORT_LIEFERANT) { sSortierung = "Lieferant"; } else if (iSort == EingangsrechnungReportFac.REPORT_OFFENE_SORT_RECHNUNGSNUMMER) { sSortierung = "Rechnungsnummer"; } else if (iSort == EingangsrechnungReportFac.REPORT_OFFENE_SORT_FAELLIGKEIT) { sSortierung = getTextRespectUISpr("lp.faelligkeit", theClientDto.getMandant(), theClientDto.getLocUi()); } else if (iSort == EingangsrechnungReportFac.REPORT_OFFENE_SORT_FAELLIGKEIT_SKONTO1) { sSortierung = getTextRespectUISpr("er.faelligkeitskonto1", theClientDto.getMandant(), theClientDto.getLocUi()); } else if (iSort == EingangsrechnungReportFac.REPORT_OFFENE_SORT_FAELLIGKEIT_SKONTO2) { sSortierung = getTextRespectUISpr("er.faelligkeitskonto2", theClientDto.getMandant(), theClientDto.getLocUi()); } mapParameter.put("P_SORTIERUNGNACHLIEFERANT", new Boolean(iSort == EingangsrechnungReportFac.REPORT_OFFENE_SORT_LIEFERANT)); mapParameter.put(LPReport.P_SORTIERUNG, sSortierung); String sZessionstext = null; sZessionstext = getParameterFac().parametermandantFindByPrimaryKey(ParameterFac.PARAMETER_ZESSIONSTEXT, ParameterFac.KATEGORIE_ALLGEMEIN, theClientDto.getMandant()).getCWert(); if (sZessionstext != null) { mapParameter.put("P_ZESSIONSTEXT", sZessionstext); } mapParameter.put("P_MANDANTENWAEHRUNG", theClientDto.getSMandantenwaehrung()); initJRDS(mapParameter, EingangsrechnungReportFac.REPORT_MODUL, EingangsrechnungReportFac.REPORT_EINGANGSRECHNUNG_OFFENE, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); return getReportPrint(); } catch (RemoteException ex) { throwEJBExceptionLPRespectOld(ex); return null; } finally { closeSession(session); } } @TransactionAttribute(TransactionAttributeType.NEVER) public JasperPrintLP printAlle(ReportJournalKriterienDto krit, TheClientDto theClientDto, boolean bZusatzkosten, boolean bDatumIstFreigabedatum) { Session session = null; try { this.useCase = UC_ALLE; SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); Criteria c = session.createCriteria(FLREingangsrechnungReport.class); c.add(Restrictions.eq(EingangsrechnungFac.FLR_ER_MANDANT_C_NR, theClientDto.getMandant())); if (krit.kostenstelleIId != null) { c.add(Restrictions.eq(EingangsrechnungFac.FLR_ER_KOSTENSTELLE_I_ID, krit.kostenstelleIId)); } if (krit.lieferantIId != null) { c.add(Restrictions.eq(EingangsrechnungFac.FLR_ER_LIEFERANT_I_ID, krit.lieferantIId)); } String sVon = null; String sBis = null; if (krit.dVon != null) { if (bDatumIstFreigabedatum) { c.add(Restrictions.ge(EingangsrechnungFac.FLR_ER_D_FREIGABEDATUM, krit.dVon)); } else { c.add(Restrictions.ge(EingangsrechnungFac.FLR_ER_D_BELEGDATUM, krit.dVon)); } sVon = Helper.formatDatum(krit.dVon, theClientDto.getLocUi()); } if (krit.dBis != null) { if (bDatumIstFreigabedatum) { c.add(Restrictions.le(EingangsrechnungFac.FLR_ER_D_FREIGABEDATUM, krit.dBis)); } else { c.add(Restrictions.le(EingangsrechnungFac.FLR_ER_D_BELEGDATUM, krit.dBis)); } sBis = Helper.formatDatum(krit.dBis, theClientDto.getLocUi()); } if (bZusatzkosten) { c.add(Restrictions.eq(EingangsrechnungFac.FLR_ER_EINGANGSRECHNUNGART_C_NR, EingangsrechnungFac.EINGANGSRECHNUNGART_ZUSATZKOSTEN)); } else { c.add(Restrictions.not(Restrictions.eq(EingangsrechnungFac.FLR_ER_EINGANGSRECHNUNGART_C_NR, EingangsrechnungFac.EINGANGSRECHNUNGART_ZUSATZKOSTEN))); } LpBelegnummerFormat f = getBelegnummerGeneratorObj().getBelegnummernFormat(theClientDto.getMandant()); Integer iGeschaeftsjahr = getParameterFac().getGeschaeftsjahr(theClientDto.getMandant()); String sMandantKuerzel = getParameterFac().getMandantparameter(theClientDto.getMandant(), ParameterFac.KATEGORIE_ALLGEMEIN, ParameterFac.PARAMETER_BELEGNUMMER_MANDANTKENNUNG).getCWert(); if (krit.sBelegnummerVon != null) { sVon = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr, sMandantKuerzel, krit.sBelegnummerVon); c.add(Restrictions.ge(EingangsrechnungFac.FLR_ER_C_NR, sVon)); } if (krit.sBelegnummerBis != null) { sBis = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr, sMandantKuerzel, krit.sBelegnummerBis); c.add(Restrictions.le(EingangsrechnungFac.FLR_ER_C_NR, sBis)); } if (krit.bSortiereNachKostenstelle) { c.createCriteria(EingangsrechnungFac.FLR_ER_FLRKOSTENSTELLE).addOrder(Order.asc("c_nr")); } if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) { c.createCriteria(EingangsrechnungFac.FLR_ER_FLRLIEFERANT).createCriteria(LieferantFac.FLR_PARTNER) .addOrder(Order.asc(PartnerFac.FLR_PARTNER_NAME1NACHNAMEFIRMAZEILE1)); c.addOrder(Order.asc(EingangsrechnungFac.FLR_ER_C_NR)); } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_BELEGNUMMER) { c.addOrder(Order.asc(EingangsrechnungFac.FLR_ER_C_NR)); } else { c.addOrder(Order.asc(EingangsrechnungFac.FLR_ER_C_NR)); } List<?> list = c.list(); data = new Object[list.size()][ALLE_ANZAHL_FELDER]; int i = 0; for (Iterator<?> iter = list.iterator(); iter.hasNext();) { FLREingangsrechnungReport e = (FLREingangsrechnungReport) iter.next(); data[i][FELD_ALLE_AUSZUG] = getEingangsrechnungFac().getAuszugDerLetztenZahlung(e.getI_id()); BankverbindungDto bvDto = getEingangsrechnungFac().getZuletztVerwendeteBankverbindung(e.getI_id()); if (bvDto != null) { BankDto bankDto = getBankFac().bankFindByPrimaryKey(bvDto.getBankIId(), theClientDto); data[i][FELD_ALLE_BANK] = bankDto.getPartnerDto().getCName1nachnamefirmazeile1(); } data[i][FELD_ALLE_BELEGDATUM] = e.getT_belegdatum(); data[i][FELD_ALLE_BEZAHLTDATUM] = e.getT_bezahltdatum(); data[i][FELD_ALLE_EINGANGSRECHNUNGSNUMMER] = e.getC_nr(); data[i][FELD_ALLE_STATUS] = e.getStatus_c_nr(); data[i][FELD_ALLE_FREIGABEDATUM] = e.getT_freigabedatum(); data[i][FELD_ALLE_KOSTENSTELLENUMMER] = e.getFlrkostenstelle() != null ? e.getFlrkostenstelle().getC_nr() : ""; data[i][FELD_ALLE_LIEFERANT] = e.getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1(); data[i][FELD_ALLE_TEXT] = e.getC_text(); data[i][FELD_ALLE_WEARTIKEL] = e.getC_weartikel(); data[i][FELD_ALLE_WERT] = e.getN_betrag(); data[i][FELD_ALLE_KURS] = e.getN_kurs(); data[i][FELD_ALLE_WAEHRUNG] = e.getWaehrung_c_nr(); data[i][FELD_ALLE_ZOLLBELEGNUMMER] = e.getC_zollimportpapier(); data[i][FELD_ALLE_WERTNETTO] = e.getN_betrag() != null ? e.getN_betrag().subtract(e.getN_ustbetrag()) : null; data[i][FELD_ALLE_WERTUST] = e.getN_ustbetrag(); data[i][FELD_ALLE_WERT_FW] = e.getN_betragfw(); data[i][FELD_ALLE_WERTNETTO_FW] = e.getN_betragfw() != null ? e.getN_betragfw().subtract(e.getN_ustbetragfw()) : null; data[i][FELD_ALLE_WERTUST_FW] = e.getN_ustbetragfw(); data[i][FELD_ALLE_ZIELDATUM] = getMandantFac().berechneZielDatumFuerBelegdatum( e.getT_freigabedatum(), e.getZahlungsziel_i_id(), theClientDto); data[i][FELD_ALLE_LAENDERART] = getFinanzServiceFac() .getLaenderartZuPartner(e.getFlrlieferant().getFlrpartner().getI_id(), theClientDto); data[i][FELD_ALLE_ZAHLBETRAG] = getEingangsrechnungFac().getBezahltBetrag(e.getI_id(), null); data[i][FELD_ALLE_ZAHLBETRAG_FW] = getEingangsrechnungFac().getBezahltBetragFw(e.getI_id(), null); if (e.getFlrkonto() != null) { data[i][FELD_ALLE_KONTO] = e.getFlrkonto().getC_nr(); } EingangsrechnungKontierungDto[] kontierungDtos = getEingangsrechnungFac() .eingangsrechnungKontierungFindByEingangsrechnungIId(e.getI_id()); if (kontierungDtos.length > 0) { String[] fieldnames = new String[] { "F_BETRAG", "F_USTBETRAG", "F_KOSTENSTELLE", "F_SACHKONTO", "F_UST" }; Object[][] dataSub = new Object[kontierungDtos.length][fieldnames.length]; BigDecimal gesamtUst = new BigDecimal(0); for (int j = 0; j < kontierungDtos.length; j++) { dataSub[j][0] = kontierungDtos[j].getNBetrag(); dataSub[j][1] = kontierungDtos[j].getNBetragUst(); gesamtUst = gesamtUst.add(kontierungDtos[j].getNBetragUst()); dataSub[j][2] = getSystemFac() .kostenstelleFindByPrimaryKey(kontierungDtos[j].getKostenstelleIId()).getCNr(); dataSub[j][3] = getFinanzFac().kontoFindByPrimaryKeySmall(kontierungDtos[j].getKontoIId()) .getCNr(); dataSub[j][4] = new BigDecimal(getMandantFac() .mwstsatzFindByPrimaryKey(kontierungDtos[j].getMwstsatzIId(), theClientDto) .getFMwstsatz()); } data[i][FELD_ALLE_KONTIERUNG] = new LPDatenSubreport(dataSub, fieldnames); data[i][FELD_ALLE_WERTUST] = gesamtUst; } else { data[i][FELD_ALLE_UST] = getMwstSatzVonBruttoBetragUndUst(e.getMandant_c_nr(), new Timestamp(e.getT_belegdatum().getTime()), e.getN_betrag(), e.getN_ustbetrag()); } // Debitorenkontonummer KontoDtoSmall kontoDtoKred = getFinanzFac() .kontoFindByPrimaryKeySmallOhneExc(e.getFlrlieferant().getKonto_i_id_kreditorenkonto()); String sKontonummer; if (kontoDtoKred != null) { sKontonummer = kontoDtoKred.getCNr(); } else { sKontonummer = ""; } data[i][FELD_ALLE_KREDITORENKONTO] = sKontonummer; i++; } Map<String, Object> mapParameter = new TreeMap<String, Object>(); MandantDto mandantDto = getMandantFac().mandantFindByPrimaryKey(theClientDto.getMandant(), theClientDto); // Waehrung mapParameter.put(LPReport.P_WAEHRUNG, mandantDto.getWaehrungCNr()); mapParameter.put("P_ZUSATZKOSTEN", new Boolean(bZusatzkosten)); mapParameter.put("P_AUSWERTUNG_NACH_FREIGABEDATUM", new Boolean(bDatumIstFreigabedatum)); StringBuffer sSortierung = new StringBuffer(); // Sortierung nach Kostenstelle mapParameter.put(LPReport.P_SORTIERENACHKOSTENSTELLE, new Boolean(krit.bSortiereNachKostenstelle)); if (krit.bSortiereNachKostenstelle) { sSortierung.append( getTextRespectUISpr("lp.kostenstelle", theClientDto.getMandant(), theClientDto.getLocUi())); sSortierung.append(", "); } // Sortieung nach Lieferant mapParameter.put(LPReport.P_SORTIERENACHLIEFERANT, new Boolean(krit.iSortierung == krit.KRIT_SORT_NACH_PARTNER)); if (krit.iSortierung == krit.KRIT_SORT_NACH_PARTNER) { sSortierung.append( getTextRespectUISpr("lp.lieferant", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (krit.iSortierung == krit.KRIT_SORT_NACH_BELEGNUMMER) { sSortierung.append(getTextRespectUISpr("er.eingangsrechnungsnummer", 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()); } mapParameter.put(LPReport.P_SORTIERUNG, sSortierung.toString()); mapParameter.put(LPReport.P_FILTER, sFilter.toString()); initJRDS(mapParameter, EingangsrechnungReportFac.REPORT_MODUL, EingangsrechnungReportFac.REPORT_EINGANGSRECHNUNG_ALLE, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); return getReportPrint(); } catch (RemoteException ex) { throwEJBExceptionLPRespectOld(ex); return null; } finally { closeSession(session); } } public JasperPrintLP[] printEingangsrechnung(Integer iEingangsrechnungIId, String sReportname, Integer iKopien, BigDecimal bdBetrag, String sZusatztext, Integer schecknummer, TheClientDto theClientDto) throws EJBExceptionLP, RemoteException { Map<String, Object> mapParameter = new TreeMap<String, Object>(); EingangsrechnungDto eingangsrechnungDto = getEingangsrechnungFac() .eingangsrechnungFindByPrimaryKey(iEingangsrechnungIId); LieferantDto lieferantDto = getLieferantFac() .lieferantFindByPrimaryKey(eingangsrechnungDto.getLieferantIId(), theClientDto); PartnerDto partnerDto = getPartnerFac().partnerFindByPrimaryKey(lieferantDto.getPartnerIId(), theClientDto); mapParameter.put("P_LIEFERANT_NAME1", partnerDto.getCName1nachnamefirmazeile1()); mapParameter.put("P_LIEFERANT_NAME2", partnerDto.getCName2vornamefirmazeile2()); mapParameter.put("P_LIEFERANT_NAME3", partnerDto.getCName3vorname2abteilung()); mapParameter.put("P_EINGANGSRECHNUNGSART", eingangsrechnungDto.getEingangsrechnungartCNr()); mapParameter.put("P_LIEFERANT_STRASSE", partnerDto.getCStrasse()); String sLKZ = ""; String sPLZ = ""; String sOrt = ""; if (partnerDto.getLandplzortDto() != null) { if (partnerDto.getLandplzortDto().getLandDto() != null) { sLKZ = partnerDto.getLandplzortDto().getLandDto().getCLkz(); } sPLZ = partnerDto.getLandplzortDto().getCPlz(); if (partnerDto.getLandplzortDto().getOrtDto() != null) { sOrt = partnerDto.getLandplzortDto().getOrtDto().getCName(); } } mapParameter.put("P_LIEFERANT_LKZ", sLKZ); mapParameter.put("P_LIEFERANT_PLZ", sPLZ); mapParameter.put("P_LIEFERANT_ORT", sOrt); // Bank PartnerbankDto[] bankDtos = getBankFac().partnerbankFindByPartnerIIdOhneExc(lieferantDto.getPartnerIId(), theClientDto); if (bankDtos != null && bankDtos.length > 0) { PartnerDto bankDto = getPartnerFac().partnerFindByPrimaryKey(bankDtos[0].getBankPartnerIId(), theClientDto); BankDto bDto = getBankFac().bankFindByPrimaryKey(bankDtos[0].getBankPartnerIId(), theClientDto); String sLKZBank = ""; String sPLZBank = ""; String sOrtBank = ""; if (bankDto.getLandplzortDto() != null) { if (bankDto.getLandplzortDto().getLandDto() != null) { sLKZBank = bankDto.getLandplzortDto().getLandDto().getCLkz(); } sPLZBank = bankDto.getLandplzortDto().getCPlz(); if (bankDto.getLandplzortDto().getOrtDto() != null) { sOrtBank = bankDto.getLandplzortDto().getOrtDto().getCName(); } } mapParameter.put("P_BANK_LKZ", sLKZBank); mapParameter.put("P_BANK_PLZ", sPLZBank); mapParameter.put("P_BANK_ORT", sOrtBank); mapParameter.put("P_BANK_NAME1", bankDto.getCName1nachnamefirmazeile1()); mapParameter.put("P_BANK_NAME2", bankDto.getCName2vornamefirmazeile2()); mapParameter.put("P_BANK_NAME3", bankDto.getCName3vorname2abteilung()); mapParameter.put("P_BANK_IBAN", bankDtos[0].getCIban()); mapParameter.put("P_BANK_BIC", bDto.getCBic()); mapParameter.put("P_BANK_KONTO", bankDtos[0].getCKtonr()); } mapParameter.put("P_ZUSATZTEXT", sZusatztext); mapParameter.put("P_SCHECKNUMMER", schecknummer); mapParameter.put("P_BETRAG", bdBetrag); mapParameter.put("P_BELEGNUMMER", eingangsrechnungDto.getCNr()); mapParameter.put("P_LIEFERANT_RECHNUNGSNUMMER", eingangsrechnungDto.getCLieferantenrechnungsnummer()); mapParameter.put("P_LIEFERANT_KUNDENDATEN", eingangsrechnungDto.getCKundendaten()); mapParameter.put("P_TEXT", eingangsrechnungDto.getCText()); PartnerbankDto[] partnerbankDto = getBankFac().partnerbankFindByPartnerIId(partnerDto.getIId(), theClientDto); // Sind geordnet nach iSort also die erste if (partnerbankDto.length > 0) { mapParameter.put("P_LIEFERANT_KONTONUMMER", partnerbankDto[0].getCKtonr()); BankDto bankDto = getBankFac().bankFindByPrimaryKey(partnerbankDto[0].getBankPartnerIId(), theClientDto); mapParameter.put("P_LIEFERANT_BLZ", bankDto.getCBlz()); } this.useCase = UC_EINGANGSRECHNUNG; data = new Object[1][1]; int iAnzahlExemplare = 1; if (iKopien != null && iKopien.intValue() > 0) { iAnzahlExemplare += iKopien.intValue(); } JasperPrintLP[] aJasperPrint = null; aJasperPrint = new JasperPrintLP[iAnzahlExemplare]; for (int iKopieNummer = 0; iKopieNummer < iAnzahlExemplare; iKopieNummer++) { if (iKopieNummer > 0) { mapParameter.put(LPReport.P_KOPIE_NUMMER, new Integer(iKopieNummer)); } index = -1; initJRDS(mapParameter, EingangsrechnungReportFac.REPORT_MODUL, sReportname, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto, true, eingangsrechnungDto.getKostenstelleIId()); aJasperPrint[iKopieNummer] = getReportPrint(); } aJasperPrint[0].putAdditionalInformation(JasperPrintLP.KEY_BELEGART, LocaleFac.BELEGART_EINGANGSRECHNUNG); aJasperPrint[0].putAdditionalInformation(JasperPrintLP.KEY_BELEGIID, eingangsrechnungDto.getIId()); return aJasperPrint; } }