List of usage examples for org.hibernate Criteria createCriteria
public Criteria createCriteria(String associationPath) throws HibernateException;
From source file:com.lp.server.eingangsrechnung.ejbfac.EingangsrechnungReportFacBean.java
License:Open Source License
@TransactionAttribute(TransactionAttributeType.NEVER) public JasperPrintLP printKontierungsjournal(TheClientDto theClientDto, int iFilterER, Integer kostenstelleIId, int iKritDatum, Date dVon, Date dBis, boolean bZusatzkosten) { Session session = null;//from ww w . ja v a2 s.c o m 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); } }
From source file:com.lp.server.eingangsrechnung.ejbfac.EingangsrechnungReportFacBean.java
License:Open Source License
@TransactionAttribute(TransactionAttributeType.NEVER) public JasperPrintLP printAlle(ReportJournalKriterienDto krit, TheClientDto theClientDto, boolean bZusatzkosten, boolean bDatumIstFreigabedatum) { Session session = null;//w w w .j a va 2 s . c o m 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); } }
From source file:com.lp.server.fertigung.ejbfac.FertigungReportFacBean.java
License:Open Source License
@TransactionAttribute(TransactionAttributeType.NEVER) public JasperPrintLP printAlle(ReportJournalKriterienDto krit, boolean bNurAngelegte, Integer fertigungsgruppeIId, TheClientDto theClientDto) throws EJBExceptionLP { Session session = null;//from w w w.j ava 2 s . c o m try { this.useCase = UC_ALLE; this.index = -1; Map<String, Object> mapParameter = new TreeMap<String, Object>(); SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); Criteria c = session.createCriteria(FLRLosReport.class); c.add(Restrictions.eq(FertigungFac.FLR_LOS_MANDANT_C_NR, theClientDto.getMandant())); if (krit.kostenstelleIId != null) { c.add(Restrictions.eq(FertigungFac.FLR_LOSREPORT_KOSTENSTELLE_I_ID, krit.kostenstelleIId)); } if (bNurAngelegte) { c.add(Restrictions.eq(FertigungFac.FLR_LOS_STATUS_C_NR, LocaleFac.STATUS_ANGELEGT)); } if (fertigungsgruppeIId != null) { c.add(Restrictions.eq(FertigungFac.FLR_LOSREPORT_FERTIGUNGSGRUPPE_I_ID, fertigungsgruppeIId)); FertigungsgruppeDto fertigungsgruppeDto = getStuecklisteFac() .fertigungsgruppeFindByPrimaryKey(fertigungsgruppeIId); mapParameter.put("P_FERTIGUNGSGRUPPE", fertigungsgruppeDto.getCBez()); } String sVon = null; String sBis = null; if (krit.dVon != null) { c.add(Restrictions.ge(FertigungFac.FLR_LOS_T_PRODUKTIONSBEGINN, krit.dVon)); sVon = Helper.formatDatum(krit.dVon, theClientDto.getLocUi()); } if (krit.dBis != null) { c.add(Restrictions.le(FertigungFac.FLR_LOS_T_PRODUKTIONSBEGINN, krit.dBis)); sBis = Helper.formatDatum(krit.dBis, theClientDto.getLocUi()); } LpBelegnummerFormat f = getBelegnummerGeneratorObj().getBelegnummernFormat(theClientDto.getMandant()); Integer iGeschaeftsjahr = getParameterFac().getGeschaeftsjahr(theClientDto.getMandant()); String sMandantKuerzel = getParameterFac().getMandantparameter(theClientDto.getMandant(), ParameterFac.KATEGORIE_ALLGEMEIN, ParameterFac.PARAMETER_BELEGNUMMER_MANDANTKENNUNG).getCWert(); if (krit.sBelegnummerVon != null) { sVon = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr, sMandantKuerzel, krit.sBelegnummerVon); c.add(Restrictions.ge(FertigungFac.FLR_LOS_C_NR, sVon)); } if (krit.sBelegnummerBis != null) { sBis = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr, sMandantKuerzel, krit.sBelegnummerBis); c.add(Restrictions.le(FertigungFac.FLR_LOS_C_NR, sBis)); } if (krit.bSortiereNachKostenstelle) { c.createCriteria(FertigungFac.FLR_LOSREPORT_FLRKOSTENSTELLE).addOrder(Order.asc("c_nr")); } // if (krit.iSortierung == // ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) { // c.createCriteria(FertigungFac.FLR_ER_FLRLIEFERANT).createCriteria( // LieferantFac. // FLR_PARTNER).addOrder(Order.asc(PartnerFac. // FLR_PARTNER_NAME1NACHNAMEFIRMAZEILE1)); // } if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) { c.createCriteria(FertigungFac.FLR_LOSREPORT_FLRAUFTRAG) .createCriteria(AuftragFac.FLR_AUFTRAG_FLRKUNDE).createCriteria(KundeFac.FLR_PARTNER) .addOrder(Order.asc(PartnerFac.FLR_PARTNER_C_NAME1NACHNAMEFIRMAZEILE1)); } if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_BELEGNUMMER) { c.addOrder(Order.asc(FertigungFac.FLR_LOS_C_NR)); } List<Object> list = c.list(); if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) { Criteria c2 = session.createCriteria(FLRLosReport.class); c2.add(Restrictions.isNull(FertigungFac.FLR_LOSREPORT_FLRAUFTRAG)); c2.add(Restrictions.eq(FertigungFac.FLR_LOS_MANDANT_C_NR, theClientDto.getMandant())); if (krit.kostenstelleIId != null) { c2.add(Restrictions.eq(FertigungFac.FLR_LOSREPORT_KOSTENSTELLE_I_ID, krit.kostenstelleIId)); } if (bNurAngelegte) { c2.add(Restrictions.eq(FertigungFac.FLR_LOS_STATUS_C_NR, LocaleFac.STATUS_ANGELEGT)); } if (fertigungsgruppeIId != null) { c2.add(Restrictions.eq(FertigungFac.FLR_LOSREPORT_FERTIGUNGSGRUPPE_I_ID, fertigungsgruppeIId)); } if (krit.dVon != null) { c2.add(Restrictions.ge(FertigungFac.FLR_LOS_T_PRODUKTIONSBEGINN, krit.dVon)); } if (krit.dBis != null) { c2.add(Restrictions.le(FertigungFac.FLR_LOS_T_PRODUKTIONSBEGINN, krit.dBis)); } List<?> list2 = c2.list(); Iterator<?> iter2 = list2.iterator(); while (iter2.hasNext()) { list.add(iter2.next()); } } data = new Object[list.size()][ALLE_FELDANZAHL]; int i = 0; for (Iterator<?> iter = list.iterator(); iter.hasNext(); i++) { FLRLosReport los = (FLRLosReport) iter.next(); LossollarbeitsplanDto[] sollaz = getFertigungFac().lossollarbeitsplanFindByLosIId(los.getI_id()); BigDecimal bdArbeitszeitIstmenge = new BigDecimal(0); BigDecimal bdArbeitszeitSollmenge = new BigDecimal(0); BigDecimal bdArbeitszeitIstpreis = new BigDecimal(0); BigDecimal bdArbeitszeitSollpreis = new BigDecimal(0); for (int j = 0; j < sollaz.length; j++) { bdArbeitszeitSollmenge = bdArbeitszeitSollmenge.add(sollaz[j].getNGesamtzeit()); ArtikellieferantDto artikellieferantDto = getArtikelFac().getArtikelEinkaufspreis( sollaz[j].getArtikelIIdTaetigkeit(), new BigDecimal(1), theClientDto.getSMandantenwaehrung(), theClientDto); BigDecimal bdEinzelpreis; if (artikellieferantDto != null) { bdEinzelpreis = artikellieferantDto.getNEinzelpreis(); } else { bdEinzelpreis = new BigDecimal(0); } bdArbeitszeitSollpreis = bdArbeitszeitSollpreis .add(sollaz[j].getNGesamtzeit().multiply(bdEinzelpreis)); } AuftragzeitenDto[] zeiten = getZeiterfassungFac().getAllZeitenEinesBeleges(LocaleFac.BELEGART_LOS, los.getI_id(), null, null, null, null, false, false, theClientDto); for (int j = 0; j < zeiten.length; j++) { bdArbeitszeitIstmenge = bdArbeitszeitIstmenge .add(new BigDecimal(zeiten[j].getDdDauer().doubleValue())); bdArbeitszeitIstpreis = bdArbeitszeitIstpreis.add(zeiten[j].getBdKosten()); } data[i][ALLE_ARBEITSZEITISTMENGE] = bdArbeitszeitIstmenge; data[i][ALLE_ARBEITSZEITISTPREIS] = bdArbeitszeitIstpreis; data[i][ALLE_ARBEITSZEITSOLLMENGE] = bdArbeitszeitSollmenge; data[i][ALLE_ARBEITSZEITSOLLPREIS] = bdArbeitszeitSollpreis; if (los.getFlrstueckliste() != null) { ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKeySmall( los.getFlrstueckliste().getFlrartikel().getI_id(), theClientDto); data[i][ALLE_BEZEICHNUNG] = artikelDto.getArtikelsprDto().getCBez(); if (artikelDto.getArtikelsprDto().getCZbez() != null) { data[i][ALLE_ZUSATZBEZEICHNUNG] = artikelDto.getArtikelsprDto().getCZbez(); } else { data[i][ALLE_ZUSATZBEZEICHNUNG] = ""; } data[i][ALLE_IDENT] = los.getFlrstueckliste().getFlrartikel().getC_nr(); data[i][ALLE_OFFENERAHMENRESERVIERUNGEN] = getReservierungFac() .getAnzahlRahmenreservierungen(artikelDto.getIId(), theClientDto); } else { data[i][ALLE_BEZEICHNUNG] = los.getC_projekt(); data[i][ALLE_BEZEICHNUNG] = null; data[i][ALLE_IDENT] = getTextRespectUISpr("fert.materialliste", theClientDto.getMandant(), theClientDto.getLocUi()); data[i][ALLE_OFFENERAHMENRESERVIERUNGEN] = new BigDecimal(0); } data[i][ALLE_LOSNUMMER] = los.getC_nr(); LossollmaterialDto[] sollmat = getFertigungFac().lossollmaterialFindByLosIId(los.getI_id()); BigDecimal bdMaterialIstmenge = new BigDecimal(0); BigDecimal bdMaterialSollmenge = new BigDecimal(0); BigDecimal bdMaterialIstpreis = new BigDecimal(0); BigDecimal bdMaterialSollpreis = new BigDecimal(0); for (int j = 0; j < sollmat.length; j++) { BigDecimal bdAusgegebeneMenge = getFertigungFac().getAusgegebeneMenge(sollmat[j].getIId(), null, theClientDto); bdMaterialIstmenge = bdMaterialIstmenge.add(bdAusgegebeneMenge); bdMaterialSollmenge = bdMaterialSollmenge.add(sollmat[j].getNMenge()); bdMaterialIstpreis = bdMaterialIstpreis.add(bdAusgegebeneMenge.multiply( getFertigungFac().getAusgegebeneMengePreis(sollmat[j].getIId(), null, theClientDto))); bdMaterialSollpreis = bdMaterialSollpreis .add(sollmat[j].getNMenge().multiply(sollmat[j].getNSollpreis())); } data[i][ALLE_MATERIALISTMENGE] = bdMaterialIstmenge; data[i][ALLE_MATERIALISTPREIS] = bdMaterialIstpreis; data[i][ALLE_MATERIALSOLLMENGE] = bdMaterialSollmenge; data[i][ALLE_MATERIALSOLLPREIS] = bdMaterialSollpreis; data[i][ALLE_BEGINNTERMIN] = los.getT_produktionsbeginn(); data[i][ALLE_LOSGROESSE] = los.getN_losgroesse(); if (los.getFlrauftrag() != null) { data[i][ALLE_AUFTRAGLIEFERTERMIN] = los.getFlrauftrag().getT_liefertermin(); data[i][ALLE_AUFTRAGSNUMMER] = los.getFlrauftrag().getC_nr(); if (los.getFlrauftrag().getFlrkunde() != null) { if (los.getFlrauftrag().getFlrkunde().getFlrpartner() != null) { data[i][ALLE_KUNDE] = los.getFlrauftrag().getFlrkunde().getFlrpartner() .getC_name1nachnamefirmazeile1(); } else { data[i][ALLE_KUNDE] = ""; } } else { data[i][ALLE_KUNDE] = ""; } } else { data[i][ALLE_AUFTRAGSNUMMER] = ""; data[i][ALLE_AUFTRAGLIEFERTERMIN] = null; } if (los.getFlrfertigungsgruppe() != null) { data[i][ALLE_FERTIGUNGSGRUPPE] = los.getFlrfertigungsgruppe().getC_bez(); } else { data[i][ALLE_FERTIGUNGSGRUPPE] = ""; } } StringBuffer sSortierung = new StringBuffer(); // Sortierung nach Kostenstelle sSortierung.append( getTextRespectUISpr("lp.sortierungnach", theClientDto.getMandant(), theClientDto.getLocUi()) + ": "); 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 Kunde mapParameter.put(LPReport.P_SORTIERENACHKUNDE, new Boolean(krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER)); if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) { sSortierung.append( getTextRespectUISpr("lp.kunde", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_BELEGNUMMER) { sSortierung.append( getTextRespectUISpr("lp.losnr", theClientDto.getMandant(), theClientDto.getLocUi())); } StringBuffer sFilter = new StringBuffer(); sFilter.append( getTextRespectUISpr("lp.filter", theClientDto.getMandant(), theClientDto.getLocUi()) + ": "); if (bNurAngelegte) { sFilter.append(getTextRespectUISpr("lp.nichtausgegebene", theClientDto.getMandant(), theClientDto.getLocUi()) + ", "); } 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("P_VON", krit.dVon); mapParameter.put("P_BIS", krit.dBis); mapParameter.put(LPReport.P_FILTER, sFilter.toString()); initJRDS(mapParameter, FertigungReportFac.REPORT_MODUL, FertigungReportFac.REPORT_ALLE, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); return getReportPrint(); } catch (RemoteException t) { throwEJBExceptionLPRespectOld(t); return null; } finally { closeSession(session); } }
From source file:com.lp.server.fertigung.ejbfac.FertigungReportFacBean.java
License:Open Source License
@TransactionAttribute(TransactionAttributeType.NEVER) public JasperPrintLP printOffene(java.sql.Date dStichtag, int iOptionStichtag, String belegNrVon, String belegNrBis, Integer kundeIId, Integer kostenstelleIId, Integer fertigungsgruppeIId, int iSortierung, TheClientDto theClientDto) throws EJBExceptionLP { Session session = null;/*from w w w.java2 s.c o m*/ try { this.useCase = UC_OFFENE; this.index = -1; SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); Criteria c = session.createCriteria(FLRLosReport.class); c.add(Restrictions.eq(FertigungFac.FLR_LOS_MANDANT_C_NR, theClientDto.getMandant())); Map<String, Object> mapParameter = new TreeMap<String, Object>(); if (kostenstelleIId != null) { KostenstelleDto kostenstelleDto = getSystemFac().kostenstelleFindByPrimaryKey(kostenstelleIId); mapParameter.put("P_KOSTENSTELLE", kostenstelleDto.formatKostenstellenbezeichnung()); c.add(Restrictions.eq(FertigungFac.FLR_LOSREPORT_KOSTENSTELLE_I_ID, kostenstelleIId)); } boolean flrAuftragSchonVerwendet = false; if (kundeIId != null) { KundeDto kundeDto = getKundeFac().kundeFindByPrimaryKey(kundeIId, theClientDto); mapParameter.put("P_KUNDE", kundeDto.getPartnerDto().formatFixTitelName1Name2()); c.createAlias(FertigungFac.FLR_LOSREPORT_FLRAUFTRAG, "a", CriteriaSpecification.LEFT_JOIN); flrAuftragSchonVerwendet = true; c.add(Restrictions.eq("a." + AuftragFac.FLR_AUFTRAG_KUNDE_I_ID_AUFTRAGSADRESSE, kundeIId)); } if (fertigungsgruppeIId != null) { c.add(Restrictions.eq(FertigungFac.FLR_LOSREPORT_FERTIGUNGSGRUPPE_I_ID, fertigungsgruppeIId)); } String[] stati = new String[4]; stati[0] = LocaleFac.STATUS_AUSGEGEBEN; stati[1] = LocaleFac.STATUS_IN_PRODUKTION; stati[2] = LocaleFac.STATUS_TEILERLEDIGT; stati[3] = LocaleFac.STATUS_ANGELEGT; c.add(Restrictions.in(FertigungFac.FLR_LOS_STATUS_C_NR, stati)); if (dStichtag != null) { dStichtag = Helper.cutDate(dStichtag); // PJ 14420 mapParameter.put("P_STICHTAG", dStichtag); Calendar cal = Calendar.getInstance(); cal.setTimeInMillis(dStichtag.getTime()); cal.set(Calendar.DATE, cal.get(Calendar.DATE) + 1); dStichtag = new java.sql.Date(cal.getTimeInMillis()); String datumsart = ""; if (iOptionStichtag == FertigungReportFac.OFFENE_OPTION_STICHTAG_BEGINNDATUM) { c.add(Restrictions.lt(FertigungFac.FLR_LOS_T_PRODUKTIONSBEGINN, dStichtag)); datumsart = getTextRespectUISpr("lp.begintermin", theClientDto.getMandant(), theClientDto.getLocUi()); } else if (iOptionStichtag == FertigungReportFac.OFFENE_OPTION_STICHTAG_ENDEDATUM) { c.add(Restrictions.lt(FertigungFac.FLR_LOS_T_PRODUKTIONSENDE, dStichtag)); datumsart = getTextRespectUISpr("lp.endetermin", theClientDto.getMandant(), theClientDto.getLocUi()); } else if (iOptionStichtag == FertigungReportFac.OFFENE_OPTION_STICHTAG_LIEFERTERMIN) { if (flrAuftragSchonVerwendet == false) { c.createAlias(FertigungFac.FLR_LOSREPORT_FLRAUFTRAG, "a", CriteriaSpecification.LEFT_JOIN); flrAuftragSchonVerwendet = true; c.add(Restrictions.lt("a." + AuftragFac.FLR_AUFTRAG_T_LIEFERTERMIN, dStichtag)); } datumsart = getTextRespectUISpr("bes.liefertermin", theClientDto.getMandant(), theClientDto.getLocUi()); } mapParameter.put("P_DATUMSART", datumsart); } LpBelegnummerFormat f = getBelegnummerGeneratorObj().getBelegnummernFormat(theClientDto.getMandant()); Integer iGeschaeftsjahr = getParameterFac().getGeschaeftsjahr(theClientDto.getMandant()); String sMandantKuerzel = getParameterFac().getMandantparameter(theClientDto.getMandant(), ParameterFac.KATEGORIE_ALLGEMEIN, ParameterFac.PARAMETER_BELEGNUMMER_MANDANTKENNUNG).getCWert(); if (belegNrVon != null) { String sVon = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr, sMandantKuerzel, belegNrVon); c.add(Restrictions.ge(FertigungFac.FLR_LOS_C_NR, sVon)); mapParameter.put("P_LOSNRVON", sVon); } if (belegNrBis != null) { String sBis = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr, sMandantKuerzel, belegNrBis); c.add(Restrictions.le(FertigungFac.FLR_LOS_C_NR, sBis)); mapParameter.put("P_LOSNRBIS", sBis); } // Sortierung if (iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_KOSTENSTELLE) { c.createCriteria(FertigungFac.FLR_LOSREPORT_FLRKOSTENSTELLE).addOrder(Order.asc("c_nr")); mapParameter.put(P_SORTIERUNG, getTextRespectUISpr("lp.kostenstelle", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_KUNDE) { if (flrAuftragSchonVerwendet == false) { c.createAlias(FertigungFac.FLR_LOSREPORT_FLRAUFTRAG, "a", CriteriaSpecification.LEFT_JOIN); flrAuftragSchonVerwendet = true; } c.createAlias("a." + AuftragFac.FLR_AUFTRAG_FLRKUNDE, "k", CriteriaSpecification.LEFT_JOIN); c.createAlias("k." + KundeFac.FLR_PARTNER, "p", CriteriaSpecification.LEFT_JOIN); c.addOrder(Order.asc("p." + PartnerFac.FLR_PARTNER_C_NAME1NACHNAMEFIRMAZEILE1)); c.addOrder(Order.asc("k.i_id")); mapParameter.put(P_SORTIERUNG, getTextRespectUISpr("lp.kunde", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_KUNDEUNDGEWAEHLTERTERMIN) { if (flrAuftragSchonVerwendet == false) { c.createAlias(FertigungFac.FLR_LOSREPORT_FLRAUFTRAG, "a", CriteriaSpecification.LEFT_JOIN); flrAuftragSchonVerwendet = true; } c.createAlias("a." + AuftragFac.FLR_AUFTRAG_FLRKUNDE, "k", CriteriaSpecification.LEFT_JOIN); c.createAlias("k." + KundeFac.FLR_PARTNER, "p", CriteriaSpecification.LEFT_JOIN); c.addOrder(Order.asc("p." + PartnerFac.FLR_PARTNER_C_NAME1NACHNAMEFIRMAZEILE1)); if (iOptionStichtag == FertigungReportFac.OFFENE_OPTION_STICHTAG_BEGINNDATUM) { c.addOrder(Order.asc(FertigungFac.FLR_LOS_T_PRODUKTIONSBEGINN)); } else if (iOptionStichtag == FertigungReportFac.OFFENE_OPTION_STICHTAG_ENDEDATUM) { c.addOrder(Order.asc(FertigungFac.FLR_LOS_T_PRODUKTIONSENDE)); } else if (iOptionStichtag == FertigungReportFac.OFFENE_OPTION_STICHTAG_LIEFERTERMIN) { c.addOrder(Order.asc("a." + AuftragFac.FLR_AUFTRAG_T_LIEFERTERMIN)); } mapParameter.put(P_SORTIERUNG, getTextRespectUISpr("fert.kundeundtermin", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_LIEFERTERMIN) { if (flrAuftragSchonVerwendet == false) { c.createAlias(FertigungFac.FLR_LOSREPORT_FLRAUFTRAG, "a", CriteriaSpecification.LEFT_JOIN); flrAuftragSchonVerwendet = true; } c.createAlias("a." + AuftragFac.FLR_AUFTRAG_FLRKUNDE, "k", CriteriaSpecification.LEFT_JOIN); c.createAlias("k." + KundeFac.FLR_PARTNER, "p", CriteriaSpecification.LEFT_JOIN); c.addOrder(Order.asc("a." + AuftragFac.FLR_AUFTRAG_T_LIEFERTERMIN)); c.addOrder(Order.asc("p." + PartnerFac.FLR_PARTNER_C_NAME1NACHNAMEFIRMAZEILE1)); mapParameter.put(P_SORTIERUNG, getTextRespectUISpr("fert.liefertermin", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_ARTIKEL) { c.createAlias(FertigungFac.FLR_LOS_FLRSTUECKLISTE, "s"); c.createAlias("s." + StuecklisteFac.FLR_STUECKLISTE_FLRARTIKEL, "art"); c.addOrder(Order.asc("art.c_nr")); mapParameter.put(P_SORTIERUNG, getTextRespectUISpr("lp.kunde", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_FERTIGUNGSGRUPPE) { c.createAlias(FertigungFac.FLR_LOSREPORT_FLRFERTIGUNGSGRUPPE, "f"); c.addOrder(Order.asc("f.c_bez")); mapParameter.put(P_SORTIERUNG, getTextRespectUISpr("lp.fertigungsgruppe", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_BEGINN) { c.addOrder(Order.asc(FertigungFac.FLR_LOS_T_PRODUKTIONSBEGINN)); mapParameter.put(P_SORTIERUNG, getTextRespectUISpr("lp.beginn", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_ENDE) { c.addOrder(Order.asc(FertigungFac.FLR_LOS_T_PRODUKTIONSENDE)); mapParameter.put(P_SORTIERUNG, getTextRespectUISpr("lp.ende", theClientDto.getMandant(), theClientDto.getLocUi())); } else { mapParameter.put(P_SORTIERUNG, getTextRespectUISpr("lp.losnr", theClientDto.getMandant(), theClientDto.getLocUi())); } // 2tes sortierkriterium immer Losnr if (iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_BEGINN || iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_ENDE || iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_LIEFERTERMIN || iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_KUNDEUNDGEWAEHLTERTERMIN) { if (flrAuftragSchonVerwendet == false) { c.createAlias(FertigungFac.FLR_LOSREPORT_FLRAUFTRAG, "a", CriteriaSpecification.LEFT_JOIN); flrAuftragSchonVerwendet = true; } c.addOrder(Order.asc("a.c_nr")); } else { c.addOrder(Order.asc(FertigungFac.FLR_LOS_C_NR)); } List<?> list = c.list(); data = new Object[list.size()][OFFENE_SPALTENANZAHL]; int i = 0; for (Iterator<?> iter = list.iterator(); iter.hasNext(); i++) { FLRLosReport los = (FLRLosReport) iter.next(); if (los.getFlrauftrag() != null) { Integer partnerIId = los.getFlrauftrag().getFlrkunde().getFlrpartner().getI_id(); PartnerDto partnerDto = getPartnerFac().partnerFindByPrimaryKey(partnerIId, theClientDto); data[i][OFFENE_KUNDE] = partnerDto.formatFixTitelName1Name2(); data[i][OFFENE_AUFTRAGSPOENALE] = los.getFlrauftrag().getB_poenale(); } if (los.getFlrauftrag() != null) { data[i][OFFENE_AUFTRAGSNUMMER] = los.getFlrauftrag().getC_nr(); data[i][OFFENE_PROJEKT] = los.getFlrauftrag().getC_bez(); data[i][OFFENE_LIEFERTERMIN] = los.getFlrauftrag().getT_liefertermin(); } BigDecimal bdGeliefert = new BigDecimal(0); for (Iterator<?> iter2 = los.getAblieferungset().iterator(); iter2.hasNext();) { FLRLosablieferung item = (FLRLosablieferung) iter2.next(); bdGeliefert = bdGeliefert.add(item.getN_menge()); } data[i][OFFENE_GELIEFERT] = bdGeliefert; if (los.getFlrstueckliste() != null) { ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKeySmall( los.getFlrstueckliste().getFlrartikel().getI_id(), theClientDto); data[i][OFFENE_BEZEICHNUNG] = artikelDto.getArtikelsprDto().getCBez(); data[i][OFFENE_ZUSATZBEZEICHNUNG] = artikelDto.getArtikelsprDto().getCZbez(); data[i][OFFENE_ARTIKELNUMMER] = los.getFlrstueckliste().getFlrartikel().getC_nr(); data[i][OFFENE_DETAILBEDARF] = getRahmenbedarfeFac() .getSummeAllerRahmenbedarfeEinesArtikels(artikelDto.getIId()); // Offene Fehlmengen data[i][OFFENE_FEHLMENGE] = getFehlmengeFac() .getAnzahlFehlmengeEinesArtikels(artikelDto.getIId(), theClientDto); LossollarbeitsplanDto[] lossollarbeitsplanDto = getFertigungFac() .lossollarbeitsplanFindByLosIId(los.getI_id()); BigDecimal bdFertigungszeit = new BigDecimal(0); for (int j = 0; lossollarbeitsplanDto.length > j; j++) { bdFertigungszeit = bdFertigungszeit.add(lossollarbeitsplanDto[j].getNGesamtzeit()); } data[i][OFFENE_FERTIGUNGSZEIT] = bdFertigungszeit; // Rahmenbestellt Hashtable<?, ?> htRahmenbestellt = getArtikelbestelltFac() .getAnzahlRahmenbestellt(artikelDto.getIId(), theClientDto); if (htRahmenbestellt.containsKey(ArtikelbestelltFac.KEY_RAHMENBESTELLT_ANZAHL)) { BigDecimal bdAnzahlRahmenbestellt = (BigDecimal) htRahmenbestellt .get(ArtikelbestelltFac.KEY_RAHMENBESTELLT_ANZAHL); data[i][OFFENE_RAHMEN_BESTELLT] = bdAnzahlRahmenbestellt; } data[i][OFFENE_RESERVIERUNGEN] = getReservierungFac() .getAnzahlReservierungen(artikelDto.getIId(), theClientDto); data[i][OFFENE_RAHMENRESERVIERUNGEN] = getReservierungFac() .getAnzahlRahmenreservierungen(artikelDto.getIId(), theClientDto); } else { data[i][OFFENE_BEZEICHNUNG] = los.getC_projekt(); data[i][OFFENE_ZUSATZBEZEICHNUNG] = null; data[i][OFFENE_ARTIKELNUMMER] = getTextRespectUISpr("fert.materialliste", theClientDto.getMandant(), theClientDto.getLocUi()); } GregorianCalendar gc = new GregorianCalendar(); gc.setTime(los.getT_produktionsbeginn()); data[i][OFFENE_KALENDERWOCHE] = new Integer(gc.get(GregorianCalendar.WEEK_OF_YEAR)); data[i][OFFENE_LOSGROESSE] = los.getN_losgroesse(); data[i][OFFENE_LOSNUMMER] = los.getC_nr(); data[i][OFFENE_FERTIGUNGSGRUPPE] = los.getFlrfertigungsgruppe().getC_bez(); /** * @todo material PJ 4239 */ data[i][OFFENE_MATERIAL] = null; data[i][OFFENE_BEGINN] = los.getT_produktionsbeginn(); data[i][OFFENE_ENDE] = los.getT_produktionsende(); data[i][OFFENE_LOSSTATUS] = los.getStatus_c_nr(); // PJ 15009 String queryf = "select sum(flrfehlmenge.n_menge) FROM FLRFehlmenge flrfehlmenge WHERE flrfehlmenge.flrlossollmaterial.flrlos = " + los.getI_id() + " AND flrfehlmenge.n_menge>0"; Session session2 = FLRSessionFactory.getFactory().openSession(); Query query = session2.createQuery(queryf); List<?> results = query.list(); data[i][OFFENE_LOSHATFEHLMENGE] = new Boolean(false); if (results.size() > 0) { BigDecimal bd = (BigDecimal) results.iterator().next(); if (bd != null && bd.doubleValue() > 0) { data[i][OFFENE_LOSHATFEHLMENGE] = new Boolean(true); } } session2.close(); } initJRDS(mapParameter, FertigungReportFac.REPORT_MODUL, FertigungReportFac.REPORT_OFFENE, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); return getReportPrint(); } catch (Exception t) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER, t); } finally { closeSession(session); } }
From source file:com.lp.server.fertigung.ejbfac.FertigungReportFacBean.java
License:Open Source License
@TransactionAttribute(TransactionAttributeType.NEVER) public JasperPrintLP printAblieferungsstatistik(java.sql.Date dVon, java.sql.Date dBis, Integer artikelIId, boolean bSortiertNachArtikel, boolean bVerdichtetNachArtikel, TheClientDto theClientDto) throws EJBExceptionLP { Session session = null;/* w w w . j a v a 2 s. c om*/ try { Map<String, Object> mapParameter = new TreeMap<String, Object>(); this.useCase = UC_ABLIEFERUNGSSTATISTIK; this.index = -1; SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); Criteria c = session.createCriteria(FLRLosablieferung.class); if (dVon != null) { dVon = Helper.cutDate(dVon); c.add(Restrictions.ge(FertigungFac.FLR_LOSABLIEFERUNG_T_AENDERN, dVon)); mapParameter.put("P_VON", new Timestamp(dVon.getTime())); } if (dBis != null) { c.add(Restrictions.lt(FertigungFac.FLR_LOSABLIEFERUNG_T_AENDERN, Helper.cutTimestamp(new Timestamp(dBis.getTime() + 24 * 3600000)))); mapParameter.put("P_BIS", new Timestamp(dBis.getTime())); } Criteria cLos = c.createCriteria(FertigungFac.FLR_LOSABLIEFERUNG_FLRLOS); // Filter nach Mandant cLos.add(Restrictions.eq(FertigungFac.FLR_LOS_MANDANT_C_NR, theClientDto.getMandant())); Criteria cStueckliste = cLos.createCriteria(FertigungFac.FLR_LOS_FLRSTUECKLISTE); Criteria cArtikel = cStueckliste.createCriteria(StuecklisteFac.FLR_STUECKLISTE_FLRARTIKEL); if (artikelIId != null) { cArtikel.add(Restrictions.eq("i_id", artikelIId)); } mapParameter.put("P_VERDICHTET", new Boolean(bVerdichtetNachArtikel)); if (bSortiertNachArtikel) { cArtikel.addOrder(Order.asc("c_nr")); mapParameter.put(LPReport.P_SORTIERUNG, getTextRespectUISpr("artikel.artikelnummerlang", theClientDto.getMandant(), theClientDto.getLocUi())); } else { mapParameter.put(LPReport.P_SORTIERUNG, getTextRespectUISpr("fert.ablieferdatum", theClientDto.getMandant(), theClientDto.getLocUi())); } c.addOrder(Order.desc(FertigungFac.FLR_LOSABLIEFERUNG_T_AENDERN)); List<?> list = c.list(); data = new Object[list.size()][10]; int i = 0; for (Iterator<?> iter = list.iterator(); iter.hasNext(); i++) { FLRLosablieferung losab = (FLRLosablieferung) iter.next(); ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKeySmall( losab.getFlrlos().getFlrstueckliste().getFlrartikel().getI_id(), theClientDto); data[i][ABLIEF_LOSNUMMER] = losab.getFlrlos().getC_nr(); data[i][ABLIEF_IDENT] = artikelDto.getCNr(); data[i][ABLIEF_BEZEICHNUNG] = artikelDto.getArtikelsprDto().getCBez(); if (artikelDto.getArtikelsprDto().getCZbez() != null) { data[i][ABLIEF_ZUSATZBEZEICHNUNG] = artikelDto.getArtikelsprDto().getCZbez(); } else { data[i][ABLIEF_ZUSATZBEZEICHNUNG] = ""; } data[i][ABLIEF_DATUM] = losab.getT_aendern(); data[i][ABLIEF_MENGE] = losab.getN_menge(); data[i][ABLIEF_ABLIEFERPREIS] = losab.getN_gestehungspreis(); data[i][ABLIEF_MATERIALWERT] = losab.getN_materialwert(); data[i][ABLIEF_ARBEITSZEITWERT] = losab.getN_arbeitszeitwert(); data[i][ABLIEF_WERT] = losab.getN_gestehungspreis().multiply(losab.getN_menge()); } initJRDS(mapParameter, FertigungReportFac.REPORT_MODUL, FertigungReportFac.REPORT_ABLIEFERUNGSSTATISTIK, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); return getReportPrint(); } catch (Exception t) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER, t); } finally { closeSession(session); } }
From source file:com.lp.server.fertigung.ejbfac.FertigungReportFacBean.java
License:Open Source License
@TransactionAttribute(TransactionAttributeType.NEVER) public JasperPrintLP printAufloesbareFehlmengen(Integer iSortierung, Boolean bNurArtikelMitLagerstand, Boolean bOhneEigengefertigteArtikel, TheClientDto theClientDto) { Session session = null;/*from w ww . j av a 2 s. co m*/ try { this.useCase = UC_AUFLOESBARE_FEHLMENGEN; this.index = -1; SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); Criteria c = session.createCriteria(FLRFehlmenge.class); c.createCriteria(ArtikelFac.FLR_FEHLMENGE_FLRLOSSOLLMATERIAL) .createCriteria(FertigungFac.FLR_LOSSOLLMATERIAL_FLRLOS) .add(Restrictions.eq(FertigungFac.FLR_LOS_MANDANT_C_NR, theClientDto.getMandant())); // c.add(Restrictions.eq("artikel_i_id",9223)); List<?> list = c.list(); int i = 0; LinkedList<ReportAufloesbareFehlmengenDto> cData = new LinkedList<ReportAufloesbareFehlmengenDto>(); HashMap<Integer, String> hmVorhandeneBestelltEintraege = new HashMap<Integer, String>(); for (Iterator<?> iter = list.iterator(); iter.hasNext(); i++) { FLRFehlmenge fm = (FLRFehlmenge) iter.next(); boolean bDatensatzVerwenden = true; // gleich den Lagerstand holen BigDecimal bdLagerstand = getLagerFac().getLagerstandAllerLagerEinesMandanten(fm.getArtikel_i_id(), theClientDto); if (bNurArtikelMitLagerstand.booleanValue()) { // vorher Lagerstand pruefen if (bdLagerstand.compareTo(new BigDecimal(0)) <= 0) { bDatensatzVerwenden = false; } } if (bDatensatzVerwenden) { if (bOhneEigengefertigteArtikel == true) { StuecklisteDto stklDto = getStuecklisteFac() .stuecklisteFindByMandantCNrArtikelIIdOhneExc(fm.getArtikel_i_id(), theClientDto); if (stklDto != null) { if (!Helper.short2boolean(stklDto.getBFremdfertigung())) { continue; } } } ReportAufloesbareFehlmengenDto rep = new ReportAufloesbareFehlmengenDto(); rep.setBdFehlmenge(fm.getN_menge()); rep.setBdLagerstand(bdLagerstand); rep.setBdBestellt(getArtikelbestelltFac().getAnzahlBestellt(fm.getArtikel_i_id())); rep.setBLos(true); rep.setBdReserviert( getReservierungFac().getAnzahlReservierungen(fm.getArtikel_i_id(), theClientDto)); rep.setDTermin(fm.getT_liefertermin()); ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKeySmall(fm.getArtikel_i_id(), theClientDto); rep.setSArtikelBezeichnung(artikelDto.getArtikelsprDto().getCBez()); rep.setSArtikelZusatzBezeichnung(artikelDto.getArtikelsprDto().getCZbez()); rep.setSArtikelNummer(artikelDto.getCNr()); rep.setIArtikelIId(artikelDto.getIId()); rep.setSEinheit(artikelDto.getEinheitCNr()); rep.setSBelegnummer("ALO" + fm.getFlrlossollmaterial().getFlrlos().getC_nr()); rep.setSProjekt(fm.getFlrlossollmaterial().getFlrlos().getC_projekt()); if (fm.getFlrlossollmaterial().getFlrlos().getFlrstueckliste() != null) { ArtikelDto artikelDtoStueckliste = getArtikelFac().artikelFindByPrimaryKeySmall(fm .getFlrlossollmaterial().getFlrlos().getFlrstueckliste().getFlrartikel().getI_id(), theClientDto); rep.setSStuecklisteBezeichnung(artikelDtoStueckliste.getArtikelsprDto().getCBez()); rep.setSStuecklisteZusatzBezeichnung(artikelDtoStueckliste.getArtikelsprDto().getCZbez()); rep.setSStuecklisteNummer(artikelDtoStueckliste.getCNr()); } cData.add(rep); if (!hmVorhandeneBestelltEintraege.containsKey(fm.getArtikel_i_id())) { // HQL Session session2 = factory.openSession(); String query = "SELECT a.n_menge, a.c_belegartnr, a.i_belegartpositionid FROM FLRArtikelbestellt a WHERE a.flrartikel.i_id=" + fm.getArtikel_i_id(); Query qResult = session.createQuery(query); // qResult.setMaxResults(50); List<?> results = qResult.list(); Iterator<?> it2 = results.iterator(); while (it2.hasNext()) { Object[] o = (Object[]) it2.next(); rep = new ReportAufloesbareFehlmengenDto(); rep.setSArtikelBezeichnung(artikelDto.getArtikelsprDto().getCBez()); rep.setSArtikelZusatzBezeichnung(artikelDto.getArtikelsprDto().getCZbez()); rep.setSArtikelNummer(artikelDto.getCNr()); rep.setIArtikelIId(artikelDto.getIId()); rep.setSEinheit(artikelDto.getEinheitCNr()); rep.setBLos(false); BestellpositionDto dto = getBestellpositionFac() .bestellpositionFindByPrimaryKeyOhneExc((Integer) o[2]); if (dto != null) { BestellungDto bestellungDto = getBestellungFac() .bestellungFindByPrimaryKey(dto.getBelegIId()); if (dto.getTAuftragsbestaetigungstermin() != null) { rep.setDTermin(dto.getTAuftragsbestaetigungstermin()); } else if (dto.getTUebersteuerterLiefertermin() != null) { rep.setDTermin(dto.getTUebersteuerterLiefertermin()); } else if (bestellungDto.getDLiefertermin() != null) { rep.setDTermin(bestellungDto.getDLiefertermin()); } rep.setSBelegnummer("BBS" + bestellungDto.getCNr()); rep.setBdOffen((BigDecimal) o[0]); rep.setSABNummer(dto.getCABNummer()); BSMahnungDto[] dtos = getBSMahnwesenFac().bsmahnungFindByBestellungIId(dto.getIId(), theClientDto); if (dtos.length > 0) { rep.setIMahnstufe(dtos[0].getMahnstufeIId()); } } else { rep.setSBelegnummer("BS not found"); } cData.add(rep); } hmVorhandeneBestelltEintraege.put(fm.getArtikel_i_id(), ""); closeSession(session2); } } } Collections.sort(cData, new ComparatorAufloesbareFehlmengen(iSortierung.intValue())); data = new Object[cData.size()][AFM_SPALTENANZAHL]; i = 0; for (Iterator<ReportAufloesbareFehlmengenDto> iter = cData.iterator(); iter.hasNext(); i++) { ReportAufloesbareFehlmengenDto rep = (ReportAufloesbareFehlmengenDto) iter.next(); data[i][AFM_ARTIKELBEZEICHNUNG] = rep.getSArtikelBezeichnung(); data[i][AFM_ARTIKELZUSATZBEZEICHNUNG] = rep.getSArtikelZusatzBezeichnung(); data[i][AFM_ARTIKELNUMMER] = rep.getSArtikelNummer(); data[i][AFM_EINHEIT] = rep.getSEinheit(); data[i][AFM_FEHLMENGE] = rep.getBdFehlmenge(); data[i][AFM_LAGERSTAND] = rep.getBdLagerstand(); data[i][AFM_BELEGNUMMER] = rep.getSBelegnummer().substring(1); data[i][AFM_BESTELLT] = rep.getBdBestellt(); data[i][AFM_RESERVIERT] = rep.getBdReserviert(); data[i][AFM_PROJEKT] = rep.getSProjekt(); data[i][AFM_OFFEN] = rep.getBdOffen(); data[i][AFM_MAHNSTUFE] = rep.getIMahnstufe(); data[i][AFM_ABNUMMER] = rep.getSABNummer(); data[i][AFM_STUECKLISTEBEZEICHNUNG] = rep.getSStuecklisteBezeichnung(); data[i][AFM_STUECKLISTEZUSATZBEZEICHNUNG] = rep.getSStuecklisteZusatzBezeichnung(); data[i][AFM_STUECKLISTENUMMER] = rep.getSStuecklisteNummer(); data[i][AFM_TERMIN] = rep.getDTermin(); BigDecimal bdFiktiverLagerstand = null; if (rep.getBdLagerstand() == null) { bdFiktiverLagerstand = new BigDecimal(0); } else { bdFiktiverLagerstand = rep.getBdLagerstand(); } for (int y = 0; y < cData.size(); y++) { ReportAufloesbareFehlmengenDto rafHelper = cData.get(y); if (rafHelper.isBLos() && rep.isBLos()) { if (rafHelper.getIArtikelIId().equals(rep.getIArtikelIId()) && (rafHelper.getDTermin().before(rep.getDTermin()) || rafHelper.getDTermin().equals(rep.getDTermin()))) { if (rafHelper.getDTermin().equals(rep.getDTermin())) { if (i >= y) { bdFiktiverLagerstand = bdFiktiverLagerstand .subtract(rafHelper.getBdFehlmenge() == null ? new BigDecimal(0) : rafHelper.getBdFehlmenge()); } } else { bdFiktiverLagerstand = bdFiktiverLagerstand .subtract(rafHelper.getBdFehlmenge() == null ? new BigDecimal(0) : rafHelper.getBdFehlmenge()); } } } } data[i][AFM_FIKTIVERLAGERSTAND] = bdFiktiverLagerstand; } Map<String, Object> mapParameter = new TreeMap<String, Object>(); String sSortierung = null; boolean bSortiertNachArtikelnummer = false; if (iSortierung.intValue() == Helper.SORTIERUNG_NACH_IDENT) { sSortierung = "Sortiert nach Artikelnummer"; bSortiertNachArtikelnummer = true; } else if (iSortierung.intValue() == Helper.SORTIERUNG_NACH_LOSNUMMER) { sSortierung = "Sortiert nach Losnummer"; } mapParameter.put("P_SORTIERTNACHARTIKELNUMMER", bSortiertNachArtikelnummer); mapParameter.put(P_SORTIERUNG, sSortierung); String sFilter = null; if (bNurArtikelMitLagerstand.booleanValue()) { sFilter = "Nur Artikel mit Lagerstand"; } mapParameter.put(P_FILTER, sFilter); mapParameter.put("P_OHNEEIGENGEFERTIGTEARTIKEL", bOhneEigengefertigteArtikel); initJRDS(mapParameter, FertigungReportFac.REPORT_MODUL, FertigungReportFac.REPORT_AUFLOESBARE_FEHLMENGEN, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); return getReportPrint(); } catch (RemoteException ex) { throwEJBExceptionLPRespectOld(ex); return null; } finally { closeSession(session); } }
From source file:com.lp.server.fertigung.ejbfac.FertigungReportFacBean.java
License:Open Source License
@TransactionAttribute(TransactionAttributeType.NEVER) public JasperPrintLP printStueckrueckmeldung(Integer losIId, int iSortierung, TheClientDto theClientDto) throws EJBExceptionLP { Session session = null;//from w w w . ja va 2 s. co m try { this.useCase = UC_STUECKRUECKMELDUNG; this.index = -1; // Los holen LosDto losDto = getFertigungFac().losFindByPrimaryKey(losIId); if (losDto.getStatusCNr().equals(FertigungFac.STATUS_ANGELEGT)) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FERTIGUNG_DAS_LOS_IST_NOCH_NICHT_AUSGEGEBEN, ""); } else if (losDto.getStatusCNr().equals(FertigungFac.STATUS_STORNIERT)) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FERTIGUNG_DAS_LOS_IST_STORNIERT, ""); } SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); Criteria c = session.createCriteria(FLRLossollarbeitsplan.class); // Nur Buchungen auf dieses Los c.add(Restrictions.eq(FertigungFac.FLR_LOSSOLLARBEITSPLAN_LOS_I_ID, losIId)); // Sortierung if (iSortierung == Helper.SORTIERUNG_NACH_IDENT) { c.createCriteria(FertigungFac.FLR_LOSSOLLARBEITSPLAN_FLRARTIKEL) .addOrder(Order.asc(ArtikelFac.FLR_ARTIKEL_C_NR)); } else if (iSortierung == Helper.SORTIERUNG_NACH_ARBEITSGANG) { c.addOrder(Order.asc(FertigungFac.FLR_LOSSOLLARBEITSPLAN_I_ARBEITSGANGNUMMER)); } List<?> list = c.list(); ArrayList alDaten = new ArrayList(); Iterator<?> iter = list.iterator(); while (iter.hasNext()) { FLRLossollarbeitsplan item = (FLRLossollarbeitsplan) iter.next(); LosgutschlechtDto[] losgutschlechDtos = getFertigungFac() .losgutschlechtFindByLossollarbeitsplanIId(item.getI_id()); for (int i = 0; i < losgutschlechDtos.length; i++) { Object[] oZeile = new Object[SRM_SPALTENANZAHL]; ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKey(item.getFlrartikel().getI_id(), theClientDto); oZeile[SRM_IDENT] = artikelDto.getCNr(); oZeile[SRM_BEZEICHNUNG] = artikelDto.getArtikelsprDto().getCBez(); oZeile[SRM_ZUSATZBEZEICHNUNG] = artikelDto.getArtikelsprDto().getCZbez(); oZeile[SRM_ARBEITSGANG] = item.getI_arbeitsgangsnummer(); ZeitdatenDto zd = getZeiterfassungFac() .zeitdatenFindByPrimaryKey(losgutschlechDtos[i].getZeitdatenIId(), theClientDto); oZeile[SRM_GEBUCHT] = zd.getTZeit(); oZeile[SRM_GUT] = losgutschlechDtos[i].getNGut(); oZeile[SRM_SCHLECHT] = losgutschlechDtos[i].getNSchlecht(); oZeile[SRM_INARBEIT] = losgutschlechDtos[i].getNInarbeit(); oZeile[SRM_OFFEN] = losDto.getNLosgroesse().subtract(losgutschlechDtos[i].getNGut()) .subtract(losgutschlechDtos[i].getNSchlecht()) .subtract(losgutschlechDtos[i].getNInarbeit()); if (item.getFlrmaschine() != null) { oZeile[SRM_MASCHINE] = item.getFlrmaschine().getC_identifikationsnr(); } PersonalDto personalDto = getPersonalFac().personalFindByPrimaryKey(zd.getPersonalIId(), theClientDto); oZeile[SRM_PERSONAL] = personalDto.formatAnrede(); alDaten.add(oZeile); } } data = new Object[alDaten.size()][SRM_SPALTENANZAHL]; data = (Object[][]) alDaten.toArray(data); // Parameter Map<String, Object> mapParameter = new TreeMap<String, Object>(); mapParameter.put("P_ANGELEGT", new java.util.Date(losDto.getTAnlegen().getTime())); String sAuftragsnummer; String sInternerKommentar = null; String sKunde; Timestamp dLiefertermin; if (losDto.getAuftragpositionIId() != null) { // Auftrag holen AuftragpositionDto aufposDto = getAuftragpositionFac() .auftragpositionFindByPrimaryKey(losDto.getAuftragpositionIId()); AuftragDto auftragDto = getAuftragFac().auftragFindByPrimaryKey(aufposDto.getBelegIId()); sAuftragsnummer = auftragDto.getCNr(); // Internen Kommentar aus dem Auftrag, anhaengig von einem // Mandantenparameter ParametermandantDto parameter = getParameterFac().getMandantparameter(theClientDto.getMandant(), ParameterFac.KATEGORIE_FERTIGUNG, ParameterFac.PARAMETER_KOMMENTAR_AM_FERTIGUNGSBEGLEITSCHEIN); short iValue = Short.parseShort(parameter.getCWert()); boolean bDruckeKommentar = Helper.short2boolean(iValue); if (bDruckeKommentar) { sInternerKommentar = auftragDto.getXInternerkommentar(); } // Kunde holen KundeDto kundeDto = getKundeFac().kundeFindByPrimaryKey(auftragDto.getKundeIIdAuftragsadresse(), theClientDto); sKunde = kundeDto.getPartnerDto().getCName1nachnamefirmazeile1(); if (aufposDto.getTUebersteuerbarerLiefertermin() != null) { dLiefertermin = aufposDto.getTUebersteuerbarerLiefertermin(); } else { dLiefertermin = auftragDto.getDLiefertermin(); } } else { sAuftragsnummer = ""; sKunde = ""; dLiefertermin = null; } mapParameter.put("P_AUFTRAGNUMMER", sAuftragsnummer); mapParameter.put("P_AUFTRAG_INTERNERKOMMENTAR", sInternerKommentar); KostenstelleDto kstDto = getSystemFac().kostenstelleFindByPrimaryKey(losDto.getKostenstelleIId()); mapParameter.put("P_KOSTENSTELLENUMMER", kstDto.getCNr()); mapParameter.put("P_KUNDE", sKunde); mapParameter.put("P_LOSGROESSE", losDto.getNLosgroesse()); mapParameter.put("P_LOSNUMMER", losDto.getCNr()); mapParameter.put("P_PRODUKTIONSBEGINN", losDto.getTProduktionsbeginn()); mapParameter.put("P_LIEFERTERMIN", dLiefertermin); // Materialliste? if (losDto.getStuecklisteIId() != null) { StuecklisteDto stkDto = getStuecklisteFac().stuecklisteFindByPrimaryKey(losDto.getStuecklisteIId(), theClientDto); mapParameter.put("P_STUECKLISTEBEZEICHNUNG", stkDto.getArtikelDto().getArtikelsprDto().getCBez()); mapParameter.put("P_STUECKLISTEZUSATZBEZEICHNUNG", stkDto.getArtikelDto().getArtikelsprDto().getCZbez()); mapParameter.put("P_STUECKLISTENUMMER", stkDto.getArtikelDto().getCNr()); } else { mapParameter.put("P_STUECKLISTEBEZEICHNUNG", losDto.getCProjekt()); mapParameter.put("P_STUECKLISTENUMMER", getTextRespectUISpr("fert.materialliste", theClientDto.getMandant(), theClientDto.getLocUi())); } initJRDS(mapParameter, FertigungReportFac.REPORT_MODUL, FertigungReportFac.REPORT_STUECKRUECKMELDUNG, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); return getReportPrint(); } catch (Exception t) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER, t); } finally { closeSession(session); } }
From source file:com.lp.server.fertigung.ejbfac.InternebestellungFacBean.java
License:Open Source License
/** * Daten fuer eine Bewegungsvorschau erstellen * /*ww w .ja v a2 s . com*/ * @param artikelDto * ArtikelDto * @param bInternebestellungMiteinbeziehen * boolean * @param alTheoretischeZusatzeintraege * Optional. Hier koennen der Bewegungsvorschau "kuenstlich" * weitere Eintraege hinzugefuegt werden. * @param cNrUserI * String * @return ArrayList * @throws EJBExceptionLP */ private ArrayList<BewegungsvorschauDto> getBewegungsvorschau(ArtikelDto artikelDto, boolean bInternebestellungMiteinbeziehen, ArrayList<BewegungsvorschauDto> alTheoretischeZusatzeintraege, boolean bTermineVorHeuteAufHeute, TheClientDto theClientDto, ArrayList<Integer> arLosIId) throws EJBExceptionLP { ArrayList<BewegungsvorschauDto> bewegungsvorschau = new ArrayList<BewegungsvorschauDto>(); // Zusatzeintraege hinzufuegen if (alTheoretischeZusatzeintraege != null) { // hier nur Eintraege dieses Artikels beruecksichtigen for (Iterator<?> iter = alTheoretischeZusatzeintraege.iterator(); iter.hasNext();) { BewegungsvorschauDto item = (BewegungsvorschauDto) iter.next(); if (artikelDto.getIId().equals(item.getArtikelIId())) { bewegungsvorschau.add(item); } } } Session session = null; try { SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); // ------------------------------------------------------------------ // ---- // Bestelltliste // ------------------------------------------------------------------ // ---- Criteria cBestellt = session.createCriteria(FLRArtikelbestellt.class); // Filter nach Artikel cBestellt.createAlias(ArtikelbestelltFac.FLR_ARTIKELBESTELLT_FLRARTIKEL, "a") .add(Restrictions.eq("a.i_id", artikelDto.getIId())); // Sortierung nach Liefertermin cBestellt.addOrder(Order.asc(ArtikelbestelltFac.FLR_ARTIKELBESTELLT_D_LIEFERTERMIN)); // Query ausfuehren List<?> listBestellt = cBestellt.list(); for (Iterator<?> iter = listBestellt.iterator(); iter.hasNext();) { FLRArtikelbestellt item = (FLRArtikelbestellt) iter.next(); if (item.getC_belegartnr().equals(LocaleFac.BELEGART_BESTELLUNG)) { BestellpositionDto bestpos = getBestellpositionFac() .bestellpositionFindByPrimaryKeyOhneExc(item.getI_belegartpositionid()); if (bestpos != null) { // Bestelltliste koennte inkonsistent // sein. BestellungDto bestellung = getBestellungFac() .bestellungFindByPrimaryKey(bestpos.getBestellungIId()); // wenn die Bestellung "meinem" Mandanten gehoert if (!bestellung.getStatusCNr().equals(LocaleFac.STATUS_STORNIERT)) { // if (bestellung.getTManuellGeliefert() == null) { if (bestpos.getBestellpositionstatusCNr() != null && !bestpos.getBestellpositionstatusCNr().equals(LocaleFac.STATUS_ERLEDIGT)) { if (bestellung.getMandantCNr().equals(theClientDto.getMandant())) { // Bewegungsvorschaueintrag erzeugen BewegungsvorschauDto dto = new BewegungsvorschauDto(); dto.setArtikelIId(item.getFlrartikel().getI_id()); dto.setCBelegartCNr(LocaleFac.BELEGART_BESTELLUNG); dto.setCProjekt(bestellung.getCBez()); dto.setIBelegIId(bestellung.getIId()); dto.setIBelegPositionIId(item.getI_belegartpositionid()); dto.setNMenge(item.getN_menge()); dto.setTLiefertermin(new Timestamp(item.getT_liefertermin().getTime())); dto.setTABTerminBestellung(bestpos.getTAuftragsbestaetigungstermin()); dto.setCBelegnummer(bestellung.getCNr()); // Lieferant holen LieferantDto lieferantDto = getLieferantFac().lieferantFindByPrimaryKey( bestellung.getLieferantIIdBestelladresse(), theClientDto); dto.setPartnerDto(lieferantDto.getPartnerDto()); bewegungsvorschau.add(dto); } } // } } } else { // Eintrag in der Bestelltliste, zu dem es gar keine // Bestellposition gibt // -> loeschen. getArtikelbestelltFac().removeArtikelbestellt(LocaleFac.BELEGART_BESTELLUNG, item.getI_belegartpositionid()); } } } // ------------------------------------------------------------------ // ---- // Reservierungsliste // ------------------------------------------------------------------ // ---- Criteria cReservierung = session.createCriteria(FLRArtikelreservierung.class); // Filter nach Artikel cReservierung.createAlias(ArtikelbestelltFac.FLR_ARTIKELBESTELLT_FLRARTIKEL, "a") .add(Restrictions.eq("a.i_id", artikelDto.getIId())); // Sortierung nach Liefertermin cReservierung.addOrder(Order.asc(ReservierungFac.FLR_ARTIKELRESERVIERUNG_D_LIEFERTERMIN)); // Query ausfuehren List<?> listReservierung = cReservierung.list(); for (Iterator<?> iter = listReservierung.iterator(); iter.hasNext();) { FLRArtikelreservierung item = (FLRArtikelreservierung) iter.next(); // -------------------------------------------------------------- // ------ // Auftragsreservierung // -------------------------------------------------------------- // ------ if (item.getC_belegartnr().equals(LocaleFac.BELEGART_AUFTRAG)) { AuftragpositionDto aufpos = getAuftragpositionFac() .auftragpositionFindByPrimaryKeyOhneExc(item.getI_belegartpositionid()); if (aufpos != null) { AuftragDto auftragDto = getAuftragFac().auftragFindByPrimaryKey(aufpos.getBelegIId()); if (auftragDto.getMandantCNr().equals(theClientDto.getMandant())) { // Bewegungsvorschaueintrag erzeugen BewegungsvorschauDto dto = new BewegungsvorschauDto(); dto.setArtikelIId(item.getFlrartikel().getI_id()); dto.setCBelegartCNr(LocaleFac.BELEGART_AUFTRAG); dto.setCProjekt(auftragDto.getCBezProjektbezeichnung()); dto.setProjektIId(auftragDto.getProjektIId()); dto.setIBelegIId(auftragDto.getIId()); dto.setIBelegPositionIId(item.getI_belegartpositionid()); dto.setNMenge(item.getN_menge().negate()); // Termine vor heute werden auf heute umgerechnet Timestamp tsTermin = new Timestamp(item.getT_liefertermin().getTime()); if (tsTermin.before(getTimestamp()) && bTermineVorHeuteAufHeute) { tsTermin = Helper.cutTimestamp(getTimestamp()); } dto.setTLiefertermin(tsTermin); dto.setCBelegnummer(auftragDto.getCNr()); // Kunde holen KundeDto kundeDto = getKundeFac() .kundeFindByPrimaryKey(auftragDto.getKundeIIdAuftragsadresse(), theClientDto); dto.setPartnerDto(kundeDto.getPartnerDto()); dto.setKundeDto(kundeDto); bewegungsvorschau.add(dto); } } else { // es wurde eine Auftragsreservierung gefunden, zu der // es keine Auftragsposition gibt. // -> loeschen. getReservierungFac().removeArtikelreservierung(LocaleFac.BELEGART_AUFTRAG, item.getI_belegartpositionid()); } } // Losreservierung else if (item.getC_belegartnr().equals(LocaleFac.BELEGART_LOS)) { LossollmaterialDto losmat = getFertigungFac() .lossollmaterialFindByPrimaryKeyOhneExc(item.getI_belegartpositionid()); if (losmat != null) { LosDto losDto = getFertigungFac().losFindByPrimaryKey(losmat.getLosIId()); if (losDto.getMandantCNr().equals(theClientDto.getMandant())) { if (arLosIId != null) { // Nur bestimmte Lose beruecksichtigen boolean bGefunden = false; for (int i = 0; i < arLosIId.size(); i++) { if (losDto.getIId().equals(arLosIId.get(i))) { bGefunden = true; break; } } if (bGefunden == false) { // auslassen continue; } } // Bewegungsvorschaueintrag erzeugen BewegungsvorschauDto dto = new BewegungsvorschauDto(); dto.setArtikelIId(item.getFlrartikel().getI_id()); dto.setCBelegartCNr(LocaleFac.BELEGART_LOS); dto.setCProjekt(losDto.getCProjekt()); dto.setIBelegIId(losDto.getIId()); dto.setIBelegPositionIId(item.getI_belegartpositionid()); dto.setNMenge(item.getN_menge().negate()); // Termine vor heute werden auf heute umgerechnet Timestamp tsTermin = new Timestamp(item.getT_liefertermin().getTime()); if (tsTermin.before(getTimestamp()) && bTermineVorHeuteAufHeute) { tsTermin = Helper.cutTimestamp(getTimestamp()); } dto.setTLiefertermin(tsTermin); dto.setCBelegnummer(losDto.getCNr()); // wenn das Los auftragsbezogen ist, dann hol ich // auch den Kunden if (losDto.getAuftragpositionIId() != null || losDto.getAuftragIId() != null) { Integer auftragIId = losDto.getAuftragIId(); if (auftragIId == null) { AuftragpositionDto aufposDto = getAuftragpositionFac() .auftragpositionFindByPrimaryKey(losDto.getAuftragpositionIId()); auftragIId = aufposDto.getBelegIId(); } // den finde ich ueber die Auftragsposition AuftragDto auftragDto = getAuftragFac().auftragFindByPrimaryKey(auftragIId); dto.setProjektIId(auftragDto.getProjektIId()); KundeDto kundeDto = getKundeFac().kundeFindByPrimaryKey( auftragDto.getKundeIIdAuftragsadresse(), theClientDto); dto.setPartnerDto(kundeDto.getPartnerDto()); } bewegungsvorschau.add(dto); } } else { // es wurde eine Auftragsreservierung gefunden, zu der // es keine Auftragsposition gibt. // -> loeschen. getReservierungFac().removeArtikelreservierung(LocaleFac.BELEGART_LOS, item.getI_belegartpositionid()); } } else if (item.getC_belegartnr().equals(LocaleFac.BELEGART_KUECHE)) { Speiseplanposition speiseplanposition = em.find(Speiseplanposition.class, item.getI_belegartpositionid()); if (speiseplanposition != null) { SpeiseplanpositionDto speiseplanpositionDto = SpeiseplanpositionDtoAssembler .createDto(speiseplanposition); // Bewegungsvorschaueintrag erzeugen BewegungsvorschauDto dto = new BewegungsvorschauDto(); dto.setArtikelIId(item.getFlrartikel().getI_id()); dto.setCBelegartCNr(LocaleFac.BELEGART_KUECHE); SpeiseplanDto speiseplanDto = null; try { speiseplanDto = getKuecheFac() .speiseplanFindByPrimaryKey(speiseplanpositionDto.getSpeiseplanIId()); dto.setCBelegnummer("K"); // Projekt= Speisekassa KassaartikelDto speisekassaDto = getKuecheFac() .kassaartikelFindByPrimaryKey(speiseplanDto.getKassaartikelIId()); dto.setCProjekt(speisekassaDto.getCBez()); // Kunde = Stuecklistebezeichnung /* * StuecklisteDto stuecklisteDto = * getStuecklisteFac() .stuecklisteFindByPrimaryKey( * speiseplanDto.getStuecklisteIId(), theClientDto); */ } catch (RemoteException ex3) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER, ex3); } dto.setIBelegIId(speiseplanDto.getIId()); dto.setIBelegPositionIId(item.getI_belegartpositionid()); dto.setNMenge(item.getN_menge().negate()); // Termine vor heute werden auf heute umgerechnet Timestamp tsTermin = new Timestamp(item.getT_liefertermin().getTime()); if (tsTermin.before(getTimestamp()) && bTermineVorHeuteAufHeute) { tsTermin = Helper.cutTimestamp(getTimestamp()); } dto.setTLiefertermin(tsTermin); bewegungsvorschau.add(dto); } else { getReservierungFac().removeArtikelreservierung(LocaleFac.BELEGART_KUECHE, item.getI_belegartpositionid()); } } } // ------------------------------------------------------------------ // ---- // Fehlmengen // ------------------------------------------------------------------ // ---- Criteria cFehlmenge = session.createCriteria(FLRFehlmenge.class); // Filter nach Artikel cFehlmenge.add(Restrictions.eq(ArtikelFac.FLR_FEHLMENGE_ARTIKEL_I_ID, artikelDto.getIId())); // Sortierung nach Liefertermin cFehlmenge.addOrder(Order.asc(ArtikelFac.FLR_FEHLMENGE_T_LIEFERTERMIN)); List<?> listFehlmenge = cFehlmenge.list(); for (Iterator<?> iter = listFehlmenge.iterator(); iter.hasNext();) { FLRFehlmenge item = (FLRFehlmenge) iter.next(); // kontrollieren, ob das los auch von diesem mandanten ist if (item.getFlrlossollmaterial() != null && item.getFlrlossollmaterial().getFlrlos() .getMandant_c_nr().equals(theClientDto.getMandant())) { // Los holen LosDto losDto = getFertigungFac() .losFindByPrimaryKey(item.getFlrlossollmaterial().getFlrlos().getI_id()); if (arLosIId != null) { // Nur bestimmte Lose beruecksichtigen boolean bGefunden = false; for (int i = 0; i < arLosIId.size(); i++) { if (losDto.getIId().equals(arLosIId.get(i))) { bGefunden = true; break; } } if (bGefunden == false) { // auslassen continue; } } // Bewegungsvorschaueintrag erzeugen BewegungsvorschauDto dto = new BewegungsvorschauDto(); dto.setArtikelIId(item.getFlrartikel().getI_id()); dto.setCBelegartCNr(LocaleFac.BELEGART_LOS); dto.setIBelegIId(losDto.getIId()); dto.setIBelegPositionIId(item.getFlrlossollmaterial().getI_id()); dto.setNMenge(item.getN_menge().negate()); // Termine vor heute werden auf heute umgerechnet Timestamp tsTermin = new Timestamp(item.getT_liefertermin().getTime()); if (tsTermin.before(getTimestamp())) { tsTermin = Helper.cutTimestamp(getTimestamp()); } dto.setTLiefertermin(tsTermin); dto.setCBelegnummer(item.getFlrlossollmaterial().getFlrlos().getC_nr()); // wenn das Los auftragsbezogen ist, dann hol ich auch den // Kunden if (losDto.getAuftragpositionIId() != null) { // den finde ich ueber die Auftragsposition AuftragpositionDto aufposDto = getAuftragpositionFac() .auftragpositionFindByPrimaryKey(losDto.getAuftragpositionIId()); AuftragDto auftragDto = getAuftragFac().auftragFindByPrimaryKey(aufposDto.getBelegIId()); dto.setProjektIId(auftragDto.getProjektIId()); KundeDto kundeDto = getKundeFac() .kundeFindByPrimaryKey(auftragDto.getKundeIIdAuftragsadresse(), theClientDto); dto.setPartnerDto(kundeDto.getPartnerDto()); } bewegungsvorschau.add(dto); } } // ------------------------------------------------------------------ // ---- // noch erwartete Losablieferungen // ------------------------------------------------------------------ // ---- Criteria cAblieferung = session.createCriteria(FLRLos.class); // Filter nach Mandant cAblieferung.add(Restrictions.eq(FertigungFac.FLR_LOS_MANDANT_C_NR, theClientDto.getMandant())); // OHNE STORNIERTE cAblieferung.add(Restrictions.not(Restrictions.in(FertigungFac.FLR_LOS_STATUS_C_NR, new String[] { FertigungFac.STATUS_STORNIERT, FertigungFac.STATUS_ERLEDIGT }))); // Filter nach Artikel cAblieferung.createCriteria(FertigungFac.FLR_LOS_FLRSTUECKLISTE) .createCriteria(StuecklisteFac.FLR_STUECKLISTE_FLRARTIKEL) .add(Restrictions.eq("i_id", artikelDto.getIId())); // Sortierung nach Liefertermin (=Produktionsende) cAblieferung.addOrder(Order.asc(FertigungFac.FLR_LOS_T_PRODUKTIONSENDE)); // Query ausfuehren List<?> listAblieferung = cAblieferung.list(); for (Iterator<?> iter = listAblieferung.iterator(); iter.hasNext();) { FLRLos los = (FLRLos) iter.next(); BigDecimal bdOffen = los.getN_losgroesse(); // von der Losgroesse die bisherigen Ablieferungen subtrahieren for (Iterator<?> iter2 = los.getAblieferungset().iterator(); iter2.hasNext();) { FLRLosablieferung item2 = (FLRLosablieferung) iter2.next(); bdOffen = bdOffen.subtract(item2.getN_menge()); } if (bdOffen.compareTo(new BigDecimal(0)) > 0) { BewegungsvorschauDto dto = new BewegungsvorschauDto(); dto.setArtikelIId(los.getFlrstueckliste().getFlrartikel().getI_id()); dto.setCBelegartCNr(LocaleFac.BELEGART_LOSABLIEFERUNG); dto.setIBelegIId(los.getI_id()); dto.setIBelegPositionIId(null); dto.setNMenge(bdOffen); dto.setTLiefertermin(new Timestamp(los.getT_produktionsende().getTime())); dto.setCBelegnummer(los.getC_nr()); LosDto losDto = getFertigungFac().losFindByPrimaryKey(los.getI_id()); // wenn das Los auftragsbezogen ist, dann hol ich auch den // Kunden if (losDto.getAuftragpositionIId() != null) { // den finde ich ueber die Auftragsposition AuftragpositionDto aufposDto = getAuftragpositionFac() .auftragpositionFindByPrimaryKey(losDto.getAuftragpositionIId()); AuftragDto auftragDto = getAuftragFac().auftragFindByPrimaryKey(aufposDto.getBelegIId()); KundeDto kundeDto = getKundeFac() .kundeFindByPrimaryKey(auftragDto.getKundeIIdAuftragsadresse(), theClientDto); dto.setPartnerDto(kundeDto.getPartnerDto()); } bewegungsvorschau.add(dto); } } // Interne Bestellung miteinbeziehen if (bInternebestellungMiteinbeziehen) { Criteria cIB = session.createCriteria(FLRInternebestellung.class); // Filter nach Mandant cIB.add(Restrictions.eq(FertigungFac.FLR_INTERNE_BESTELLUNG_MANDANT_C_NR, theClientDto.getMandant())). // Filter nach Artikel createCriteria(FertigungFac.FLR_INTERNE_BESTELLUNG_FLRSTUECKLISTE) .createCriteria(StuecklisteFac.FLR_STUECKLISTE_FLRARTIKEL) .add(Restrictions.eq("i_id", artikelDto.getIId())); // Sortierung nach Liefertermin (=Produktionsende) cIB.addOrder(Order.asc(FertigungFac.FLR_INTERNE_BESTELLUNG_T_LIEFERTERMIN)); List<?> listIB = cIB.list(); for (Iterator<?> iter = listIB.iterator(); iter.hasNext();) { FLRInternebestellung ib = (FLRInternebestellung) iter.next(); BewegungsvorschauDto dto = new BewegungsvorschauDto(); dto.setArtikelIId(ib.getFlrstueckliste().getFlrartikel().getI_id()); dto.setCBelegartCNr(ib.getBelegart_c_nr()); dto.setIBelegIId(ib.getI_belegiid()); dto.setIBelegPositionIId(ib.getI_belegpositioniid()); dto.setNMenge(ib.getN_menge()); dto.setTLiefertermin(new Timestamp(ib.getT_liefertermin().getTime())); bewegungsvorschau.add(dto); } } } catch (RemoteException ex) { throwEJBExceptionLPRespectOld(ex); } finally { closeSession(session); } return bewegungsvorschau; }
From source file:com.lp.server.finanz.ejbfac.FibuExportFacBean.java
License:Open Source License
private FLRRechnung[] getVerbuchbareRechnungen(java.sql.Date dStichtag, TheClientDto theClientDto) throws EJBExceptionLP { Session session = null;/* w ww . ja va2s . c o m*/ try { pruefeAufAngelegte(dStichtag, theClientDto, RechnungFac.RECHNUNGTYP_RECHNUNG); SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); Criteria c = session.createCriteria(FLRRechnung.class); // nur Rechnungen c.createCriteria(RechnungFac.FLR_RECHNUNG_FLRRECHNUNGART).add(Restrictions .eq(RechnungFac.FLR_RECHNUNGART_RECHNUNGTYP_C_NR, RechnungFac.RECHNUNGTYP_RECHNUNG)); // Filter nach Mandant c.add(Restrictions.eq(RechnungFac.FLR_RECHNUNG_MANDANT_C_NR, theClientDto.getMandant())); // Noch nicht verbuchte c.add(Restrictions.isNull(RechnungFac.FLR_RECHNUNG_T_FIBUUEBERNAHME)); // Stichtag c.add(Restrictions.le(RechnungFac.FLR_RECHNUNG_D_BELEGDATUM, dStichtag)); // Und nach status Collection<String> coll = new LinkedList<String>(); coll.add(RechnungFac.STATUS_BEZAHLT); coll.add(RechnungFac.STATUS_OFFEN); coll.add(RechnungFac.STATUS_TEILBEZAHLT); coll.add(RechnungFac.STATUS_VERBUCHT); c.add(Restrictions.in(RechnungFac.FLR_RECHNUNG_STATUS_C_NR, coll)); c.addOrder(Property.forName("c_nr").asc()); // zu exportierende Belege holen List<?> list = c.list(); FLRRechnung[] reArray = new FLRRechnung[list.size()]; int i = 0; for (Iterator<?> iter = list.iterator(); iter.hasNext(); i++) { FLRRechnung re = (FLRRechnung) iter.next(); reArray[i] = re; } return reArray; } finally { if (session != null) { session.close(); } } }
From source file:com.lp.server.finanz.ejbfac.FibuExportFacBean.java
License:Open Source License
private void pruefeAufAngelegte(Date dStichtag, TheClientDto theClientDto, String sRechnungstyp) throws EJBExceptionLP { Session session = null;//from w w w . j ava 2 s. c om try { SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); Criteria c = session.createCriteria(FLRRechnung.class); // nur Rechnungen c.createCriteria(RechnungFac.FLR_RECHNUNG_FLRRECHNUNGART) .add(Restrictions.eq(RechnungFac.FLR_RECHNUNGART_RECHNUNGTYP_C_NR, sRechnungstyp)); // Filter nach Mandant c.add(Restrictions.eq(RechnungFac.FLR_RECHNUNG_MANDANT_C_NR, theClientDto.getMandant())); // Noch nicht verbuchte c.add(Restrictions.isNull(RechnungFac.FLR_RECHNUNG_T_FIBUUEBERNAHME)); // Stichtag c.add(Restrictions.le(RechnungFac.FLR_RECHNUNG_D_BELEGDATUM, dStichtag)); // Und nach status Collection<String> coll = new LinkedList<String>(); // Zuerst schauen, ob es noch angelegte gibt, in diesem fall muss // der export abgebrochen werden coll.add(RechnungFac.STATUS_ANGELEGT); c.add(Restrictions.in(RechnungFac.FLR_RECHNUNG_STATUS_C_NR, coll)); List<?> listAngelegte = c.list(); if (!listAngelegte.isEmpty()) { StringBuffer sb = new StringBuffer(); for (Iterator<?> iter = listAngelegte.iterator(); iter.hasNext();) { FLRRechnung re = (FLRRechnung) iter.next(); sb.append(re.getC_nr()); sb.append(" an ").append(re.getFlrkunde().getFlrpartner().getC_name1nachnamefirmazeile1()); sb.append("\n"); } EJBExceptionLP ex = new EJBExceptionLP( EJBExceptionLP.FEHLER_FINANZ_EXPORT_BELEG_IST_NOCH_NICHT_AKTIVIERT, new Exception("noch nicht aktivierte Belege")); // Kunden holen ArrayList<Object> a = new ArrayList<Object>(); a.add(sb.toString()); ex.setAlInfoForTheClient(a); throw ex; } } finally { if (session != null) { session.close(); } } }