List of usage examples for org.hibernate.criterion Restrictions le
public static SimpleExpression le(String propertyName, Object value)
From source file:com.lakeside.data.sqldb.PageBaseDao.java
License:Apache License
/** * ??Criterion,./*from w w w.ja v a 2 s . c o m*/ */ protected Criterion buildPropertyFilterCriterion(final String propertyName, final Object propertyValue, final MatchType matchType) { Assert.hasText(propertyName, "propertyName?"); Criterion criterion = null; try { //?MatchTypecriterion if (MatchType.EQ.equals(matchType)) { criterion = Restrictions.eq(propertyName, propertyValue); } else if (MatchType.LIKE.equals(matchType)) { criterion = Restrictions.like(propertyName, (String) propertyValue, MatchMode.ANYWHERE); } else if (MatchType.LE.equals(matchType)) { criterion = Restrictions.le(propertyName, propertyValue); } else if (MatchType.LT.equals(matchType)) { criterion = Restrictions.lt(propertyName, propertyValue); } else if (MatchType.GE.equals(matchType)) { criterion = Restrictions.ge(propertyName, propertyValue); } else if (MatchType.GT.equals(matchType)) { criterion = Restrictions.gt(propertyName, propertyValue); } } catch (Exception e) { throw ReflectionUtils.convertReflectionExceptionToUnchecked(e); } return criterion; }
From source file:com.lewischooman.dao.MovieShowDAO.java
License:Open Source License
@Override @SuppressWarnings(value = "unchecked") public List<MovieShowDB> getMovieShowsByDateTheater(Date dateFrom, Date dateTo, Integer theaterId, boolean breakByTheater, Integer movieId) { Session session;//ww w. jav a2 s . c o m Criteria criteria; session = this.sessionFactory.getCurrentSession(); criteria = session.createCriteria(MovieShowDB.class, "shw"); if (dateFrom != null) { criteria.add(Restrictions.ge("shw.showDate", dateFrom)); } if (dateTo != null) { criteria.add(Restrictions.le("shw.showDate", dateTo)); } criteria.createAlias("shw.movie", "mov", JoinType.INNER_JOIN).createAlias("shw.hall", "hal", JoinType.INNER_JOIN); if (movieId != null) { criteria.add(Restrictions.eq("mov.id", movieId)); } if (breakByTheater) { criteria.createAlias("hal.theater", "the", JoinType.INNER_JOIN); if (theaterId != null) { criteria.add(Restrictions.eq("the.id", theaterId)); } criteria.addOrder(Order.asc("the.name")); } criteria.addOrder(Order.asc("mov.title")).addOrder(Order.asc("shw.showDate")) .addOrder(Order.asc("shw.showTime")); return (List<MovieShowDB>) criteria.list(); }
From source file:com.lp.server.anfrage.ejbfac.AnfrageReportFacBean.java
License:Open Source License
/** * Diese Methode liefert eine Liste von allen Anfragen zu einem bestimmten * Artikel, die nach den eingegebenen Kriterien des Benutzers * zusammengestellt wird. <br>//from w ww. jav a 2 s. c om * Achtung: Hibernate verwendet lazy initialization, d.h. der Zugriff auf * Collections muss innerhalb der Session erfolgen. * * @param reportAnfragestatistikKriterienDtoI * die Kriterien des Benutzers * @param theClientDto * der aktuelle Benutzer * @return ReportAnfragestatistikDto[] die Liste der Anfragen * @throws EJBExceptionLP * Ausnahme */ private ReportAnfragestatistikDto[] getReportAnfragestatistik( ReportAnfragestatistikKriterienDto reportAnfragestatistikKriterienDtoI, TheClientDto theClientDto) throws EJBExceptionLP { ReportAnfragestatistikDto[] aResult = null; SessionFactory factory = FLRSessionFactory.getFactory(); Session session = null; 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(FLRAnfragepositionlieferdatenReport.class); // flranfragepositionlieferdatenReport > flranfragepositionReport Criteria critAnfragepositionReport = crit.createCriteria( AnfragepositionFac.FLR_ANFRAGEPOSITIONLIEFERDATENREPORT_FLRANFRAGEPOSITIONREPORT); // flranfragepositionlieferdatenReport > flranfragepositionReport > // flrartikel Criteria critArtikel = critAnfragepositionReport .createCriteria(AnfragepositionFac.FLR_ANFRAGEPOSITION_FLRARTIKEL); // flranfragepositionReport > flranfrage Criteria critAnfrage = critAnfragepositionReport .createCriteria(AnfragepositionFac.FLR_ANFRAGEPOSITION_FLRANFRAGE); // Einschraenkung auf den gewaehlten Artikel if (reportAnfragestatistikKriterienDtoI.getArtikelIId() != null) { critArtikel.add(Restrictions.eq("i_id", reportAnfragestatistikKriterienDtoI.getArtikelIId())); } // Einschraenkung der Anfragen auf den aktuellen Mandanten critAnfrage.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant())); // Einschraenken nach Status critAnfrage.add(Restrictions.ne(AnfrageFac.FLR_ANFRAGE_ANFRAGESTATUS_C_NR, AnfrageServiceFac.ANFRAGESTATUS_ANGELEGT)); critAnfrage.add(Restrictions.ne(AnfrageFac.FLR_ANFRAGE_ANFRAGESTATUS_C_NR, AnfrageServiceFac.ANFRAGESTATUS_STORNIERT)); // Einschraenken nach Anfrageart critAnfrage.add(Restrictions.ne(AnfrageFac.FLR_ANFRAGE_ANFRAGEART_C_NR, AnfrageServiceFac.ANFRAGEART_LIEFERGRUPPE)); // Einschraenkung nach Belegdatum von - bis if (reportAnfragestatistikKriterienDtoI.getDVon() != null) { critAnfrage.add(Restrictions.ge(AnfrageFac.FLR_ANFRAGE_T_BELEGDATUM, reportAnfragestatistikKriterienDtoI.getDVon())); } if (reportAnfragestatistikKriterienDtoI.getDBis() != null) { critAnfrage.add(Restrictions.le(AnfrageFac.FLR_ANFRAGE_T_BELEGDATUM, reportAnfragestatistikKriterienDtoI.getDBis())); } // es wird nach der Belegnummer sortiert critAnfrage.addOrder(Order.asc("c_nr")); List<?> list = crit.list(); aResult = new ReportAnfragestatistikDto[list.size()]; int iIndex = 0; Iterator<?> it = list.iterator(); ReportAnfragestatistikDto reportDto = null; while (it.hasNext()) { FLRAnfragepositionlieferdatenReport flranfragepositionlieferdaten = (FLRAnfragepositionlieferdatenReport) it .next(); FLRAnfragepositionReport flranfrageposition = flranfragepositionlieferdaten .getFlranfragepositionreport(); FLRAnfrage flranfrage = flranfrageposition.getFlranfrage(); reportDto = new ReportAnfragestatistikDto(); reportDto.setAnfrageCNr(flranfrage.getC_nr()); reportDto.setKundenname( flranfrage.getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1()); Date datBelegdatum = flranfrage.getT_belegdatum(); reportDto.setBelegdatumCNr(Helper.formatDatum(datBelegdatum, theClientDto.getLocUi())); reportDto.setIIndex(new Integer(iIndex)); reportDto.setNAngebotenemenge(flranfragepositionlieferdaten.getN_anliefermenge()); reportDto.setILieferzeit(flranfragepositionlieferdaten.getI_anlieferzeit()); // der Preis wird in Mandantenwaehrung angezeigt, es gilt der // hinterlegte Wechselkurs Double ddWechselkurs = flranfrage.getF_wechselkursmandantwaehrungzuanfragewaehrung(); BigDecimal bdPreisinmandantenwaehrung = flranfragepositionlieferdaten .getN_nettogesamtpreisminusrabatt().multiply(new BigDecimal(ddWechselkurs.doubleValue())); bdPreisinmandantenwaehrung = Helper.rundeKaufmaennisch(bdPreisinmandantenwaehrung, 4); checkNumberFormat(bdPreisinmandantenwaehrung); reportDto.setNAngebotenerpreis(bdPreisinmandantenwaehrung); reportDto.setNAngefragtemenge(flranfrageposition.getN_menge()); aResult[iIndex] = reportDto; iIndex++; } } finally { closeSession(session); } return aResult; }
From source file:com.lp.server.anfrage.ejbfac.AnfrageReportFacBean.java
License:Open Source License
/** * Diese Methode liefert eine Liste von allen Lieferdaten der Anfragen eines * Mandanten, die nach den eingegebenen Kriterien des Benutzers * zusammengestellt wird. <br>/* w w w . j ava2 s .co m*/ * Achtung: Hibernate verwendet lazy initialization, d.h. der Zugriff auf * Collections muss innerhalb der Session erfolgen. * * @param kritDtoI * die Kriterien des Benutzers * @param theClientDto * der aktuelle Benutzer * @return ReportAnfrageLieferdatenuebersichtDto[] alle gewuenschten * Lieferdaten * @throws EJBExceptionLP * Ausnahme */ public ReportAnfrageLieferdatenuebersichtDto[] getListeReportAnfrageLiederdatenuebersicht( ReportAnfragelieferdatenuebersichtKriterienDto kritDtoI, TheClientDto theClientDto) throws EJBExceptionLP { ReportAnfrageLieferdatenuebersichtDto[] aResult = null; Session session = null; try { SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); // Criteria duerfen keine Texts oder Blobs enthalten! // Criteria anlegen fuer flranfragepositionlieferdatenreport > // flranfragepositionreport > flranfrage Criteria crit = session.createCriteria(FLRAnfragepositionlieferdatenReport.class); Criteria critAnfrageposition = crit.createCriteria( AnfragepositionFac.FLR_ANFRAGEPOSITIONLIEFERDATENREPORT_FLRANFRAGEPOSITIONREPORT); Criteria critAnfrage = critAnfrageposition .createCriteria(AnfragepositionFac.FLR_ANFRAGEPOSITION_FLRANFRAGE); // Einschraenken nach Mandant critAnfrage.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant())); // Einschraenken nach Status critAnfrage.add(Restrictions.ne(AnfrageFac.FLR_ANFRAGE_ANFRAGESTATUS_C_NR, AnfrageServiceFac.ANFRAGESTATUS_ANGELEGT)); critAnfrage.add(Restrictions.ne(AnfrageFac.FLR_ANFRAGE_ANFRAGESTATUS_C_NR, AnfrageServiceFac.ANFRAGESTATUS_STORNIERT)); // Einschraenken nach Anfrageart critAnfrage.add(Restrictions.ne(AnfrageFac.FLR_ANFRAGE_ANFRAGEART_C_NR, AnfrageServiceFac.ANFRAGEART_LIEFERGRUPPE)); // Belegdatum von bis: flranfragepositionlieferdatenreport > // flranfragepositionreport > flranfrage.t_belegdatum if (kritDtoI.getDVon() != null) { critAnfrage.add(Restrictions.ge(AnfrageFac.FLR_ANFRAGE_T_BELEGDATUM, kritDtoI.getDVon())); } if (kritDtoI.getDBis() != null) { critAnfrage.add(Restrictions.le(AnfrageFac.FLR_ANFRAGE_T_BELEGDATUM, kritDtoI.getDBis())); } // SK: Sortierung nach Bezeichnung und Bezeichnung2 critAnfrageposition.addOrder(Property.forName("c_bez").asc()); critAnfrageposition.addOrder(Property.forName("c_zbez").asc()); // Artikelcnr von bis: flranfragepositionlieferdaten > // flranfrageposition > flrartikel.c_nr Criteria critArtikel = critAnfrageposition .createCriteria(AnfragepositionFac.FLR_ANFRAGEPOSITION_FLRARTIKEL); if (kritDtoI.getArtikelCNrVon() != null || kritDtoI.getArtikelCNrBis() != null) { String cNrIdentvon = kritDtoI.getArtikelCNrVon(); String cNrIdentbis = kritDtoI.getArtikelCNrBis(); if (cNrIdentvon != null && cNrIdentvon.length() > 0 && cNrIdentbis != null && cNrIdentbis.length() > 0) { critArtikel.add(Restrictions.between("c_nr", cNrIdentvon, cNrIdentbis)); } else if (cNrIdentvon != null && cNrIdentvon.length() > 0) { critArtikel.add(Restrictions.ge("c_nr", cNrIdentvon)); } else if (cNrIdentbis != null && cNrIdentbis.length() > 0) { critArtikel.add(Restrictions.le("c_nr", cNrIdentbis)); } } // nur Projekt if (kritDtoI.getBNurProjekt()) { critAnfrage.add(Restrictions.eq("c_bez", kritDtoI.getProjektCBez())); } // inklusive Lieferdaten == null; Hibernate: per default null valued // properties are included // aber: aufgrund der Implementierung gilt: inklusive Lieferdaten == // 0 if (!kritDtoI.getBMitLiefermengenNull()) { crit.add(Restrictions.ne(AnfragepositionFac.FLR_ANFRAGEPOSITIONLIEFERDATEN_N_ANLIEFERMENGE, new BigDecimal(0))); } // Sortierung nach Projekt if (kritDtoI.getBSortierungNachProjekt()) { critAnfrage.addOrder(Property.forName("c_bez").asc()); } else { // per default wird nach der Artikelcnr sortiert critArtikel.addOrder(Property.forName("c_nr").asc()); } List<?> list = crit.list(); aResult = new ReportAnfrageLieferdatenuebersichtDto[list.size()]; int iIndex = 0; Iterator<?> it = list.iterator(); ReportAnfrageLieferdatenuebersichtDto reportDto = null; while (it.hasNext()) { FLRAnfragepositionlieferdatenReport flranfragepositionlieferdaten = (FLRAnfragepositionlieferdatenReport) it .next(); FLRAnfragepositionReport flranfrageposition = flranfragepositionlieferdaten .getFlranfragepositionreport(); FLRArtikel flrartikel = flranfrageposition.getFlrartikel(); FLRAnfrage flranfrage = flranfrageposition.getFlranfrage(); reportDto = new ReportAnfrageLieferdatenuebersichtDto(); reportDto.setCNrArtikelcnr(flranfrageposition.getFlrartikel().getC_nr()); reportDto.setNLiefermenge(flranfragepositionlieferdaten.getN_anliefermenge()); reportDto.setEinheitCNr(flrartikel.getEinheit_c_nr().trim()); reportDto.setArtikelIId(flrartikel.getI_id()); reportDto.setNLieferpreisInAnfragewaehrung( flranfragepositionlieferdaten.getN_nettogesamtpreisminusrabatt()); reportDto.setAnfrageIId(flranfrage.getI_id()); reportDto.setIAnlieferzeit(flranfragepositionlieferdaten.getI_anlieferzeit()); reportDto.setLieferantName( flranfrage.getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1()); reportDto.setAnfrageCNr(flranfrage.getC_nr()); reportDto.setAnfrageCBez(flranfrage.getC_bez()); reportDto.setWaehrungCNr(flranfrage.getWaehrung_c_nr_anfragewaehrung()); reportDto.setFWechselkursMandantwaehrungZuAnfragewaehrung( flranfrage.getF_wechselkursmandantwaehrungzuanfragewaehrung()); aResult[iIndex] = reportDto; iIndex++; } } finally { closeSession(session); } return aResult; }
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. * //from ww w. j a v a 2s . c o m * @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 w w w .j av a 2 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
private ReportAngebotsstatistikDto[] getReportAngebotsstatistik( ReportAngebotsstatistikKriterienDto reportAngebotsstatistikKriterienDtoI, TheClientDto theClientDto) throws EJBExceptionLP { ReportAngebotsstatistikDto[] aResult = null; SessionFactory factory = FLRSessionFactory.getFactory(); Session session = null;// w w w .j av a 2 s . c o m 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(FLRAngebotpositionReport.class); // flranfragepositionlieferdatenReport > flranfragepositionReport > // flrartikel Criteria critArtikel = crit.createCriteria("flrartikel"); // flranfragepositionReport > flranfrage Criteria critAngebot = crit.createCriteria("flrangebot"); // Einschraenkung der Anfragen auf den aktuellen Mandanten critAngebot.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant())); critArtikel.add(Restrictions.eq("i_id", reportAngebotsstatistikKriterienDtoI.getArtikelIId())); // Einschraenkung nach Belegdatum von - bis if (reportAngebotsstatistikKriterienDtoI.getDVon() != null) { critAngebot.add(Restrictions.ge(AngebotFac.FLR_ANGEBOT_T_BELEGDATUM, reportAngebotsstatistikKriterienDtoI.getDVon())); } if (reportAngebotsstatistikKriterienDtoI.getDBis() != null) { critAngebot.add(Restrictions.le(AngebotFac.FLR_ANGEBOT_T_BELEGDATUM, reportAngebotsstatistikKriterienDtoI.getDBis())); } critAngebot.addOrder(Order.desc("c_nr")); crit.addOrder(Order.asc("i_sort")); List<?> list = crit.list(); aResult = new ReportAngebotsstatistikDto[list.size()]; int iIndex = 0; Iterator<?> it = list.iterator(); ReportAngebotsstatistikDto reportDto = null; while (it.hasNext()) { FLRAngebotpositionReport flrangebotpositionlieferdaten = (FLRAngebotpositionReport) it.next(); FLRAngebot flrangebot = flrangebotpositionlieferdaten.getFlrangebot(); reportDto = new ReportAngebotsstatistikDto(); reportDto.setAngebotCNr(flrangebot.getC_nr()); reportDto.setKundenname(flrangebot.getFlrkunde().getFlrpartner().getC_name1nachnamefirmazeile1()); Date datBelegdatum = new Date(flrangebot.getT_belegdatum().getTime()); reportDto.setBelegdatumCNr(Helper.formatDatum(datBelegdatum, theClientDto.getLocUi())); reportDto.setIIndex(new Integer(iIndex)); reportDto.setNAngebotenemenge(flrangebotpositionlieferdaten.getN_menge()); // der Preis wird in Mandantenwaehrung angezeigt, es gilt der // hinterlegte Wechselkurs BigDecimal bdPreisinmandantenwaehrung = flrangebotpositionlieferdaten .getN_nettogesamtpreisplusversteckteraufschlagminusrabatte(); reportDto.setNAngebotenerpreis(bdPreisinmandantenwaehrung); reportDto.setNMaterialzuschlag(flrangebotpositionlieferdaten.getN_materialzuschlag()); reportDto.setNAngebotenemenge(flrangebotpositionlieferdaten.getN_menge()); aResult[iIndex] = reportDto; iIndex++; } } finally { closeSession(session); } return aResult; }
From source file:com.lp.server.artikel.ejbfac.ArtikelReportFacBean.java
License:Open Source License
@TransactionAttribute(TransactionAttributeType.NEVER) public JasperPrintLP printArtikelstatistik(Integer artikelIId, java.sql.Date dVon, java.sql.Date dBis, Integer iOption, boolean bMonatsstatistik, boolean bEingeschraenkt, boolean bMitHandlagerbewegungen, boolean bMitBewegungsvorschau, boolean bMitHistory, TheClientDto theClientDto) throws RemoteException { if (artikelIId == null) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FELD_DARF_NICHT_NULL_SEIN, new Exception("artikelIId == null")); }//from w w w . jav a2 s . co m boolean bWeReferenzAndrucken = false; try { ParametermandantDto parameter = getParameterFac().getMandantparameter(theClientDto.getMandant(), ParameterFac.KATEGORIE_ARTIKEL, ParameterFac.PARAMETER_WE_REFERENZ_IN_STATISTIK); bWeReferenzAndrucken = ((Boolean) parameter.getCWertAsObject()).booleanValue(); } catch (RemoteException ex) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER, ex); } // Erstellung des Reports HashMap<String, Object> parameter = new HashMap<String, Object>(); Session session = FLRSessionFactory.getFactory().openSession(); org.hibernate.Criteria crit = session.createCriteria(FLRLagerbewegung.class).createAlias("flrartikel", "a") .add(Restrictions.eq("a.i_id", artikelIId)) .createAlias("flrlager", "l"); if (bMitHistory == false) { crit.add(Restrictions.eq("b_historie", Helper.boolean2Short(false))); } parameter.put("P_MITBUCHUNGSDETAILS", new Boolean(bMitHistory)); parameter.put("P_MITBEWEGUNGSVORSCHAU", new Boolean(bMitBewegungsvorschau)); parameter.put("P_EINGESCHRAENKT", new Boolean(bEingeschraenkt)); if (!getMandantFac().darfAnwenderAufZusatzfunktionZugreifen( MandantFac.ZUSATZFUNKTION_ZENTRALER_ARTIKELSTAMM, theClientDto)) { crit.add(Restrictions.eq("l.mandant_c_nr", theClientDto.getMandant())); } else { if (getMandantFac().darfAnwenderAufZusatzfunktionZugreifen(MandantFac.ZUSATZFUNKTION_GETRENNTE_LAGER, theClientDto)) { crit.add(Restrictions.eq("l.mandant_c_nr", theClientDto.getMandant())); } } // PJ 17221 // crit.add( // Restrictions.not(Restrictions.eq("l.lagerart_c_nr", // LagerFac.LAGERART_WERTGUTSCHRIFT))); crit.addOrder(Order.desc(LagerFac.FLR_LAGERBEWEGUNG_T_BELEGDATUM)) .addOrder(Order.desc(LagerFac.FLR_LAGERBEWEGUNG_T_BUCHUNGSZEIT)) .addOrder(Order.desc(LagerFac.FLR_LAGERBEWEGUNG_B_ABGANG)); if (dVon != null) { crit.add(Restrictions.ge(LagerFac.FLR_LAGERBEWEGUNG_T_BELEGDATUM, dVon)); parameter.put("P_VON", new java.sql.Timestamp(dVon.getTime())); } if (dBis != null) { crit.add(Restrictions.le(LagerFac.FLR_LAGERBEWEGUNG_T_BELEGDATUM, dBis)); parameter.put("P_BIS", new java.sql.Timestamp(dBis.getTime())); } boolean darfEinkaufspreisSehen = getTheJudgeFac().hatRecht(RechteFac.RECHT_LP_DARF_PREISE_SEHEN_EINKAUF, theClientDto); boolean darfVerkaufspreisSehen = getTheJudgeFac().hatRecht(RechteFac.RECHT_LP_DARF_PREISE_SEHEN_VERKAUF, theClientDto); parameter.put("P_RECHT_LP_DARF_PREISE_SEHEN_EINKAUF", darfEinkaufspreisSehen); parameter.put("P_RECHT_LP_DARF_PREISE_SEHEN_VERKAUF", darfVerkaufspreisSehen); if (iOption == ArtikelFac.REPORT_ARTIKELSTATISTIK_OPTION_ALLE) { parameter.put("P_MITSUMMENZEILE", new Boolean(false)); parameter.put("P_BELEGARTEN", getTextRespectUISpr("lp.alle", theClientDto.getMandant(), theClientDto.getLocUi())); parameter.put("P_BELEGART_AUSWAHL", "lp.alle"); } else if (iOption == ArtikelFac.REPORT_ARTIKELSTATISTIK_OPTION_EK) { parameter.put("P_MITSUMMENZEILE", new Boolean(true)); parameter.put("P_BELEGARTEN", getTextRespectUISpr("lp.einkauf", theClientDto.getMandant(), theClientDto.getLocUi())); String[] belegarten = new String[1]; belegarten[0] = LocaleFac.BELEGART_BESTELLUNG; crit.add(Restrictions.in(LagerFac.FLR_LAGERBEWEGUNG_C_BELEGARTNR, belegarten)); parameter.put("P_BELEGART_AUSWAHL", "lp.einkauf"); } else if (iOption == ArtikelFac.REPORT_ARTIKELSTATISTIK_OPTION_VK) { parameter.put("P_MITSUMMENZEILE", new Boolean(true)); parameter.put("P_BELEGARTEN", getTextRespectUISpr("lp.verkauf", theClientDto.getMandant(), theClientDto.getLocUi())); String[] belegarten = new String[3]; belegarten[0] = LocaleFac.BELEGART_RECHNUNG; belegarten[1] = LocaleFac.BELEGART_LIEFERSCHEIN; belegarten[2] = LocaleFac.BELEGART_GUTSCHRIFT; crit.add(Restrictions.in(LagerFac.FLR_LAGERBEWEGUNG_C_BELEGARTNR, belegarten)); parameter.put("P_BELEGART_AUSWAHL", "lp.verkauf"); } else if (iOption == ArtikelFac.REPORT_ARTIKELSTATISTIK_OPTION_FERTIGUNG) { parameter.put("P_MITSUMMENZEILE", new Boolean(true)); parameter.put("P_BELEGARTEN", getTextRespectUISpr("lp.fertigung", theClientDto.getMandant(), theClientDto.getLocUi())); String[] belegarten = new String[2]; belegarten[0] = LocaleFac.BELEGART_LOS; belegarten[1] = LocaleFac.BELEGART_LOSABLIEFERUNG; crit.add(Restrictions.in(LagerFac.FLR_LAGERBEWEGUNG_C_BELEGARTNR, belegarten)); parameter.put("P_BELEGART_AUSWAHL", "lp.fertigung"); } if (bMitHandlagerbewegungen == false) { String[] belegarten = new String[1]; belegarten[0] = LocaleFac.BELEGART_HAND; crit.add(Restrictions.not(Restrictions.in(LagerFac.FLR_LAGERBEWEGUNG_C_BELEGARTNR, belegarten))); } parameter.put("P_MITHANDLAGERBEWEGUNGEN", new Boolean(bMitHandlagerbewegungen)); if (bEingeschraenkt) { crit.setMaxResults(50); } List<?> results = crit.list(); Iterator<?> resultListIterator = results.iterator(); ArrayList<Object[]> al = new ArrayList<Object[]>(); // PJ 14202 Session sessionInv = FLRSessionFactory.getFactory().openSession(); String sQuery = "FROM FLRInventurstand AS i WHERE i.flrartikel.i_id=" + artikelIId; if (dVon != null) { sQuery += " AND i.flrinventur.t_inventurdatum>='" + Helper.formatDateWithSlashes(dVon) + "'"; } if (dBis != null) { sQuery += " AND i.flrinventur.t_inventurdatum<='" + Helper.formatDateWithSlashes(dBis) + "'"; } sQuery += " ORDER BY i.flrinventur.t_inventurdatum DESC"; Query inventurliste = sessionInv.createQuery(sQuery); ArrayList alInventurliste = new ArrayList(); List<?> resultList = inventurliste.list(); Iterator<?> resultListInventur = resultList.iterator(); while (resultListInventur.hasNext()) { FLRInventurstand item = (FLRInventurstand) resultListInventur.next(); alInventurliste.add(item); } while (resultListIterator.hasNext()) { FLRLagerbewegung lagerbewegung = (FLRLagerbewegung) resultListIterator.next(); if (bMitHistory == true || lagerbewegung.getN_menge().doubleValue() > 0) { while (alInventurliste.size() > 0) { FLRInventurstand flr = (FLRInventurstand) alInventurliste.get(0); if (lagerbewegung.getT_belegdatum().getTime() <= flr.getFlrinventur().getT_inventurdatum() .getTime()) { Object[] zeile = new Object[REPORT_ARTIKELSTATISTIK_ANZAHL_SPALTEN]; zeile[REPORT_ARTIKELSTATISTIK_BEWEGUNGSVORSCHAU] = new Boolean(false); zeile[REPORT_ARTIKELSTATISTIK_BELEGART] = "Inventurstand"; java.sql.Timestamp ts = new java.sql.Timestamp( flr.getFlrinventur().getT_inventurdatum().getTime()); zeile[REPORT_ARTIKELSTATISTIK_SORTIERDATUM] = ts; zeile[REPORT_ARTIKELSTATISTIK_BELEGDATUM] = ts; zeile[REPORT_ARTIKELSTATISTIK_BUCHUNGSZEIT] = ts; zeile[REPORT_ARTIKELSTATISTIK_INVENTURMENGE] = flr.getN_inventurmenge(); zeile[REPORT_ARTIKELSTATISTIK_BELEGNUMMER] = flr.getFlrinventur().getC_bez(); al.add(zeile); alInventurliste.remove(0); } else { break; } } Object[] zeile = new Object[REPORT_ARTIKELSTATISTIK_ANZAHL_SPALTEN]; zeile[REPORT_ARTIKELSTATISTIK_BEWEGUNGSVORSCHAU] = new Boolean(false); String sBelegartCNr = lagerbewegung.getFlrbelegart().getC_nr(); zeile[REPORT_ARTIKELSTATISTIK_BELEGARTCNR] = sBelegartCNr; if (lagerbewegung.getFlrlager().getLagerart_c_nr().equals(LagerFac.LAGERART_WERTGUTSCHRIFT)) { zeile[REPORT_ARTIKELSTATISTIK_BELEGART] = LagerFac.LAGERART_WERTGUTSCHRIFT; } else { zeile[REPORT_ARTIKELSTATISTIK_BELEGART] = lagerbewegung.getC_belegartnr(); } if (lagerbewegung.getC_belegartnr().equals(LocaleFac.BELEGART_LOS) || lagerbewegung.getC_belegartnr().equals(LocaleFac.BELEGART_LOSABLIEFERUNG)) { LosDto losDto = getFertigungFac().losFindByPrimaryKey(lagerbewegung.getI_belegartid()); if (losDto.getStuecklisteIId() != null) { zeile[REPORT_ARTIKELSTATISTIK_STUECKLISTENARTIKEL] = getStuecklisteFac() .stuecklisteFindByPrimaryKey(losDto.getStuecklisteIId(), theClientDto) .getArtikelDto().formatArtikelbezeichnung(); } else { zeile[REPORT_ARTIKELSTATISTIK_STUECKLISTENARTIKEL] = "Materialliste"; } zeile[REPORT_ARTIKELSTATISTIK_LOS_STATUS] = losDto.getStatusCNr(); zeile[REPORT_ARTIKELSTATISTIK_LOS_BEGINN] = losDto.getTProduktionsbeginn(); zeile[REPORT_ARTIKELSTATISTIK_LOS_ENDE] = losDto.getTProduktionsende(); zeile[REPORT_ARTIKELSTATISTIK_LOS_PROJEKT] = losDto.getCProjekt(); zeile[REPORT_ARTIKELSTATISTIK_LOS_ABGELIFERT] = getFertigungFac() .getErledigteMenge(losDto.getIId(), theClientDto); if (losDto.getAuftragIId() != null) { zeile[REPORT_ARTIKELSTATISTIK_LOS_AUFTRAG] = getAuftragFac() .auftragFindByPrimaryKey(losDto.getAuftragIId()).getCNr(); } } if (lagerbewegung.getC_belegartnr().equals(LocaleFac.BELEGART_LIEFERSCHEIN) || lagerbewegung.getC_belegartnr().equals(LocaleFac.BELEGART_RECHNUNG)) { Integer aufposIId = null; if (lagerbewegung.getC_belegartnr().equals(LocaleFac.BELEGART_RECHNUNG)) { RechnungPositionDto rechPos = getRechnungFac() .rechnungPositionFindByPrimaryKeyOhneExc(lagerbewegung.getI_belegartpositionid()); if (rechPos != null) { aufposIId = rechPos.getAuftragpositionIId(); } } else if (lagerbewegung.getC_belegartnr().equals(LocaleFac.BELEGART_LIEFERSCHEIN)) { LieferscheinpositionDto lsPos = getLieferscheinpositionFac() .lieferscheinpositionFindByPrimaryKeyOhneExc( lagerbewegung.getI_belegartpositionid(), theClientDto); if (lsPos != null) { aufposIId = lsPos.getAuftragpositionIId(); } } if (aufposIId != null) { AuftragpositionDto aufposDto = getAuftragpositionFac() .auftragpositionFindByPrimaryKey(aufposIId); AuftragDto aDto = getAuftragFac().auftragFindByPrimaryKey(aufposDto.getBelegIId()); zeile[REPORT_ARTIKELSTATISTIK_AUFTRAG_AUSLOESER] = aDto.getCNr(); } } zeile[REPORT_ARTIKELSTATISTIK_LAGER] = lagerbewegung.getFlrlager().getC_nr(); zeile[REPORT_ARTIKELSTATISTIK_SNRCHNR] = lagerbewegung.getC_seriennrchargennr(); BigDecimal preis = new BigDecimal(0); BigDecimal wert = new BigDecimal(0); if (lagerbewegung.getB_abgang().intValue() == 0) { if (darfEinkaufspreisSehen) { if (lagerbewegung.getC_belegartnr().equals(LocaleFac.BELEGART_GUTSCHRIFT)) { RechnungPositionDto rechposDto = getRechnungFac() .rechnungPositionFindByPrimaryKeyOhneExc( lagerbewegung.getI_belegartpositionid()); if (rechposDto != null) { RechnungDto rechnungDto = getRechnungFac() .rechnungFindByPrimaryKey(rechposDto.getRechnungIId()); preis = rechposDto.getNNettoeinzelpreisplusversteckteraufschlagminusrabatte() .divide(rechnungDto.getNKurs(), 5, BigDecimal.ROUND_HALF_EVEN); zeile[REPORT_ARTIKELSTATISTIK_PREIS] = Helper.rundeKaufmaennisch(preis, 4); } else { preis = lagerbewegung.getN_einstandspreis(); zeile[REPORT_ARTIKELSTATISTIK_PREIS] = Helper.rundeKaufmaennisch(preis, 4); } } else { preis = lagerbewegung.getN_einstandspreis(); zeile[REPORT_ARTIKELSTATISTIK_PREIS] = Helper.rundeKaufmaennisch(preis, 4); } } else { zeile[REPORT_ARTIKELSTATISTIK_PREIS] = null; } } else { if (darfVerkaufspreisSehen) { preis = lagerbewegung.getN_verkaufspreis(); if (lagerbewegung.getC_belegartnr().equals(LocaleFac.BELEGART_LOS)) { preis = getLagerFac().getGemittelterGestehungspreisEinerAbgangsposition( LocaleFac.BELEGART_LOS, lagerbewegung.getI_belegartpositionid()); } zeile[REPORT_ARTIKELSTATISTIK_PREIS] = Helper.rundeKaufmaennisch(preis, 4); } else { zeile[REPORT_ARTIKELSTATISTIK_PREIS] = null; } } if (bWeReferenzAndrucken) { zeile[REPORT_ARTIKELSTATISTIK_WE_REFERENZ] = getLagerFac().getWareneingangsreferenzSubreport( lagerbewegung.getC_belegartnr(), lagerbewegung.getI_belegartpositionid(), lagerbewegung.getC_seriennrchargennr(), false, theClientDto); } wert = preis.multiply(lagerbewegung.getN_menge()); BigDecimal d = lagerbewegung.getN_menge(); // Wenn Lagerabgang, dann negative Menge if (Helper.short2boolean(lagerbewegung.getB_abgang())) { d = d.negate(); } zeile[REPORT_ARTIKELSTATISTIK_MENGE] = d; if (lagerbewegung.getFlrhersteller() != null) { zeile[REPORT_ARTIKELSTATISTIK_HERSTELLER] = lagerbewegung.getFlrhersteller().getC_nr(); } if (lagerbewegung.getFlrland() != null) { zeile[REPORT_ARTIKELSTATISTIK_URSPRUNGSLAND] = lagerbewegung.getFlrland().getC_lkz(); } try { BelegInfos bi = getLagerFac().getBelegInfos(lagerbewegung.getC_belegartnr(), lagerbewegung.getI_belegartid(), lagerbewegung.getI_belegartpositionid(), theClientDto); zeile[REPORT_ARTIKELSTATISTIK_BELEGNUMMER] = bi.getBelegnummer(); zeile[REPORT_ARTIKELSTATISTIK_FIRMA] = bi.getKundeLieferant(); zeile[REPORT_ARTIKELSTATISTIK_VERLEIHFAKTOR] = bi.getVerleihfaktor(); zeile[REPORT_ARTIKELSTATISTIK_VERLEIHTAGE] = bi.getVerleihtage(); zeile[REPORT_ARTIKELSTATISTIK_BUCHUNGSZEIT] = lagerbewegung.getT_buchungszeit(); if (lagerbewegung.getC_belegartnr().equals(LocaleFac.BELEGART_LIEFERSCHEIN)) { zeile[REPORT_ARTIKELSTATISTIK_LIEFERTERMIN] = bi.getBelegdatum(); } if (bi.getBelegdatum() != null) { zeile[REPORT_ARTIKELSTATISTIK_BELEGDATUM] = bi.getBelegdatum(); } else { zeile[REPORT_ARTIKELSTATISTIK_BELEGDATUM] = lagerbewegung.getT_belegdatum(); } zeile[REPORT_ARTIKELSTATISTIK_MATERIALZUSCHLAG] = bi.getBdMaterialzuschlag(); zeile[REPORT_ARTIKELSTATISTIK_SORTIERDATUM] = zeile[REPORT_ARTIKELSTATISTIK_BELEGDATUM]; // Wenn Belegdatum und Buchungsdatum gleich, dann wird die // Buchungszeit + Datum als Belegdatum verwendet if (Helper.cutTimestamp((Timestamp) zeile[REPORT_ARTIKELSTATISTIK_BELEGDATUM]) .equals(Helper.cutTimestamp((Timestamp) zeile[REPORT_ARTIKELSTATISTIK_BUCHUNGSZEIT]))) { zeile[REPORT_ARTIKELSTATISTIK_SORTIERDATUM] = lagerbewegung.getT_buchungszeit(); } // Fuer Monatsstatistik Calendar c = Calendar.getInstance(); if (bi.getBelegdatum() != null) { c.setTimeInMillis(bi.getBelegdatum().getTime()); } else { c.setTimeInMillis(lagerbewegung.getT_buchungszeit().getTime()); } c.set(Calendar.HOUR_OF_DAY, 0); c.set(Calendar.MINUTE, 0); c.set(Calendar.SECOND, 0); c.set(Calendar.MILLISECOND, 0); c.set(Calendar.DAY_OF_MONTH, 1); // Schon enthalten? al.add(zeile); } catch (RemoteException ex2) { throwEJBExceptionLPRespectOld(ex2); } } } // while (alInventurliste.size() > 0) { FLRInventurstand flr = (FLRInventurstand) alInventurliste.get(0); Object[] zeile = new Object[REPORT_ARTIKELSTATISTIK_ANZAHL_SPALTEN]; zeile[REPORT_ARTIKELSTATISTIK_BELEGART] = "Inventurstand"; zeile[REPORT_ARTIKELSTATISTIK_BEWEGUNGSVORSCHAU] = new Boolean(false); java.sql.Timestamp ts = new java.sql.Timestamp(flr.getFlrinventur().getT_inventurdatum().getTime()); zeile[REPORT_ARTIKELSTATISTIK_SORTIERDATUM] = ts; zeile[REPORT_ARTIKELSTATISTIK_BELEGDATUM] = ts; zeile[REPORT_ARTIKELSTATISTIK_BUCHUNGSZEIT] = ts; zeile[REPORT_ARTIKELSTATISTIK_INVENTURMENGE] = flr.getN_inventurmenge(); zeile[REPORT_ARTIKELSTATISTIK_BELEGNUMMER] = flr.getFlrinventur().getC_bez(); al.add(zeile); alInventurliste.remove(0); } sessionInv.close(); session.close(); ArtikelDto aDto = getArtikelFac().artikelFindByPrimaryKey(artikelIId, theClientDto); parameter.put("P_ARTIKEL", aDto.formatArtikelbezeichnung()); parameter.put("P_ARTIKELEINHEIT", aDto.getEinheitCNr().trim()); parameter.put("P_BESTELLEINHEIT", aDto.getEinheitCNrBestellung()); parameter.put("P_MULTIPLIKATORBESTELLMENGE", aDto.getNUmrechnungsfaktor()); parameter.put("P_BESTELLEINHEIT_INVERS", Helper.short2Boolean(aDto.getbBestellmengeneinheitInvers())); if (bMonatsstatistik == true) { sAktuellerReport = ArtikelReportFac.REPORT_MONATSSTATISTIK; for (int i = 0; i < al.size() - 1; i = i + 1) { for (int j = al.size() - 1; j > i; j = j - 1) { Object[] erstes = (Object[]) al.get(j - 1); Object[] zweites = (Object[]) al.get(j); if (((java.sql.Timestamp) erstes[REPORT_ARTIKELSTATISTIK_BELEGDATUM]) .before(((java.sql.Timestamp) zweites[REPORT_ARTIKELSTATISTIK_BELEGDATUM]))) { Object[] temp = erstes; al.set(j - 1, zweites); al.set(j, temp); } } } // sortiere nach Jahr/Monat java.text.DateFormatSymbols symbols = new java.text.DateFormatSymbols(theClientDto.getLocUi()); String[] defaultMonths = symbols.getMonths(); GregorianCalendar cAktuell = new GregorianCalendar(); if (al.size() > 0) { Object[] erste = (Object[]) al.get(al.size() - 1); Object[] letzte = (Object[]) al.get(0); cAktuell.setTimeInMillis(((Timestamp) letzte[REPORT_ARTIKELSTATISTIK_BELEGDATUM]).getTime()); ArrayList alMonate = new ArrayList(); while (cAktuell.getTimeInMillis() >= ((Timestamp) erste[REPORT_ARTIKELSTATISTIK_BELEGDATUM]) .getTime()) { BigDecimal mengeZugang = new BigDecimal(0); BigDecimal wertZugang = new BigDecimal(0); BigDecimal mengeAbgang = new BigDecimal(0); BigDecimal wertAbgang = new BigDecimal(0); for (int i = 0; i < al.size(); i++) { Object[] zeile = (Object[]) al.get(i); Timestamp d = (Timestamp) zeile[REPORT_ARTIKELSTATISTIK_BELEGDATUM]; Calendar cZeile = Calendar.getInstance(); cZeile.setTimeInMillis(d.getTime()); if (cAktuell.get(Calendar.MONTH) == cZeile.get(Calendar.MONTH) && cAktuell.get(Calendar.YEAR) == cZeile.get(Calendar.YEAR)) { BigDecimal mengeZeile = (BigDecimal) zeile[REPORT_ARTIKELSTATISTIK_MENGE]; BigDecimal preisZeile = (BigDecimal) zeile[REPORT_ARTIKELSTATISTIK_PREIS]; if (mengeZeile != null && preisZeile != null) { boolean bGutschrift = false; if (zeile[REPORT_ARTIKELSTATISTIK_BELEGART] != null && zeile[REPORT_ARTIKELSTATISTIK_BELEGART] .equals(LocaleFac.BELEGART_GUTSCHRIFT)) { bGutschrift = true; } // SP18027 if (mengeZeile.doubleValue() > 0) { if (bGutschrift == true) { mengeAbgang = mengeAbgang.subtract(mengeZeile.abs()); wertAbgang = wertAbgang.subtract(mengeZeile.abs().multiply(preisZeile)); } else { mengeZugang = mengeZugang.add(mengeZeile); wertZugang = wertZugang.add(mengeZeile.multiply(preisZeile)); } } else { mengeAbgang = mengeAbgang.add(mengeZeile.abs()); wertAbgang = wertAbgang.add(mengeZeile.abs().multiply(preisZeile)); } } } } Object[] zeileMonate = new Object[KundeReportFac.REPORT_MONATSSTATISTIK_ANZAHL_FELDER]; zeileMonate[REPORT_MONATSSTATISTIK_MONAT] = defaultMonths[cAktuell.get(Calendar.MONTH)]; zeileMonate[REPORT_MONATSSTATISTIK_JAHR] = cAktuell.get(Calendar.YEAR); zeileMonate[REPORT_MONATSSTATISTIK_ABGANG_MENGE] = mengeAbgang; zeileMonate[REPORT_MONATSSTATISTIK_ABGANG_WERT] = wertAbgang; zeileMonate[REPORT_MONATSSTATISTIK_ZUGANG_MENGE] = mengeZugang; zeileMonate[REPORT_MONATSSTATISTIK_ZUGANG_WERT] = wertZugang; alMonate.add(zeileMonate); cAktuell.set(Calendar.DAY_OF_MONTH, 1); cAktuell.getTimeInMillis(); cAktuell.set(Calendar.MONTH, cAktuell.get(Calendar.MONTH) - 1); cAktuell.getTimeInMillis(); cAktuell.set(Calendar.DAY_OF_MONTH, cAktuell.getActualMaximum(Calendar.DAY_OF_MONTH)); cAktuell.getTimeInMillis(); } Object[][] dataTemp = new Object[1][1]; data = (Object[][]) alMonate.toArray(dataTemp); initJRDS(parameter, ArtikelFac.REPORT_MODUL, ArtikelReportFac.REPORT_MONATSSTATISTIK, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); return getReportPrint(); } else { return null; } } else { if (bMitBewegungsvorschau == true) { // SP 1008 OHNE Internebestellung ArrayList<?> list = getInternebestellungFac().getBewegungsvorschauSortiert(artikelIId, false, theClientDto); BewegungsvorschauDto[] returnArray = new BewegungsvorschauDto[list.size()]; BewegungsvorschauDto[] dtos = (com.lp.server.bestellung.service.BewegungsvorschauDto[]) list .toArray(returnArray); for (int i = 0; i < dtos.length; i++) { BewegungsvorschauDto dto = dtos[i]; if (dto.getTLiefertermin() != null) { Object[] zeile = new Object[REPORT_ARTIKELSTATISTIK_ANZAHL_SPALTEN]; zeile[REPORT_ARTIKELSTATISTIK_BEWEGUNGSVORSCHAU] = new Boolean(true); if (dto.getCBelegartCNr() != null && dto.getCBelegartCNr().equals(LocaleFac.BELEGART_LOSABLIEFERUNG)) { LosDto losDto = getFertigungFac().losFindByPrimaryKey(dto.getIBelegIId()); zeile[REPORT_ARTIKELSTATISTIK_LOS_STATUS] = losDto.getStatusCNr(); zeile[REPORT_ARTIKELSTATISTIK_LOS_BEGINN] = losDto.getTProduktionsbeginn(); zeile[REPORT_ARTIKELSTATISTIK_LOS_ENDE] = losDto.getTProduktionsende(); zeile[REPORT_ARTIKELSTATISTIK_LOS_PROJEKT] = losDto.getCProjekt(); zeile[REPORT_ARTIKELSTATISTIK_LOS_ABGELIFERT] = getFertigungFac() .getErledigteMenge(losDto.getIId(), theClientDto); if (losDto.getAuftragIId() != null) { zeile[REPORT_ARTIKELSTATISTIK_LOS_AUFTRAG] = getAuftragFac() .auftragFindByPrimaryKey(losDto.getAuftragIId()).getCNr(); } } zeile[REPORT_ARTIKELSTATISTIK_BELEGART] = dto.getCBelegartCNr(); zeile[REPORT_ARTIKELSTATISTIK_BELEGNUMMER] = dto.getCBelegnummer(); if (dto.getPartnerDto() != null) { zeile[REPORT_ARTIKELSTATISTIK_FIRMA] = dto.getPartnerDto().formatFixTitelName1Name2(); } else { zeile[REPORT_ARTIKELSTATISTIK_FIRMA] = dto.getCProjekt(); } // PJ17836 zeile[REPORT_ARTIKELSTATISTIK_SORTIERDATUM] = dto.getTLiefertermin(); if (dto.getTABTerminBestellung() != null) { zeile[REPORT_ARTIKELSTATISTIK_SORTIERDATUM] = new Timestamp( dto.getTABTerminBestellung().getTime()); } zeile[REPORT_ARTIKELSTATISTIK_BELEGDATUM] = dto.getTLiefertermin(); zeile[REPORT_ARTIKELSTATISTIK_BUCHUNGSZEIT] = dto.getTLiefertermin(); zeile[REPORT_ARTIKELSTATISTIK_LIEFERTERMIN] = dto.getTLiefertermin(); zeile[REPORT_ARTIKELSTATISTIK_MENGE] = dto.getNMenge(); al.add(zeile); } } // PJ17817 ReportAnfragestatistikKriterienDto kritDtoI = new ReportAnfragestatistikKriterienDto(); kritDtoI.setArtikelIId(artikelIId); ReportRahmenreservierungDto[] aReportRahmenreservierungDto = getReportRahmenreservierung(kritDtoI, theClientDto); for (int i = 0; i < aReportRahmenreservierungDto.length; i++) { ReportRahmenreservierungDto reportRahmenreservierungDto = (ReportRahmenreservierungDto) aReportRahmenreservierungDto[i]; Object[] zeile = new Object[REPORT_ARTIKELSTATISTIK_ANZAHL_SPALTEN]; zeile[REPORT_ARTIKELSTATISTIK_BEWEGUNGSVORSCHAU] = new Boolean(true); zeile[REPORT_ARTIKELSTATISTIK_BELEGART] = "Rahmenreservierung"; zeile[REPORT_ARTIKELSTATISTIK_BELEGNUMMER] = reportRahmenreservierungDto.getAuftragCNr(); zeile[REPORT_ARTIKELSTATISTIK_FIRMA] = reportRahmenreservierungDto.getCKundenname(); zeile[REPORT_ARTIKELSTATISTIK_SORTIERDATUM] = reportRahmenreservierungDto .getTUebersteuerterLiefertermin(); zeile[REPORT_ARTIKELSTATISTIK_LIEFERTERMIN] = reportRahmenreservierungDto .getTUebersteuerterLiefertermin(); zeile[REPORT_ARTIKELSTATISTIK_BELEGDATUM] = reportRahmenreservierungDto .getTUebersteuerterLiefertermin(); zeile[REPORT_ARTIKELSTATISTIK_BUCHUNGSZEIT] = reportRahmenreservierungDto .getTUebersteuerterLiefertermin(); zeile[REPORT_ARTIKELSTATISTIK_MENGE] = reportRahmenreservierungDto.getNOffeneMenge().negate(); al.add(zeile); } RahmenbestelltReportDto[] rahmenbestelltDtos = getReportRahmenbestelltDto(artikelIId, theClientDto); for (int i = 0; i < rahmenbestelltDtos.length; i++) { RahmenbestelltReportDto dto = rahmenbestelltDtos[i]; Object[] zeile = new Object[REPORT_ARTIKELSTATISTIK_ANZAHL_SPALTEN]; zeile[REPORT_ARTIKELSTATISTIK_BEWEGUNGSVORSCHAU] = new Boolean(true); zeile[REPORT_ARTIKELSTATISTIK_BELEGART] = "Rahmenbestellt"; zeile[REPORT_ARTIKELSTATISTIK_BELEGNUMMER] = dto.getBestellnummer(); zeile[REPORT_ARTIKELSTATISTIK_FIRMA] = dto.getLieferant(); zeile[REPORT_ARTIKELSTATISTIK_LIEFERTERMIN] = dto.getTLiefertermin(); zeile[REPORT_ARTIKELSTATISTIK_BELEGDATUM] = dto.getTLiefertermin(); zeile[REPORT_ARTIKELSTATISTIK_BUCHUNGSZEIT] = dto.getTLiefertermin(); zeile[REPORT_ARTIKELSTATISTIK_SORTIERDATUM] = dto.getTLiefertermin(); zeile[REPORT_ARTIKELSTATISTIK_MENGE] = dto.getOffenmenge(); // Nettoeinzelpreis zeile[REPORT_ARTIKELSTATISTIK_PREIS] = dto.getPreis(); al.add(zeile); } } Timestamp tHeute = new Timestamp(System.currentTimeMillis()); Timestamp tMorgen = new Timestamp(System.currentTimeMillis() + (24 * 3600000)); for (int i = 0; i < al.size(); i++) { // Bei Bewegungsvorschau-Daten kann der Liefertermin fruehestens // morgen sein Object[] zeile = (Object[]) al.get(i); if (((Boolean) zeile[REPORT_ARTIKELSTATISTIK_BEWEGUNGSVORSCHAU]) == true) { Timestamp t = (Timestamp) zeile[REPORT_ARTIKELSTATISTIK_SORTIERDATUM]; if (t.before(tHeute)) { zeile[REPORT_ARTIKELSTATISTIK_SORTIERDATUM] = tMorgen; al.set(i, zeile); } } } // PJ17836 immer nach diesem Sortierdatum sortieren for (int i = 0; i < al.size() - 1; i = i + 1) { for (int j = al.size() - 1; j > i; j = j - 1) { Object[] erstes = (Object[]) al.get(j - 1); Object[] zweites = (Object[]) al.get(j); if (((java.sql.Timestamp) erstes[REPORT_ARTIKELSTATISTIK_SORTIERDATUM]) .before(((java.sql.Timestamp) zweites[REPORT_ARTIKELSTATISTIK_SORTIERDATUM]))) { Object[] temp = erstes; al.set(j - 1, zweites); al.set(j, temp); } } } index = -1; sAktuellerReport = ArtikelReportFac.REPORT_ARTIKELSTATISTIK; Object[][] returnArray = new Object[al.size()][16]; data = (Object[][]) al.toArray(returnArray); initJRDS(parameter, ArtikelFac.REPORT_MODUL, ArtikelReportFac.REPORT_ARTIKELSTATISTIK, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); return getReportPrint(); } }
From source file:com.lp.server.artikel.ejbfac.ArtikelReportFacBean.java
License:Open Source License
/** * Diese Methode liefert eine Liste von allen Auftraegen zu einem bestimmten * Artikel, die nach den eingegebenen Kriterien des Benutzers * zusammengestellt wird. <br>//from w w w . j a v a2 s .c om * Achtung: Hibernate verwendet lazy initialization, d.h. der Zugriff auf * Collections muss innerhalb der Session erfolgen. * * @param kritDtoI * die Kriterien des Benutzers * @param theClientDto * der aktuelle Benutzer * @return ReportRahmenreservierungDto[] die Liste der Auftraege * @throws EJBExceptionLP * Ausnahme */ public ReportRahmenreservierungDto[] getReportRahmenreservierung(ReportAnfragestatistikKriterienDto kritDtoI, TheClientDto theClientDto) throws EJBExceptionLP { ReportRahmenreservierungDto[] aResult = null; SessionFactory factory = FLRSessionFactory.getFactory(); Session session = null; try { session = factory.openSession(); // Hiberante Criteria fuer alle Tabellen ausgehend von meiner // Haupttabelle anlegen, // nach denen ich filtern und sortieren kann Criteria critAuftragposition = session.createCriteria(FLRAuftragpositionReport.class); // flrauftragpositionreport > flrauftrag Criteria critAuftrag = critAuftragposition .createCriteria(AuftragpositionFac.FLR_AUFTRAGPOSITION_FLRAUFTRAG); // Einschraenken auf Rahmenauftraege des Mandanten critAuftrag.add(Restrictions.eq(AuftragFac.FLR_AUFTRAG_MANDANT_C_NR, theClientDto.getMandant())); critAuftrag.add( Restrictions.eq(AuftragFac.FLR_AUFTRAG_AUFTRAGART_C_NR, AuftragServiceFac.AUFTRAGART_RAHMEN)); // keine stornierten oder erledigten Auftraege. Collection<String> cStati = new LinkedList<String>(); cStati.add(AuftragServiceFac.AUFTRAGSTATUS_STORNIERT); cStati.add(AuftragServiceFac.AUFTRAGSTATUS_ERLEDIGT); critAuftrag.add(Restrictions.not(Restrictions.in(AuftragFac.FLR_AUFTRAG_AUFTRAGSTATUS_C_NR, cStati))); // Einschraenkung auf den gewaehlten Artikel if (kritDtoI.getArtikelIId() != null) { critAuftragposition.add(Restrictions.eq(AuftragpositionFac.FLR_AUFTRAGPOSITION_ARTIKEL_I_ID, kritDtoI.getArtikelIId())); } /* * // die offene Menge muss != null > 0 sein * critAuftragposition.add( * Restrictions.isNotNull(AuftragpositionFac. * FLR_AUFTRAGPOSITION_N_MENGE)); * critAuftragposition.add(Restrictions.gt(AuftragpositionFac. * FLR_AUFTRAGPOSITION_N_OFFENEMENGE, new BigDecimal(0))); */ // Einschraenkung nach Rahmentermin von - bis if (kritDtoI.getDVon() != null) { critAuftragposition.add(Restrictions.ge( AuftragpositionFac.FLR_AUFTRAGPOSITION_T_UEBERSTEUERTERLIEFERTERMIN, kritDtoI.getDVon())); } if (kritDtoI.getDBis() != null) { critAuftragposition.add(Restrictions.le( AuftragpositionFac.FLR_AUFTRAGPOSITION_T_UEBERSTEUERTERLIEFERTERMIN, kritDtoI.getDBis())); } // es wird nach Belegnummer und Artikel sortiert critAuftrag.addOrder(Order.asc(AuftragFac.FLR_AUFTRAG_C_NR)); List<?> list = critAuftrag.list(); aResult = new ReportRahmenreservierungDto[list.size()]; Iterator<?> it = list.iterator(); int iIndex = 0; while (it.hasNext()) { FLRAuftragpositionReport flrauftragposition = (FLRAuftragpositionReport) it.next(); FLRAuftragReport flrauftrag = flrauftragposition.getFlrauftrag(); FLRPartner flrpartner = flrauftrag.getFlrkunde().getFlrpartner(); ReportRahmenreservierungDto reportDto = new ReportRahmenreservierungDto(); reportDto.setAuftragCNr(flrauftrag.getC_nr()); reportDto.setAuftragIId(flrauftrag.getI_id()); reportDto.setArtikelIId(flrauftragposition.getArtikel_i_id()); reportDto.setCBez(flrauftrag.getC_bez()); reportDto.setCKundenname(flrpartner.getC_name1nachnamefirmazeile1()); reportDto.setTUebersteuerterLiefertermin( new Timestamp(flrauftragposition.getT_uebersteuerterliefertermin().getTime())); reportDto.setNMenge(flrauftragposition.getN_menge()); // offene (rahmenmenge-abgerufenemenge) reportDto.setNOffeneMenge(flrauftragposition.getN_offenerahmenmenge()); // geliefert if (flrauftragposition.getN_offenerahmenmenge() != null) { reportDto.setNGelieferteMenge( flrauftragposition.getN_menge().subtract(flrauftragposition.getN_offenerahmenmenge())); } else { reportDto.setNGelieferteMenge(flrauftragposition.getN_menge()); } aResult[iIndex] = reportDto; iIndex++; } } finally { try { session.close(); } catch (HibernateException he) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_HIBERNATE, he); } } return aResult; }
From source file:com.lp.server.artikel.ejbfac.LagerFacBean.java
License:Open Source License
public BigDecimal getAbgewertetenGestehungspreis(BigDecimal gestpreis, Integer artikelIId, Integer lagerIId, Timestamp tStichtag, int iMonate, double dProzent) { Session session = FLRSessionFactory.getFactory().openSession(); org.hibernate.Criteria crit = session.createCriteria(FLRLagerbewegung.class); crit.add(Restrictions.eq(LagerFac.FLR_LAGERBEWEGUNG_ARTIKEL_I_ID, artikelIId)); crit.add(Restrictions.eq(LagerFac.FLR_LAGERBEWEGUNG_B_HISTORIE, Helper.boolean2Short(false))); if (lagerIId != null) { crit.add(Restrictions.eq(LagerFac.FLR_LAGERBEWEGUNG_LAGER_I_ID, lagerIId)); }//from w w w. j a v a2 s . c o m if (tStichtag != null) { crit.add(Restrictions.le(LagerFac.FLR_LAGERBEWEGUNG_T_BELEGDATUM, tStichtag)); } else { crit.add(Restrictions.lt(LagerFac.FLR_LAGERBEWEGUNG_T_BELEGDATUM, Helper.cutTimestamp(new Timestamp(System.currentTimeMillis() + 24 * 3600000)))); } // CK: Kundenwunsch am 2009-03-04: Handbuchungen und // Inventurbuchungen // sollen nicht beruecksichtigt werden String[] belegarten = new String[2]; belegarten[0] = LocaleFac.BELEGART_INVENTUR; belegarten[1] = LocaleFac.BELEGART_HAND; crit.add(Restrictions.not(Restrictions.in(LagerFac.FLR_LAGERBEWEGUNG_C_BELEGARTNR, belegarten))); // CK: Kundenwunsch am 2009-03-04: Es muessen sowohl // Zubuchungen, als auch Abbuchungen // beruecksichtigt werden // crit.add(Restrictions.eq(LagerFac.FLR_LAGERBEWEGUNG_B_ABGANG, Helper // .boolean2Short(false))); crit.addOrder(Order.desc(LagerFac.FLR_LAGERBEWEGUNG_T_BUCHUNGSZEIT)); List results = crit.list(); Iterator resultListIterator = results.iterator(); ArrayList<FLRLagerbewegung> alZugaenge = new ArrayList<FLRLagerbewegung>(); while (resultListIterator.hasNext()) { FLRLagerbewegung lagerbewegung = (FLRLagerbewegung) resultListIterator.next(); if (lagerbewegung.getN_menge().doubleValue() > 0) { // Datum des letzten Zugangs alZugaenge.add(lagerbewegung); } } if (alZugaenge.size() > 0) { // Lagerbewegungen nach Belegdatum sortieren for (int m = alZugaenge.size() - 1; m > 0; --m) { for (int n = 0; n < m; ++n) { FLRLagerbewegung o1 = (FLRLagerbewegung) alZugaenge.get(n); FLRLagerbewegung o2 = (FLRLagerbewegung) alZugaenge.get(n + 1); if (o1.getT_belegdatum().before(o2.getT_belegdatum())) { alZugaenge.set(n, o2); alZugaenge.set(n + 1, o1); } } } // nun zaehlt das juengste Belegdatum FLRLagerbewegung lagerbewegung = (FLRLagerbewegung) alZugaenge.get(0); java.util.Calendar cAbDemWirdAbgewertet = java.util.Calendar.getInstance(); if (tStichtag != null) { cAbDemWirdAbgewertet.setTimeInMillis(tStichtag.getTime()); } cAbDemWirdAbgewertet.set(java.util.Calendar.MONTH, cAbDemWirdAbgewertet.get(java.util.Calendar.MONTH) - iMonate); double dAbwertung = 0; while (dAbwertung < 100 && lagerbewegung.getT_buchungszeit().getTime() < cAbDemWirdAbgewertet.getTimeInMillis()) { dAbwertung += dProzent; cAbDemWirdAbgewertet.set(java.util.Calendar.MONTH, cAbDemWirdAbgewertet.get(java.util.Calendar.MONTH) - 1); } return Helper.rundeKaufmaennisch(gestpreis.multiply(new BigDecimal(1 - (dAbwertung / 100))), 4); } session.close(); return new BigDecimal(0); }