List of usage examples for org.hibernate.criterion Restrictions le
public static SimpleExpression le(String propertyName, Object value)
From source file:com.lp.server.artikel.ejbfac.LagerFacBean.java
License:Open Source License
@TransactionAttribute(TransactionAttributeType.SUPPORTS) public BigDecimal getVerbrauchteMengeEinesArtikels(Integer artikelIId, java.sql.Timestamp tVon, java.sql.Timestamp tBis, TheClientDto theClientDto) { Session session = FLRSessionFactory.getFactory().openSession(); // PJ 14006/* ww w .j ava 2 s .co m*/ org.hibernate.Criteria crit = session.createCriteria(FLRLagerbewegung.class).createAlias("flrartikel", "a") .add(Restrictions.eq("a.i_id", artikelIId)).createAlias("flrlager", "l") .add(Restrictions.eq("l.mandant_c_nr", theClientDto.getMandant())); crit.add(Restrictions.ge(LagerFac.FLR_LAGERBEWEGUNG_T_BELEGDATUM, tVon)); crit.add(Restrictions.le(LagerFac.FLR_LAGERBEWEGUNG_T_BELEGDATUM, tBis)); crit.add(Restrictions.eq(LagerFac.FLR_LAGERBEWEGUNG_B_HISTORIE, Helper.boolean2Short(false))); crit.add(Restrictions.eq(LagerFac.FLR_LAGERBEWEGUNG_B_ABGANG, Helper.boolean2Short(true))); crit.add(Restrictions.not(Restrictions.in(LagerFac.FLR_LAGERBEWEGUNG_C_BELEGARTNR, new String[] { LocaleFac.BELEGART_HAND, LocaleFac.BELEGART_LOSABLIEFERUNG }))); List<?> results = crit.list(); Iterator<?> resultListIterator = results.iterator(); BigDecimal bdMenge = new BigDecimal(0); while (resultListIterator.hasNext()) { FLRLagerbewegung lagerbewegung = (FLRLagerbewegung) resultListIterator.next(); if (lagerbewegung.getN_menge().doubleValue() > 0) { bdMenge = bdMenge.add(lagerbewegung.getN_menge()); } } return bdMenge; }
From source file:com.lp.server.artikel.ejbfac.LagerFacBean.java
License:Open Source License
@TransactionAttribute(TransactionAttributeType.SUPPORTS) public BigDecimal getLosablieferungenEinesArtikels(Integer artikelIId, java.sql.Timestamp tVon, java.sql.Timestamp tBis, TheClientDto theClientDto) { Session session = FLRSessionFactory.getFactory().openSession(); // PJ 14006/* w w w . j a v a2s .c om*/ org.hibernate.Criteria crit = session.createCriteria(FLRLagerbewegung.class).createAlias("flrartikel", "a") .add(Restrictions.eq("a.i_id", artikelIId)).createAlias("flrlager", "l") .add(Restrictions.eq("l.mandant_c_nr", theClientDto.getMandant())); crit.add(Restrictions.ge(LagerFac.FLR_LAGERBEWEGUNG_T_BELEGDATUM, tVon)); crit.add(Restrictions.le(LagerFac.FLR_LAGERBEWEGUNG_T_BELEGDATUM, tBis)); crit.add(Restrictions.eq(LagerFac.FLR_LAGERBEWEGUNG_B_HISTORIE, Helper.boolean2Short(false))); crit.add(Restrictions.in(LagerFac.FLR_LAGERBEWEGUNG_C_BELEGARTNR, new String[] { LocaleFac.BELEGART_LOSABLIEFERUNG })); List<?> results = crit.list(); Iterator<?> resultListIterator = results.iterator(); BigDecimal bdMenge = new BigDecimal(0); while (resultListIterator.hasNext()) { FLRLagerbewegung lagerbewegung = (FLRLagerbewegung) resultListIterator.next(); bdMenge = bdMenge.add(lagerbewegung.getN_menge()); } return bdMenge; }
From source file:com.lp.server.artikel.ejbfac.LagerReportFacBean.java
License:Open Source License
public JasperPrintLP printLieferantumsatzstatistik(Timestamp tVon, Timestamp tBis, boolean bWareneingangspositionen, Integer iOptionKundengruppierung, Integer iOptionGruppierung, Integer iOptionSortierung, TheClientDto theClientDto) throws EJBExceptionLP, RemoteException { List<String> gruppierung = new ArrayList<String>(); String[] monate = new DateFormatSymbols(theClientDto.getLocUi()).getMonths(); if (iOptionGruppierung .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_ARTIKELKLASSE) { ArtklaDto[] artklDtos = getArtikelFac().artklaFindByMandantCNr(theClientDto); for (int i = 0; i < artklDtos.length; i++) { gruppierung.add(artklDtos[i].getCNr()); }//from w w w . j ava2 s . com } else if (iOptionGruppierung .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_ARTIKELGRUPPE) { ArtgruDto[] artgruDtos = getArtikelFac().artgruFindByMandantCNr(theClientDto); for (int i = 0; i < artgruDtos.length; i++) { gruppierung.add(artgruDtos[i].getCNr()); } } else if (iOptionGruppierung .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHR) { Calendar c = Calendar.getInstance(); c.setTimeInMillis(tVon.getTime()); c.set(Calendar.DAY_OF_YEAR, 1); while (c.getTime().before(tBis)) { gruppierung.add(c.get(Calendar.YEAR) + ""); c.set(Calendar.YEAR, c.get(Calendar.YEAR) + 1); } } else if (iOptionGruppierung .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_MONAT) { Calendar c = Calendar.getInstance(); c.setTimeInMillis(tVon.getTime()); c.set(Calendar.MONTH, 1); while (c.getTime().before(tBis)) { gruppierung.add(monate[c.get(Calendar.MONTH)] + " " + c.get(Calendar.YEAR)); c.set(Calendar.MONTH, c.get(Calendar.MONTH) + 1); } } tVon = Helper.cutTimestamp(tVon); tBis = Helper.cutTimestamp(tBis); BigDecimal gesamtUmsatz = new BigDecimal(0); Session session = FLRSessionFactory.getFactory().openSession(); org.hibernate.Criteria crit = session.createCriteria(FLRLieferant.class); crit.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant())); List<?> results = crit.list(); Iterator<?> resultListIterator = results.iterator(); ArrayList<Object> gesamtListe = new ArrayList<Object>(); // Leere Spalten entfernen boolean[] bSpalteAndrucken = new boolean[gruppierung.size()]; while (resultListIterator.hasNext()) { FLRLieferant lieferant = (FLRLieferant) resultListIterator.next(); LieferantDto lieferantDto = getLieferantFac().lieferantFindByPrimaryKey(lieferant.getI_id(), theClientDto); KundeUmsatzstatistikDto kdums = new KundeUmsatzstatistikDto(gruppierung.size() + 1); kdums.setSKunde(lieferant.getFlrpartner().getC_name1nachnamefirmazeile1()); kdums.setIZahlungsziel(lieferantDto.getZahlungszielIId()); kdums.setILieferart(lieferantDto.getLieferartIId()); kdums.setISpediteur(lieferantDto.getIdSpediteur()); kdums.setSKundengruppierung(""); // Branche/Partnerklasse hinzufuegen if (iOptionKundengruppierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_KUNDENGRUPPIERUNG_BRANCHE && lieferant.getFlrpartner().getBranche_i_id() != null) { kdums.setSKundengruppierung(getPartnerServicesFac() .brancheFindByPrimaryKey(lieferant.getFlrpartner().getBranche_i_id(), theClientDto) .getBezeichnung()); } else if (iOptionKundengruppierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_KUNDENGRUPPIERUNG_PARTNERKLASSE && lieferant.getFlrpartner().getPartnerklasse_i_id() != null) { kdums.setSKundengruppierung(getPartnerFac().partnerklasseFindByPrimaryKey( lieferant.getFlrpartner().getPartnerklasse_i_id(), theClientDto).getBezeichnung()); } if (bWareneingangspositionen) { Session session2 = FLRSessionFactory.getFactory().openSession(); org.hibernate.Criteria crit2 = session2.createCriteria(FLRWareneingangspositionen.class) .createAlias("flrwareneingang", "w").createAlias("w.flrbestellung", "b") .createAlias("b.flrlieferant", "l").add(Restrictions.eq("l.i_id", lieferant.getI_id())) .createAlias("l.flrpartner", "p"); crit2.add(Restrictions.isNotNull(WareneingangFac.FLR_WEPOS_N_EINSTANDSPREIS)); // SP1115 crit2.createAlias("flrbestellposition", "bp") .add(Restrictions.isNull("bp.position_i_id_artikelset")); String[] stati = new String[2]; stati[0] = BestellungFac.BESTELLSTATUS_ANGELEGT; stati[1] = BestellungFac.BESTELLSTATUS_STORNIERT; crit2.add(Restrictions .not(Restrictions.in("b." + BestellungFac.FLR_BESTELLUNG_BESTELLUNGSTATUS_C_NR, stati))); Calendar c = Calendar.getInstance(); c.setTime(tVon); c.set(Calendar.HOUR_OF_DAY, 0); c.set(Calendar.MINUTE, 0); c.set(Calendar.SECOND, 0); c.set(Calendar.MILLISECOND, 0); crit2.add(Restrictions.ge("w." + WareneingangFac.FLR_WE_T_WARENEINGANGSDATUM, c.getTime())); c.setTime(tBis); c.set(Calendar.HOUR_OF_DAY, 23); c.set(Calendar.MINUTE, 59); c.set(Calendar.SECOND, 59); c.set(Calendar.MILLISECOND, 999); crit2.add(Restrictions.le("w." + WareneingangFac.FLR_WE_T_WARENEINGANGSDATUM, c.getTime())); crit2.addOrder(Order.asc("p.c_name1nachnamefirmazeile1")); List<?> results2 = crit2.list(); Iterator<?> resultListIterator2 = results2.iterator(); while (resultListIterator2.hasNext()) { FLRWareneingangspositionen wepos = (FLRWareneingangspositionen) resultListIterator2.next(); BigDecimal umsatz = wepos.getN_einstandspreis(); // Mit Welchselkurs zu Mandantenwaehrung multiplizieren if (wepos.getFlrwareneingang().getN_wechselkurs() != null && wepos.getFlrwareneingang().getN_wechselkurs().doubleValue() != 0) { umsatz = umsatz.divide(wepos.getFlrwareneingang().getN_wechselkurs(), 4, BigDecimal.ROUND_HALF_EVEN); } // Bei Handeingabe ist Umsatz gleich Deckungsbeitrag und // kommt in die Kategorie Unbekannt if (wepos.getFlrbestellposition().getBestellpositionart_c_nr() .equals(LocaleFac.POSITIONSART_HANDEINGABE) && iOptionGruppierung .intValue() != LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHR && iOptionGruppierung .intValue() != LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_MONAT) { umsatz = umsatz.multiply(wepos.getN_geliefertemenge()); kdums.getSubSummeUmsatz()[0] = kdums.getSubSummeUmsatz()[0].add(umsatz); // GESAMTSUMME kdums.setBdUmsatz(kdums.getBdUmsatz().add(umsatz)); } else if (wepos.getFlrbestellposition().getBestellpositionart_c_nr() .equals(LocaleFac.POSITIONSART_IDENT) || (wepos.getFlrbestellposition().getBestellpositionart_c_nr() .equals(LocaleFac.POSITIONSART_HANDEINGABE) && ((iOptionGruppierung .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHR) || iOptionGruppierung .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_MONAT))) { umsatz = umsatz.multiply(wepos.getN_geliefertemenge()); // GESAMTSUMME kdums.setBdUmsatz(kdums.getBdUmsatz().add(umsatz)); // Aufteilen auf Gruppe if (iOptionGruppierung .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_ARTIKELKLASSE) { if (wepos.getFlrbestellposition().getFlrartikel().getFlrartikelklasse() != null) { // Bei richtiger Artikelklasse einfuegen for (int j = 0; j < gruppierung.size(); j++) { if (gruppierung.get(j).equals(wepos.getFlrbestellposition().getFlrartikel() .getFlrartikelklasse().getC_nr())) { kdums.getSubSummeUmsatz()[j + 1] = kdums.getSubSummeUmsatz()[j + 1] .add(umsatz); bSpalteAndrucken[j] = true; } } } else { kdums.getSubSummeUmsatz()[0] = kdums.getSubSummeUmsatz()[0].add(umsatz); } } else if (iOptionGruppierung .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_ARTIKELGRUPPE) { if (wepos.getFlrbestellposition().getFlrartikel().getFlrartikelgruppe() != null) { // Bei richtiger Gruppe einfuegen for (int j = 0; j < gruppierung.size(); j++) { if (gruppierung.get(j).equals(wepos.getFlrbestellposition().getFlrartikel() .getFlrartikelgruppe().getC_nr())) { kdums.getSubSummeUmsatz()[j + 1] = kdums.getSubSummeUmsatz()[j + 1] .add(umsatz); bSpalteAndrucken[j] = true; } } } else { kdums.getSubSummeUmsatz()[0] = kdums.getSubSummeUmsatz()[0].add(umsatz); } } else if (iOptionGruppierung .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHR) { Calendar cZeile = Calendar.getInstance(); cZeile.setTimeInMillis(wepos.getFlrwareneingang().getT_wareneingansdatum().getTime()); String jahr = cZeile.get(Calendar.YEAR) + ""; for (int j = 0; j < gruppierung.size(); j++) { if (gruppierung.get(j).equals(jahr)) { kdums.getSubSummeUmsatz()[j + 1] = kdums.getSubSummeUmsatz()[j + 1].add(umsatz); bSpalteAndrucken[j] = true; } } } else if (iOptionGruppierung .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_MONAT) { Calendar cZeile = Calendar.getInstance(); cZeile.setTimeInMillis(wepos.getFlrwareneingang().getT_wareneingansdatum().getTime()); String jahrMonat = monate[cZeile.get(Calendar.MONTH)] + " " + cZeile.get(Calendar.YEAR); for (int j = 0; j < gruppierung.size(); j++) { if (gruppierung.get(j).equals(jahrMonat)) { kdums.getSubSummeUmsatz()[j + 1] = kdums.getSubSummeUmsatz()[j + 1].add(umsatz); bSpalteAndrucken[j] = true; } } } } } session2.close(); if (results2.size() > 0) { gesamtListe.add(kdums); gesamtUmsatz = gesamtUmsatz.add(kdums.getBdUmsatz()); } } else { // Eingangsrechnung Session session2 = FLRSessionFactory.getFactory().openSession(); org.hibernate.Criteria crit2 = session2.createCriteria(FLREingangsrechnungReport.class) .createAlias("flrlieferant", "l"); crit2.add(Restrictions.eq("l.i_id", lieferant.getI_id())); crit2.add(Restrictions.ge(EingangsrechnungFac.FLR_ER_D_BELEGDATUM, Helper.cutTimestamp(tVon))); Calendar c = Calendar.getInstance(); c.setTime(tBis); c.set(Calendar.HOUR_OF_DAY, 23); c.set(Calendar.MINUTE, 59); c.set(Calendar.SECOND, 59); c.set(Calendar.MILLISECOND, 999); crit2.add(Restrictions.le(EingangsrechnungFac.FLR_ER_D_BELEGDATUM, c.getTime())); List<?> results2 = crit2.list(); Iterator<?> resultListIterator2 = results2.iterator(); while (resultListIterator2.hasNext()) { FLREingangsrechnungReport er = (FLREingangsrechnungReport) resultListIterator2.next(); if (iOptionGruppierung .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHR) { Calendar cZeile = Calendar.getInstance(); cZeile.setTimeInMillis(er.getT_belegdatum().getTime()); String jahr = cZeile.get(Calendar.YEAR) + ""; for (int j = 0; j < gruppierung.size(); j++) { if (gruppierung.get(j).equals(jahr)) { kdums.getSubSummeUmsatz()[j + 1] = kdums.getSubSummeUmsatz()[j + 1] .add(er.getN_betrag().subtract(er.getN_ustbetrag())); kdums.setBdUmsatz( kdums.getBdUmsatz().add(er.getN_betrag().subtract(er.getN_ustbetrag()))); bSpalteAndrucken[j] = true; } } } else if (iOptionGruppierung .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_MONAT) { Calendar cZeile = Calendar.getInstance(); cZeile.setTimeInMillis(er.getT_belegdatum().getTime()); String jahrMonat = monate[cZeile.get(Calendar.MONTH)] + " " + cZeile.get(Calendar.YEAR); for (int j = 0; j < gruppierung.size(); j++) { if (gruppierung.get(j).equals(jahrMonat)) { kdums.getSubSummeUmsatz()[j + 1] = kdums.getSubSummeUmsatz()[j + 1] .add(er.getN_betrag().subtract(er.getN_ustbetrag())); kdums.setBdUmsatz( kdums.getBdUmsatz().add(er.getN_betrag().subtract(er.getN_ustbetrag()))); bSpalteAndrucken[j] = true; } } } else { kdums.getSubSummeUmsatz()[0] = kdums.getSubSummeUmsatz()[0] .add(er.getN_betrag().subtract(er.getN_ustbetrag())); kdums.setBdUmsatz(kdums.getBdUmsatz().add(er.getN_betrag().subtract(er.getN_ustbetrag()))); } } if (results2.size() > 0) { gesamtListe.add(kdums); gesamtUmsatz = gesamtUmsatz.add(kdums.getBdUmsatz()); } } } session.close(); JasperPrintLP print = null; // NACH UMSATZ SORTIEREN int n = gesamtListe.size(); Object temp; for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - 1 - i; j++) { double a = ((KundeUmsatzstatistikDto) gesamtListe.get(j)).getBdUmsatz().doubleValue(); double b = ((KundeUmsatzstatistikDto) gesamtListe.get(j + 1)).getBdUmsatz().doubleValue(); if (a < b) { temp = gesamtListe.get(j); gesamtListe.set(j, gesamtListe.get(j + 1)); gesamtListe.set(j + 1, temp); } } } // ABC-Klassifizierung // A=80% // B=15% // C=5% double dTempUmsatz = gesamtUmsatz.doubleValue(); ParametermandantDto mandantparameterA = null; ParametermandantDto mandantparameterB = null; try { mandantparameterA = getParameterFac().getMandantparameter(theClientDto.getMandant(), ParameterFac.KATEGORIE_KUNDEN, ParameterFac.PARAMETER_KUNDENBEWERTUNG_WERT_A); mandantparameterB = getParameterFac().getMandantparameter(theClientDto.getMandant(), ParameterFac.KATEGORIE_KUNDEN, ParameterFac.PARAMETER_KUNDENBEWERTUNG_WERT_B); } catch (RemoteException ex3) { throwEJBExceptionLPRespectOld(ex3); } BigDecimal paramBUmsatz = gesamtUmsatz.multiply((new BigDecimal(mandantparameterB.getCWert()) .divide(new BigDecimal(100), 4, BigDecimal.ROUND_HALF_EVEN))); BigDecimal paramAUmsatz = gesamtUmsatz.multiply((new BigDecimal(mandantparameterA.getCWert()) .divide(new BigDecimal(100), 4, BigDecimal.ROUND_HALF_EVEN))); for (int i = 0; i < gesamtListe.size(); i++) { KundeUmsatzstatistikDto dto = (KundeUmsatzstatistikDto) gesamtListe.get(i); if (dTempUmsatz < gesamtUmsatz.doubleValue() - (paramAUmsatz.doubleValue() + paramBUmsatz.doubleValue())) { dto.setAbcKlassifizierung("C"); } else if (dTempUmsatz < paramBUmsatz.doubleValue()) { dto.setAbcKlassifizierung("B"); } else { dto.setAbcKlassifizierung("A"); } dTempUmsatz = dTempUmsatz - dto.getBdUmsatz().doubleValue(); gesamtListe.set(i, dto); } // Nach Name sortieren // NACH NAME SORTIEREN, Wenn angegeben if (iOptionSortierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_SORTIERUNG_FIRMANNAME) { n = gesamtListe.size(); for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - 1 - i; j++) { String a = ((KundeUmsatzstatistikDto) gesamtListe.get(j)).getSKunde(); String b = ((KundeUmsatzstatistikDto) gesamtListe.get(j + 1)).getSKunde(); if (a.compareTo(b) > 0) { temp = gesamtListe.get(j); gesamtListe.set(j, gesamtListe.get(j + 1)); gesamtListe.set(j + 1, temp); } } } } // Nach Branche/Partnerklasse Gruppieren if (iOptionKundengruppierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_KUNDENGRUPPIERUNG_BRANCHE || iOptionKundengruppierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_KUNDENGRUPPIERUNG_PARTNERKLASSE) { n = gesamtListe.size(); for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - 1 - i; j++) { String a = ((KundeUmsatzstatistikDto) gesamtListe.get(j)).getSKundengruppierung(); String b = ((KundeUmsatzstatistikDto) gesamtListe.get(j + 1)).getSKundengruppierung(); if (a.compareTo(b) > 0) { temp = gesamtListe.get(j); gesamtListe.set(j, gesamtListe.get(j + 1)); gesamtListe.set(j + 1, temp); } } } } // SPALTENHEADER entfernen, wenn Spalte leer for (int i = bSpalteAndrucken.length; i > 0; i--) { if (bSpalteAndrucken[i - 1] == false) { gruppierung.remove(i - 1); } } int[] spaltenDrucken = new int[gruppierung.size() + 1]; spaltenDrucken[0] = 0; int x = 1; for (int i = 1; i < bSpalteAndrucken.length + 1; i++) { if (bSpalteAndrucken[i - 1] == true) { spaltenDrucken[x] = i; x++; } } int seiten_breite = (gruppierung.size() / 8) + 1; for (int i = 0; i < seiten_breite; i++) { index = -1; sAktuellerReport = LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK; data = new Object[gesamtListe.size()][15]; for (int j = 0; j < gesamtListe.size(); j++) { KundeUmsatzstatistikDto dto = (KundeUmsatzstatistikDto) gesamtListe.get(j); data[j][REPORT_LIEFERANTUMSATZSTATISTIK_LIEFERANTGRUPPIERUNG] = dto.getSKundengruppierung(); data[j][REPORT_LIEFERANTUMSATZSTATISTIK_LIEFERANT] = dto.getSKunde(); data[j][REPORT_LIEFERANTUMSATZSTATISTIK_UMSATZ] = dto.getBdUmsatz(); data[j][REPORT_LIEFERANTUMSATZSTATISTIK_ABCKLASSE] = dto.getAbcKlassifizierung(); data[j][REPORT_LIEFERANTUMSATZSTATISTIK_ZAHLUNGSZIEL] = getMandantFac() .zahlungszielFindByIIdLocaleOhneExc(dto.getIZahlungsziel(), theClientDto.getLocMandant(), theClientDto); data[j][REPORT_LIEFERANTUMSATZSTATISTIK_LIEFERART] = getLocaleFac().lieferartFindByIIdLocaleOhneExc( dto.getILieferart(), theClientDto.getLocMandant(), theClientDto); data[j][REPORT_LIEFERANTUMSATZSTATISTIK_SPEDITEUR] = getMandantFac() .spediteurFindByPrimaryKey(dto.getISpediteur()).getCNamedesspediteurs(); try { if (i == 0) { data[j][REPORT_LIEFERANTUMSATZSTATISTIK_SPALTE1] = dto.getSubSummeUmsatz()[0]; } else { data[j][REPORT_LIEFERANTUMSATZSTATISTIK_SPALTE1] = dto .getSubSummeUmsatz()[spaltenDrucken[0 + (i * 8)]]; } data[j][REPORT_LIEFERANTUMSATZSTATISTIK_SPALTE2] = dto .getSubSummeUmsatz()[spaltenDrucken[1 + (i * 8)]]; data[j][REPORT_LIEFERANTUMSATZSTATISTIK_SPALTE3] = dto .getSubSummeUmsatz()[spaltenDrucken[2 + (i * 8)]]; data[j][REPORT_LIEFERANTUMSATZSTATISTIK_SPALTE4] = dto .getSubSummeUmsatz()[spaltenDrucken[3 + (i * 8)]]; data[j][REPORT_LIEFERANTUMSATZSTATISTIK_SPALTE5] = dto .getSubSummeUmsatz()[spaltenDrucken[4 + (i * 8)]]; data[j][REPORT_LIEFERANTUMSATZSTATISTIK_SPALTE6] = dto .getSubSummeUmsatz()[spaltenDrucken[5 + (i * 8)]]; data[j][REPORT_LIEFERANTUMSATZSTATISTIK_SPALTE7] = dto .getSubSummeUmsatz()[spaltenDrucken[6 + (i * 8)]]; data[j][REPORT_LIEFERANTUMSATZSTATISTIK_SPALTE8] = dto .getSubSummeUmsatz()[spaltenDrucken[7 + (i * 8)]]; } catch (ArrayIndexOutOfBoundsException ex1) { // nothing } } HashMap<String, Object> parameter = new HashMap<String, Object>(); parameter.put("P_VON", tVon); parameter.put("P_BIS", tBis); if (bWareneingangspositionen) { parameter.put("P_BASIS", getTextRespectUISpr("bes.wareneingangsposition", theClientDto.getMandant(), theClientDto.getLocUi())); } else { parameter.put("P_BASIS", getTextRespectUISpr("er.eingangsrechnung", theClientDto.getMandant(), theClientDto.getLocUi())); } if (iOptionKundengruppierung .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_KUNDENGRUPPIERUNG_BRANCHE) { parameter.put("P_GRUPPIERUNGLIEFERANT", getTextRespectUISpr("lp.branche", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (iOptionKundengruppierung .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_KUNDENGRUPPIERUNG_PARTNERKLASSE) { parameter.put("P_GRUPPIERUNGLIEFERANT", "Partnerklasse"); } if (iOptionGruppierung .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_ARTIKELKLASSE) { parameter.put("P_GRUPPIERUNG", getTextRespectUISpr("lp.artikelklasse", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (iOptionGruppierung .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_ARTIKELGRUPPE) { parameter.put("P_GRUPPIERUNG", getTextRespectUISpr("lp.artikelgruppe", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (iOptionGruppierung .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHR) { parameter.put("P_GRUPPIERUNG", getTextRespectUISpr("lp.jahr", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (iOptionGruppierung .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_GRUPPIERUNG_MONAT) { parameter.put("P_GRUPPIERUNG", getTextRespectUISpr("lp.monat", theClientDto.getMandant(), theClientDto.getLocUi())); } if (iOptionSortierung .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_SORTIERUNG_FIRMANNAME) { parameter.put("P_SORTIERUNG", "Firmenname"); } else if (iOptionSortierung .intValue() == LagerReportFac.REPORT_LIEFERANTUMSATZSTATISTIK_OPTION_SORTIERUNG_UMSATZ) { parameter.put("P_SORTIERUNG", getTextRespectUISpr("er.umsatz", theClientDto.getMandant(), theClientDto.getLocUi())); } try { parameter.put("P_GRUPPEA", mandantparameterA.getCWertAsObject()); parameter.put("P_GRUPPEB", mandantparameterB.getCWertAsObject()); if (i == 0) { parameter.put("Spalte1", "Unbekannt"); parameter.put("Spalte2", gruppierung.get(0 + (i * 8))); parameter.put("Spalte3", gruppierung.get(1 + (i * 8))); parameter.put("Spalte4", gruppierung.get(2 + (i * 8))); parameter.put("Spalte5", gruppierung.get(3 + (i * 8))); parameter.put("Spalte6", gruppierung.get(4 + (i * 8))); parameter.put("Spalte7", gruppierung.get(5 + (i * 8))); parameter.put("Spalte8", gruppierung.get(6 + (i * 8))); } else { parameter.put("Spalte1", gruppierung.get(7 + (i * 8) - 8)); parameter.put("Spalte2", gruppierung.get(8 + (i * 8) - 8)); parameter.put("Spalte3", gruppierung.get(1 + (i * 8))); parameter.put("Spalte4", gruppierung.get(2 + (i * 8))); parameter.put("Spalte5", gruppierung.get(3 + (i * 8))); parameter.put("Spalte6", gruppierung.get(4 + (i * 8))); parameter.put("Spalte7", gruppierung.get(5 + (i * 8))); parameter.put("Spalte8", gruppierung.get(6 + (i * 80))); } } catch (IndexOutOfBoundsException ex1) { // nothing } initJRDS(parameter, LagerReportFac.REPORT_MODUL, sAktuellerReport, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); if (print == null) { print = getReportPrint(); } else { print = Helper.addReport2Report(print, getReportPrint().getPrint()); } } return print; }
From source file:com.lp.server.artikel.ejbfac.LagerReportFacBean.java
License:Open Source License
@TransactionAttribute(TransactionAttributeType.NEVER) public JasperPrintLP printKundeumsatzstatistik(Timestamp tVon, Timestamp tBis, Integer iOptionKundengruppierung, boolean bUmsatz, Integer iOptionGruppierung, Integer iOptionSortierung, Integer iSortierbasisJahre, boolean bVerwendeStatistikadresse, boolean bMitNichtLagerbewertetenArtikeln, boolean ohneDBBetrachtung, TheClientDto theClientDto) throws EJBExceptionLP, RemoteException { List<String> gruppierung = new ArrayList<String>(); tVon = Helper.cutTimestamp(tVon);//w w w .j a v a 2 s . c om tBis = Helper.cutTimestamp(tBis); String[] monate = new DateFormatSymbols(theClientDto.getLocUi()).getMonths(); try { if (iOptionGruppierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_ARTIKELKLASSE) { ArtklaDto[] artklDtos = getArtikelFac().artklaFindByMandantCNr(theClientDto); for (int i = 0; i < artklDtos.length; i++) { gruppierung.add(artklDtos[i].getCNr()); } } else if (iOptionGruppierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_ARTIKELGRUPPE) { ArtgruDto[] artgruDtos = getArtikelFac().artgruFindByMandantCNr(theClientDto); for (int i = 0; i < artgruDtos.length; i++) { gruppierung.add(artgruDtos[i].getCNr()); } } else if (iOptionGruppierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_FERTIGUNGSGRUPPE) { FertigungsgruppeDto[] ftgruDtos = getStuecklisteFac() .fertigungsgruppeFindByMandantCNr(theClientDto.getMandant(), theClientDto); for (int i = 0; i < ftgruDtos.length; i++) { gruppierung.add(ftgruDtos[i].getCBez()); } } else if (iOptionGruppierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHR) { Calendar c = Calendar.getInstance(); c.setTimeInMillis(tVon.getTime()); c.set(Calendar.DAY_OF_YEAR, 1); while (c.getTime().before(tBis)) { gruppierung.add(c.get(Calendar.YEAR) + ""); c.set(Calendar.YEAR, c.get(Calendar.YEAR) + 1); } } else if (iOptionGruppierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_MONAT) { Calendar c = Calendar.getInstance(); c.setTimeInMillis(tVon.getTime()); c.set(Calendar.MONTH, 1); while (c.getTime().before(tBis)) { gruppierung.add(monate[c.get(Calendar.MONTH)] + " " + c.get(Calendar.YEAR)); c.set(Calendar.MONTH, c.get(Calendar.MONTH) + 1); } } } catch (RemoteException ex) { throwEJBExceptionLPRespectOld(ex); } BigDecimal gesamtUmsatz = new BigDecimal(0); BigDecimal gesamtDeckungsbeitrag = new BigDecimal(0); Session session = FLRSessionFactory.getFactory().openSession(); org.hibernate.Criteria crit = session.createCriteria(FLRKunde.class); crit.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant())); List<?> results = crit.list(); Iterator<?> resultListIterator = results.iterator(); ArrayList<Object> gesamtListe = new ArrayList<Object>(); // Leere Spalten entfernen boolean[] bSpalteAndrucken = new boolean[gruppierung.size()]; int iKunde = 0; while (resultListIterator.hasNext()) { FLRKunde kunde = (FLRKunde) resultListIterator.next(); iKunde++; System.out.println(iKunde + " von " + results.size()); KundeDto kundeDto = getKundeFac().kundeFindByPrimaryKey(kunde.getI_id(), theClientDto); KundeUmsatzstatistikDto kdums = new KundeUmsatzstatistikDto(gruppierung.size() + 1); kdums.setSKunde(kunde.getFlrpartner().getC_name1nachnamefirmazeile1()); kdums.setIZahlungsziel(kundeDto.getZahlungszielIId()); kdums.setILieferart(kundeDto.getLieferartIId()); kdums.setISpediteur(kundeDto.getSpediteurIId()); kdums.setIKundennummer(kundeDto.getIKundennummer()); if (kundeDto.getPartnerDto().getLandplzortDto() != null) { kdums.setSLkz(kundeDto.getPartnerDto().getLandplzortDto().getLandDto().getCLkz()); kdums.setSPlz(kundeDto.getPartnerDto().getLandplzortDto().getCPlz()); } kdums.setSKundengruppierung(""); // Branche/Partnerklasse hinzufuegen if (iOptionKundengruppierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_KUNDENGRUPPIERUNG_BRANCHE && kunde.getFlrpartner().getBranche_i_id() != null) { kdums.setSKundengruppierung(getPartnerServicesFac() .brancheFindByPrimaryKey(kunde.getFlrpartner().getBranche_i_id(), theClientDto) .getBezeichnung()); } else if (iOptionKundengruppierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_KUNDENGRUPPIERUNG_PARTNERKLASSE && kunde.getFlrpartner().getPartnerklasse_i_id() != null) { kdums.setSKundengruppierung(getPartnerFac() .partnerklasseFindByPrimaryKey(kunde.getFlrpartner().getPartnerklasse_i_id(), theClientDto) .getBezeichnung()); } Session session2 = FLRSessionFactory.getFactory().openSession(); org.hibernate.Criteria crit2 = session2.createCriteria(FLRRechnungPosition.class) .createAlias("flrrechnung", "r"); if (bVerwendeStatistikadresse) { crit2.createAlias("r.flrstatistikadresse", "k"); } else { crit2.createAlias("r.flrkunde", "k"); } crit2.add(Restrictions.eq("k.i_id", kunde.getI_id())).createAlias("k.flrpartner", "p") .createAlias("r." + RechnungFac.FLR_RECHNUNG_FLRRECHNUNGART, "ra"); // PJ 14808 crit2.add(Restrictions.or( Restrictions.isNotNull( RechnungFac.FLR_RECHNUNGPOSITION_N_NETTOEINZELPREIS_PLUS_AUFSCHLAG_MINUS_RABATT), Restrictions.eq(RechnungFac.FLR_RECHNUNGPOSITIONSART_POSITIONSART_C_NR, RechnungFac.POSITIONSART_RECHNUNG_LIEFERSCHEIN))); // projekt 3568 String[] arten = new String[2]; arten[0] = RechnungFac.RECHNUNGART_ANZAHLUNG; arten[1] = RechnungFac.RECHNUNGART_PROFORMARECHNUNG; crit2.add(Restrictions.not(Restrictions.in("ra.c_nr", arten))); String[] stati = new String[2]; stati[0] = RechnungFac.STATUS_ANGELEGT; stati[1] = RechnungFac.STATUS_STORNIERT; crit2.add(Restrictions.not(Restrictions.in("r." + RechnungFac.FLR_RECHNUNG_STATUS_C_NR, stati))); Calendar c = Calendar.getInstance(); c.setTime(tVon); c.set(Calendar.HOUR_OF_DAY, 0); c.set(Calendar.MINUTE, 0); c.set(Calendar.SECOND, 0); c.set(Calendar.MILLISECOND, 0); crit2.add(Restrictions.ge("r." + RechnungFac.FLR_RECHNUNG_D_BELEGDATUM, c.getTime())); c.setTime(tBis); c.set(Calendar.HOUR_OF_DAY, 23); c.set(Calendar.MINUTE, 59); c.set(Calendar.SECOND, 59); c.set(Calendar.MILLISECOND, 999); crit2.add(Restrictions.le("r." + RechnungFac.FLR_RECHNUNG_D_BELEGDATUM, c.getTime())); // SP903 crit2.add(Restrictions.isNull("position_i_id_artikelset")); crit2.addOrder(Order.asc("p.c_name1nachnamefirmazeile1")); List<?> results2 = crit2.list(); Iterator<?> resultListIterator2 = results2.iterator(); int iPos = 0; while (resultListIterator2.hasNext()) { FLRRechnungPosition rechpos = (FLRRechnungPosition) resultListIterator2.next(); iPos++; // 16882 Ohne Lagerbewertete Artikel if (rechpos.getPositionsart_c_nr().equals(LocaleFac.POSITIONSART_IDENT) && rechpos.getFlrartikel() != null && !Helper.short2boolean(rechpos.getFlrartikel().getB_lagerbewertet())) { if (bMitNichtLagerbewertetenArtikeln == false) { continue; } } if (iPos % 100 == 0) { System.out.println(iPos + " von " + results2.size()); } // Erstumsatz? Session sessionEU = FLRSessionFactory.getFactory().openSession(); org.hibernate.Criteria critEU = session2.createCriteria(FLRRechnung.class) .createAlias("flrkunde", "k").add(Restrictions.eq("k.i_id", kunde.getI_id())); critEU.add(Restrictions.lt(RechnungFac.FLR_RECHNUNG_D_BELEGDATUM, tVon)); String[] statiErstumsatz = new String[1]; statiErstumsatz[0] = RechnungFac.STATUS_STORNIERT; critEU.add( Restrictions.not(Restrictions.in(RechnungFac.FLR_RECHNUNG_STATUS_C_NR, statiErstumsatz))); critEU.setFetchSize(1); List<?> resultsEU = critEU.list(); if (resultsEU.size() < 1) { kdums.setBErstumsatz(true); } sessionEU.close(); // ENDE Erstumsatz boolean bGutschrift = false; BigDecimal umsatz = rechpos.getN_nettoeinzelpreis_plus_aufschlag_minus_rabatt(); // Gutschrift oder Wertgutschrift if (rechpos.getFlrrechnung().getFlrrechnungart().getC_nr() .equals(RechnungFac.RECHNUNGART_GUTSCHRIFT) || rechpos.getFlrrechnung().getFlrrechnungart().getC_nr() .equals(RechnungFac.RECHNUNGART_WERTGUTSCHRIFT)) { bGutschrift = true; umsatz = new BigDecimal(0).subtract(umsatz); } // Mit Welchselkurs zu Mandantenwaehrung dividieren if (rechpos.getFlrrechnung().getN_kurs() != null && rechpos.getFlrrechnung().getN_kurs().doubleValue() != 0 && !rechpos.getPositionsart_c_nr().equals(RechnungFac.POSITIONSART_RECHNUNG_LIEFERSCHEIN)) { umsatz = umsatz.divide(rechpos.getFlrrechnung().getN_kurs(), 4, BigDecimal.ROUND_HALF_EVEN); } // Bei Handeingabe ist Umsatz gleich Deckungsbeitrag und kommt // in die Kategorie Unbekannt if (rechpos.getPositionsart_c_nr().equals(LocaleFac.POSITIONSART_HANDEINGABE) && iOptionGruppierung .intValue() != LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHR && iOptionGruppierung .intValue() != LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_MONAT) { umsatz = umsatz.multiply(rechpos.getN_menge()); kdums.getSubSummeUmsatz()[0] = kdums.getSubSummeUmsatz()[0].add(umsatz); kdums.getSubSummeDeckungsbeitrag()[0] = kdums.getSubSummeDeckungsbeitrag()[0].add(umsatz); // GESAMTSUMME kdums.setBdUmsatz(kdums.getBdUmsatz().add(umsatz)); kdums.setBdDeckungsbeitrag(kdums.getBdDeckungsbeitrag().add(umsatz)); } else if (rechpos.getPositionsart_c_nr().equals(LocaleFac.POSITIONSART_IDENT) || (rechpos .getPositionsart_c_nr().equals(LocaleFac.POSITIONSART_HANDEINGABE) && iOptionGruppierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHR) || (rechpos.getPositionsart_c_nr().equals(LocaleFac.POSITIONSART_HANDEINGABE) && iOptionGruppierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_MONAT)) { if (rechpos.getPosition_i_id_artikelset() == null) { umsatz = umsatz.multiply(rechpos.getN_menge()); BigDecimal gestwert = new BigDecimal(0); BigDecimal deckungsbeitrag = new BigDecimal(0); if (ohneDBBetrachtung == false) { if (!rechpos.getPositionsart_c_nr().equals(LocaleFac.POSITIONSART_HANDEINGABE)) { if (rechpos.getSetartikel_set().size() == 0) { gestwert = getGestpreisFuerUmsatzStatistik(rechpos, bGutschrift); } else { Iterator it = rechpos.getSetartikel_set().iterator(); while (it.hasNext()) { gestwert = gestwert.add(getGestpreisFuerUmsatzStatistik( (FLRRechnungPosition) it.next(), bGutschrift)); } } } // Mit Welchselkurs zu Mandantenwaehrung dividieren if (rechpos.getFlrrechnung().getN_kurs() != null && rechpos.getFlrrechnung().getN_kurs().doubleValue() != 0) { gestwert = gestwert.divide(rechpos.getFlrrechnung().getN_kurs(), 4, BigDecimal.ROUND_HALF_EVEN); } deckungsbeitrag = umsatz.subtract(gestwert); } // GESAMTSUMME if (rechpos.getPositionsart_c_nr().equals(LocaleFac.POSITIONSART_HANDEINGABE)) { deckungsbeitrag = umsatz; } kdums.setBdDeckungsbeitrag(kdums.getBdDeckungsbeitrag().add(deckungsbeitrag)); kdums.setBdUmsatz(kdums.getBdUmsatz().add(umsatz)); // Aufteilen auf Gruppe if (iOptionGruppierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_ARTIKELKLASSE) { if (rechpos.getFlrartikel().getFlrartikelklasse() != null) { // Bei richtiger Artikelklasse einfuegen for (int j = 0; j < gruppierung.size(); j++) { if (gruppierung.get(j) .equals(rechpos.getFlrartikel().getFlrartikelklasse().getC_nr())) { kdums.getSubSummeUmsatz()[j + 1] = kdums.getSubSummeUmsatz()[j + 1] .add(umsatz); kdums.getSubSummeDeckungsbeitrag()[j + 1] = kdums.getSubSummeDeckungsbeitrag()[j + 1] .add(deckungsbeitrag); bSpalteAndrucken[j] = true; } } } else { kdums.getSubSummeUmsatz()[0] = kdums.getSubSummeUmsatz()[0].add(umsatz); kdums.getSubSummeDeckungsbeitrag()[0] = kdums.getSubSummeDeckungsbeitrag()[0] .add(deckungsbeitrag); } } else if (iOptionGruppierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_ARTIKELGRUPPE) { if (rechpos.getFlrartikel().getFlrartikelgruppe() != null) { // Bei richtiger Gruppe einfuegen for (int j = 0; j < gruppierung.size(); j++) { if (gruppierung.get(j) .equals(rechpos.getFlrartikel().getFlrartikelgruppe().getC_nr())) { kdums.getSubSummeUmsatz()[j + 1] = kdums.getSubSummeUmsatz()[j + 1] .add(umsatz); kdums.getSubSummeDeckungsbeitrag()[j + 1] = kdums.getSubSummeDeckungsbeitrag()[j + 1] .add(deckungsbeitrag); bSpalteAndrucken[j] = true; } } } else { kdums.getSubSummeUmsatz()[0] = kdums.getSubSummeUmsatz()[0].add(umsatz); kdums.getSubSummeDeckungsbeitrag()[0] = kdums.getSubSummeDeckungsbeitrag()[0] .add(deckungsbeitrag); } } else if (iOptionGruppierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_FERTIGUNGSGRUPPE) { Session sessionFTGruppe = FLRSessionFactory.getFactory().openSession(); String queryString = "SELECT stkl.flrfertigungsgruppe FROM FLRStueckliste AS stkl" + " WHERE stkl.artikel_i_id= " + rechpos.getFlrartikel().getI_id(); Query query = sessionFTGruppe.createQuery(queryString); List<?> resultList = query.list(); Iterator<?> resultListIteratorFTGruppe = resultList.iterator(); if (resultListIteratorFTGruppe.hasNext()) { FLRFertigungsgruppe gru = (FLRFertigungsgruppe) resultListIteratorFTGruppe.next(); if (gru != null) { // Bei richtiger Gruppe einfuegen for (int j = 0; j < gruppierung.size(); j++) { if (gruppierung.get(j).equals(gru.getC_bez())) { kdums.getSubSummeUmsatz()[j + 1] = kdums.getSubSummeUmsatz()[j + 1] .add(umsatz); kdums.getSubSummeDeckungsbeitrag()[j + 1] = kdums.getSubSummeDeckungsbeitrag()[j + 1] .add(deckungsbeitrag); bSpalteAndrucken[j] = true; } } } else { kdums.getSubSummeUmsatz()[0] = kdums.getSubSummeUmsatz()[0].add(umsatz); kdums.getSubSummeDeckungsbeitrag()[0] = kdums.getSubSummeDeckungsbeitrag()[0] .add(deckungsbeitrag); } sessionFTGruppe.close(); } } else if (iOptionGruppierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHR) { Calendar cZeile = Calendar.getInstance(); cZeile.setTimeInMillis(rechpos.getFlrrechnung().getD_belegdatum().getTime()); String jahr = cZeile.get(Calendar.YEAR) + ""; // Bei richtiger Gruppe einfuegen for (int j = 0; j < gruppierung.size(); j++) { if (gruppierung.get(j).equals(jahr)) { kdums.getSubSummeUmsatz()[j + 1] = kdums.getSubSummeUmsatz()[j + 1].add(umsatz); kdums.getSubSummeDeckungsbeitrag()[j + 1] = kdums.getSubSummeDeckungsbeitrag()[j + 1].add(deckungsbeitrag); bSpalteAndrucken[j] = true; } } } else if (iOptionGruppierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_MONAT) { Calendar cZeile = Calendar.getInstance(); cZeile.setTimeInMillis(rechpos.getFlrrechnung().getD_belegdatum().getTime()); String jahrMonat = monate[cZeile.get(Calendar.MONTH)] + " " + cZeile.get(Calendar.YEAR); // Bei richtiger Gruppe einfuegen for (int j = 0; j < gruppierung.size(); j++) { if (gruppierung.get(j).equals(jahrMonat)) { kdums.getSubSummeUmsatz()[j + 1] = kdums.getSubSummeUmsatz()[j + 1].add(umsatz); kdums.getSubSummeDeckungsbeitrag()[j + 1] = kdums.getSubSummeDeckungsbeitrag()[j + 1].add(deckungsbeitrag); bSpalteAndrucken[j] = true; } } } } } // Wenn Rechnungsposition ein LS ist, dann dessen Positionen // verwenden else if (rechpos.getPositionsart_c_nr().equals(LocaleFac.POSITIONSART_LIEFERSCHEIN)) { Integer lieferscheinIId = rechpos.getFlrlieferschein().getI_id(); Session session3 = FLRSessionFactory.getFactory().openSession(); org.hibernate.Criteria crit3 = session3.createCriteria(FLRLieferscheinposition.class); crit3.createAlias("flrlieferschein", "l"); crit3.add(Restrictions.eq("l.i_id", lieferscheinIId)); // SP903 crit3.add(Restrictions.isNull("position_i_id_artikelset")); crit3.add(Restrictions .isNotNull(LieferscheinpositionFac.FLR_LIEFERSCHEINPOSITION_N_NETTOGESAMTPREIS)); crit3.add(Restrictions.not(Restrictions .eq(LieferscheinpositionFac.FLR_LIEFERSCHEINPOSITION_N_MENGE, new BigDecimal(0)))); List<?> results3 = crit3.list(); Iterator<?> resultListIterator3 = results3.iterator(); while (resultListIterator3.hasNext()) { FLRLieferscheinposition lieferscheinpos = (FLRLieferscheinposition) resultListIterator3 .next(); // 16882 Ohne Lagerbewertete Artikel if (lieferscheinpos.getPositionsart_c_nr().equals(LocaleFac.POSITIONSART_IDENT) && lieferscheinpos.getFlrartikel() != null && !Helper.short2boolean(lieferscheinpos.getFlrartikel().getB_lagerbewertet())) { if (bMitNichtLagerbewertetenArtikeln == false) { continue; } } // PJ 14525 BigDecimal umsatzLs = lieferscheinpos .getN_nettogesamtpreisplusversteckteraufschlagminusrabatt() .divide(rechpos.getFlrrechnung().getN_kurs(), 4, BigDecimal.ROUND_HALF_EVEN); umsatzLs = umsatzLs.multiply(lieferscheinpos.getN_menge()); if (lieferscheinpos.getPositionsart_c_nr().equals(LocaleFac.POSITIONSART_HANDEINGABE) && iOptionGruppierung .intValue() != LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHR && iOptionGruppierung .intValue() != LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_MONAT) { kdums.getSubSummeUmsatz()[0] = kdums.getSubSummeUmsatz()[0].add(umsatzLs); kdums.getSubSummeDeckungsbeitrag()[0] = kdums.getSubSummeDeckungsbeitrag()[0] .add(umsatzLs); // GESAMTSUMME kdums.setBdUmsatz(kdums.getBdUmsatz().add(umsatzLs)); kdums.setBdDeckungsbeitrag(kdums.getBdDeckungsbeitrag().add(umsatzLs)); } else if (lieferscheinpos.getPositionsart_c_nr().equals(LocaleFac.POSITIONSART_IDENT) || (lieferscheinpos.getPositionsart_c_nr() .equals(LocaleFac.POSITIONSART_HANDEINGABE) && iOptionGruppierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHR) || (lieferscheinpos.getPositionsart_c_nr() .equals(LocaleFac.POSITIONSART_HANDEINGABE) && iOptionGruppierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_MONAT)) { BigDecimal gestpreis = new BigDecimal(0); BigDecimal deckungsbeitrag = new BigDecimal(0); if (ohneDBBetrachtung == false) { try { /** * @todo Berechnung fuer negative * Lieferscheinpositionen einbauen */ if (lieferscheinpos.getN_menge().doubleValue() < 0) { if (umsatz != null) { gestpreis = umsatz; } } else { if (!rechpos.getPositionsart_c_nr() .equals(LocaleFac.POSITIONSART_HANDEINGABE)) { // PJ 16882 if (lieferscheinpos.getFlrartikel() != null && Helper.short2boolean(lieferscheinpos.getFlrartikel() .getB_lagerbewirtschaftet()) == false && !lieferscheinpos.getFlrartikel().getArtikelart_c_nr() .equals(ArtikelFac.ARTIKELART_ARBEITSZEIT)) { gestpreis = new BigDecimal(0); } else { gestpreis = getLagerFac() .getGemittelterGestehungspreisEinerAbgangsposition( LocaleFac.BELEGART_LIEFERSCHEIN, lieferscheinpos.getI_id()); gestpreis = gestpreis.multiply(lieferscheinpos.getN_menge()); } } } } catch (RemoteException ex2) { if (ex2.getCause() instanceof EJBExceptionLP) { if (((EJBExceptionLP) ex2.getCause()) .getCode() == EJBExceptionLP.ARTIKEL_KEINE_LAGERBUCHUNG_VORHANDEN) { // DANN ALLES OK } else { throwEJBExceptionLPRespectOld(ex2); } } else { throwEJBExceptionLPRespectOld(ex2); } } deckungsbeitrag = umsatzLs.subtract(gestpreis); } // GESAMTSUMME if (rechpos.getPositionsart_c_nr().equals(LocaleFac.POSITIONSART_HANDEINGABE)) { deckungsbeitrag = umsatzLs; } kdums.setBdUmsatz(kdums.getBdUmsatz().add(umsatzLs)); kdums.setBdDeckungsbeitrag(kdums.getBdDeckungsbeitrag().add(deckungsbeitrag)); if (iOptionGruppierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_ARTIKELKLASSE) { if (lieferscheinpos.getFlrartikel().getFlrartikelklasse() != null) { // Bei richtiger Artikelklasse einfuegen for (int j = 0; j < gruppierung.size(); j++) { if (gruppierung.get(j).equals( lieferscheinpos.getFlrartikel().getFlrartikelklasse().getC_nr())) { kdums.getSubSummeUmsatz()[j + 1] = kdums.getSubSummeUmsatz()[j + 1] .add(umsatzLs); kdums.getSubSummeDeckungsbeitrag()[j + 1] = kdums.getSubSummeDeckungsbeitrag()[j + 1] .add(deckungsbeitrag); bSpalteAndrucken[j] = true; } } } else { kdums.getSubSummeUmsatz()[0] = kdums.getSubSummeUmsatz()[0].add(umsatzLs); kdums.getSubSummeDeckungsbeitrag()[0] = kdums.getSubSummeDeckungsbeitrag()[0] .add(deckungsbeitrag); } } else if (iOptionGruppierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_ARTIKELGRUPPE) { if (lieferscheinpos.getFlrartikel().getFlrartikelgruppe() != null) { // Bei richtiger Gruppe einfuegen for (int j = 0; j < gruppierung.size(); j++) { if (gruppierung.get(j).equals( lieferscheinpos.getFlrartikel().getFlrartikelgruppe().getC_nr())) { kdums.getSubSummeUmsatz()[j + 1] = kdums.getSubSummeUmsatz()[j + 1] .add(umsatzLs); kdums.getSubSummeDeckungsbeitrag()[j + 1] = kdums.getSubSummeDeckungsbeitrag()[j + 1] .add(deckungsbeitrag); bSpalteAndrucken[j] = true; } } } else { kdums.getSubSummeUmsatz()[0] = kdums.getSubSummeUmsatz()[0].add(umsatzLs); kdums.getSubSummeDeckungsbeitrag()[0] = kdums.getSubSummeDeckungsbeitrag()[0] .add(deckungsbeitrag); } } else if (iOptionGruppierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_FERTIGUNGSGRUPPE) { Session sessionFTGruppe = FLRSessionFactory.getFactory().openSession(); String queryString = "SELECT stkl.flrfertigungsgruppe FROM FLRStueckliste AS stkl" + " WHERE stkl.artikel_i_id= " + lieferscheinpos.getFlrartikel().getI_id(); Query query = sessionFTGruppe.createQuery(queryString); List<?> resultList = query.list(); Iterator<?> resultListIteratorFTGruppe = resultList.iterator(); if (resultListIteratorFTGruppe.hasNext()) { FLRFertigungsgruppe gru = (FLRFertigungsgruppe) resultListIteratorFTGruppe .next(); if (gru != null) { // Bei richtiger Gruppe einfuegen for (int j = 0; j < gruppierung.size(); j++) { if (gruppierung.get(j).equals(gru.getC_bez())) { kdums.getSubSummeUmsatz()[j + 1] = kdums.getSubSummeUmsatz()[j + 1] .add(umsatzLs); kdums.getSubSummeDeckungsbeitrag()[j + 1] = kdums.getSubSummeDeckungsbeitrag()[j + 1] .add(deckungsbeitrag); bSpalteAndrucken[j] = true; } } } else { kdums.getSubSummeUmsatz()[0] = kdums.getSubSummeUmsatz()[0].add(umsatzLs); kdums.getSubSummeDeckungsbeitrag()[0] = kdums .getSubSummeDeckungsbeitrag()[0].add(deckungsbeitrag); } sessionFTGruppe.close(); } } else if (iOptionGruppierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHR) { Calendar cZeile = Calendar.getInstance(); cZeile.setTimeInMillis(rechpos.getFlrrechnung().getD_belegdatum().getTime()); String jahr = cZeile.get(Calendar.YEAR) + ""; for (int j = 0; j < gruppierung.size(); j++) { if (gruppierung.get(j).equals(jahr)) { kdums.getSubSummeUmsatz()[j + 1] = kdums.getSubSummeUmsatz()[j + 1] .add(umsatzLs); kdums.getSubSummeDeckungsbeitrag()[j + 1] = kdums.getSubSummeDeckungsbeitrag()[j + 1] .add(deckungsbeitrag); bSpalteAndrucken[j] = true; } } } else if (iOptionGruppierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_MONAT) { Calendar cZeile = Calendar.getInstance(); cZeile.setTimeInMillis(rechpos.getFlrrechnung().getD_belegdatum().getTime()); String jahrMonat = monate[cZeile.get(Calendar.MONTH)] + " " + cZeile.get(Calendar.YEAR); for (int j = 0; j < gruppierung.size(); j++) { if (gruppierung.get(j).equals(jahrMonat)) { kdums.getSubSummeUmsatz()[j + 1] = kdums.getSubSummeUmsatz()[j + 1] .add(umsatzLs); kdums.getSubSummeDeckungsbeitrag()[j + 1] = kdums.getSubSummeDeckungsbeitrag()[j + 1] .add(deckungsbeitrag); bSpalteAndrucken[j] = true; } } } } } session3.close(); } } session2.close(); if (results2.size() > 0) { gesamtListe.add(kdums); gesamtUmsatz = gesamtUmsatz.add(kdums.getBdUmsatz()); gesamtDeckungsbeitrag = gesamtDeckungsbeitrag.add(kdums.getBdDeckungsbeitrag()); } } session.close(); JasperPrintLP print = null; // NACH UMSATZ SORTIEREN int n = gesamtListe.size(); Object temp; for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - 1 - i; j++) { if (bUmsatz == true) { double a = ((KundeUmsatzstatistikDto) gesamtListe.get(j)).getBdUmsatz().doubleValue(); double b = ((KundeUmsatzstatistikDto) gesamtListe.get(j + 1)).getBdUmsatz().doubleValue(); if (iOptionGruppierung == REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHR && iOptionSortierung == REPORT_KUNDEUMSATZSTATISTIK_OPTION_SORTIERUNG_UMSATZ) { if (iSortierbasisJahre == REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHRE_SORTIERBASIS_UMSATZ_AKTUELLESJAHR) { a = ((KundeUmsatzstatistikDto) gesamtListe.get(j)) .getSubSummeUmsatz()[((KundeUmsatzstatistikDto) gesamtListe.get(j)) .getSubSummeUmsatz().length - 1].doubleValue(); b = ((KundeUmsatzstatistikDto) gesamtListe.get(j + 1)) .getSubSummeUmsatz()[((KundeUmsatzstatistikDto) gesamtListe.get(j)) .getSubSummeUmsatz().length - 1].doubleValue(); } else if (iSortierbasisJahre == REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHRE_SORTIERBASIS_UMSATZ_VORJAHR && ((KundeUmsatzstatistikDto) gesamtListe.get(j)).getSubSummeUmsatz().length > 1) { a = ((KundeUmsatzstatistikDto) gesamtListe.get(j)) .getSubSummeUmsatz()[((KundeUmsatzstatistikDto) gesamtListe.get(j)) .getSubSummeUmsatz().length - 2].doubleValue(); b = ((KundeUmsatzstatistikDto) gesamtListe.get(j + 1)) .getSubSummeUmsatz()[((KundeUmsatzstatistikDto) gesamtListe.get(j)) .getSubSummeUmsatz().length - 2].doubleValue(); } } if (a < b) { temp = gesamtListe.get(j); gesamtListe.set(j, gesamtListe.get(j + 1)); gesamtListe.set(j + 1, temp); } } else { double a = ((KundeUmsatzstatistikDto) gesamtListe.get(j)).getBdDeckungsbeitrag().doubleValue(); double b = ((KundeUmsatzstatistikDto) gesamtListe.get(j + 1)).getBdDeckungsbeitrag() .doubleValue(); if (iOptionGruppierung == REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHR && iOptionSortierung == REPORT_KUNDEUMSATZSTATISTIK_OPTION_SORTIERUNG_UMSATZ) { if (iSortierbasisJahre == REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHRE_SORTIERBASIS_UMSATZ_AKTUELLESJAHR) { a = ((KundeUmsatzstatistikDto) gesamtListe.get(j)) .getSubSummeDeckungsbeitrag()[((KundeUmsatzstatistikDto) gesamtListe.get(j)) .getSubSummeDeckungsbeitrag().length - 1].doubleValue(); b = ((KundeUmsatzstatistikDto) gesamtListe.get(j + 1)) .getSubSummeDeckungsbeitrag()[((KundeUmsatzstatistikDto) gesamtListe.get(j)) .getSubSummeDeckungsbeitrag().length - 1].doubleValue(); } else if (iSortierbasisJahre == REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHRE_SORTIERBASIS_UMSATZ_VORJAHR && ((KundeUmsatzstatistikDto) gesamtListe.get(j)) .getSubSummeDeckungsbeitrag().length > 1) { a = ((KundeUmsatzstatistikDto) gesamtListe.get(j)) .getSubSummeDeckungsbeitrag()[((KundeUmsatzstatistikDto) gesamtListe.get(j)) .getSubSummeDeckungsbeitrag().length - 2].doubleValue(); b = ((KundeUmsatzstatistikDto) gesamtListe.get(j + 1)) .getSubSummeDeckungsbeitrag()[((KundeUmsatzstatistikDto) gesamtListe.get(j)) .getSubSummeDeckungsbeitrag().length - 2].doubleValue(); } } if (a < b) { temp = gesamtListe.get(j); gesamtListe.set(j, gesamtListe.get(j + 1)); gesamtListe.set(j + 1, temp); } } } } // ABC-Klassifizierung // A=80% // B=15% // C=5% double dTempUmsatz = gesamtUmsatz.doubleValue(); double dTempDeckungsbeitrag = gesamtDeckungsbeitrag.doubleValue(); ParametermandantDto mandantparameterA = null; ParametermandantDto mandantparameterB = null; try { mandantparameterA = getParameterFac().getMandantparameter(theClientDto.getMandant(), ParameterFac.KATEGORIE_KUNDEN, ParameterFac.PARAMETER_KUNDENBEWERTUNG_WERT_A); mandantparameterB = getParameterFac().getMandantparameter(theClientDto.getMandant(), ParameterFac.KATEGORIE_KUNDEN, ParameterFac.PARAMETER_KUNDENBEWERTUNG_WERT_B); } catch (RemoteException ex3) { throwEJBExceptionLPRespectOld(ex3); } BigDecimal paramBUmsatz = gesamtUmsatz.multiply((new BigDecimal(mandantparameterB.getCWert()) .divide(new BigDecimal(100), 4, BigDecimal.ROUND_HALF_EVEN))); BigDecimal paramAUmsatz = gesamtUmsatz.multiply((new BigDecimal(mandantparameterA.getCWert()) .divide(new BigDecimal(100), 4, BigDecimal.ROUND_HALF_EVEN))); BigDecimal paramBDeckungsbeitrag = gesamtDeckungsbeitrag .multiply((new BigDecimal(mandantparameterB.getCWert()).divide(new BigDecimal(100), 4, BigDecimal.ROUND_HALF_EVEN))); BigDecimal paramADeckungsbeitrag = gesamtDeckungsbeitrag .multiply((new BigDecimal(mandantparameterA.getCWert()).divide(new BigDecimal(100), 4, BigDecimal.ROUND_HALF_EVEN))); for (int i = 0; i < gesamtListe.size(); i++) { KundeUmsatzstatistikDto dto = (KundeUmsatzstatistikDto) gesamtListe.get(i); if (bUmsatz == true) { if (dTempUmsatz < gesamtUmsatz.doubleValue() - (paramAUmsatz.doubleValue() + paramBUmsatz.doubleValue())) { dto.setAbcKlassifizierung("C"); } else if (dTempUmsatz < paramBUmsatz.doubleValue()) { dto.setAbcKlassifizierung("B"); } else { dto.setAbcKlassifizierung("A"); } dTempUmsatz = dTempUmsatz - dto.getBdUmsatz().doubleValue(); } else { if (dTempDeckungsbeitrag < gesamtDeckungsbeitrag.doubleValue() - (paramADeckungsbeitrag.doubleValue() + paramBDeckungsbeitrag.doubleValue())) { dto.setAbcKlassifizierung("C"); } else if (dTempDeckungsbeitrag < paramBDeckungsbeitrag.doubleValue()) { dto.setAbcKlassifizierung("B"); } else { dto.setAbcKlassifizierung("A"); } dTempDeckungsbeitrag = dTempDeckungsbeitrag - dto.getBdDeckungsbeitrag().doubleValue(); } gesamtListe.set(i, dto); } // Nach Name sortieren // NACH NAME SORTIEREN, Wenn angegeben if (iOptionSortierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_SORTIERUNG_FIRMANNAME) { n = gesamtListe.size(); for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - 1 - i; j++) { String a = ((KundeUmsatzstatistikDto) gesamtListe.get(j)).getSKunde(); String b = ((KundeUmsatzstatistikDto) gesamtListe.get(j + 1)).getSKunde(); if (a.compareTo(b) > 0) { temp = gesamtListe.get(j); gesamtListe.set(j, gesamtListe.get(j + 1)); gesamtListe.set(j + 1, temp); } } } } else if (iOptionSortierung.intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_SORTIERUNG_LKZ) { n = gesamtListe.size(); for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - 1 - i; j++) { String a = ((KundeUmsatzstatistikDto) gesamtListe.get(j)).getSLkz(); String b = ((KundeUmsatzstatistikDto) gesamtListe.get(j + 1)).getSLkz(); if (a.compareTo(b) > 0) { temp = gesamtListe.get(j); gesamtListe.set(j, gesamtListe.get(j + 1)); gesamtListe.set(j + 1, temp); } else if (a.compareTo(b) == 0) { String plz1 = ((KundeUmsatzstatistikDto) gesamtListe.get(j)).getSPlz(); String plz2 = ((KundeUmsatzstatistikDto) gesamtListe.get(j + 1)).getSPlz(); if (plz1.compareTo(plz2) > 0) { temp = gesamtListe.get(j); gesamtListe.set(j, gesamtListe.get(j + 1)); gesamtListe.set(j + 1, temp); } } } } } // Nach Branche/Partnerklasse Gruppieren if (iOptionKundengruppierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_KUNDENGRUPPIERUNG_BRANCHE || iOptionKundengruppierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_KUNDENGRUPPIERUNG_PARTNERKLASSE) { n = gesamtListe.size(); for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - 1 - i; j++) { String a = ((KundeUmsatzstatistikDto) gesamtListe.get(j)).getSKundengruppierung(); String b = ((KundeUmsatzstatistikDto) gesamtListe.get(j + 1)).getSKundengruppierung(); if (a.compareTo(b) > 0) { temp = gesamtListe.get(j); gesamtListe.set(j, gesamtListe.get(j + 1)); gesamtListe.set(j + 1, temp); } } } } // SPALTENHEADER entfernen, wenn Spalte leer for (int i = bSpalteAndrucken.length; i > 0; i--) { if (bSpalteAndrucken[i - 1] == false) { gruppierung.remove(i - 1); } } int[] spaltenDrucken = new int[gruppierung.size() + 1]; spaltenDrucken[0] = 0; int x = 1; for (int i = 1; i < bSpalteAndrucken.length + 1; i++) { if (bSpalteAndrucken[i - 1] == true) { spaltenDrucken[x] = i; x++; } } int seiten_breite = (gruppierung.size() / 8) + 1; for (int i = 0; i < seiten_breite; i++) { index = -1; if (bUmsatz == true) { sAktuellerReport = LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK; } else { sAktuellerReport = LagerReportFac.REPORT_KUNDEDBSTATISTIK; } data = new Object[gesamtListe.size()][28]; for (int j = 0; j < gesamtListe.size(); j++) { KundeUmsatzstatistikDto dto = (KundeUmsatzstatistikDto) gesamtListe.get(j); data[j][REPORT_KUNDEUMSATZSTATISTIK_KUNDENGRUPPIERUNG] = dto.getSKundengruppierung(); data[j][REPORT_KUNDEUMSATZSTATISTIK_KUNDE] = dto.getSKunde(); data[j][REPORT_KUNDEUMSATZSTATISTIK_UMSATZ] = dto.getBdUmsatz(); data[j][REPORT_KUNDEUMSATZSTATISTIK_PLZ] = dto.getSPlz(); data[j][REPORT_KUNDEUMSATZSTATISTIK_LKZ] = dto.getSLkz(); data[j][REPORT_KUNDEUMSATZSTATISTIK_KUNDENNUMMER] = dto.getIKundennummer(); data[j][REPORT_KUNDEUMSATZSTATISTIK_DECKUNGSBEITRAG] = dto.getBdDeckungsbeitrag(); data[j][REPORT_KUNDEUMSATZSTATISTIK_ERSTUMSATZ] = new Boolean(dto.isBErstumsatz()); data[j][REPORT_KUNDEUMSATZSTATISTIK_ABCKLASSE] = dto.getAbcKlassifizierung(); data[j][REPORT_KUNDEUMSATZSTATISTIK_ZAHLUNGSZIEL] = getMandantFac() .zahlungszielFindByIIdLocaleOhneExc(dto.getIZahlungsziel(), theClientDto.getLocMandant(), theClientDto); data[j][REPORT_KUNDEUMSATZSTATISTIK_LIEFERART] = getLocaleFac().lieferartFindByIIdLocaleOhneExc( dto.getILieferart(), theClientDto.getLocMandant(), theClientDto); data[j][REPORT_KUNDEUMSATZSTATISTIK_SPEDITEUR] = getMandantFac() .spediteurFindByPrimaryKey(dto.getISpediteur()).getCNamedesspediteurs(); try { if (i == 0) { data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE1] = dto.getSubSummeUmsatz()[0]; data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE1DB] = dto.getSubSummeDeckungsbeitrag()[0]; } else { data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE1] = dto .getSubSummeUmsatz()[spaltenDrucken[0 + (i * 8)]]; data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE1DB] = dto .getSubSummeDeckungsbeitrag()[spaltenDrucken[0 + (i * 8)]]; } data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE2] = dto .getSubSummeUmsatz()[spaltenDrucken[1 + (i * 8)]]; data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE2DB] = dto .getSubSummeDeckungsbeitrag()[spaltenDrucken[1 + (i * 8)]]; data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE3] = dto .getSubSummeUmsatz()[spaltenDrucken[2 + (i * 8)]]; data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE3DB] = dto .getSubSummeDeckungsbeitrag()[spaltenDrucken[2 + (i * 8)]]; data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE4] = dto .getSubSummeUmsatz()[spaltenDrucken[3 + (i * 8)]]; data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE4DB] = dto .getSubSummeDeckungsbeitrag()[spaltenDrucken[3 + (i * 8)]]; data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE5] = dto .getSubSummeUmsatz()[spaltenDrucken[4 + (i * 8)]]; data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE5DB] = dto .getSubSummeDeckungsbeitrag()[spaltenDrucken[4 + (i * 8)]]; data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE6] = dto .getSubSummeUmsatz()[spaltenDrucken[5 + (i * 8)]]; data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE6DB] = dto .getSubSummeDeckungsbeitrag()[spaltenDrucken[5 + (i * 8)]]; data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE7] = dto .getSubSummeUmsatz()[spaltenDrucken[6 + (i * 8)]]; data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE7DB] = dto .getSubSummeDeckungsbeitrag()[spaltenDrucken[6 + (i * 8)]]; data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE8] = dto .getSubSummeUmsatz()[spaltenDrucken[7 + (i * 8)]]; data[j][REPORT_KUNDEUMSATZSTATISTIK_SPALTE8DB] = dto .getSubSummeDeckungsbeitrag()[spaltenDrucken[7 + (i * 8)]]; } catch (ArrayIndexOutOfBoundsException ex1) { // nothing } } HashMap<String, Object> parameter = new HashMap<String, Object>(); parameter.put("P_VON", tVon); parameter.put("P_BIS", tBis); if (bUmsatz == true) { parameter.put("P_UMSATZ", new Boolean(true)); } else { parameter.put("P_UMSATZ", new Boolean(false)); } if (iOptionKundengruppierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_KUNDENGRUPPIERUNG_BRANCHE) { parameter.put("P_GRUPPIERUNGKUNDE", getTextRespectUISpr("lp.branche", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (iOptionKundengruppierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_KUNDENGRUPPIERUNG_PARTNERKLASSE) { parameter.put("P_GRUPPIERUNGKUNDE", "Partnerklasse"); } if (iOptionGruppierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_ARTIKELKLASSE) { parameter.put("P_GRUPPIERUNG", getTextRespectUISpr("lp.artikelklasse", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (iOptionGruppierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_ARTIKELGRUPPE) { parameter.put("P_GRUPPIERUNG", getTextRespectUISpr("lp.artikelgruppe", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (iOptionGruppierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_FERTIGUNGSGRUPPE) { parameter.put("P_GRUPPIERUNG", getTextRespectUISpr("lp.fertigungsgruppe", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (iOptionGruppierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHR) { parameter.put("P_GRUPPIERUNG", getTextRespectUISpr("lp.jahr", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (iOptionGruppierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_GRUPPIERUNG_JAHR) { parameter.put("P_GRUPPIERUNG", getTextRespectUISpr("lp.monat", theClientDto.getMandant(), theClientDto.getLocUi())); } if (iOptionSortierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_SORTIERUNG_FIRMANNAME) { parameter.put("P_SORTIERUNG", "Firmenname"); } else if (iOptionSortierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_SORTIERUNG_UMSATZ) { parameter.put("P_SORTIERUNG", getTextRespectUISpr("er.umsatz", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (iOptionSortierung .intValue() == LagerReportFac.REPORT_KUNDEUMSATZSTATISTIK_OPTION_SORTIERUNG_LKZ) { parameter.put("P_SORTIERUNG", getTextRespectUISpr("lp.lkzplz", theClientDto.getMandant(), theClientDto.getLocUi())); } parameter.put("P_STATISTIKADRESSE", new Boolean(bVerwendeStatistikadresse)); parameter.put("P_MITNICHTLAGERBEWERTETENARTIKELN", new Boolean(bMitNichtLagerbewertetenArtikeln)); parameter.put("P_OHNE_DBBETRACHTUNG", new Boolean(ohneDBBetrachtung)); try { parameter.put("P_GRUPPEA", mandantparameterA.getCWertAsObject()); parameter.put("P_GRUPPEB", mandantparameterB.getCWertAsObject()); if (i == 0) { parameter.put("Spalte1", "Unbekannt"); parameter.put("Spalte2", gruppierung.get(0 + (i * 8))); parameter.put("Spalte3", gruppierung.get(1 + (i * 8))); parameter.put("Spalte4", gruppierung.get(2 + (i * 8))); parameter.put("Spalte5", gruppierung.get(3 + (i * 8))); parameter.put("Spalte6", gruppierung.get(4 + (i * 8))); parameter.put("Spalte7", gruppierung.get(5 + (i * 8))); parameter.put("Spalte8", gruppierung.get(6 + (i * 8))); } else { parameter.put("Spalte1", gruppierung.get(7 + (i * 8) - 8)); parameter.put("Spalte2", gruppierung.get(8 + (i * 8) - 8)); parameter.put("Spalte3", gruppierung.get(1 + (i * 8))); parameter.put("Spalte4", gruppierung.get(2 + (i * 8))); parameter.put("Spalte5", gruppierung.get(3 + (i * 8))); parameter.put("Spalte6", gruppierung.get(4 + (i * 8))); parameter.put("Spalte7", gruppierung.get(5 + (i * 8))); parameter.put("Spalte8", gruppierung.get(6 + (i * 80))); } } catch (IndexOutOfBoundsException ex1) { // nothing } initJRDS(parameter, LagerReportFac.REPORT_MODUL, sAktuellerReport, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); if (print == null) { print = getReportPrint(); } else { print = Helper.addReport2Report(print, getReportPrint().getPrint()); } } return print; }
From source file:com.lp.server.auftrag.ejbfac.AuftragFacBean.java
License:Open Source License
/** * Fuer eine bestimmte Auftragsart fuer einen bestimmten Zeitraum und eine * bestimmte Terminart (Belegdatum, Liefertermin, Finaltermin) den * Nettoauftragswert in Abhaengigkeit vom aktuellen Mandanten bestimmen. <br> * Beruecksichtigt werden koennen entweder alle offenen Auftraege oder alle * eingegangenen Auftraege.//from w w w. j a va 2 s.c o m * * @param cNrAuftragartI * die Auftragart (Frei, Rahmen, Abruf) * @param whichKriteriumI * welche Zeitraumart (Belegdatum, Liefertermin, Finaltermin) * @param gcBerechnungsdatumVonI * ab diesem Datum * @param gcBerechnungsdatumBisI * bis zu diesem Datum * @param offenOderEingegangenI * sollen alle offenen oder alle eingegangengen Auftraegr * beruecksichtigt werden * @param theClientDto * der aktuelle Benutzer * @return BigDecimal der Nettoauftragswert, 0 wenn keine offenen Positionen * gefunden wurden * @throws EJBExceptionLP * Ausnahme */ public BigDecimal berechneSummeAuftragsnettowert(String cNrAuftragartI, String whichKriteriumI, GregorianCalendar gcBerechnungsdatumVonI, GregorianCalendar gcBerechnungsdatumBisI, String offenOderEingegangenI, TheClientDto theClientDto) throws EJBExceptionLP { StringBuffer buff = new StringBuffer(); buff.append(offenOderEingegangenI).append(", ").append(whichKriteriumI).append(", ").append(cNrAuftragartI) .append(", ").append("Von: ") .append(Helper.formatDatum(gcBerechnungsdatumVonI.getTime(), theClientDto.getLocUi())) .append(", Bis: ") .append(Helper.formatDatum(gcBerechnungsdatumBisI.getTime(), theClientDto.getLocUi())); myLogger.info(buff.toString()); BigDecimal nSummeAuftragsnettowert = new BigDecimal(0); Session session = null; try { SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); // Criteria duerfen keine Texts oder Blobs enthalten! // Criteria anlegen fuer alle referenzierten Objekte anlegen Criteria crit = session.createCriteria(FLRAuftragFuerUebersicht.class); // Einschraenken nach Mandant crit.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant())); // Einschraenken nach Auftragart crit.add(Restrictions.eq(AuftragFac.FLR_AUFTRAG_AUFTRAGART_C_NR, cNrAuftragartI)); if (whichKriteriumI.equals(AuftragFac.KRIT_BELEGDATUM)) { // Belegdatum von bis: flrauftrag.t_belegdatum if (gcBerechnungsdatumVonI != null) { crit.add(Restrictions.ge(AuftragFac.FLR_AUFTRAG_D_BELEGDATUM, new java.sql.Date(gcBerechnungsdatumVonI.getTimeInMillis()))); } if (gcBerechnungsdatumBisI != null) { crit.add(Restrictions.lt(AuftragFac.FLR_AUFTRAG_D_BELEGDATUM, new java.sql.Date(gcBerechnungsdatumBisI.getTimeInMillis()))); } } else if (whichKriteriumI.equals(AuftragFac.KRIT_LIEFERTERMIN)) { // Liefertermin von bis: flrauftrag.t_liefertermin if (gcBerechnungsdatumVonI != null) { crit.add(Restrictions.ge(AuftragFac.FLR_AUFTRAG_T_LIEFERTERMIN, new java.sql.Date(gcBerechnungsdatumVonI.getTimeInMillis()))); } if (gcBerechnungsdatumBisI != null) { crit.add(Restrictions.le(AuftragFac.FLR_AUFTRAG_T_LIEFERTERMIN, new java.sql.Date(gcBerechnungsdatumBisI.getTimeInMillis()))); } } else if (whichKriteriumI.equals(AuftragFac.KRIT_FINALTERMIN)) { // Belegdatum von bis: flrauftrag.t_finaltermin if (gcBerechnungsdatumVonI != null) { crit.add(Restrictions.ge(AuftragFac.FLR_AUFTRAG_T_FINALTERMIN, new java.sql.Date(gcBerechnungsdatumVonI.getTimeInMillis()))); } if (gcBerechnungsdatumBisI != null) { crit.add(Restrictions.le(AuftragFac.FLR_AUFTRAG_T_FINALTERMIN, new java.sql.Date(gcBerechnungsdatumBisI.getTimeInMillis()))); } } // Einschraenken nach Auftragstatus if (offenOderEingegangenI.equals(AuftragFac.AUFT_UMSATZUEBERSICHT_OFFEN)) { crit.add(Expression.or( Restrictions.eq(AuftragFac.FLR_AUFTRAG_AUFTRAGSTATUS_C_NR, AuftragServiceFac.AUFTRAGSTATUS_OFFEN), Restrictions.eq(AuftragFac.FLR_AUFTRAG_AUFTRAGSTATUS_C_NR, AuftragServiceFac.AUFTRAGSTATUS_TEILERLEDIGT))); } else if (offenOderEingegangenI.equals(AuftragFac.AUFT_UMSATZUEBERSICHT_EINGANG)) { crit.add(Restrictions.ne(AuftragFac.FLR_AUFTRAG_AUFTRAGSTATUS_C_NR, AuftragServiceFac.AUFTRAGSTATUS_ANGELEGT)); crit.add(Restrictions.ne(AuftragFac.FLR_AUFTRAG_AUFTRAGSTATUS_C_NR, AuftragServiceFac.AUFTRAGSTATUS_STORNIERT)); } List<?> list = crit.list(); if (offenOderEingegangenI.equals(AuftragFac.AUFT_UMSATZUEBERSICHT_OFFEN)) { nSummeAuftragsnettowert = berechneAuftragsnettowertOffen(list, session, theClientDto); } else if (offenOderEingegangenI.equals(AuftragFac.AUFT_UMSATZUEBERSICHT_EINGANG)) { nSummeAuftragsnettowert = berechneAuftragsnettowertEingang(list, theClientDto); } } catch (Throwable t) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FLR, new Exception(t)); } finally { try { session.close(); } catch (HibernateException he) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_HIBERNATE, he); } } return nSummeAuftragsnettowert; }
From source file:com.lp.server.bestellung.ejbfac.BestellungFacBean.java
License:Open Source License
public void importiereMonatsbestellung(ArrayList<ImportMonatsbestellungDto> importMonatbestellung, TheClientDto theClientDto) {/*from w w w . j ava 2 s . c o m*/ // letzte Bestellung des Lieferanten suchen und nachsehen, ob diese in // diesem Monat bereits vorhanden ist. // PJ 17876 Integer iMonatsbestellungsart = 0; try { ParametermandantDto parameter = getParameterFac().getMandantparameter(theClientDto.getMandant(), ParameterFac.KATEGORIE_BESTELLUNG, ParameterFac.PARAMETER_MONATSBESTELLUNGSART); iMonatsbestellungsart = (Integer) parameter.getCWertAsObject(); } catch (RemoteException e2) { throwEJBExceptionLPRespectOld(e2); } if (iMonatsbestellungsart == 2) { importiereBestellung(importMonatbestellung, theClientDto); return; } for (int i = 0; i < importMonatbestellung.size(); i++) { SessionFactory factory = FLRSessionFactory.getFactory(); Session session = factory.openSession(); Criteria c = session.createCriteria(FLRBestellung.class); c.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_LIEFERANT_I_ID_BESTELLADRESSE, importMonatbestellung.get(i).getLieferantIId())); Calendar cal = Calendar.getInstance(); cal.setTimeInMillis(importMonatbestellung.get(i).getWeDatum().getTime()); cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH)); cal.set(Calendar.HOUR_OF_DAY, 23); cal.set(Calendar.MINUTE, 59); cal.set(Calendar.SECOND, 59); cal.set(Calendar.MILLISECOND, 999); c.add(Restrictions.le(BestellungFac.FLR_BESTELLUNG_T_BELEGDATUM, cal.getTime())); cal.set(Calendar.DAY_OF_MONTH, 1); cal.set(Calendar.HOUR_OF_DAY, 0); cal.set(Calendar.MINUTE, 0); cal.set(Calendar.SECOND, 0); cal.set(Calendar.MILLISECOND, 0); SimpleDateFormat dateformat = new SimpleDateFormat("MMMM", theClientDto.getLocUi()); dateformat.format(cal.getTime()); String projektTextMonatsbestellung = "Monatsbestellung " + dateformat.format(cal.getTime()) + " " + cal.get(Calendar.YEAR); c.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_C_BEZPROJEKTBEZEICHNUNG, projektTextMonatsbestellung)); c.add(Restrictions.ge(BestellungFac.FLR_BESTELLUNG_T_BELEGDATUM, cal.getTime())); // String[] s = new String[2]; s[0] = BestellungFac.BESTELLSTATUS_ERLEDIGT; s[1] = BestellungFac.BESTELLSTATUS_STORNIERT; c.add(Restrictions.not(Restrictions.in(BestellungFac.FLR_BESTELLUNG_BESTELLUNGSTATUS_C_NR, s))); c.addOrder(Order.desc(BestellungFac.FLR_BESTELLUNG_T_BELEGDATUM)); c.setMaxResults(1); List<?> list = c.list(); Integer bestellungIId = null; if (list.size() > 0) { FLRBestellung b = (FLRBestellung) list.iterator().next(); bestellungIId = b.getI_id(); } Lieferant lieferant = em.find(Lieferant.class, importMonatbestellung.get(i).getLieferantIId()); Partner partner = em.find(Partner.class, lieferant.getPartnerIId()); if (bestellungIId == null) { BestellungDto bsdto = createBestellungDto(importMonatbestellung.get(i).getLieferantIId(), theClientDto.getMandant(), theClientDto.getIDPersonal()); try { BestellungtextDto bsText = getBestellungServiceFac().bestellungtextFindByMandantLocaleCNr( theClientDto.getMandant(), partner.getLocaleCNrKommunikation(), MediaFac.MEDIAART_KOPFTEXT, theClientDto); if (bsText != null) { bsdto.setBestelltextIIdKopftext(bsText.getIId()); } bsText = getBestellungServiceFac().bestellungtextFindByMandantLocaleCNr( theClientDto.getMandant(), partner.getLocaleCNrKommunikation(), MediaFac.MEDIAART_FUSSTEXT, theClientDto); if (bsText != null) { bsdto.setBestelltextIIdFusstext(bsText.getIId()); } } catch (RemoteException e1) { throwEJBExceptionLPRespectOld(e1); } bsdto.setDBelegdatum(new Date(cal.getTimeInMillis()));// bsdto.setDLiefertermin(new Timestamp(cal.getTimeInMillis())); bsdto.setCBez(projektTextMonatsbestellung); try { bestellungIId = getBestellungFac().createBestellung(bsdto, theClientDto); } catch (EJBExceptionLP e) { throw new EJBExceptionLP(e); } catch (RemoteException e) { throw new EJBExceptionLP(e); } } // Position anlegen try { BestellpositionDto bspos = createBestellPositionDto(bestellungIId, importMonatbestellung.get(i).getLieferantIId(), importMonatbestellung.get(i).getArtikelIId(), importMonatbestellung.get(i).getMenge(), theClientDto); Integer bsPosIId = getBestellpositionFac().createBestellposition(bspos, theClientDto, null, null); // Wareneingang zu Verladedatum anlegen, wenn noch nicht // vorhanden if (iMonatsbestellungsart == 0) { Timestamp tVerladedatum = new java.sql.Timestamp( importMonatbestellung.get(i).getWeDatum().getTime()); Query query = em.createNamedQuery("WareneingangfindByBestellungIIdTWareneingangsdatum"); query.setParameter(1, bestellungIId); query.setParameter(2, tVerladedatum); Collection<?> col = query.getResultList(); Integer wareneingangId = null; if (col.size() > 0) { Wareneingang we = (Wareneingang) col.iterator().next(); wareneingangId = we.getIId(); } else { WareneingangDto wedto = new WareneingangDto(); wedto.setBestellungIId(bestellungIId); wedto.setCLieferscheinnr(importMonatbestellung.get(i).getLieferscheinnr()); wedto.setTLieferscheindatum(tVerladedatum); wedto.setTWareneingangsdatum(tVerladedatum); wedto.setLagerIId(lieferant.getLagerIIdZubuchungslager()); wedto.setNWechselkurs(new BigDecimal(1)); try { wareneingangId = getWareneingangFac().createWareneingang(wedto, theClientDto); } catch (RemoteException e) { throw new EJBExceptionLP(e); } } try { WareneingangspositionDto weposDto = new WareneingangspositionDto(); weposDto.setBestellpositionIId(bsPosIId); weposDto.setNGeliefertemenge(importMonatbestellung.get(i).getMenge()); weposDto.setPersonalIIdAendern(theClientDto.getIDPersonal()); weposDto.setPersonalIIdAnlegen(theClientDto.getIDPersonal()); weposDto.setTAendern(new Timestamp(System.currentTimeMillis())); weposDto.setTAnlegen(weposDto.getTAendern()); weposDto.setWareneingangIId(wareneingangId); BigDecimal nGeliefertpreis = bspos.getNNettogesamtpreis(); weposDto.setNGelieferterpreis(nGeliefertpreis); getWareneingangFac().createWareneingangsposition(weposDto, theClientDto); getBestellungFac().aktiviereBestellung(bestellungIId, theClientDto); getBestellpositionFac().manuellAufVollstaendigGeliefertSetzen(bsPosIId, theClientDto); } catch (EJBExceptionLP e) { throw new EJBExceptionLP(e); } catch (RemoteException e) { throw new EJBExceptionLP(e); } } } catch (EJBExceptionLP e) { throw new EJBExceptionLP(e); } catch (RemoteException e) { throw new EJBExceptionLP(e); } session.close(); } }
From source file:com.lp.server.bestellung.ejbfac.BestellungReportFacBean.java
License:Open Source License
public JasperPrintLP printBestellungenAlle(ReportJournalKriterienDto krit, TheClientDto theClientDto) throws EJBExceptionLP { Session session = null;// ww w . j a v a 2 s. c o m try { this.useCase = UC_ALLE; SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); boolean darfEinkaufspreisSehen = getTheJudgeFac().hatRecht(RechteFac.RECHT_LP_DARF_PREISE_SEHEN_EINKAUF, theClientDto); // reportjournal: 00 Erzeugen einer Hibernate-Criteria-Query Criteria c = session.createCriteria(FLRBestellung.class); // reportjournal: 01 Filter nach Mandant c.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_MANDANT_C_NR, theClientDto.getMandant())); // reportjournal: 02 Filter: nur eine Kostenstelle if (krit.kostenstelleIId != null) { c.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_KOSTENSTELLE_I_ID, krit.kostenstelleIId)); } // reportjournal: 03 Filter: nur ein Lieferant if (krit.lieferantIId != null) { c.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_LIEFERANT_I_ID_BESTELLADRESSE, krit.lieferantIId)); } String sVon = null; String sBis = null; // reportjournal: 04 Datum von if (krit.dVon != null) { c.add(Restrictions.ge(BestellungFac.FLR_BESTELLUNG_T_LIEFERTERMIN, Helper.cutDate(krit.dVon))); sVon = Helper.formatDatum(krit.dVon, theClientDto.getLocUi()); } // reportjournal: 05 Datum bis if (krit.dBis != null) { c.add(Restrictions.lt(BestellungFac.FLR_BESTELLUNG_T_LIEFERTERMIN, Helper.cutDate(Helper.addiereTageZuDatum(krit.dBis, 1)))); sBis = Helper.formatDatum(krit.dBis, theClientDto.getLocUi()); } // reportjournalbelegnummer: 0 dazu muss ich das Belegnummernformat // und das // aktuelle Geschaeftsjahr des Mandanten kennen. LpBelegnummerFormat f = getBelegnummerGeneratorObj().getBelegnummernFormat(theClientDto.getMandant()); Integer iGeschaeftsjahr = getParameterFac().getGeschaeftsjahr(theClientDto.getMandant()); String sMandantKuerzel = getParameterFac().getMandantparameter(theClientDto.getMandant(), ParameterFac.KATEGORIE_ALLGEMEIN, ParameterFac.PARAMETER_BELEGNUMMER_MANDANTKENNUNG).getCWert(); // reportjournal: 06 belegnummer von // reportjournalbelegnummer: 1 (von) hier funktionierts fast gleich // wie bei den Direktfiltern if (krit.sBelegnummerVon != null) { sVon = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr, sMandantKuerzel, krit.sBelegnummerVon); c.add(Restrictions.ge(BestellungFac.FLR_BESTELLUNG_C_NR, sVon)); } // reportjournal: 07 belegnummer bis // reportjournalbelegnummer: 2 (bis) detto if (krit.sBelegnummerBis != null) { sBis = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr, sMandantKuerzel, krit.sBelegnummerBis); c.add(Restrictions.le(BestellungFac.FLR_BESTELLUNG_C_NR, sBis)); } // reportjournal: 08 Sortierung nach Kostenstelle if (krit.bSortiereNachKostenstelle) { c.createCriteria(BestellungFac.FLR_BESTELLUNG_FLRKOSTENSTELLE).addOrder(Order.asc("c_nr")); } // reportjournal: 09 Sortierung nach Lieferant if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) { c.createCriteria(BestellungFac.FLR_BESTELLUNG_FLRLIEFERANT).createCriteria(LieferantFac.FLR_PARTNER) .addOrder(Order.asc(PartnerFac.FLR_PARTNER_NAME1NACHNAMEFIRMAZEILE1)); } // reportjournal: 10 Sortierung nach Belegnummer else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_BELEGNUMMER) { c.addOrder(Order.asc(BestellungFac.FLR_BESTELLUNG_C_NR)); } // reportjournal: 11 Und nun zusammenbauen der Daten List<?> list = c.list(); data = new Object[list.size()][7]; int i = 0; for (Iterator<?> iter = list.iterator(); iter.hasNext();) { FLRBestellung b = (FLRBestellung) iter.next(); // reportjournal: 12 Fuer die Performance: so wenige // ejb-Methoden wie moeglich aufrufen! data[i][ALLE_BELEGDATUM] = b.getT_belegdatum(); data[i][ALLE_BESTELLNUMMER] = b.getC_nr(); data[i][ALLE_STATUS] = b.getBestellungstatus_c_nr(); if (darfEinkaufspreisSehen) { data[i][ALLE_BESTELLWERT] = b.getN_bestellwert(); } else { data[i][ALLE_BESTELLWERT] = null; } data[i][ALLE_KOSTENSTELLENUMMER] = b.getFlrkostenstelle() != null ? b.getFlrkostenstelle().getC_nr() : null; data[i][ALLE_LIEFERANT] = b.getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1(); data[i][ALLE_LIEFERTERMIN] = b.getT_liefertermin(); i++; } Map<String, Object> map = new TreeMap<String, Object>(); MandantDto mandantDto = getMandantFac().mandantFindByPrimaryKey(theClientDto.getMandant(), theClientDto); // Waehrung map.put(LPReport.P_WAEHRUNG, mandantDto.getWaehrungCNr()); StringBuffer sSortierung = new StringBuffer(); // Sortierung nach Kostenstelle // reportjournalparameter: 0 nach Kostenstelle map.put(LPReport.P_SORTIERENACHKOSTENSTELLE, new Boolean(krit.bSortiereNachKostenstelle)); if (krit.bSortiereNachKostenstelle) { sSortierung.append( getTextRespectUISpr("lp.kostenstelle", theClientDto.getMandant(), theClientDto.getLocUi())); sSortierung.append(", "); } // Sortierung nach Lieferant // reportjournalparameter: 1 nach Lieferanten map.put(LPReport.P_SORTIERENACHLIEFERANT, new Boolean(krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER)); if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) { sSortierung.append( getTextRespectUISpr("lp.lieferant", theClientDto.getMandant(), theClientDto.getLocUi())); } // reportjournalparameter: 2 nach Belegnummer else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_BELEGNUMMER) { sSortierung.append( getTextRespectUISpr("bes.bestnr", theClientDto.getMandant(), theClientDto.getLocUi())); } StringBuffer sFilter = new StringBuffer(); if (sVon != null) { sFilter.append(getTextRespectUISpr("lp.von", theClientDto.getMandant(), theClientDto.getLocUi())); sFilter.append(" " + sVon + " "); } if (sBis != null) { sFilter.append(getTextRespectUISpr("lp.bis", theClientDto.getMandant(), theClientDto.getLocUi())); sFilter.append(" " + sBis + " "); } if (krit.kostenstelleIId != null) { if (sFilter.length() > 0) { sFilter.append(", "); } KostenstelleDto kstDto = getSystemFac().kostenstelleFindByPrimaryKey(krit.kostenstelleIId); sFilter.append( getTextRespectUISpr("lp.kostenstelle", theClientDto.getMandant(), theClientDto.getLocUi())); sFilter.append(" "); sFilter.append(kstDto.getCNr()); } // reportjournalparameter: 3 Uebergabe map.put(LPReport.P_SORTIERUNG, sSortierung.toString()); map.put(LPReport.P_FILTER, sFilter.toString()); initJRDS(map, BestellungReportFac.REPORT_MODUL, BestellungReportFac.REPORT_BESTELLUNGEN_ALLE, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); } catch (RemoteException ex) { throwEJBExceptionLPRespectOld(ex); } finally { closeSession(session); } return getReportPrint(); }
From source file:com.lp.server.bestellung.ejbfac.BestellungReportFacBean.java
License:Open Source License
/** * Alle offenen Bestellungen fuer einen bestimmten Mandanten drucken. * /*from ww w. j a v a 2 s.c o m*/ * @param krit * die Filter- und Sortierkriterien * @param dStichtag * Date * @param bSortierungNachLiefertermin * Boolean * @param artikelklasseIId * Integer * @param artikelgruppeIId * Integer * @param artikelCNrVon * String * @param artikelCNrBis * String * @param projektCBezeichnung * String * @param auftragIId * Integer * @param theClientDto * der aktuelle Benutzer * @throws EJBExceptionLP * Ausnahme * @return JasperPrint der Druck */ @TransactionAttribute(TransactionAttributeType.NEVER) public JasperPrintLP printBestellungOffene(ReportJournalKriterienDto krit, Date dStichtag, Boolean bSortierungNachLiefertermin, Integer artikelklasseIId, Integer artikelgruppeIId, String artikelCNrVon, String artikelCNrBis, String projektCBezeichnung, Integer auftragIId, Integer iArt, boolean bNurAngelegte, boolean bNurOffeneMengenAnfuehren, Integer[] projekte, TheClientDto theClientDto) throws EJBExceptionLP { useCase = UC_OFFENE; int iAnzahlZeilen = 0; SessionFactory factory = FLRSessionFactory.getFactory(); Session session = null; // vom Stichtag die Uhrzeit abschneiden dStichtag = Helper.cutDate(dStichtag); // die dem Report uebergeben HashMap<String, Object> parameter = new HashMap<String, Object>(); parameter.put("P_STICHTAG", Helper.formatDatum(dStichtag, theClientDto.getLocUi())); dStichtag = Helper.addiereTageZuDatum(dStichtag, 1); session = factory.openSession(); boolean darfEinkaufspreisSehen = getTheJudgeFac().hatRecht(RechteFac.RECHT_LP_DARF_PREISE_SEHEN_EINKAUF, theClientDto); boolean bProjektklammer = getMandantFac().darfAnwenderAufZusatzfunktionZugreifen( MandantFac.ZUSATZFUNKTION_PROJEKTKLAMMER, theClientDto.getMandant()); // Hiberante Criteria fuer alle Tabellen ausgehend von meiner // Haupttabelle anlegen, // nach denen ich filtern und sortieren kann Criteria crit = session.createCriteria(FLRBestellung.class); // Einschraenkung auf den aktuellen Mandanten crit.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_MANDANT_C_NR, theClientDto.getMandant())); // Einschraenkung nach Status Offen, Erledigt Collection<String> cStati = new LinkedList<String>(); cStati.add(BestellungFac.BESTELLSTATUS_ANGELEGT); if (bNurAngelegte == false) { cStati.add(BestellungFac.BESTELLSTATUS_OFFEN); cStati.add(BestellungFac.BESTELLSTATUS_BESTAETIGT); cStati.add(BestellungFac.BESTELLSTATUS_ERLEDIGT); } crit.add(Restrictions.in(BestellungFac.FLR_BESTELLUNG_BESTELLUNGSTATUS_C_NR, cStati)); // Das Belegdatum muss vor dem Stichtag liegen crit.add(Restrictions.le(BestellungFac.FLR_BESTELLUNG_T_BELEGDATUM, dStichtag)); /** * @todo MB->MB hier sollte auch das erledigt-datum ziehen, das gibts * aber in der BS nicht :-( */ crit.add(Restrictions.or(Restrictions.ge(BestellungFac.FLR_BESTELLUNG_T_MANUELLGELIEFERT, dStichtag), Restrictions.isNull(BestellungFac.FLR_BESTELLUNG_T_MANUELLGELIEFERT))); // Das Belegdatum muss vor dem Stichtag liegen crit.add(Restrictions.le(BestellungFac.FLR_BESTELLUNG_T_BELEGDATUM, dStichtag)); // Filter nach Projektbezeichnung if (projektCBezeichnung != null) { crit.add(Restrictions.ilike(BestellungFac.FLR_BESTELLUNG_C_BEZPROJEKTBEZEICHNUNG, "%" + projektCBezeichnung + "%")); } // Projektklammer if (projekte != null && projekte.length > 0) { crit.add(Restrictions.in(BestellungFac.FLR_BESTELLUNG_PROJEKT_I_ID, projekte)); String text = ""; for (int i = 0; i < projekte.length; i++) { try { ProjektDto pDto = getProjektFac().projektFindByPrimaryKey(projekte[i]); text += pDto.getCNr() + ", "; } catch (RemoteException e) { throwEJBExceptionLPRespectOld(e); } } parameter.put("P_PROJEKTE", text); } // Filter nach Auftrag if (auftragIId != null) { crit.add(Restrictions.like(BestellungFac.FLR_BESTELLUNG_AUFTRAG_I_ID, auftragIId)); } // Einschraenkung nach einer bestimmten Kostenstelle if (krit.kostenstelleIId != null) { crit.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_KOSTENSTELLE_I_ID, krit.kostenstelleIId)); } // Einschraenkung nach einem bestimmten Lieferanten if (krit.lieferantIId != null) { crit.add( Restrictions.eq(BestellungFac.FLR_BESTELLUNG_LIEFERANT_I_ID_BESTELLADRESSE, krit.lieferantIId)); } // Filter nach Bestellungsart Collection<String> cArt = null; if (iArt != null) { if (iArt == 1) { // Ohne Rahmenbestellungen cArt = new LinkedList<String>(); cArt.add(BestellungFac.BESTELLUNGART_FREIE_BESTELLUNG_C_NR); cArt.add(BestellungFac.BESTELLUNGART_ABRUFBESTELLUNG_C_NR); cArt.add(BestellungFac.BESTELLUNGART_LEIHBESTELLUNG_C_NR); crit.add(Restrictions.in(BestellungFac.FLR_BESTELLUNG_BESTELLUNGART_C_NR, cArt)); } else if (iArt == 2) { // Nur Rahmenbestellungen cArt = new LinkedList<String>(); cArt.add(BestellungFac.BESTELLUNGART_RAHMENBESTELLUNG_C_NR); crit.add(Restrictions.in(BestellungFac.FLR_BESTELLUNG_BESTELLUNGART_C_NR, cArt)); } } // Sortierung nach Kostenstelle ist immer die erste Sortierung if (krit.bSortiereNachKostenstelle) { crit.createCriteria(BestellungFac.FLR_BESTELLUNG_FLRKOSTENSTELLE).addOrder(Order.asc("c_nr")); } // Sortierung nach Kunde, eventuell innerhalb der Kostenstelle if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) { crit.createCriteria(BestellungFac.FLR_BESTELLUNG_FLRLIEFERANT).createCriteria(LieferantFac.FLR_PARTNER) .addOrder(Order.asc(PartnerFac.FLR_PARTNER_NAME1NACHNAMEFIRMAZEILE1)); } // Sortierung nach Projekt, eventuell innerhalb der Kostenstelle else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PROJEKT) { if (bProjektklammer == true) { crit.createAlias(BestellungFac.FLR_BESTELLUNG_FLRPROJEKT, "p"); crit.addOrder(Order.asc("p.c_nr")); } else { crit.addOrder(Order.asc(BestellungFac.FLR_BESTELLUNG_C_BEZPROJEKTBEZEICHNUNG)); } } // Sortierung nach Bestellungart, eventuell innerhalb der // Kostenstelle // else if (krit.iSortierung == // ReportJournalKriterienDto.KRIT_SORT_NACH_ART) { // crit.addOrder(Order // .asc(BestellungFac.FLR_BESTELLUNG_BESTELLUNGART_C_NR)); // } // Sortierung nach Liefertermin (optional) if (bSortierungNachLiefertermin != null && bSortierungNachLiefertermin.booleanValue()) { crit.addOrder(Order.asc(BestellungFac.FLR_BESTELLUNG_T_LIEFERTERMIN)); } // es wird in jedem Fall nach der Belegnummer sortiert crit.addOrder(Order.asc("c_nr")); List<?> list = crit.list(); Iterator<?> it = list.iterator(); ArrayList<FLRBestellung> bestellung = new ArrayList<FLRBestellung>(); while (it.hasNext()) { FLRBestellung flrbestellung = (FLRBestellung) it.next(); session = factory.openSession(); Criteria crit1 = session.createCriteria(FLRBestellposition.class); Criteria crit1Bestellung = crit1.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRBESTELLUNG); // nur Positionen der aktuellen Bestellung. crit1Bestellung.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_I_ID, flrbestellung.getI_id())); // keine erledigten Positionen. crit1.add(Restrictions.ne(BestellpositionFac.FLR_BESTELLPOSITION_BESTELLPOSITIONSTATUS_C_NR, BestellpositionFac.BESTELLPOSITIONSTATUS_ERLEDIGT)); // keine geliferten Positionen. crit1.add(Restrictions.ne(BestellpositionFac.FLR_BESTELLPOSITION_BESTELLPOSITIONSTATUS_C_NR, BestellpositionFac.BESTELLPOSITIONSTATUS_GELIEFERT)); // Der Liefertermin muss vor dem Stichtag liegen crit1.add(Restrictions.or(Restrictions.and( // Wenn der AB-Termin // eingegeben ist, zieht // der Restrictions.isNotNull(BestellpositionFac.FLR_BESTELLPOSITION_T_AUFTRAGSBESTAETIGUNGSTERMIN), Restrictions .le(BestellpositionFac.FLR_BESTELLPOSITION_T_AUFTRAGSBESTAETIGUNGSTERMIN, dStichtag)), Restrictions.and( // sonst der // uebersteuerte // Liefertermin Restrictions .isNull(BestellpositionFac.FLR_BESTELLPOSITION_T_AUFTRAGSBESTAETIGUNGSTERMIN), Restrictions.le(BestellpositionFac.FLR_BESTELLPOSITION_T_UEBERSTEUERTERLIEFERTERMIN, dStichtag)))); if (artikelklasseIId != null || artikelgruppeIId != null || artikelCNrVon != null || artikelCNrBis != null) { // Wenn nach Artikelklassen/Gruppen gefiltert wird, dann // kommen nur Ident-Positionen crit1.add(Restrictions.eq(BestellpositionFac.FLR_BESTELLPOSITION_BESTELLPOSITIONART_C_NR, BestellpositionFac.BESTELLPOSITIONART_IDENT)); Criteria critArtikel = crit1.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRARTIKEL); if (artikelklasseIId != null) { critArtikel.createCriteria(ArtikelFac.FLR_ARTIKEL_FLRARTIKELKLASSE) .add(Restrictions.eq("i_id", artikelklasseIId)); } if (artikelgruppeIId != null) { critArtikel.createCriteria(ArtikelFac.FLR_ARTIKEL_FLRARTIKELGRUPPE) .add(Restrictions.eq("i_id", artikelgruppeIId)); } if (artikelCNrVon != null) { critArtikel.add(Restrictions.ge(ArtikelFac.FLR_ARTIKEL_C_NR, artikelCNrVon)); } if (artikelCNrBis != null) { critArtikel.add(Restrictions.le(ArtikelFac.FLR_ARTIKEL_C_NR, artikelCNrBis)); } } List<?> resultList = crit1.list(); // Wenn die Bestellung anzuzeigende Positionen enthaelt, dann in // die Liste aufnehmen. if (resultList.size() > 0) { bestellung.add(flrbestellung); iAnzahlZeilen++; } for (Iterator<?> iter = resultList.iterator(); iter.hasNext();) { FLRBestellposition item = (FLRBestellposition) iter.next(); if (item.getN_menge() != null) { bestellung.add(null); iAnzahlZeilen++; } } } data = new Object[iAnzahlZeilen][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ANZAHL_SPALTEN]; int i = 0; while (i < iAnzahlZeilen) { FLRBestellung flrbestellung = null; if (bestellung.get(i) != null) { flrbestellung = (FLRBestellung) bestellung.get(i); data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGCNR] = flrbestellung.getC_nr(); data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGARTCNR] = flrbestellung .getBestellungart_c_nr(); if (bProjektklammer && flrbestellung.getProjekt_i_id() != null) { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_PROJEKT] = flrbestellung.getFlrprojekt() .getC_nr(); } else { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_PROJEKT] = flrbestellung .getC_bezprojektbezeichnung(); } data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGLIEFERANT] = flrbestellung .getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1(); // PJ 14752 String sortierstring = ""; if (krit.bSortiereNachKostenstelle == true) { sortierstring = Helper.fitString2Length(flrbestellung.getFlrkostenstelle().getC_nr(), 80, ' '); } if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_IDENT) { sortierstring += Helper.fitString2Length( flrbestellung.getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1(), 80, ' ') + Helper.fitString2Length("", 80, ' '); } if (bSortierungNachLiefertermin == true) { sortierstring += Helper.fitString2Length(flrbestellung.getT_liefertermin() + "", 15, ' '); } data[i][REPORT_BESTELLUNG_OFFENE_SORTIERKRITERIUM] = sortierstring; data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGDATUM] = Helper .formatDatum(flrbestellung.getT_belegdatum(), theClientDto.getLocUi()); if (flrbestellung.getFlrkostenstelle() != null) { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_KOSTENSTELLECNR] = flrbestellung .getFlrkostenstelle().getC_nr(); } i++; } session = factory.openSession(); Criteria crit1 = session.createCriteria(FLRBestellpositionReport.class); // Keine erledigten Positionen. crit1.add(Restrictions.ne(BestellpositionFac.FLR_BESTELLPOSITION_BESTELLPOSITIONSTATUS_C_NR, BestellpositionFac.BESTELLPOSITIONSTATUS_ERLEDIGT)); crit1.add(Restrictions.ne(BestellpositionFac.FLR_BESTELLPOSITION_BESTELLPOSITIONSTATUS_C_NR, BestellpositionFac.BESTELLPOSITIONSTATUS_GELIEFERT)); // Der Liefertermin muss vor dem Stichtag liegen crit1.add(Restrictions.or(Restrictions.and( // Wenn der AB-Termin // eingegeben ist, zieht // der Restrictions.isNotNull(BestellpositionFac.FLR_BESTELLPOSITION_T_AUFTRAGSBESTAETIGUNGSTERMIN), Restrictions .le(BestellpositionFac.FLR_BESTELLPOSITION_T_AUFTRAGSBESTAETIGUNGSTERMIN, dStichtag)), Restrictions.and( // sonst der // uebersteuerte // Liefertermin Restrictions .isNull(BestellpositionFac.FLR_BESTELLPOSITION_T_AUFTRAGSBESTAETIGUNGSTERMIN), Restrictions.le(BestellpositionFac.FLR_BESTELLPOSITION_T_UEBERSTEUERTERLIEFERTERMIN, dStichtag)))); // Nur Positionen der aktuellen Bestellung. Criteria crit1Bestellung = crit1.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRBESTELLUNG); crit1Bestellung.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_I_ID, flrbestellung.getI_id())); if (artikelklasseIId != null || artikelgruppeIId != null || artikelCNrVon != null || artikelCNrBis != null) { // Wenn nach Artikelklassen/Gruppen gefiltert wird, dann // kommen nur Ident-Positionen crit1.add(Restrictions.eq(BestellpositionFac.FLR_BESTELLPOSITION_BESTELLPOSITIONART_C_NR, BestellpositionFac.BESTELLPOSITIONART_IDENT)); Criteria critArtikel = crit1.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRARTIKEL); if (artikelklasseIId != null) { critArtikel.createCriteria(ArtikelFac.FLR_ARTIKEL_FLRARTIKELKLASSE) .add(Restrictions.eq("i_id", artikelklasseIId)); } if (artikelgruppeIId != null) { critArtikel.createCriteria(ArtikelFac.FLR_ARTIKEL_FLRARTIKELGRUPPE) .add(Restrictions.eq("i_id", artikelgruppeIId)); } if (artikelCNrVon != null) { critArtikel.add(Restrictions.ge(ArtikelFac.FLR_ARTIKEL_C_NR, artikelCNrVon)); } if (artikelCNrBis != null) { critArtikel.add(Restrictions.le(ArtikelFac.FLR_ARTIKEL_C_NR, artikelCNrBis)); } } List<?> resultList = crit1.list(); for (Iterator<?> iter = resultList.iterator(); iter.hasNext();) { FLRBestellpositionReport item = (FLRBestellpositionReport) iter.next(); if (item.getN_menge() != null) { String artikelCNr = null; /** * @todo das ist nicht sehr sauber ... */ if (item.getFlrartikel().getC_nr().startsWith("~")) { artikelCNr = BestellungReportFac.REPORT_VORKALKULATION_ZEICHEN_FUER_HANDEINGABE; } else { artikelCNr = item.getFlrartikel().getC_nr(); } Criteria critWep = session.createCriteria(FLRWareneingangspositionen.class); critWep.createCriteria("flrbestellposition").add(Restrictions.eq("i_id", item.getI_id())); List<?> wepResultList = critWep.list(); Iterator<?> wepResultListIterator = wepResultList.iterator(); data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGCNR] = flrbestellung.getC_nr(); data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGARTCNR] = flrbestellung .getBestellungart_c_nr(); data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_PROJEKT] = flrbestellung .getC_bezprojektbezeichnung(); data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGLIEFERANT] = flrbestellung .getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1(); data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELCNR] = artikelCNr; // SP903 if (item.getPosition_i_id_artikelset() != null) { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_SETARTIKEL_TYP] = ArtikelFac.SETARTIKEL_TYP_POSITION; } else { Session sessionSet = FLRSessionFactory.getFactory().openSession(); sessionSet = factory.openSession(); Criteria critSet = sessionSet.createCriteria(FLRBestellpositionReport.class); critSet.add(Restrictions.eq("position_i_id_artikelset", item.getI_id())); int iZeilen = critSet.list().size(); if (iZeilen > 0) { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_SETARTIKEL_TYP] = ArtikelFac.SETARTIKEL_TYP_KOPF; } sessionSet.close(); } // PJ 14752 String sortierstring = ""; if (krit.bSortiereNachKostenstelle == true) { sortierstring = Helper.fitString2Length(flrbestellung.getFlrkostenstelle().getC_nr(), 80, ' '); } if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_IDENT) { sortierstring += Helper .fitString2Length(flrbestellung.getFlrlieferant().getFlrpartner() .getC_name1nachnamefirmazeile1(), 80, ' ') + Helper.fitString2Length(artikelCNr, 80, ' '); } if (bSortierungNachLiefertermin == true) { sortierstring += Helper.fitString2Length(flrbestellung.getT_liefertermin() + "", 15, ' '); } data[i][REPORT_BESTELLUNG_OFFENE_SORTIERKRITERIUM] = sortierstring; data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELMENGE] = item.getN_menge(); BigDecimal bdOffeneLiefermenge = new BigDecimal(0); if (BestellungFac.BESTELLUNGART_RAHMENBESTELLUNG_C_NR .equals(flrbestellung.getBestellungart_c_nr())) { try { BestellpositionDto[] abrufPos = getBestellpositionFac() .bestellpositionFindByBestellpositionIIdRahmenposition(item.getI_id(), theClientDto); for (int y = 0; y < abrufPos.length; y++) { bdOffeneLiefermenge = bdOffeneLiefermenge .add(getBestellpositionFac().berechneOffeneMenge(abrufPos[y])); } } catch (RemoteException e) { } data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_OFFENELIEFERUNGEN] = bdOffeneLiefermenge; } else { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_OFFENELIEFERUNGEN] = null; } StringBuffer sbArtikelInfo = new StringBuffer(); if (item.getC_bezeichnung() != null) { sbArtikelInfo.append(item.getC_bezeichnung()); } else { ArtikelDto artikelDto = getArtikelFac() .artikelFindByPrimaryKey(item.getFlrartikel().getI_id(), theClientDto); if (artikelDto.getArtikelsprDto() != null) { if (artikelDto.getArtikelsprDto().getCBez() != null) { sbArtikelInfo.append(artikelDto.getArtikelsprDto().getCBez()); } } } data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELBEZ] = sbArtikelInfo.toString(); // der Preis wird in Mandantenwaehrung angezeigt, es // gilt der hinterlegte Wechselkurs BigDecimal bdPreisinmandantenwaehrung = item.getN_nettogesamtpreis(); BigDecimal wechselkursmandantwaehrungzuauftragswaehrung = null; if (!flrbestellung.getWaehrung_c_nr_bestellwaehrung() .equals(theClientDto.getSMandantenwaehrung())) { wechselkursmandantwaehrungzuauftragswaehrung = new BigDecimal( flrbestellung.getF_wechselkursmandantwaehrungbestellungswaehrung().doubleValue()); bdPreisinmandantenwaehrung = getBetragMalWechselkurs(bdPreisinmandantenwaehrung, Helper.getKehrwert(wechselkursmandantwaehrungzuauftragswaehrung)); } if (darfEinkaufspreisSehen) { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELPREIS] = bdPreisinmandantenwaehrung; } else { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELPREIS] = null; } if (item.getEinheit_c_nr() != null) { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELEINHEIT] = item .getEinheit_c_nr().trim(); } if (item.getT_auftragsbestaetigungstermin() != null) { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ABTERMIN] = Helper .formatDatum(item.getT_auftragsbestaetigungstermin(), theClientDto.getLocUi()); } data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ABNUMMER] = item.getC_abnummer(); data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ABKOMMENTAR] = item.getC_abkommentar(); if (item.getT_uebersteuerterliefertermin() != null) { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGLIEFERTERMIN] = Helper .formatDatum(item.getT_uebersteuerterliefertermin(), theClientDto.getLocUi()); } else { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGLIEFERTERMIN] = Helper .formatDatum(item.getFlrbestellung().getT_liefertermin(), theClientDto.getLocUi()); } BigDecimal noffeneMenge = item.getN_menge(); BigDecimal ngeliferteMenge = new BigDecimal(0); if (flrbestellung.getBestellungart_c_nr() .equals(BestellungFac.BESTELLUNGART_RAHMENBESTELLUNG_C_NR)) { noffeneMenge = item.getN_offenemenge(); while (wepResultListIterator.hasNext()) { FLRWareneingangspositionen waren = (FLRWareneingangspositionen) wepResultListIterator .next(); ngeliferteMenge = ngeliferteMenge.add(waren.getN_geliefertemenge()); } } else { while (wepResultListIterator.hasNext()) { FLRWareneingangspositionen waren = (FLRWareneingangspositionen) wepResultListIterator .next(); noffeneMenge = noffeneMenge.subtract(waren.getN_geliefertemenge()); } } data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELGELIFERTEMENGE] = ngeliferteMenge; data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELOFFENEMENGE] = noffeneMenge; if (darfEinkaufspreisSehen) { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELOFFENEWERT] = noffeneMenge .multiply(bdPreisinmandantenwaehrung); } else { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELOFFENEWERT] = null; } i++; } } } closeSession(session); // PJ 15254 if (bNurOffeneMengenAnfuehren) { ArrayList alTemp = new ArrayList(); for (int k = 0; k < data.length; k++) { BigDecimal bdOffeneMenge = (BigDecimal) data[k][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELOFFENEMENGE]; if (bdOffeneMenge != null && bdOffeneMenge.doubleValue() > 0) { alTemp.add(data[k]); } } Object[][] returnArray = new Object[alTemp .size()][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ANZAHL_SPALTEN]; data = (Object[][]) alTemp.toArray(returnArray); } // PJ 14752 Manuell nachsortieren (in Besprechung mit AD+WH besprochen) if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_IDENT) { for (int k = data.length - 1; k > 0; --k) { for (int j = 0; j < k; ++j) { Object[] o = data[j]; Object[] o1 = data[j + 1]; String s = (String) o[REPORT_BESTELLUNG_OFFENE_SORTIERKRITERIUM]; String s1 = (String) o1[REPORT_BESTELLUNG_OFFENE_SORTIERKRITERIUM]; if (s.toUpperCase().compareTo(s1.toUpperCase()) > 0) { data[j] = o1; data[j + 1] = o; } } } } parameter.put(LPReport.P_SORTIERUNG, buildSortierungBestellungOffene(krit, theClientDto)); parameter.put(LPReport.P_FILTER, buildFilterBestellungOffene(krit, artikelklasseIId, artikelgruppeIId, artikelCNrVon, artikelCNrBis, projektCBezeichnung, theClientDto)); parameter.put(LPReport.P_SORTIERENACHLIEFERANT, new Boolean(krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER)); parameter.put("P_SORTIERENACHBESTELLUNGART", new Boolean(krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_ART)); parameter.put("P_TITLE", getTextRespectUISpr("bes.print.offene", theClientDto.getMandant(), theClientDto.getLocUi())); parameter.put(P_MANDANTWAEHRUNG, theClientDto.getSMandantenwaehrung()); initJRDS(parameter, BestellungReportFac.REPORT_MODUL, BestellungReportFac.REPORT_BESTELLUNG_JOURNAL_OFFENE, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); return getReportPrint(); }
From source file:com.lp.server.bestellung.ejbfac.BestellungReportFacBean.java
License:Open Source License
/** * Diese Methode liefert eine Liste von allen offenen Bestellungen eines * Mandanten, die nach den eingegebenen Kriterien des Benutzers * zusammengestellt wird. <br>/*from ww w. j av a 2s . co m*/ * Achtung: Hibernate verwendet lazy initialization, d.h. der Zugriff auf * Collections muss innerhalb der Session erfolgen. * * @param reportJournalKriterienDtoI * die Kriterien des Benutzers * @param dStichtag * Date * @param bSortierungNachLiefertermin * Boolean * @param artikelklasseIId * Integer * @param artikelgruppeIId * Integer * @param theClientDto * der aktuelle Benutzer * @return ReportBestellungOffeneDto[] die Liste der Bestellungen * @throws EJBExceptionLP * Ausnahme */ private ReportBestellungOffeneDto[] getListeReportBestellungOffene( ReportJournalKriterienDto reportJournalKriterienDtoI, Date dStichtag, Boolean bSortierungNachLiefertermin, Integer artikelklasseIId, Integer artikelgruppeIId, TheClientDto theClientDto) throws EJBExceptionLP { ReportBestellungOffeneDto[] aResult = null; SessionFactory factory = FLRSessionFactory.getFactory(); Session session = null; // vom Stichtag die Uhrzeit abschneiden dStichtag = Helper.cutDate(dStichtag); try { session = factory.openSession(); // Hiberante Criteria fuer alle Tabellen ausgehend von meiner // Haupttabelle anlegen, // nach denen ich filtern und sortieren kann Criteria crit = session.createCriteria(FLRBestellung.class); // Einschraenkung auf den aktuellen Mandanten crit.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant())); // Einschraenkung nach Bestelllungart crit.add(Restrictions.ne(BestellungFac.FLR_BESTELLUNG_BESTELLUNGART_C_NR, BestellungFac.BESTELLUNGART_RAHMENBESTELLUNG_C_NR)); crit.add(Restrictions.ne(BestellungFac.FLR_BESTELLUNG_BESTELLUNGART_C_NR, BestellungFac.BESTELLUNGART_ABRUFBESTELLUNG_C_NR)); crit.add(Restrictions.ne(BestellungFac.FLR_BESTELLUNG_BESTELLUNGART_C_NR, BestellungFac.BESTELLUNGART_LEIHBESTELLUNG_C_NR)); // Einschraenkung nach Status Offen, Erledigt Collection<String> cStati = new LinkedList<String>(); cStati.add(BestellungFac.BESTELLSTATUS_OFFEN); cStati.add(BestellungFac.BESTELLSTATUS_BESTAETIGT); cStati.add(BestellungFac.BESTELLSTATUS_ERLEDIGT); crit.add(Restrictions.in(BestellungFac.FLR_BESTELLUNG_BESTELLUNGSTATUS_C_NR, cStati)); // Das Belegdatum muss vor dem Stichtag liegen crit.add(Restrictions.le(BestellungFac.FLR_BESTELLUNG_T_BELEGDATUM, dStichtag)); // Einschraenkung nach einer bestimmten Kostenstelle if (reportJournalKriterienDtoI.kostenstelleIId != null) { crit.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_KOSTENSTELLE_I_ID, reportJournalKriterienDtoI.kostenstelleIId)); } // Einschraenkung nach einem bestimmten Lieferanten if (reportJournalKriterienDtoI.lieferantIId != null) { crit.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_LIEFERANT_I_ID_BESTELLADRESSE, reportJournalKriterienDtoI.lieferantIId)); } // Sortierung nach Kostenstelle ist immer die erste Sortierung if (reportJournalKriterienDtoI.bSortiereNachKostenstelle) { crit.createCriteria(BestellungFac.FLR_BESTELLUNG_FLRKOSTENSTELLE).addOrder(Order.asc("c_nr")); } // Sortierung nach Kunde, eventuell innerhalb der Kostenstelle if (reportJournalKriterienDtoI.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) { crit.createCriteria(BestellungFac.FLR_BESTELLUNG_FLRLIEFERANT) .createCriteria(LieferantFac.FLR_PARTNER) .addOrder(Order.asc(PartnerFac.FLR_PARTNER_NAME1NACHNAMEFIRMAZEILE1)); } // Sortierung nach Projekt, eventuell innerhalb der Kostenstelle else if (reportJournalKriterienDtoI.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PROJEKT) { crit.addOrder(Order.asc(BestellungFac.FLR_BESTELLUNG_C_BEZPROJEKTBEZEICHNUNG)); } // Sortierung nach Liefertermin (optional) if (bSortierungNachLiefertermin != null && bSortierungNachLiefertermin.booleanValue()) { crit.addOrder(Order.asc(BestellungFac.FLR_BESTELLUNG_T_LIEFERTERMIN)); } // es wird in jedem Fall nach der Belegnummer sortiert crit.addOrder(Order.asc("c_nr")); List<?> list = crit.list(); aResult = new ReportBestellungOffeneDto[list.size()]; int iIndex = 0; Iterator<?> it = list.iterator(); ReportBestellungOffeneDto reportDto = null; while (it.hasNext()) { FLRBestellung flrbestellung = (FLRBestellung) it.next(); Session session1 = null; session1 = factory.openSession(); Criteria crit1 = session1.createCriteria(FLRBestellposition.class); // keine erledigten Positionen. crit1.add(Restrictions.ne(BestellpositionFac.FLR_BESTELLPOSITION_BESTELLPOSITIONSTATUS_C_NR, BestellpositionFac.BESTELLPOSITIONSTATUS_ERLEDIGT)); // und nur die, die sich auf den aktuellen Bestellung beziehen. Criteria crit1Bestellung = crit1 .createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRBESTELLUNG); crit1Bestellung.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_I_ID, flrbestellung.getI_id())); int anzahlPositionen = 0; List<?> resultList = crit1.list(); for (Iterator<?> iter = resultList.iterator(); iter.hasNext();) { FLRBestellposition item = (FLRBestellposition) iter.next(); if (item.getBestellpositionart_c_nr().equals(BestellpositionFac.BESTELLPOSITIONART_IDENT) || item.getBestellpositionart_c_nr() .equals(BestellpositionFac.BESTELLPOSITIONART_HANDEINGABE)) { anzahlPositionen++; } } reportDto = new ReportBestellungOffeneDto(); reportDto.setIIdBestellung(flrbestellung.getI_id()); reportDto.setCNrBestellung(flrbestellung.getC_nr()); reportDto.setLieferantCName1( flrbestellung.getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1()); reportDto.setIAnzahlPositionen(anzahlPositionen); aResult[iIndex] = reportDto; iIndex++; } } finally { closeSession(session); } return aResult; }
From source file:com.lp.server.bestellung.ejbfac.BestellungReportFacBean.java
License:Open Source License
public JasperPrintLP printBestellungWareneingangsJournal(ReportJournalKriterienDto krit, Integer artikelklasseIId, Integer artikelgruppeIId, String artikelCNrVon, String artikelCNrBis, String projektCBezeichnung, Integer auftragIId, boolean bMitWarenverbrauch, TheClientDto theClientDto) throws EJBExceptionLP, RemoteException { Session session = null;// w ww . j a v a2s . co m useCase = UC_BESTELLUNG_WARENEINGANG; SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); boolean darfEinkaufspreisSehen = getTheJudgeFac().hatRecht(RechteFac.RECHT_LP_DARF_PREISE_SEHEN_EINKAUF, theClientDto); Criteria c = session.createCriteria(FLRWareneingangspositionen.class); Criteria cWe = c.createCriteria(WareneingangFac.FLR_WEPOS_FLRWARENEINGANG); Criteria cBesPos = c.createCriteria(WareneingangFac.FLR_WEPOS_FLRBESTELLPOSITION); Criteria cArt = cBesPos.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRARTIKEL); Criteria cBestellung = cWe.createCriteria(WareneingangFac.FLR_WE_FLRBESTELLUNG); cBestellung.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_MANDANT_C_NR, theClientDto.getMandant())); // Datum von if (krit.dVon != null) { cWe.add(Restrictions.ge(WareneingangFac.FLRSPALTE_T_WARENEINGANGSDATUM, Helper.cutDate(krit.dVon))); } // Datum bis if (krit.dBis != null) { java.sql.Date dBisTemp = Helper.cutDate(new java.sql.Date(krit.dBis.getTime() + 24 * 3600000)); cWe.add(Restrictions.lt(WareneingangFac.FLRSPALTE_T_WARENEINGANGSDATUM, dBisTemp)); } // Filter nach Projektbezeichnung if (projektCBezeichnung != null) { cBestellung.add(Restrictions.ilike(BestellungFac.FLR_BESTELLUNG_C_BEZPROJEKTBEZEICHNUNG, "%" + projektCBezeichnung + "%")); } // Filter nach Auftrag if (auftragIId != null) { cBestellung.add(Restrictions.like(BestellungFac.FLR_BESTELLUNG_AUFTRAG_I_ID, auftragIId)); } LpBelegnummerFormat f = getBelegnummerGeneratorObj().getBelegnummernFormat(theClientDto.getMandant()); Integer iGeschaeftsjahr = getParameterFac().getGeschaeftsjahr(theClientDto.getMandant()); String sMandantKuerzel = getParameterFac().getMandantparameter(theClientDto.getMandant(), ParameterFac.KATEGORIE_ALLGEMEIN, ParameterFac.PARAMETER_BELEGNUMMER_MANDANTKENNUNG).getCWert(); // reportjournal: 06 belegnummer von // reportjournalbelegnummer: 1 (von) hier funktionierts fast gleich // wie bei den Direktfiltern if (krit.sBelegnummerVon != null) { String sVon = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr, sMandantKuerzel, krit.sBelegnummerVon); cBestellung.add(Restrictions.ge(BestellungFac.FLR_BESTELLUNG_C_NR, sVon)); } // reportjournal: 07 belegnummer bis // reportjournalbelegnummer: 2 (bis) detto if (krit.sBelegnummerBis != null) { String sBis = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr, sMandantKuerzel, krit.sBelegnummerBis); cBestellung.add(Restrictions.le(BestellungFac.FLR_BESTELLUNG_C_NR, sBis)); } // Einschraenkung nach einer bestimmten Kostenstelle if (krit.kostenstelleIId != null) { cBestellung.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_KOSTENSTELLE_I_ID, krit.kostenstelleIId)); } // Einschraenkung nach einem bestimmten Lieferanten if (krit.lieferantIId != null) { cBestellung.add( Restrictions.eq(BestellungFac.FLR_BESTELLUNG_LIEFERANT_I_ID_BESTELLADRESSE, krit.lieferantIId)); } if (artikelklasseIId != null) { cArt.createCriteria(ArtikelFac.FLR_ARTIKEL_FLRARTIKELKLASSE) .add(Restrictions.eq("i_id", artikelklasseIId)); } if (artikelgruppeIId != null) { cArt.createCriteria(ArtikelFac.FLR_ARTIKEL_FLRARTIKELGRUPPE) .add(Restrictions.eq("i_id", artikelgruppeIId)); } if (artikelCNrVon != null) { cArt.add(Restrictions.ge(ArtikelFac.FLR_ARTIKEL_C_NR, artikelCNrVon)); } if (artikelCNrBis != null) { cArt.add(Restrictions.le(ArtikelFac.FLR_ARTIKEL_C_NR, artikelCNrBis)); } // Sortierung nach Kostenstelle ist immer die erste Sortierung if (krit.bSortiereNachKostenstelle) { cBestellung.createCriteria(BestellungFac.FLR_BESTELLUNG_FLRKOSTENSTELLE).addOrder(Order.asc("c_nr")); } Map<String, Object> map = new TreeMap<String, Object>(); if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_DATUM) { cWe.addOrder(Order.asc(WareneingangFac.FLRSPALTE_T_WARENEINGANGSDATUM)); map.put(LPReport.P_SORTIERUNG, getTextRespectUISpr("bes.wedatum", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_IDENT) { cArt.addOrder(Order.asc(ArtikelFac.FLR_ARTIKEL_C_NR)); map.put(LPReport.P_SORTIERUNG, getTextRespectUISpr("lp.artikel", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_BELEGNUMMER) { cBestellung.addOrder(Order.asc(BestellungFac.FLR_BESTELLUNG_C_NR)); map.put(LPReport.P_SORTIERUNG, getTextRespectUISpr("bes.belegnummer", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PROJEKT) { cBestellung.addOrder(Order.asc(BestellungFac.FLR_BESTELLUNG_C_BEZPROJEKTBEZEICHNUNG)); map.put(LPReport.P_SORTIERUNG, getTextRespectUISpr("lp.projekt", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) { cBestellung.createCriteria(BestellungFac.FLR_BESTELLUNG_FLRLIEFERANT) .createCriteria(LieferantFac.FLR_PARTNER) .addOrder(Order.asc(PartnerFac.FLR_PARTNER_NAME1NACHNAMEFIRMAZEILE1)); map.put(LPReport.P_SORTIERUNG, getTextRespectUISpr("lp.partner", theClientDto.getMandant(), theClientDto.getLocUi())); } else { c.addOrder(Order.asc("i_id")); map.put(LPReport.P_SORTIERUNG, "i_id"); } List<?> list = c.list(); data = new Object[list.size()][REPORT_BSWARENEINGANGSJOURNAL_ANZAHL_SPALTEN]; int i = 0; for (Iterator<?> iter = list.iterator(); iter.hasNext();) { FLRWareneingangspositionen w = (FLRWareneingangspositionen) iter.next(); if (w.getFlrwareneingang().getT_wareneingansdatum() != null) { data[i][REPORT_BSWARENEINGANGSJOURNAL_DATUM] = w.getFlrwareneingang().getT_wareneingansdatum(); } if (w.getFlrwareneingang().getFlrbestellung().getC_nr() != null) { data[i][REPORT_BSWARENEINGANGSJOURNAL_BESTELLNUMMER] = w.getFlrwareneingang().getFlrbestellung() .getC_nr(); } else { data[i][REPORT_BSWARENEINGANGSJOURNAL_BESTELLNUMMER] = ""; } if (w.getFlrbestellposition().getFlrartikel().getC_nr() != null) { data[i][REPORT_BSWARENEINGANGSJOURNAL_IDENT] = w.getFlrbestellposition().getFlrartikel().getC_nr(); } else { data[i][REPORT_BSWARENEINGANGSJOURNAL_IDENT] = ""; } if (w.getFlrbestellposition().getC_bezeichnung() != null) { data[i][REPORT_BSWARENEINGANGSJOURNAL_BEZEICHNUNG] = w.getFlrbestellposition().getC_bezeichnung(); } else { ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKeySmall( w.getFlrbestellposition().getFlrartikel().getI_id(), theClientDto); data[i][REPORT_BSWARENEINGANGSJOURNAL_BEZEICHNUNG] = artikelDto.formatBezeichnung(); } if (bMitWarenverbrauch) { data[i][REPORT_BSWARENEINGANGSJOURNAL_WA_REFERENZ] = getLagerFac() .getWarenausgangsreferenzSubreport(LocaleFac.BELEGART_BESTELLUNG, w.getI_id(), null, theClientDto); } // SP903 if (w.getFlrbestellposition().getPosition_i_id_artikelset() != null) { data[i][REPORT_BSWARENEINGANGSJOURNAL_SETARTIKEL_TYP] = ArtikelFac.SETARTIKEL_TYP_POSITION; } else { Session sessionSet = FLRSessionFactory.getFactory().openSession(); sessionSet = factory.openSession(); Criteria critSet = sessionSet.createCriteria(FLRBestellpositionReport.class); critSet.add(Restrictions.eq("position_i_id_artikelset", w.getFlrbestellposition().getI_id())); int iZeilen = critSet.list().size(); if (iZeilen > 0) { data[i][REPORT_BSWARENEINGANGSJOURNAL_SETARTIKEL_TYP] = ArtikelFac.SETARTIKEL_TYP_KOPF; } sessionSet.close(); } data[i][REPORT_BSWARENEINGANGSJOURNAL_PROJEKT] = w.getFlrbestellposition().getFlrbestellung() .getC_bezprojektbezeichnung(); data[i][REPORT_BSWARENEINGANGSJOURNAL_LIEFERANT] = w.getFlrbestellposition().getFlrbestellung() .getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1(); if (w.getN_geliefertemenge() != null) { data[i][REPORT_BSWARENEINGANGSJOURNAL_MENGE] = w.getN_geliefertemenge(); } else { data[i][REPORT_BSWARENEINGANGSJOURNAL_MENGE] = new BigDecimal(0); } if (w.getN_gelieferterpreis() != null) { if (darfEinkaufspreisSehen) { BigDecimal kurs = new BigDecimal(w.getFlrwareneingang().getFlrbestellung() .getF_wechselkursmandantwaehrungbestellungswaehrung()); if (kurs.doubleValue() != 0) { data[i][REPORT_BSWARENEINGANGSJOURNAL_GELIEFERTERPREIS] = w.getN_gelieferterpreis() .divide(kurs, 4, BigDecimal.ROUND_HALF_EVEN); } else { data[i][REPORT_BSWARENEINGANGSJOURNAL_GELIEFERTERPREIS] = new BigDecimal(0); } } else { data[i][REPORT_BSWARENEINGANGSJOURNAL_GELIEFERTERPREIS] = null; } } else { if (darfEinkaufspreisSehen) { data[i][REPORT_BSWARENEINGANGSJOURNAL_GELIEFERTERPREIS] = new BigDecimal(0); } else { data[i][REPORT_BSWARENEINGANGSJOURNAL_GELIEFERTERPREIS] = null; } } if (w.getN_einstandspreis() != null) { if (darfEinkaufspreisSehen) { BigDecimal kurs = new BigDecimal(w.getFlrwareneingang().getFlrbestellung() .getF_wechselkursmandantwaehrungbestellungswaehrung()); if (kurs.doubleValue() != 0) { data[i][REPORT_BSWARENEINGANGSJOURNAL_EINSTANDSPREIS] = w.getN_einstandspreis().divide(kurs, 4, BigDecimal.ROUND_HALF_EVEN); } else { data[i][REPORT_BSWARENEINGANGSJOURNAL_EINSTANDSPREIS] = new BigDecimal(0); } } else { data[i][REPORT_BSWARENEINGANGSJOURNAL_EINSTANDSPREIS] = null; } } else { if (darfEinkaufspreisSehen) { data[i][REPORT_BSWARENEINGANGSJOURNAL_EINSTANDSPREIS] = new BigDecimal(0); } else { data[i][REPORT_BSWARENEINGANGSJOURNAL_EINSTANDSPREIS] = null; } } data[i][REPORT_BSWARENEINGANGSJOURNAL_LIEFERSCHEIN] = w.getFlrwareneingang().getC_lieferscheinnr(); data[i][REPORT_BSWARENEINGANGSJOURNAL_LIEFERSCHEINDATUM] = w.getFlrwareneingang() .getT_lieferscheindatum(); if (w.getFlrwareneingang().getFlreingangsrechnung() != null) { data[i][REPORT_BSWARENEINGANGSJOURNAL_EINGANGSRECHNUNG] = w.getFlrwareneingang() .getFlreingangsrechnung().getC_nr(); } if (w.getFlrwareneingang().getFlrbestellung().getFlrkostenstelle() != null) { data[i][REPORT_BSWARENEINGANGSJOURNAL_KOSTENSTELLE] = w.getFlrwareneingang().getFlrbestellung() .getFlrkostenstelle().getC_nr(); } data[i][REPORT_BSWARENEINGANGSJOURNAL_ZUBUCHUNGSLAGER] = w.getFlrwareneingang().getFlrlager().getC_nr(); data[i][REPORT_BSWARENEINGANGSJOURNAL_RABATTSATZ] = w.getFlrwareneingang().getF_rabattsatz(); if (w.getFlrwareneingang().getFlrbestellung().getAuftrag_i_id() != null) { data[i][REPORT_BSWARENEINGANGSJOURNAL_AUFTRAG] = w.getFlrwareneingang().getFlrbestellung() .getFlrauftrag().getC_nr(); } if (w.getFlrbestellposition().getFlrartikel().getFlrartikelklasse() != null) { w.getFlrbestellposition().getFlrartikel().getFlrartikelklasse().getC_nr(); data[i][REPORT_BSWARENEINGANGSJOURNAL_ARTIKELKLASSE] = w.getFlrbestellposition().getFlrartikel() .getFlrartikelklasse().getC_nr(); } if (w.getFlrbestellposition().getFlrartikel().getFlrartikelgruppe() != null) { w.getFlrbestellposition().getFlrartikel().getFlrartikelgruppe().getC_nr(); data[i][REPORT_BSWARENEINGANGSJOURNAL_ARTIKELGRUPPE] = w.getFlrbestellposition().getFlrartikel() .getFlrartikelgruppe().getC_nr(); } data[i][REPORT_BSWARENEINGANGSJOURNAL_TRANSPORTKOSTEN] = w.getFlrwareneingang().getN_transportkosten(); data[i][REPORT_BSWARENEINGANGSJOURNAL_BANKSPESEN] = w.getFlrwareneingang().getN_bankspesen(); data[i][REPORT_BSWARENEINGANGSJOURNAL_ZOLLKOSTEN] = w.getFlrwareneingang().getN_zollkosten(); data[i][REPORT_BSWARENEINGANGSJOURNAL_SONSTIGEKOSTEN] = w.getFlrwareneingang().getN_sonstigespesen(); data[i][REPORT_BSWARENEINGANGSJOURNAL_GK_FAKTOR] = w.getFlrwareneingang().getF_gemeinkostenfaktor(); i++; } if (krit.dBis != null) { map.put("P_BIS", new Timestamp(krit.dBis.getTime())); } if (krit.dVon != null) { map.put("P_VON", new Timestamp(krit.dVon.getTime())); } map.put("P_MIT_WARENVERBRAUCH", new Boolean(bMitWarenverbrauch)); map.put(LPReport.P_REPORT_INFORMATION, ""); initJRDS(map, BestellungReportFac.REPORT_MODUL, BestellungReportFac.REPORT_BESTELLUNG_JOURNAL_WARENEINGANG, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); session.close(); return getReportPrint(); }