List of usage examples for org.hibernate.criterion Restrictions not
public static Criterion not(Criterion expression)
From source file:com.jeysan.modules.orm.hibernate.HibernateDao.java
License:Apache License
/** * ??Criterion,./*from w w w . j ava 2 s. c om*/ */ protected Criterion buildCriterion(final String propertyName, final Object propertyValue, final MatchType matchType) { Assert.hasText(propertyName, "propertyName?"); Criterion criterion = null; //?MatchTypecriterion switch (matchType) { case EQ: criterion = Restrictions.eq(propertyName, propertyValue); break; case NEQ: if (propertyValue == null) criterion = Restrictions.isNotNull(propertyName); else criterion = Restrictions.not(Restrictions.eq(propertyName, propertyValue)); break; case NULL: criterion = Restrictions.isNull(propertyName); break; case LIKE: criterion = Restrictions.like(propertyName, (String) propertyValue, MatchMode.ANYWHERE); break; case LE: criterion = Restrictions.le(propertyName, propertyValue); break; case LT: criterion = Restrictions.lt(propertyName, propertyValue); break; case GE: criterion = Restrictions.ge(propertyName, propertyValue); break; case GT: criterion = Restrictions.gt(propertyName, propertyValue); } return criterion; }
From source file:com.kodemore.hibernate.criteria.KmAbstractCriteria.java
License:Open Source License
public void addIsNotIn(String property, Object[] v) { if (v == null || v.length == 0) addTrue();// w w w . j a v a2 s. c o m else _add(Restrictions.not(Restrictions.in(property, v))); }
From source file:com.kodemore.hibernate.criteria.KmAbstractCriteria.java
License:Open Source License
public void addIsNotIn(String property, Collection<?> v) { if (v == null || v.isEmpty()) addTrue();/*from w w w .j ava 2 s. com*/ else _add(Restrictions.not(Restrictions.in(property, v))); }
From source file:com.krawler.common.util.BuildCriteria.java
License:Open Source License
private static Criterion getCriteriaByCondition(Object value, Integer criteriaVal, String propertyname) { Criterion Criteriaobj;//from w w w . ja v a2 s. co m switch (criteriaVal) { case ISNOTNULL: Criteriaobj = Restrictions.isNotNull(propertyname); break; case NOTIN: String[] strArr = String.valueOf(value).split(","); List ls = Arrays.asList(strArr); Criteriaobj = Restrictions.not(Restrictions.in(propertyname, ls)); break; case LIKE: Criteriaobj = Restrictions.or(Restrictions.like(propertyname, value + "%"), Restrictions.like(propertyname, "% " + value + "%")); break; case LE: Criteriaobj = Restrictions.le(propertyname, value); break; case GE: Criteriaobj = Restrictions.ge(propertyname, value); break; case ISNULL: Criteriaobj = Restrictions.isNull(propertyname); break; case IN: strArr = String.valueOf(value).split(","); ls = Arrays.asList(strArr); Criteriaobj = Restrictions.in(propertyname, ls); break; case NE: Criteriaobj = Restrictions.ne(propertyname, value); break; case LT: Criteriaobj = Restrictions.lt(propertyname, value); break; case GT: Criteriaobj = Restrictions.gt(propertyname, value); break; case EQ: default: Criteriaobj = Restrictions.eq(propertyname, value); break; } return Criteriaobj; }
From source file:com.lp.server.artikel.ejbfac.ArtikelbestelltFacBean.java
License:Open Source License
/** * Bestelltliste pruefen. 1. Bestehende Eintraege. 2. Bestellungen pruefen, * ob die Bestelltwerte richtig eingetragen sind. * /*from w w w.ja v a 2 s.c o m*/ * @param theClientDto der aktuelle Benutzer */ @TransactionAttribute(TransactionAttributeType.NEVER) public void pruefeBestelltliste(TheClientDto theClientDto) { Session session = FLRSessionFactory.getFactory().openSession(); try { session = FLRSessionFactory.getFactory().openSession(); String hqlDelete = "delete FROM FLRArtikelbestellt"; session.createQuery(hqlDelete).executeUpdate(); session.close(); // ------------------------------------------------------------------ // ---- // Alle Eintraege in den Bestellungen pruefen // ------------------------------------------------------------------ // ---- session = FLRSessionFactory.getFactory().openSession(); org.hibernate.Criteria besPos = session.createCriteria(FLRBestellposition.class); org.hibernate.Criteria best = besPos .createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRBESTELLUNG); // Filter auf den Mandanten best.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_MANDANT_C_NR, theClientDto.getMandant())); // keine Rahmenbestellungen. best.add(Restrictions.not(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_BESTELLUNGART_C_NR, BestellungFac.BESTELLUNGART_RAHMENBESTELLUNG_C_NR))); // keine stornierten und erledigten. Collection<String> cStati = new LinkedList<String>(); cStati.add(BestellungFac.BESTELLSTATUS_STORNIERT); cStati.add(BestellungFac.BESTELLSTATUS_ERLEDIGT); best.add(Restrictions.not(Restrictions.in(BestellungFac.FLR_BESTELLUNG_BESTELLUNGSTATUS_C_NR, cStati))); // Query ausfuehren List<?> besposList = besPos.list(); Iterator<?> besposListIterator = besposList.iterator(); while (besposListIterator.hasNext()) { FLRBestellposition bespos = (FLRBestellposition) besposListIterator.next(); if (bespos.getBestellpositionart_c_nr().equals(BestellpositionFac.BESTELLPOSITIONART_IDENT) || bespos.getBestellpositionart_c_nr() .equals(BestellpositionFac.BESTELLPOSITIONART_HANDEINGABE)) { if (bespos.getBestellpositionstatus_c_nr() != null && (bespos.getBestellpositionstatus_c_nr() .equals(BestellpositionFac.BESTELLPOSITIONSTATUS_OFFEN) || bespos.getBestellpositionstatus_c_nr() .equals(BestellpositionFac.BESTELLPOSITIONSTATUS_BESTAETIGT) || bespos.getBestellpositionstatus_c_nr() .equals(BestellpositionFac.BESTELLPOSITIONSTATUS_TEILGELIEFERT))) { // nur fuer Artikel if (bespos.getFlrartikel() != null) { BigDecimal bdMenge = new BigDecimal(0); if (bespos.getN_offenemenge() != null) { bdMenge = bespos.getN_offenemenge(); } else { bdMenge = bespos.getN_menge(); } ArtikelbestelltDto artikelBestelltDto = new ArtikelbestelltDto(); artikelBestelltDto.setArtikelIId(bespos.getFlrartikel().getI_id()); artikelBestelltDto.setCBelegartnr(LocaleFac.BELEGART_BESTELLUNG); artikelBestelltDto.setIBelegartpositionid(bespos.getI_id()); artikelBestelltDto.setNMenge(bdMenge); if (bespos.getT_uebersteuerterliefertermin() != null) { artikelBestelltDto.setTLiefertermin( new java.sql.Timestamp(bespos.getT_uebersteuerterliefertermin().getTime())); } else { artikelBestelltDto.setTLiefertermin(new java.sql.Timestamp( bespos.getFlrbestellung().getT_liefertermin().getTime())); } // anlegen, negative Mengen werden ignoriert if (artikelBestelltDto.getNMenge().compareTo(new BigDecimal(0)) > 0) { getArtikelbestelltFac().createArtikelbestellt(artikelBestelltDto); myLogger.warn(theClientDto.getIDUser(), "Bestelltliste nachgetragen: " + artikelBestelltDto); } } } } // Fuer allen anderen Stati darf es keine Reservierungen geben. else { // Schaun, ob es eine Reservierung gibt ArtikelbestelltDto artikelBestelltDto = artikelbestelltFindByBelegartCNrBelegartPositionIIdOhneExc( LocaleFac.BELEGART_BESTELLUNG, bespos.getI_id()); // wenn ja, dann loeschen if (artikelBestelltDto != null) { Artikelbestellt toRemove = em.find(Artikelbestellt.class, artikelBestelltDto.getIId()); if (toRemove == null) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_BEI_FINDBYPRIMARYKEY, "Fehler beo prufeBestelltliste. Artikelbestellt das Aufgrund von reservierung gel\u00F6scht werden soll konnte nicht gefunden werden. iid " + artikelBestelltDto.getIId()); } try { em.remove(toRemove); em.flush(); } catch (EntityExistsException er) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_BEIM_LOESCHEN, er); } myLogger.warn(theClientDto.getIDUser(), "Bestellteintrag gel\u00F6scht: " + artikelBestelltDto); } } } } catch (RemoteException ex) { throwEJBExceptionLPRespectOld(ex); } finally { if (session != null) { session.close(); } } }
From source file:com.lp.server.artikel.ejbfac.ArtikelbestelltFacBean.java
License:Open Source License
public Hashtable getAnzahlRahmenbestellt(Integer artikelIId, TheClientDto theClientDto) throws EJBExceptionLP { BigDecimal bdReserviert = new BigDecimal(0); Hashtable<String, Object> retHashtable = new Hashtable<String, Object>(); String sBestellungCNr = null; Collection<String> aBestellungsCNr = new ArrayList<String>(); Session session = null;/*from w w w .j a v a2s. co m*/ try { SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); Criteria crit = session.createCriteria(FLRBestellpositionReport.class); Criteria critBestellung = crit.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRBESTELLUNG); Criteria critArtikel = crit.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRARTIKEL); // nur diesen Artikel critArtikel.add(Restrictions.eq("i_id", artikelIId)); // Filter nach Mandant critBestellung .add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_MANDANT_C_NR, theClientDto.getMandant())); // keine stornierten oder erledigten Bestellungen. Collection<String> cStati = new LinkedList<String>(); cStati.add(BestellungFac.BESTELLSTATUS_STORNIERT); cStati.add(BestellungFac.BESTELLSTATUS_ERLEDIGT); critBestellung.add( Restrictions.not(Restrictions.in(BestellungFac.FLR_BESTELLUNG_BESTELLUNGSTATUS_C_NR, cStati))); // Nur Rahmenbestellungen critBestellung.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_BESTELLUNGART_C_NR, BestellungFac.BESTELLUNGART_RAHMENBESTELLUNG_C_NR)); // Query ausfuehren List<?> list = crit.list(); FLRBestellpositionReport[] aResult = new FLRBestellpositionReport[list.size()]; aResult = (FLRBestellpositionReport[]) list.toArray(aResult); for (int i = 0; i < aResult.length; i++) { // Rahmenbestellnr, Achtung nur einmal pro Positionen noetig. if (!aBestellungsCNr.contains(aResult[i].getFlrbestellung().getC_nr())) { aBestellungsCNr.add(aResult[i].getFlrbestellung().getC_nr()); } // negative Rahmenreservierungen bleiben unberuecksichtigt. if (aResult[i].getN_offenemenge() != null && aResult[i].getN_offenemenge().doubleValue() > 0) { bdReserviert = bdReserviert.add(aResult[i].getN_offenemenge()); } } if (bdReserviert != null) { retHashtable.put(ArtikelbestelltFac.KEY_RAHMENBESTELLT_ANZAHL, bdReserviert); } if (aBestellungsCNr.size() > 0) { retHashtable.put(ArtikelbestelltFac.KEY_RAHMENBESTELLT_BELEGCNR, aBestellungsCNr); } } finally { try { session.close(); } catch (HibernateException he) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER, he); } } return retHashtable; }
From source file:com.lp.server.artikel.ejbfac.ArtikelFacBean.java
License:Open Source License
public String generiereNeueArtikelnummer(String beginnArtikelnummer, TheClientDto theClientDto) { if (beginnArtikelnummer == null) { beginnArtikelnummer = ""; try {//from w ww. jav a 2 s . co m // PJ18234 ParametermandantDto parameter = getParameterFac().getMandantparameter(theClientDto.getMandant(), ParameterFac.KATEGORIE_ARTIKEL, ParameterFac.PARAMETER_STARTWERT_ARTIKELNUMMER); String startwert = parameter.getCWert(); if (startwert != null && startwert.trim().length() > 1) { beginnArtikelnummer = startwert.trim(); } } catch (RemoteException e) { throwEJBExceptionLPRespectOld(e); } } Session session = FLRSessionFactory.getFactory().openSession(); org.hibernate.Criteria crit = session.createCriteria(FLRArtikel.class); crit.add(Restrictions.like("c_nr", beginnArtikelnummer, MatchMode.START)); crit.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant())); String[] art = new String[1]; art[0] = ArtikelFac.ARTIKELART_HANDARTIKEL; crit.add(Restrictions.not(Restrictions.in(ArtikelFac.FLR_ARTIKEL_ARTIKELART_C_NR, art))); crit.addOrder(Order.desc("c_nr")); crit.setMaxResults(1); List<?> results = crit.list(); Iterator<?> resultListIterator = results.iterator(); if (results.size() > 0) { FLRArtikel flrArtikel = (FLRArtikel) resultListIterator.next(); String letzteArtikelnummer = flrArtikel.getC_nr(); int iStartZahl = -1; int iEndeZahl = -1; boolean bEndeFound = false; int i = 0; while (i < letzteArtikelnummer.length()) { char c = letzteArtikelnummer.charAt(i); // wenn 0-9 if (c > 47 && c < 58) { iStartZahl = i; iEndeZahl = iStartZahl; for (int j = i; j < letzteArtikelnummer.length(); j++) { char d = letzteArtikelnummer.charAt(j); if (d > 47 && d < 58) { iEndeZahl = j; if (j == letzteArtikelnummer.length() - 1) { bEndeFound = true; } } else { bEndeFound = true; break; } } } i++; if (bEndeFound) { break; } } if (iStartZahl >= 0 && iEndeZahl >= 0) { String zahlenteil = letzteArtikelnummer.substring(iStartZahl, iEndeZahl + 1); long zahl = new Long(zahlenteil); while (1 == 1) { zahl++; String zahlenteilNeu = new String(zahl + ""); if (zahlenteilNeu.length() > zahlenteil.length()) { // PJ 14917 String s = ""; for (int k = 0; k < zahlenteilNeu.length(); k++) { s += "?"; } return letzteArtikelnummer.substring(0, iStartZahl) + s + letzteArtikelnummer.substring(iEndeZahl + 1); } int iNeueLaenge = zahlenteilNeu.length(); if (iNeueLaenge < zahlenteil.length()) { iNeueLaenge = zahlenteil.length(); } zahlenteilNeu = Helper.fitString2LengthAlignRight(zahl + "", iNeueLaenge, '0'); // Neue Artikelnummer zusammenbauen String neueArtNr = letzteArtikelnummer.substring(0, iStartZahl) + zahlenteilNeu + letzteArtikelnummer.substring(iEndeZahl + 1); Query query = em.createNamedQuery("ArtikelfindByCNrMandantCNr"); query.setParameter(1, neueArtNr); query.setParameter(2, theClientDto.getMandant()); Collection<?> cl = query.getResultList(); if (cl.size() > 0) { continue; } return neueArtNr; } } } session.close(); return beginnArtikelnummer; }
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 .j a va 2 s . c om 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
private RahmenbestelltReportDto[] getReportRahmenbestelltDto(Integer artikelIId, TheClientDto theClientDto) throws RemoteException { Session session;//from w w w .ja va 2 s. c o m SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); Criteria crit = session.createCriteria(FLRBestellpositionReport.class); Criteria critBestellung = crit.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRBESTELLUNG); Criteria critArtikel = crit.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRARTIKEL); // nur diesen Artikel critArtikel.add(Restrictions.eq("i_id", artikelIId)); // Filter nach Mandant critBestellung.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_MANDANT_C_NR, theClientDto.getMandant())); // keine stornierten oder erledigten Bestellungen. Collection<String> cStati = new LinkedList<String>(); cStati.add(BestellungFac.BESTELLSTATUS_STORNIERT); cStati.add(BestellungFac.BESTELLSTATUS_ERLEDIGT); critBestellung .add(Restrictions.not(Restrictions.in(BestellungFac.FLR_BESTELLUNG_BESTELLUNGSTATUS_C_NR, cStati))); // Nur Rahmenbestellungen critBestellung.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_BESTELLUNGART_C_NR, BestellungFac.BESTELLUNGART_RAHMENBESTELLUNG_C_NR)); // Query ausfuehren List<?> list = crit.list(); Iterator<?> resultListIterator = list.iterator(); int row = 0; RahmenbestelltReportDto[] dtos = new RahmenbestelltReportDto[list.size()]; while (resultListIterator.hasNext()) { FLRBestellpositionReport besPos = (FLRBestellpositionReport) resultListIterator.next(); RahmenbestelltReportDto dto = new RahmenbestelltReportDto(); dto.setBestellnummer(besPos.getFlrbestellung().getC_nr()); dto.setLieferant( besPos.getFlrbestellung().getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1()); dto.setProjekt(besPos.getFlrbestellung().getC_bezprojektbezeichnung()); if (besPos.getT_uebersteuerterliefertermin() != null) { dto.setTLiefertermin(besPos.getT_uebersteuerterliefertermin()); } else { if (besPos.getFlrbestellung().getT_liefertermin() != null) { dto.setTLiefertermin(new Timestamp(besPos.getFlrbestellung().getT_liefertermin().getTime())); } } // Rahmenmenge ist die Menge der Rahmenposition dto.setRahmenmenge(besPos.getN_menge()); BigDecimal bdOffen = besPos.getN_offenemenge(); dto.setOffenmenge(bdOffen); // Nettoeinzelpreis dto.setPreis(besPos.getN_nettogesamtpreis()); BestellpositionDto bestellpositionDto = getBestellpositionFac() .bestellpositionFindByPrimaryKey(besPos.getI_id()); dto.setAbNummer(bestellpositionDto.getCABNummer()); dto.settAbTermin(bestellpositionDto.getTAuftragsbestaetigungstermin()); dto.setAbKommentar(bestellpositionDto.getCABKommentar()); dtos[row] = dto; row++; } session.close(); return dtos; }
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>/*w w w.jav a 2 s . c o 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 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; }