List of usage examples for org.hibernate.criterion Restrictions isNotNull
public static Criterion isNotNull(String propertyName)
From source file:com.liferay.portal.workflow.jbpm.dao.CustomSession.java
License:Open Source License
protected List<TaskInstance> getTasksInstancesBySubmittingUser(long companyId, long userId, Boolean completed, int start, int end, OrderByComparator orderByComparator) { List<TaskInstance> taskInstances = new ArrayList<TaskInstance>(); try {//from w w w . j ava2s . co m Criteria criteria = _session.createCriteria(TaskInstance.class); criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); if (completed != null) { if (completed.booleanValue()) { criteria.add(Restrictions.isNotNull("end")); } else { criteria.add(Restrictions.isNull("end")); } } addOrder(criteria, orderByComparator); for (TaskInstance taskInstance : (List<TaskInstance>) criteria.list()) { ProcessInstance processInstance = taskInstance.getProcessInstance(); ContextInstance contextInstance = processInstance.getContextInstance(); long taskInstanceUserId = GetterUtil.getLong((String) contextInstance.getVariable("userId")); if (userId == taskInstanceUserId) { taskInstances.add(taskInstance); } } } catch (Exception e) { throw new JbpmException(e); } if ((end != QueryUtil.ALL_POS) && (taskInstances.size() > end)) { taskInstances = ListUtil.subList(taskInstances, start, end); } return taskInstances; }
From source file:com.lp.server.anfrage.ejbfac.AnfrageFacBean.java
License:Open Source License
/** * Die Liste der Bestellvorschlaege holen, die den Kriterien des Benutzers * entsprechen./*w w w . ja va 2s . c o m*/ * * @param kritDtoI * die Kriterien des Benutzers * @param theClientDto * der aktuelle Benutzer * @return BestellvorschlagDto[] die Bestellvorschlaege * @throws EJBExceptionLP * Ausnahme */ private BestellvorschlagDto[] getListeBestellvorschlaege(BestellvorschlagUeberleitungKriterienDto kritDtoI, TheClientDto theClientDto) throws EJBExceptionLP { BestellvorschlagDto[] aBestellvorschlagDto = null; Session session = null; try { SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); // Criteria duerfen keine Texts oder Blobs enthalten! // Criteria anlegen fuer flrbestellvorschlag Criteria crit = session.createCriteria(FLRBestellvorschlag.class); Criteria critArtikel = crit.createCriteria("flrartikel"); // UW->JE // Konstante // Einschraenken nach Mandant crit.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant())); // der Lieferant muss gesetzt sein crit.add(Restrictions.isNotNull("lieferant_i_id")); if (kritDtoI.getBBelegeinlieferant()) { // alle Bestellvorschlaege zu einem bestimmten Lieferanten crit.add(Restrictions.eq("lieferant_i_id", kritDtoI.getBelegeinlieferantLieferantIId())); // UW->JE // Kosntante critArtikel.addOrder(Property.forName("c_nr").asc()); } else if (kritDtoI.getBBelegeinlieferanteintermin()) { // alle Bestellvorschlaege zu einem bestimmten Lieferanten und // einem bestimmten Termin crit.add(Restrictions.eq("lieferant_i_id", kritDtoI.getBelegeinlieferanteinterminLieferantIId())); // UW->JE // Konstante crit.add(Restrictions.eq(BestellvorschlagFac.FLR_BESTELLVORSCHLAG_T_LIEFERTERMIN, kritDtoI.getTBelegeinlieferanteinterminTermin())); // UW // - // > // JE // Konstante critArtikel.addOrder(Property.forName("c_nr").asc()); } else if (kritDtoI.getBBelegprolieferant()) { // fuer jeden Lieferanten alle seine Bestellvorschlaege crit.addOrder(Property.forName("lieferant_i_id").asc()); // UW->JE // Konstante critArtikel.addOrder(Property.forName("c_nr").asc()); } else if (kritDtoI.getBBelegprolieferantprotermin()) { // fuer jeden Lieferanten alle seine Bestellvorschlaege zu einem // bestimmten Termin crit.addOrder(Property.forName("lieferant_i_id").asc()); // UW->JE // Konstante crit.addOrder(Property.forName(BestellvorschlagFac.FLR_BESTELLVORSCHLAG_T_LIEFERTERMIN).asc()); // UW->JE Konstante critArtikel.addOrder(Property.forName("c_nr").asc()); } List<?> list = crit.list(); aBestellvorschlagDto = new BestellvorschlagDto[list.size()]; int iIndex = 0; Iterator<?> it = list.iterator(); BestellvorschlagDto bestellvorschlagDto = null; while (it.hasNext()) { FLRBestellvorschlag flrbestellvorschlag = (FLRBestellvorschlag) it.next(); bestellvorschlagDto = new BestellvorschlagDto(); bestellvorschlagDto.setIId(flrbestellvorschlag.getI_id()); bestellvorschlagDto.setCMandantCNr(flrbestellvorschlag.getMandant_c_nr()); bestellvorschlagDto.setIArtikelId(flrbestellvorschlag.getArtikel_i_id()); bestellvorschlagDto.setNZubestellendeMenge(flrbestellvorschlag.getN_zubestellendemenge()); bestellvorschlagDto.setTLiefertermin((Timestamp) flrbestellvorschlag.getT_liefertermin()); bestellvorschlagDto.setCBelegartCNr(flrbestellvorschlag.getBelegart_c_nr()); bestellvorschlagDto.setIBelegartId(flrbestellvorschlag.getI_belegartid()); bestellvorschlagDto.setILieferantId(flrbestellvorschlag.getLieferant_i_id()); bestellvorschlagDto.setNNettoeinzelpreis(flrbestellvorschlag.getN_nettoeinzelpreis()); // bestellvorschlagDto.setDRabattsatz(flrbestellvorschlag. // getFRabattsatz()); UW->JE bestellvorschlagDto.setNRabattbetrag(flrbestellvorschlag.getN_rabattbetrag()); bestellvorschlagDto.setNNettogesamtpreis(flrbestellvorschlag.getN_nettogesamtpreis()); aBestellvorschlagDto[iIndex] = bestellvorschlagDto; iIndex++; } } 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 aBestellvorschlagDto; }
From source file:com.lp.server.angebot.bl.AngebotUebersichtHandler.java
License:Open Source License
/** * Der Wert aller Angebote in Mandantenwaehrung, die lt. Belegdatum in einem * bestimmten Zeitraum angelegt wurden und deren Status != (Angelegt || * Storniert) ist. Optional kann auch nach einem bestimmten Vertreter * ausgewertet werden.// w ww . ja va 2 s . com * * @param gcBerechnungsdatumVonI * Belegdatum von * @param gcBerechnungsdatumBisI * Belegdatum bis * @param iIdVertreterI * der Vertreter, null erlaubt * @param iIndexSpaltentyp * fuer welche Spalte soll die Berechnung erfolgen * @param cNrUserI * der aktuelle Benutzer * @return BigDecimal der Gesamtwert in Mandantenwaehrung * @throws EJBExceptionLP * Ausnahme */ private BigDecimal getWertInMandantenwaehrung(GregorianCalendar gcBerechnungsdatumVonI, GregorianCalendar gcBerechnungsdatumBisI, Integer iIdVertreterI, int iIndexSpaltentyp, TheClientDto theClientDto) throws EJBExceptionLP { BigDecimal nGesamtwertInMandantenwaehrung = new BigDecimal(0); Session session = null; try { // System.out.println("Spaltentyp: " + iIndexSpaltentyp); // System.out.println("Von: " + // Helper.formatDatum(gcBerechnungsdatumVonI.getTime(), // getTheClient(sCurrentUser).getLocUi())); // System.out.println("Bis: " + // Helper.formatDatum(gcBerechnungsdatumBisI.getTime(), // getTheClient(sCurrentUser).getLocUi())); SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); // Criteria duerfen keine Texts oder Blobs enthalten! // Criteria anlegen Criteria critAngebotposition = session.createCriteria(FLRAngebotpositionReport.class); Criteria critAngebot = critAngebotposition .createCriteria(AngebotpositionFac.FLR_ANGEBOTPOSITION_FLRANGEBOT); // zuerst alle jene Einschraenkungen, die fuer alle Spaltentypen der // Uebersicht gelten critAngebot.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant())); if (iIdVertreterI != null) { critAngebot.add(Restrictions.eq(AngebotFac.FLR_ANGEBOT_VERTRETER_I_ID, iIdVertreterI)); } // UW 22.03.06 alle nicht alternativen Positionen mit positiver // Menge critAngebotposition.add(Restrictions.isNotNull(AngebotpositionFac.FLR_ANGEBOTPOSITION_N_MENGE)); critAngebotposition .add(Restrictions.gt(AngebotpositionFac.FLR_ANGEBOTPOSITION_N_MENGE, new BigDecimal(0))); critAngebotposition.add( Restrictions.eq(AngebotpositionFac.FLR_ANGEBOTPOSITION_B_ALTERNATIVE, new Short((short) 0))); // die folgenden Einschraenkungen sind vom Spaltentyp der Ubersicht // abhaengig // IDX_GESAMT: Basis ist Belegdatum, alle Angebote mit Status != // (Angelegt || Storniert) // IDX_OFFEN: Basis ist Belegdatum, alle Angebote mit Status Offen // IDX_OFFENTERMINBEWERTET: Basis ist Realisierungstermin, alle // Angebote mit Status offen; // der Wert wird jeweils mit der Auftragswahrscheinlichkeit // multipliziert // IDX_BESTELLT: Basis ist Belegdatum, Erledigungsgrund == Auftrag // erhalten if (iIndexSpaltentyp == IDX_GESAMT) { critAngebot.add(Restrictions.ne(AngebotFac.FLR_ANGEBOT_ANGEBOTSTATUS_C_NR, AngebotServiceFac.ANGEBOTSTATUS_ANGELEGT)); critAngebot.add(Restrictions.ne(AngebotFac.FLR_ANGEBOT_ANGEBOTSTATUS_C_NR, AngebotServiceFac.ANGEBOTSTATUS_STORNIERT)); } else if (iIndexSpaltentyp == IDX_OFFEN || iIndexSpaltentyp == IDX_OFFENTERMINBEWERTET) { critAngebot.add(Restrictions.eq(AngebotFac.FLR_ANGEBOT_ANGEBOTSTATUS_C_NR, AngebotServiceFac.ANGEBOTSTATUS_OFFEN)); } else if (iIndexSpaltentyp == IDX_BESTELLT) { critAngebot.add(Restrictions.eq(AngebotFac.FLR_ANGEBOT_ANGEBOTSTATUS_C_NR, AngebotServiceFac.ANGEBOTSTATUS_ERLEDIGT)); critAngebot.add(Restrictions.eq(AngebotFac.FLR_ANGEBOT_ANGEBOTERLEDIGUNGSGRUND_C_NR, AngebotServiceFac.ANGEBOTERLEDIGUNGSGRUND_AUFTRAGERHALTEN)); } if (iIndexSpaltentyp == IDX_GESAMT || iIndexSpaltentyp == IDX_OFFEN || iIndexSpaltentyp == IDX_BESTELLT) { if (gcBerechnungsdatumVonI.getTime() != null) { critAngebot.add( Restrictions.ge(AngebotFac.FLR_ANGEBOT_T_BELEGDATUM, gcBerechnungsdatumVonI.getTime())); } if (gcBerechnungsdatumBisI.getTime() != null) { critAngebot.add( Restrictions.lt(AngebotFac.FLR_ANGEBOT_T_BELEGDATUM, gcBerechnungsdatumBisI.getTime())); } } if (iIndexSpaltentyp == IDX_OFFENTERMINBEWERTET) { if (gcBerechnungsdatumVonI.getTime() != null) { critAngebot.add(Restrictions.ge(AngebotFac.FLR_ANGEBOT_T_REALISIERUNGSTERMIN, gcBerechnungsdatumVonI.getTime())); } if (gcBerechnungsdatumBisI.getTime() != null) { critAngebot.add(Restrictions.lt(AngebotFac.FLR_ANGEBOT_T_REALISIERUNGSTERMIN, gcBerechnungsdatumBisI.getTime())); } } List<?> list = critAngebotposition.list(); int iIndex = 0; Iterator<?> it = list.iterator(); while (it.hasNext()) { FLRAngebotpositionReport flrangebotposition = (FLRAngebotpositionReport) it.next(); // der Beitrag der einzelnen Position in Angebotswaehrung BigDecimal nBeitragDerPositionInAngebotswaehrung = flrangebotposition .getN_nettogesamtpreisplusversteckteraufschlagminusrabatte() .multiply(flrangebotposition.getN_menge()); BigDecimal nBeitragDerPositionInMandantenwaehrung = nBeitragDerPositionInAngebotswaehrung .multiply(Helper.getKehrwert(new BigDecimal(flrangebotposition.getFlrangebot() .getF_wechselkursmandantwaehrungzuangebotswaehrung().doubleValue()))); if (iIndexSpaltentyp == IDX_OFFENTERMINBEWERTET) { double dAuftragswahrscheinlichkeit = flrangebotposition.getFlrangebot() .getF_auftragswahrscheinlichkeit().doubleValue(); nBeitragDerPositionInMandantenwaehrung = nBeitragDerPositionInMandantenwaehrung .multiply(new BigDecimal(dAuftragswahrscheinlichkeit).movePointLeft(2)); } nBeitragDerPositionInMandantenwaehrung = Helper .rundeKaufmaennisch(nBeitragDerPositionInMandantenwaehrung, 4); checkNumberFormat(nBeitragDerPositionInMandantenwaehrung); nGesamtwertInMandantenwaehrung = nGesamtwertInMandantenwaehrung .add(nBeitragDerPositionInMandantenwaehrung); iIndex++; } } 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 nGesamtwertInMandantenwaehrung; }
From source file:com.lp.server.angebot.ejbfac.AngebotFacBean.java
License:Open Source License
/** * Ueber Hibernate alle berechnungsrelevanten Positionen eines Angebots * holen. <br>/* w w w .j a va2 s . co m*/ * Diese Methode muß innerhalb einer offenen Hibernate Session aufgerufen * werden. <br> * * @todo diese Methode muesste eigentlich in der AngebotpositionFac * sitzen... PJ 3790 * * @param sessionI * die Hibernate Session * @param iIdAngebotI * PK des Angebots * @param bNurMengenbehafteteI * nur mengenbehaftete Positionen beruecksichtigen * @param bNurPositiveMengenI * nur positive Mengen beruecksichtigen; wird bei * !bNurMengenbehafteteI nicht ausgewertet * @param bOhneAlternativenI * alternative Positionen werden nicht beruecksichtigt * @return FLRAngebotpositionReport[] die berechnungsrelevanten Positionen * @throws EJBExceptionLP * Ausnahme */ private FLRAngebotpositionReport[] holeAngebotpositionen(Session sessionI, Integer iIdAngebotI, boolean bNurMengenbehafteteI, boolean bNurPositiveMengenI, boolean bOhneAlternativenI) throws EJBExceptionLP { FLRAngebotpositionReport[] aFLRAngebotpositionReport = null; try { Criteria crit = sessionI.createCriteria(FLRAngebotpositionReport.class); crit.add(Restrictions.eq(AngebotpositionFac.FLR_ANGEBOTPOSITION_ANGEBOT_I_ID, iIdAngebotI)); if (bNurMengenbehafteteI) { crit.add(Restrictions.isNotNull(AngebotpositionFac.FLR_ANGEBOTPOSITION_N_MENGE)); if (bNurPositiveMengenI) { crit.add(Restrictions.gt(AngebotpositionFac.FLR_ANGEBOTPOSITION_N_MENGE, new BigDecimal(0))); } } // nur Positionen beruecksichtigen, die keine Alternative sind if (bOhneAlternativenI) { crit.add(Restrictions.eq(AngebotpositionFac.FLR_ANGEBOTPOSITION_B_ALTERNATIVE, new Short((short) 0))); } crit.addOrder(Order.asc("i_sort")); // Liste aller Positionen, die behandelt werden sollen List<?> list = crit.list(); aFLRAngebotpositionReport = new FLRAngebotpositionReport[list.size()]; aFLRAngebotpositionReport = (FLRAngebotpositionReport[]) list.toArray(aFLRAngebotpositionReport); } catch (HibernateException he) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_HIBERNATE, new Exception(he)); } catch (Throwable t) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER, new Exception(t)); } return aFLRAngebotpositionReport; }
From source file:com.lp.server.angebot.ejbfac.AngebotReportFacBean.java
License:Open Source License
/** * reportflr: 2 Diese Methode liefert eine Liste von allen * Angebotspositionen eines Mandanten, die nach den eingegebenen Kriterien * des Benutzers zusammengestellt wird. <br> * Achtung: Hibernate verwendet lazy initialization, d.h. der Zugriff auf * Collections muss innerhalb der Session erfolgen. * //www. j a va2s . c om * @param kritDtoI * die Filter- und Sortierkriterien * @param cAktuellerReport * wird fuer alle und offene Angebote verwendet * @param theClientDto * der aktuelle Benutzer * @return ReportAngebotpositionDto[] die Liste aller Positionen. * @throws EJBExceptionLP * Ausnahme */ private ReportAngebotpositionJournalDto[] getListeAngebotpositionenJournal( ReportAngebotJournalKriterienDto kritDtoI, String erledigungsgrundCNr, String cAktuellerReport, TheClientDto theClientDto) throws EJBExceptionLP { ReportAngebotpositionJournalDto[] aResult = null; Session session = null; // es gilt das Locale des Benutzers Locale locDruck = theClientDto.getLocUi(); 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(FLRAngebotpositionReport.class); Criteria critAngebot = crit.createCriteria(AngebotpositionFac.FLR_ANGEBOTPOSITION_FLRANGEBOT); // Einschraenken nach Mandant critAngebot.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant())); // Einschraenken nach Status if (cAktuellerReport.equals(AngebotReportFac.REPORT_ANGEBOT_JOURNAL_ALLE)) { if (kritDtoI.getBNurErledigteAngebote()) { critAngebot.add(Restrictions.eq(AngebotFac.FLR_ANGEBOT_ANGEBOTSTATUS_C_NR, AngebotServiceFac.ANGEBOTSTATUS_ERLEDIGT)); if (erledigungsgrundCNr != null) { critAngebot.add(Restrictions.eq(AngebotFac.FLR_ANGEBOT_ANGEBOTERLEDIGUNGSGRUND_C_NR, erledigungsgrundCNr)); } } else { // PJ 07/0011040 /* * critAngebot.add(Restrictions.ne( * AngebotFac.FLR_ANGEBOT_ANGEBOTSTATUS_C_NR, * AngebotServiceFac.ANGEBOTSTATUS_ANGELEGT)); */ critAngebot.add(Restrictions.ne(AngebotFac.FLR_ANGEBOT_ANGEBOTSTATUS_C_NR, AngebotServiceFac.ANGEBOTSTATUS_STORNIERT)); } } else if (cAktuellerReport.equals(AngebotReportFac.REPORT_ANGEBOT_JOURNAL_OFFENE)) { critAngebot.add(Restrictions.eq(AngebotFac.FLR_ANGEBOT_ANGEBOTSTATUS_C_NR, AngebotServiceFac.ANGEBOTSTATUS_OFFEN)); } // UW 22.03.06 alle nicht alternativen Positionen mit positiver // Menge crit.add(Restrictions.isNotNull(AngebotpositionFac.FLR_ANGEBOTPOSITION_N_MENGE)); crit.add(Restrictions.gt(AngebotpositionFac.FLR_ANGEBOTPOSITION_N_MENGE, new BigDecimal(0))); crit.add(Restrictions.eq(AngebotpositionFac.FLR_ANGEBOTPOSITION_B_ALTERNATIVE, new Short((short) 0))); // Einschraenkung nach einer bestimmten Kostenstelle if (kritDtoI.kostenstelleIId != null) { critAngebot .add(Restrictions.eq(AngebotFac.FLR_ANGEBOT_KOSTENSTELLE_I_ID, kritDtoI.kostenstelleIId)); } // Einschraenkung nach einem bestimmten Kunden if (kritDtoI.kundeIId != null) { critAngebot .add(Restrictions.eq(AngebotFac.FLR_ANGEBOT_KUNDE_I_ID_ANGEBOTSADRESSE, kritDtoI.kundeIId)); } // Einschraenkung nach einem bestimmten Vertreter if (kritDtoI.vertreterIId != null) { critAngebot.add(Restrictions.eq(AngebotFac.FLR_ANGEBOT_VERTRETER_I_ID, kritDtoI.vertreterIId)); } /* * // Belegdatum von bis: flrangebotposition > * flrangebot.t_belegdatum if (kritDtoI.dVon != null) { * critAngebot.add(Restrictions.ge( * AngebotFac.FLR_ANGEBOT_T_BELEGDATUM, kritDtoI.dVon)); } * * if (kritDtoI.dBis != null) { critAngebot.add(Restrictions.le( * AngebotFac.FLR_ANGEBOT_T_BELEGDATUM, kritDtoI.dBis)); } */ if (kritDtoI.dVon != null && kritDtoI.dBis != null) { Calendar cal = Calendar.getInstance(); Timestamp von = null; cal.setTimeInMillis(kritDtoI.dVon.getTime()); cal.set(Calendar.MINUTE, 0); cal.set(Calendar.SECOND, 0); cal.set(Calendar.HOUR_OF_DAY, 0); cal.set(Calendar.MILLISECOND, 0); von = new Timestamp(cal.getTimeInMillis()); Timestamp bis = null; cal.setTimeInMillis(kritDtoI.dBis.getTime()); cal.set(Calendar.MINUTE, 59); cal.set(Calendar.SECOND, 59); cal.set(Calendar.HOUR_OF_DAY, 23); bis = new Timestamp(cal.getTimeInMillis()); critAngebot.add(Restrictions.between(AngebotFac.FLR_ANGEBOT_T_BELEGDATUM, von, bis)); } // Einschraenkung nach Belegnummer von - bis LpBelegnummerFormat f = getBelegnummerGeneratorObj().getBelegnummernFormat(theClientDto.getMandant()); Integer iGeschaeftsjahr = getParameterFac().getGeschaeftsjahr(theClientDto.getMandant()); String sMandantKuerzel = getParameterFac().getMandantparameter(theClientDto.getMandant(), ParameterFac.KATEGORIE_ALLGEMEIN, ParameterFac.PARAMETER_BELEGNUMMER_MANDANTKENNUNG).getCWert(); if (kritDtoI.sBelegnummerVon != null) { critAngebot.add(Restrictions.ge("c_nr", HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr, sMandantKuerzel, kritDtoI.sBelegnummerVon))); } if (kritDtoI.sBelegnummerBis != null) { critAngebot.add(Restrictions.le("c_nr", HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr, sMandantKuerzel, kritDtoI.sBelegnummerBis))); } // Sortierung nach Kostenstelle ist immer die erste Sortierung if (kritDtoI.bSortiereNachKostenstelle) { critAngebot.createCriteria(AngebotFac.FLR_ANGEBOT_FLRKOSTENSTELLE).addOrder(Order.asc("c_nr")); } // Sortierung nach Kunde, eventuell innerhalb der Kostenstelle if (kritDtoI.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) { critAngebot.createCriteria(AngebotFac.FLR_ANGEBOT_FLRKUNDE).createCriteria(KundeFac.FLR_PARTNER) .addOrder(Order.asc(PartnerFac.FLR_PARTNER_NAME1NACHNAMEFIRMAZEILE1)); } // Sortierung nach Vertreter, eventuell innerhalb der Kostenstelle if (kritDtoI.iSortierung == ReportAngebotJournalKriterienDto.KRIT_SORT_NACH_VERTRETER) { critAngebot.createCriteria(AngebotFac.FLR_ANGEBOT_FLRVERTRETER) .addOrder(Order.asc(PersonalFac.FLR_PERSONAL_C_KURZZEICHEN)); } if (cAktuellerReport.equals(AngebotReportFac.REPORT_ANGEBOT_JOURNAL_ALLE)) { if (kritDtoI.getBNurErledigteAngebote()) { critAngebot.addOrder(Order.asc(AngebotFac.FLR_ANGEBOT_ANGEBOTERLEDIGUNGSGRUND_C_NR)); } else { critAngebot.addOrder(Order.asc("c_nr")); } } else { // es wird in jedem Fall nach der Belegnummer sortiert critAngebot.addOrder(Order.asc("c_nr")); } List<?> list = crit.list(); aResult = new ReportAngebotpositionJournalDto[list.size()]; int iIndex = 0; Iterator<?> it = list.iterator(); ReportAngebotpositionJournalDto reportDto = null; while (it.hasNext()) { FLRAngebotpositionReport flrangebotposition = (FLRAngebotpositionReport) it.next(); FLRAngebot flrangebot = flrangebotposition.getFlrangebot(); FLRArtikel flrartikel = flrangebotposition.getFlrartikel(); reportDto = new ReportAngebotpositionJournalDto(); reportDto.setIId(flrangebot.getI_id()); reportDto.setCNr(flrangebot.getC_nr()); if (flrangebot.getAngeboterledigungsgrund_c_nr() != null) { AngeboterledigungsgrundDto angeboterledigungsgrundDto = getAngebotServiceFac() .angeboterledigungsgrundFindByPrimaryKey(flrangebot.getAngeboterledigungsgrund_c_nr(), theClientDto); reportDto.setAngeboterledigungsgrundCNr(angeboterledigungsgrundDto.getBezeichnung()); } reportDto.setKundeCName1(flrangebot.getFlrkunde().getFlrpartner().getC_name1nachnamefirmazeile1()); reportDto.setKundeCName2(flrangebot.getFlrkunde().getFlrpartner().getC_name2vornamefirmazeile2()); reportDto.setKundeCName3(flrangebot.getFlrkunde().getFlrpartner().getC_name3vorname2abteilung()); reportDto.setKundeStrasse(flrangebot.getFlrkunde().getFlrpartner().getC_strasse()); if (flrangebot.getFlrkunde().getFlrpartner().getFlrlandplzort() != null) { reportDto.setKundePlz(flrangebot.getFlrkunde().getFlrpartner().getFlrlandplzort().getC_plz()); reportDto.setKundeLkz( flrangebot.getFlrkunde().getFlrpartner().getFlrlandplzort().getFlrland().getC_lkz()); reportDto.setKundeOrt( flrangebot.getFlrkunde().getFlrpartner().getFlrlandplzort().getFlrort().getC_name()); } reportDto.setKundeEmail(flrangebot.getFlrkunde().getFlrpartner().getC_email()); reportDto.setKundeFax(flrangebot.getFlrkunde().getFlrpartner().getC_fax()); reportDto.setKundeTelefon(flrangebot.getFlrkunde().getFlrpartner().getC_telefon()); AngebotDto angebotDto = getAngebotFac().angebotFindByPrimaryKey(flrangebot.getI_id(), theClientDto); if (angebotDto.getAnsprechpartnerIIdKunde() != null) { AnsprechpartnerDto ansprechpartnerDto = getAnsprechpartnerFac() .ansprechpartnerFindByPrimaryKey(angebotDto.getAnsprechpartnerIIdKunde(), theClientDto); reportDto.setAnsprechpartnerNachname( ansprechpartnerDto.getPartnerDto().getCName1nachnamefirmazeile1()); reportDto.setAnsprechpartnerVorname( ansprechpartnerDto.getPartnerDto().getCName2vornamefirmazeile2()); reportDto.setAnsprechpartnerAnrede(ansprechpartnerDto.getPartnerDto().getAnredeCNr()); reportDto.setAnsprechpartnerTitel(ansprechpartnerDto.getPartnerDto().getCTitel()); reportDto.setAnsprechpartnerFax(ansprechpartnerDto.getCDirektfax()); reportDto.setAnsprechpartnerFaxDw(ansprechpartnerDto.getCFax()); reportDto.setAnsprechpartnerTelefon(ansprechpartnerDto.getCHandy()); reportDto.setAnsprechpartnerTelefonDw(ansprechpartnerDto.getCTelefon()); reportDto.setAnsprechpartnerEmail(ansprechpartnerDto.getCEmail()); } reportDto.setKostenstelleCNr(flrangebot.getFlrkostenstelle().getC_nr()); reportDto.setVertreterCName1( getPersonalFac().personalFindByPrimaryKey(flrangebot.getVertreter_i_id(), theClientDto) .getPartnerDto().formatFixName2Name1()); reportDto.setProjektBez(flrangebot.getC_bez()); reportDto.setRealisierungstermin( Helper.formatDatum(flrangebot.getT_realisierungstermin(), theClientDto.getLocUi())); if (flrangebot.getAngeboterledigungsgrund_c_nr() != null) if (flrangebot.getAngeboterledigungsgrund_c_nr() .equals(AngebotServiceFac.ANGEBOTERLEDIGUNGSGRUND_AUFTRAGERHALTEN)) { AuftragDto[] auftrag = getAuftragFac().auftragFindByAngebotIId(flrangebot.getI_id(), theClientDto); if (auftrag != null && auftrag.length > 0) { reportDto.setErledigungsgrundABNr(auftrag[0].getCNr()); } } // UW 08.03.06 Es kann sich um eine Ident, Handeingabe oder // AGStueckliste handeln String identCNr = null; String identCBez = null; if (flrangebotposition.getAngebotpositionart_c_nr() .equals(AngebotServiceFac.ANGEBOTPOSITIONART_IDENT)) { identCNr = flrartikel.getC_nr(); identCBez = getArtikelFac().formatArtikelbezeichnungEinzeiligOhneExc(flrartikel.getI_id(), theClientDto.getLocUi()); } else if (flrangebotposition.getAngebotpositionart_c_nr() .equals(AngebotServiceFac.ANGEBOTPOSITIONART_AGSTUECKLISTE)) { identCBez = flrangebotposition.getFlragstkl().getC_bez(); } else if (flrangebotposition.getAngebotpositionart_c_nr() .equals(AngebotServiceFac.ANGEBOTPOSITIONART_HANDEINGABE)) { identCBez = getArtikelFac().formatArtikelbezeichnungEinzeiligOhneExc(flrartikel.getI_id(), theClientDto.getLocUi()); } reportDto.setArtikelCNr(identCNr); reportDto.setArtikelCBez(identCBez); reportDto.setNMenge(flrangebotposition.getN_menge()); reportDto.setEinheitCNr(flrangebotposition.getEinheit_c_nr() == null ? "" : flrangebotposition.getEinheit_c_nr().trim()); reportDto.setDAuftragwahrscheinlichkeit(flrangebot.getF_auftragswahrscheinlichkeit()); reportDto.setNWert(flrangebot.getN_gesamtangebotswertinangebotswaehrung()); // Umrechnen in Mandantenwaehrung, Positionspreise sind in // Belegwaehrung abgelegt BigDecimal nPreisAmDruck = flrangebotposition .getN_nettogesamtpreisplusversteckteraufschlagminusrabatte(); nPreisAmDruck = getBetragMalWechselkurs(nPreisAmDruck, Helper.getKehrwert(new BigDecimal( flrangebot.getF_wechselkursmandantwaehrungzuangebotswaehrung().doubleValue()))); reportDto.setNPreis(nPreisAmDruck); aResult[iIndex] = reportDto; iIndex++; } } 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 aResult; }
From source file:com.lp.server.angebot.ejbfac.AngebotReportFacBean.java
License:Open Source License
/** * Alle abgelehnte Angebote drucken./*from www.ja v a2 s .c om*/ * * @param kritDtoI * die Filter- und Sortierkriterien * @param theClientDto * der atkuelle Benutzer * @return JasperPrint der Druck * @throws EJBExceptionLP * Ausnahme */ public JasperPrintLP printAngebotAbgelehnte(ReportAngebotJournalKriterienDto kritDtoI, TheClientDto theClientDto) throws EJBExceptionLP { JasperPrintLP oPrint = null; StringBuffer buff = null; StringBuffer zbuff = null; cAktuellerReport = AngebotReportFac.REPORT_ANGEBOT_JOURNAL_ABGELEHNTE; try { Session session = null; try { SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); // Criteria anlegen fuer alle referenzierten Objekte anlegen Criteria crit = session.createCriteria(FLRAngebot.class); // Einschraenken nach Mandant crit.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant())); // Einschraenken nach Status crit.add(Restrictions.eq(AngebotFac.FLR_ANGEBOT_ANGEBOTSTATUS_C_NR, AngebotServiceFac.ANGEBOTSTATUS_ERLEDIGT)); crit.add(Restrictions.isNotNull(AngebotFac.FLR_ANGEBOT_T_MANUELLERLEDIGT)); crit.add(Restrictions.isNotNull(AngebotFac.FLR_ANGEBOT_ANGEBOTERLEDIGUNGSGRUND_C_NR)); // Einschraenkung nach einem bestimmten Kunden if (kritDtoI.kundeIId != null) { crit.add(Restrictions.eq(AngebotFac.FLR_ANGEBOT_KUNDE_I_ID_ANGEBOTSADRESSE, kritDtoI.kundeIId)); } if (kritDtoI.dVon != null) { crit.add(Restrictions.ge(AngebotFac.FLR_ANGEBOT_T_MANUELLERLEDIGT, kritDtoI.dVon)); } if (kritDtoI.dBis != null) { crit.add(Restrictions.le(AngebotFac.FLR_ANGEBOT_T_MANUELLERLEDIGT, kritDtoI.dBis)); } // es wird in jedem Fall nach der Belegnummer sortiert crit.addOrder(Order.asc(AngebotFac.FLR_ANGEBOT_ANGEBOTERLEDIGUNGSGRUND_C_NR)); crit.addOrder(Order.asc("c_nr")); int iIndex = 0; List<?> list = crit.list(); Iterator<?> it = list.iterator(); int iAnzahlZeilen = list.size(); // Anzahl der Positionen int iAnzahlSpalten = 12; // Anzahl der Spalten in der Gruppe data = new Object[iAnzahlZeilen][iAnzahlSpalten]; HashMap<String, Integer> hm = new HashMap<String, Integer>(); while (it.hasNext()) { FLRAngebot flrangebot = (FLRAngebot) it.next(); // erledigungsgruende zaehlen String erledigungsgrund = flrangebot.getAngeboterledigungsgrund_c_nr(); Integer value = hm.get(erledigungsgrund); if (value == null) { hm.put(erledigungsgrund, 1); } else { hm.put(erledigungsgrund, value + 1); // wird ersetzt } // Daten fuer den Report data[iIndex][AngebotReportFac.REPORT_ANGEBOT_JOURNAL_ABGELEHNTE_ANGEBOTCNR] = flrangebot .getC_nr(); data[iIndex][AngebotReportFac.REPORT_ANGEBOT_JOURNAL_ABGELEHNTE_KUNDECNAME1] = flrangebot .getFlrkunde().getFlrpartner().getC_name1nachnamefirmazeile1(); data[iIndex][AngebotReportFac.REPORT_ANGEBOT_JOURNAL_ABGELEHNTE_KOSTENSTELLECNR] = flrangebot .getFlrkostenstelle().getC_nr(); data[iIndex][AngebotReportFac.REPORT_ANGEBOT_JOURNAL_ABGELEHNTE_VERTRETERCNAME1] = flrangebot .getFlrvertreter().getFlrpartner().getC_name1nachnamefirmazeile1(); if (flrangebot.getC_bez() != null) { data[iIndex][AngebotReportFac.REPORT_ANGEBOT_JOURNAL_ABGELEHNTE_PROJEKTBEZ] = flrangebot .getC_bez(); } data[iIndex][AngebotReportFac.REPORT_ANGEBOT_JOURNAL_ABGELEHNTE_REALISIERUNGSTERMIN] = Helper .formatDatum(flrangebot.getT_realisierungstermin(), theClientDto.getLocUi()); data[iIndex][AngebotReportFac.REPORT_ANGEBOT_JOURNAL_ABGELEHNTE_ANGEBOTERLEDIGUNGSGRUND] = flrangebot .getAngeboterledigungsgrund_c_nr(); if (flrangebot.getAngeboterledigungsgrund_c_nr() != null) if (flrangebot.getAngeboterledigungsgrund_c_nr() .equals(AngebotServiceFac.ANGEBOTERLEDIGUNGSGRUND_AUFTRAGERHALTEN)) { AuftragDto[] auftrag = getAuftragFac().auftragFindByAngebotIId(flrangebot.getI_id(), theClientDto); data[iIndex][AngebotReportFac.REPORT_ANGEBOT_JOURNAL_ABGELEHNTE_ERLEDIGUNGSGRUND_AB_NR] = auftrag[0] .getCNr(); } data[iIndex][AngebotReportFac.REPORT_ANGEBOT_JOURNAL_ABGELEHNTE_GESAMTANGEBOTSWERT] = flrangebot .getN_gesamtangebotswertinangebotswaehrung(); data[iIndex][AngebotReportFac.REPORT_ANGEBOT_JOURNAL_ABGELEHNTE_INTERNERKOMMENTAR] = flrangebot .getX_internerkommentar(); data[iIndex][AngebotReportFac.REPORT_ANGEBOT_JOURNAL_ABGELEHNTE_EXTERNERKOMMENTAR] = flrangebot .getX_externerkommentar(); iIndex++; } // erledigungsgruende nach der anzahl sortieren buff = new StringBuffer(""); zbuff = new StringBuffer(""); Map<Integer, String> sortedMap = new TreeMap<Integer, String>(); for (Iterator<String> it3 = hm.keySet().iterator(); it3.hasNext();) { String cGrund = (String) it3.next(); sortedMap.put(-hm.get(cGrund), cGrund); // negieren, damit // die reihenfolge // stimmt (die // grossen zahlen // zuerst), muss // nachher wieder // umgedreht werden buff.append(cGrund); buff.append("\n"); zbuff.append(hm.get(cGrund)); zbuff.append("\n"); } } 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); } } // Erstellung des Report HashMap<String, Object> parameter = new HashMap<String, Object>(); // die Parameter dem Report uebergeben parameter.put(LPReport.P_SORTIERUNG, buildSortierungAngebotJournal(kritDtoI, theClientDto)); parameter.put(LPReport.P_FILTER, buildFilterAngebotJournal(kritDtoI, theClientDto)); if (kritDtoI.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) { parameter.put(LPReport.P_SORTIERENACHKUNDE, new Boolean(true)); } else { parameter.put(LPReport.P_SORTIERENACHKUNDE, new Boolean(false)); } parameter.put("P_TITLE", getTextRespectUISpr("angb.print.abgelehnte", theClientDto.getMandant(), theClientDto.getLocUi())); String cBuffer = buff.toString().trim(); parameter.put("P_STATISTIK_SPALTE1", cBuffer); parameter.put("P_STATISTIK_SPALTE2", zbuff.toString()); parameter.put(P_MANDANTWAEHRUNG, theClientDto.getSMandantenwaehrung()); initJRDS(parameter, AngebotReportFac.REPORT_MODUL, AngebotReportFac.REPORT_ANGEBOT_JOURNAL_ABGELEHNTE, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); oPrint = getReportPrint(); } catch (Throwable t) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_BEIM_DRUCKEN, new Exception(t)); } return oPrint; }
From source file:com.lp.server.angebot.ejbfac.AngebotReportFacBean.java
License:Open Source License
/** * Die Vorkalkulation eines Angebots drucken. <br> * Beruecksichtigt werden nur preisbehaftete Positionen. * //w w w .ja v a 2s . c o m * @param iIdAngebotI * PK des Angebots * @param theClientDto * der aktuelle Benutzer * @return JasperPrint der Druck * @throws EJBExceptionLP * Ausnahme */ public JasperPrintLP printAngebotVorkalkulation(Integer iIdAngebotI, TheClientDto theClientDto) throws EJBExceptionLP { JasperPrintLP oPrint = null; cAktuellerReport = AngebotReportFac.REPORT_VORKALKULATION; Session session = null; try { AngebotDto angebotDto = getAngebotFac().angebotFindByPrimaryKey(iIdAngebotI, theClientDto); // UW 29.03.06 Tiefe der Stuecklistenaufloeseung bestimmen ParametermandantDto parametermandantDto = getParameterFac().getMandantparameter( theClientDto.getMandant(), ParameterFac.KATEGORIE_ANGEBOT, ParameterFac.PARAMETER_ANGEBOT_AGVORKALK_STKL_AUFLOESUNG_TIEFE); ParametermandantDto parameterGestpreisBerechnung = null; parameterGestpreisBerechnung = (ParametermandantDto) getParameterFac().getMandantparameter( theClientDto.getMandant(), ParameterFac.KATEGORIE_ALLGEMEIN, ParameterFac.PARAMETER_GESTPREISBERECHNUNG_HAUPTLAGER); boolean bGestpreisberechnungHauptlager = ((Boolean) parameterGestpreisBerechnung.getCWertAsObject()) .booleanValue(); int iStuecklisteaufloesungTiefe = ((Integer) parametermandantDto.getCWertAsObject()).intValue(); session = FLRSessionFactory.getFactory().openSession(); Criteria crit = session.createCriteria(FLRAngebotpositionReport.class); crit.add(Restrictions.eq(AngebotpositionFac.FLR_ANGEBOTPOSITION_FLRANGEBOT + ".i_id", iIdAngebotI)); // UW 22.03.06 alle nicht alternativen Positionen mit positiver // Menge crit.add(Restrictions.isNotNull(AngebotpositionFac.FLR_ANGEBOTPOSITION_N_MENGE)); crit.add(Restrictions.gt(AngebotpositionFac.FLR_ANGEBOTPOSITION_N_MENGE, new BigDecimal(0))); crit.add(Restrictions.eq(AngebotpositionFac.FLR_ANGEBOTPOSITION_B_ALTERNATIVE, new Short((short) 0))); crit.addOrder(Order.asc(AngebotpositionFac.FLR_ANGEBOTPOSITION_I_SORT)); // Liste aller Positionen, die behandelt werden sollen List<?> list = crit.list(); Iterator itListe = list.iterator(); ArrayList<Object[]> alDaten = new ArrayList<Object[]>(); // Der Index der aktuell verarbeiteten Angebotposition, Index laeuft // ueber die Unterpositionen! int row = 0; while (itListe.hasNext()) { // iterieren ueber die row++; // gesamte Datenmatrix FLRAngebotpositionReport flrangebotposition = (FLRAngebotpositionReport) itListe.next(); if (flrangebotposition.getAngebotpositionart_c_nr() .equals(AngebotServiceFac.ANGEBOTPOSITIONART_IDENT)) { boolean bSetArtikel = false; StuecklisteDto stuecklisteDto = getStuecklisteFac() .stuecklisteFindByMandantCNrArtikelIIdOhneExc(flrangebotposition.getArtikel_i_id(), theClientDto); // wenn die aktuelle Artikelposition eine Stueckliste ist if (stuecklisteDto != null && stuecklisteDto.getStuecklisteartCNr() .equals(StuecklisteFac.STUECKLISTEART_SETARTIKEL)) { bSetArtikel = true; } // PJ15141 // zum Befuellen der Preisinformationen muss bekannt sein, // ob es Stuecklistenpositionen gibt StuecklisteInfoDto stuecklisteInfoDto = getStuecklisteFac().getStrukturdatenEinesArtikels( flrangebotposition.getArtikel_i_id(), false, null, // in die Rekursion mit einer // leeren Listen einsteigen 0, // in die Rekursion mit Ebene 0 // einsteigen iStuecklisteaufloesungTiefe, // alle // Stuecklisten // lt. // Parameter // aufloesen true, // Basis sind die Einheiten der // Stueckliste flrangebotposition.getN_menge(), // Basis // sind // n // Einheiten // der // Stueckliste false, // Fremdfertigung nicht aufloesen theClientDto); if (bSetArtikel == false && stuecklisteInfoDto.getIiAnzahlPositionen().intValue() > 0 && (!Helper.short2boolean(stuecklisteInfoDto.getBIstFremdfertigung()) || iStuecklisteaufloesungTiefe != 0)) { alDaten.add(befuelleZeileVKMitIdentMitSTKLAusAngebotposition(flrangebotposition, angebotDto.getTRealisierungstermin(), theClientDto)); if (stuecklisteInfoDto.getIiAnzahlPositionen().intValue() > 0) { ArrayList<?> alStuecklisteAufgeloest = stuecklisteInfoDto.getAlStuecklisteAufgeloest(); Iterator<?> it = alStuecklisteAufgeloest.iterator(); while (it.hasNext()) { alDaten.add(befuelleZeileVorkalkulationMitStuecklistenposition( flrangebotposition.getArtikel_i_id(), // eine // Zwischensumme // fuer den // uebergeordneten // Artikel // bilden "", (StuecklisteMitStrukturDto) it.next(), flrangebotposition.getFlrangebot().getWaehrung_c_nr_angebotswaehrung(), flrangebotposition.getN_menge(), flrangebotposition.getEinheit_c_nr(), iStuecklisteaufloesungTiefe, bGestpreisberechnungHauptlager, angebotDto.getTRealisierungstermin(), theClientDto)); } } } else { // UW 29.03.06 Eine STKL wird wie ein normaler Artikel // angedruckt, wenn... // ...es sich um eine Fremdfertigung handelt // ...es keine Positionen gibt // ...die gewuenschte Aufloesungstiefe lt. Parameter 0 // ist alDaten.add(befuelleZeileVKMitIdentOhneSTKLAusAngebotposition(flrangebotposition, angebotDto.getTRealisierungstermin(), theClientDto, angebotDto.getWaehrungCNr())); } // PJ 16216 StuecklisteDto stklDto = getStuecklisteFac().stuecklisteFindByMandantCNrArtikelIIdOhneExc( flrangebotposition.getArtikel_i_id(), theClientDto); if (stklDto != null && (!Helper.short2boolean(stklDto.getBFremdfertigung()) || iStuecklisteaufloesungTiefe != 0)) { StuecklistearbeitsplanDto[] stuecklistearbeitsplanDtos = getStuecklisteFac() .stuecklistearbeitsplanFindByStuecklisteIId(stklDto.getIId(), theClientDto); for (int i = 0; i < stuecklistearbeitsplanDtos.length; i++) { StuecklistearbeitsplanDto stuecklistearbeitsplanDto = stuecklistearbeitsplanDtos[i]; if (stklDto.getIErfassungsfaktor() != 0) { stuecklistearbeitsplanDto.setLStueckzeit(stuecklistearbeitsplanDto.getLStueckzeit() / stklDto.getIErfassungsfaktor()); } if (!Helper.short2boolean(stuecklistearbeitsplanDto.getBNurmaschinenzeit())) { alDaten.add(befuelleZeileVorkalkulationMitStuecklistearbeitsplan( flrangebotposition.getArtikel_i_id(), // eine // Zwischensumme // fuer den // uebergeordneten // Artikel // bilden "", stuecklistearbeitsplanDto, flrangebotposition.getFlrangebot().getWaehrung_c_nr_angebotswaehrung(), flrangebotposition.getN_menge(), flrangebotposition.getEinheit_c_nr(), iStuecklisteaufloesungTiefe, bGestpreisberechnungHauptlager, angebotDto.getTRealisierungstermin(), stklDto, theClientDto, false)); } if (stuecklistearbeitsplanDto.getMaschineIId() != null) { alDaten.add(befuelleZeileVorkalkulationMitStuecklistearbeitsplan( flrangebotposition.getArtikel_i_id(), // eine // Zwischensumme // fuer den // uebergeordneten // Artikel // bilden "", stuecklistearbeitsplanDto, flrangebotposition.getFlrangebot().getWaehrung_c_nr_angebotswaehrung(), flrangebotposition.getN_menge(), flrangebotposition.getEinheit_c_nr(), iStuecklisteaufloesungTiefe, bGestpreisberechnungHauptlager, angebotDto.getTRealisierungstermin(), stklDto, theClientDto, true)); } } } } else if (flrangebotposition.getAngebotpositionart_c_nr() .equals(AngebotServiceFac.ANGEBOTPOSITIONART_HANDEINGABE)) { alDaten.add(befuelleZeileVKMitHandAusAngebotposition(flrangebotposition, theClientDto)); } else if (flrangebotposition.getAngebotpositionart_c_nr() .equals(AngebotServiceFac.ANGEBOTPOSITIONART_AGSTUECKLISTE)) { // jede Zeile muss als INDEX_GRUPPE die AGSTKL cNr haben! alDaten.add(befuelleZeileVKMitAGSTKLPosition(flrangebotposition, theClientDto)); AgstklpositionDto[] aAgstklpositionDto = getAngebotstklpositionFac() .agstklpositionFindByAgstklIIdOhneExc(flrangebotposition.getAgstkl_i_id(), theClientDto); // Einrueckungsebene gegenueber der AGSTKL String cEinrueckung = " "; for (int j = 0; j < aAgstklpositionDto.length; j++) { // AGPosition ist dieselbe, aber die naechste Zeile // im data[][] befuellen ArtikelDto artikelDtoAgstklposition = getArtikelFac() .artikelFindByPrimaryKeySmall(aAgstklpositionDto[j].getArtikelIId(), theClientDto); if (artikelDtoAgstklposition.getArtikelartCNr().equals(ArtikelFac.ARTIKELART_HANDARTIKEL)) { alDaten.add(befuelleZeileVKMitHandAusAGSTKLPosition(aAgstklpositionDto[j], flrangebotposition.getN_menge(), flrangebotposition.getEinheit_c_nr(), theClientDto, cEinrueckung)); } else { // jeder Artikel koennte selbst wieder ein // Stueckliste mit Unterpositionen sein StuecklisteInfoDto stuecklisteInfoDto = getStuecklisteFac() .getStrukturdatenEinesArtikels(aAgstklpositionDto[j].getArtikelIId(), false, null, // in die Rekursion mit // einer // leeren Listen einsteigen 0, // in die Rekursion mit Ebene 0 // einsteigen iStuecklisteaufloesungTiefe, // alle // Stuecklisten // lt // . // Parameter // aufloesen true, // Basis sind die n Einheiten // der AGSTKL flrangebotposition.getN_menge() .multiply(aAgstklpositionDto[j].getNMenge()), // Basismenge false, // Fremdfertigung nicht // aufloesen theClientDto); // wenn die Identposition selbst eine echte STKL ist if (stuecklisteInfoDto.getIiAnzahlPositionen().intValue() > 0 && (!Helper.short2boolean(stuecklisteInfoDto.getBIstFremdfertigung()) || iStuecklisteaufloesungTiefe != 0)) { alDaten.add(befuelleZeileVKMitIdentMitSTKLAusAGSTKLPosition(aAgstklpositionDto[j], flrangebotposition.getN_menge(), flrangebotposition.getEinheit_c_nr(), angebotDto.getTRealisierungstermin(), theClientDto, cEinrueckung)); ArrayList<?> alStuecklisteAufgeloest = stuecklisteInfoDto .getAlStuecklisteAufgeloest(); Iterator<?> it = alStuecklisteAufgeloest.iterator(); while (it.hasNext()) { StuecklisteMitStrukturDto stuktDto = (StuecklisteMitStrukturDto) it.next(); alDaten.add(befuelleZeileVorkalkulationMitStuecklistenposition( flrangebotposition.getAgstkl_i_id(), cEinrueckung, stuktDto, flrangebotposition.getFlrangebot().getWaehrung_c_nr_angebotswaehrung(), aAgstklpositionDto[j].getNMenge(), aAgstklpositionDto[j].getEinheitCNr(), iStuecklisteaufloesungTiefe, bGestpreisberechnungHauptlager, angebotDto.getTRealisierungstermin(), theClientDto)); } } else { alDaten.add(befuelleZeileVKMitIdentOhneSTKLAusAGSTKLPosition(aAgstklpositionDto[j], flrangebotposition.getN_menge(), flrangebotposition.getEinheit_c_nr(), theClientDto, angebotDto.getTRealisierungstermin(), cEinrueckung)); } } } } } data = new Object[alDaten.size()][AngebotReportFac.REPORT_ANGEBOT_ANZAHL_SPALTEN]; data = (Object[][]) alDaten.toArray(data); // Erstellung des Report HashMap<String, Object> parameter = new HashMap<String, Object>(); // es gilt das Locale des Benutzers Locale locDruck = theClientDto.getLocUi(); KundeDto kundeDto = getKundeFac().kundeFindByPrimaryKey(angebotDto.getKundeIIdAngebotsadresse(), theClientDto); AnsprechpartnerDto ansprechpartnerDto = null; if (angebotDto.getAnsprechpartnerIIdKunde() != null) { ansprechpartnerDto = getAnsprechpartnerFac() .ansprechpartnerFindByPrimaryKey(angebotDto.getAnsprechpartnerIIdKunde(), theClientDto); } MandantDto mandantDto = getMandantFac().mandantFindByPrimaryKey(theClientDto.getMandant(), theClientDto); parameter.put(LPReport.P_ADRESSBLOCK, formatAdresseFuerAusdruck(kundeDto.getPartnerDto(), ansprechpartnerDto, mandantDto, locDruck)); parameter.put("P_ANGEBOTNUMMER", angebotDto.getCNr()); parameter.put("P_KOMMENTAR_INTERN", angebotDto.getXInternerkommentar()); parameter.put("P_KOMMENTAR_EXTERN", angebotDto.getXExternerkommentar()); parameter.put("P_ANGEBOTCBEZ", angebotDto.getCBez() != null ? angebotDto.getCBez() : ""); parameter.put("P_LIEFERART", getLocaleFac() .lieferartFindByIIdLocaleOhneExc(angebotDto.getLieferartIId(), locDruck, theClientDto)); // Lieferzeit in hinterlegter Einheit Integer iiLieferzeit = getAngebotServiceFac().getLieferzeitInAngeboteinheit(angebotDto.getIId(), angebotDto.getAngeboteinheitCNr(), theClientDto); parameter.put("P_ANGEBOTEINHEIT", getSystemFac().formatEinheit(angebotDto.getAngeboteinheitCNr(), locDruck, theClientDto)); parameter.put("P_LIEFERZEIT", iiLieferzeit); parameter.put("P_BELEGWAEHRUNG", angebotDto.getWaehrungCNr()); parameter.put("P_MANDANTENWAEHRUNG", theClientDto.getSMandantenwaehrung()); parameter.put("P_WECHSELKURSMANDANTZUBELEG", angebotDto.getFWechselkursmandantwaehrungzubelegwaehrung()); // das Zahlungsziel parameter.put("P_ZAHLUNGSZIEL", getMandantFac() .zahlungszielFindByIIdLocaleOhneExc(angebotDto.getZahlungszielIId(), locDruck, theClientDto)); parameter.put("P_BELEGDATUM", angebotDto.getTBelegdatum()); parameter.put("P_ANGEBOTSGUELTIGKEIT", angebotDto.getTAngebotsgueltigkeitbis()); parameter.put("P_ALLGEMEINERRABATT", angebotDto.getFAllgemeinerRabattsatz()); parameter.put("P_ALLGEMEINERRABATT_STRING", Helper.formatZahl(angebotDto.getFAllgemeinerRabattsatz(), locDruck)); parameter.put("P_PROJEKT_RABATT", angebotDto.getFProjektierungsrabattsatz()); parameter.put("P_PROJEKT_RABATT_STRING", Helper.formatZahl(angebotDto.getFProjektierungsrabattsatz(), locDruck)); parameter.put("P_VERSTECKTER_AUFSCHLAG", angebotDto.getFVersteckterAufschlag()); parameter.put("P_VERSTECKTER_AUFSCHLAG_STRING", Helper.formatZahl(angebotDto.getFVersteckterAufschlag(), locDruck)); parameter.put("P_REALISIERUNGSTERMIN", angebotDto.getTRealisierungstermin()); initJRDS(parameter, AngebotReportFac.REPORT_MODUL, AngebotReportFac.REPORT_VORKALKULATION, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); oPrint = getReportPrint(); } catch (RemoteException ex) { throwEJBExceptionLPRespectOld(ex); } finally { try { session.close(); } catch (HibernateException he) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_HIBERNATE, he); } } return oPrint; }
From source file:com.lp.server.angebot.ejbfac.AngebotReportFacBean.java
License:Open Source License
/** * Ueber Hibernate alle berechnungsrelevanten Positionen eines Angebots * holen. <br>//w w w .j a va 2s.c o m * Diese Methode muß innerhalb einer offenen Hibernate Session aufgerufen * werden. <br> * * @todo diese Methode muesste eigentlich in der AngebotpositionFac * sitzen... PJ 3799 * * @param sessionI * die Hibernate Session * @param iIdAngebotI * PK des Angebots * @param bNurMengenbehafteteI * nur mengenbehaftete Positionen beruecksichtigen * @param bNurPositiveMengenI * nur positive Mengen beruecksichtigen; wird bei * !bNurMengenbehafteteI nicht ausgewertet * @param bOhneAlternativenI * alternative Positionen werden nicht beruecksichtigt * @return FLRAngebotpositionReport[] die berechnungsrelevanten Positionen * @throws EJBExceptionLP * Ausnahme */ private FLRAngebotpositionReport[] holeAngebotpositionen(Session sessionI, Integer iIdAngebotI, boolean bNurMengenbehafteteI, boolean bNurPositiveMengenI, boolean bOhneAlternativenI) throws EJBExceptionLP { FLRAngebotpositionReport[] aFLRAngebotpositionReport = null; try { Criteria crit = sessionI.createCriteria(FLRAngebotpositionReport.class); crit.add(Restrictions.eq(AngebotpositionFac.FLR_ANGEBOTPOSITION_ANGEBOT_I_ID, iIdAngebotI)); if (bNurMengenbehafteteI) { crit.add(Restrictions.isNotNull(AngebotpositionFac.FLR_ANGEBOTPOSITION_N_MENGE)); if (bNurPositiveMengenI) { crit.add(Restrictions.gt(AngebotpositionFac.FLR_ANGEBOTPOSITION_N_MENGE, new BigDecimal(0))); } } // nur Positionen beruecksichtigen, die keine Alternative sind if (bOhneAlternativenI) { crit.add(Restrictions.eq(AngebotpositionFac.FLR_ANGEBOTPOSITION_B_ALTERNATIVE, new Short((short) 0))); } crit.addOrder(Order.asc("i_sort")); // Liste aller Positionen, die behandelt werden sollen java.util.List<?> list = crit.list(); aFLRAngebotpositionReport = new FLRAngebotpositionReport[list.size()]; aFLRAngebotpositionReport = (FLRAngebotpositionReport[]) list.toArray(aFLRAngebotpositionReport); } catch (HibernateException he) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_HIBERNATE, new Exception(he)); } catch (Throwable t) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER, new Exception(t)); } return aFLRAngebotpositionReport; }
From source file:com.lp.server.artikel.ejbfac.ArtikelReportFacBean.java
License:Open Source License
@TransactionAttribute(TransactionAttributeType.NEVER) public JasperPrintLP printNaechsteWartungen(TheClientDto theClientDto) { // Erstellung des Reports HashMap<String, Object> parameter = new HashMap<String, Object>(); index = -1;/*from www . ja v a 2s.c o m*/ sAktuellerReport = ArtikelReportFac.REPORT_NAECHSTE_WARTUNGEN; Session session = FLRSessionFactory.getFactory().openSession(); org.hibernate.Criteria crit = session.createCriteria(FLRArtikel.class); crit.add(Restrictions.isNotNull(ArtikelFac.FLR_ARTIKEL_I_WARTUNGSINTERVALL)); crit.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant())); crit.addOrder(Order.asc("c_nr")); List<?> results = crit.list(); Iterator<?> resultListIterator = results.iterator(); ArrayList alDaten = new ArrayList(); while (resultListIterator.hasNext()) { FLRArtikel flrartikel = (FLRArtikel) resultListIterator.next(); Object[] zeile = new Object[REPORT_NAECHSTE_WARTUNGEN_ANZAHL_SPALTEN]; ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKeySmall(flrartikel.getI_id(), theClientDto); Timestamp tFaelligSeit = null; if (artikelDto.getTLetztewartung() != null) { zeile[REPORT_NAECHSTE_WARTUNGEN_LETZTE_WARTUNG] = artikelDto.getTLetztewartung(); Calendar cWartungFaellig = Calendar.getInstance(); cWartungFaellig.setTimeInMillis(artikelDto.getTLetztewartung().getTime()); cWartungFaellig.add(Calendar.MONTH, artikelDto.getIWartungsintervall()); tFaelligSeit = new Timestamp(cWartungFaellig.getTimeInMillis()); } if (tFaelligSeit == null || tFaelligSeit.getTime() < System.currentTimeMillis()) { zeile[REPORT_NAECHSTE_WARTUNGEN_FAELLIG_SEIT] = tFaelligSeit; zeile[REPORT_NAECHSTE_WARTUNGEN_ARTIKEL] = flrartikel.getC_nr(); if (artikelDto.getArtikelsprDto() != null) { zeile[REPORT_NAECHSTE_WARTUNGEN_BEZEICHNUNG] = artikelDto.getArtikelsprDto().getCBez(); zeile[REPORT_NAECHSTE_WARTUNGEN_KURZBEZEICHNUNG] = artikelDto.getArtikelsprDto().getCKbez(); zeile[REPORT_NAECHSTE_WARTUNGEN_ZUSATZBEZEICHNUNG] = artikelDto.getArtikelsprDto().getCZbez(); zeile[REPORT_NAECHSTE_WARTUNGEN_ZUSATZBEZEICHNUNG2] = artikelDto.getArtikelsprDto().getCZbez2(); } zeile[REPORT_NAECHSTE_WARTUNGEN_REVISION] = artikelDto.getCRevision(); zeile[REPORT_NAECHSTE_WARTUNGEN_INDEX] = artikelDto.getCIndex(); zeile[REPORT_NAECHSTE_WARTUNGEN_REFERENZNUMMER] = artikelDto.getCReferenznr(); if (flrartikel.getFlrartikelgruppe() != null) { zeile[REPORT_NAECHSTE_WARTUNGEN_ARTIKELGRUPPE] = flrartikel.getFlrartikelgruppe().getC_nr(); } if (flrartikel.getFlrartikelklasse() != null) { zeile[REPORT_NAECHSTE_WARTUNGEN_ARTIKELKLASSE] = flrartikel.getFlrartikelklasse().getC_nr(); } zeile[REPORT_NAECHSTE_WARTUNGEN_WARTUNGSINTERVALL] = artikelDto.getIWartungsintervall(); ArtikellagerplaetzeDto artikellagerplaetzeDto = getLagerFac() .getErstenArtikellagerplatz(flrartikel.getI_id(), theClientDto); if (artikellagerplaetzeDto != null) { String lagerplatz = artikellagerplaetzeDto.getLagerplatzDto().getCLagerplatz(); if (artikellagerplaetzeDto.isbEsGibtMehrereLagerplaetze() == true) { lagerplatz += " ++"; } zeile[REPORT_NAECHSTE_WARTUNGEN_LAGERPLATZ] = lagerplatz; try { zeile[REPORT_NAECHSTE_WARTUNGEN_LAGER_LAGERPLATZ] = getLagerFac() .lagerFindByPrimaryKey(artikellagerplaetzeDto.getLagerplatzDto().getLagerIId()) .getCNr(); } catch (RemoteException e) { throwEJBExceptionLPRespectOld(e); } } alDaten.add(zeile); } } session.close(); Object[][] dataTemp = new Object[alDaten.size()][REPORT_NAECHSTE_WARTUNGEN_ANZAHL_SPALTEN]; data = (Object[][]) alDaten.toArray(dataTemp); initJRDS(parameter, ArtikelReportFac.REPORT_MODUL, ArtikelReportFac.REPORT_NAECHSTE_WARTUNGEN, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); return getReportPrint(); }
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 ww .j a va2 s. c o m*/ } 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; }