List of usage examples for org.hibernate Criteria createCriteria
public Criteria createCriteria(String associationPath) throws HibernateException;
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>/*from w w w. j a v a 2 s .com*/ * 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.bl.AngebotUebersichtHandler.java
License:Open Source License
/** * Der Wert aller Angebote in Mandantenwaehrung, die lt. Belegdatum in einem * bestimmten Zeitraum angelegt wurden und deren Status != (Angelegt || * Storniert) ist. Optional kann auch nach einem bestimmten Vertreter * ausgewertet werden./*from w ww . j av a 2 s.c o m*/ * * @param gcBerechnungsdatumVonI * Belegdatum von * @param gcBerechnungsdatumBisI * Belegdatum bis * @param iIdVertreterI * der Vertreter, null erlaubt * @param iIndexSpaltentyp * fuer welche Spalte soll die Berechnung erfolgen * @param cNrUserI * der aktuelle Benutzer * @return BigDecimal der Gesamtwert in Mandantenwaehrung * @throws EJBExceptionLP * Ausnahme */ private BigDecimal getWertInMandantenwaehrung(GregorianCalendar gcBerechnungsdatumVonI, GregorianCalendar gcBerechnungsdatumBisI, Integer iIdVertreterI, int iIndexSpaltentyp, TheClientDto theClientDto) throws EJBExceptionLP { BigDecimal nGesamtwertInMandantenwaehrung = new BigDecimal(0); Session session = null; try { // System.out.println("Spaltentyp: " + iIndexSpaltentyp); // System.out.println("Von: " + // Helper.formatDatum(gcBerechnungsdatumVonI.getTime(), // getTheClient(sCurrentUser).getLocUi())); // System.out.println("Bis: " + // Helper.formatDatum(gcBerechnungsdatumBisI.getTime(), // getTheClient(sCurrentUser).getLocUi())); SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); // Criteria duerfen keine Texts oder Blobs enthalten! // Criteria anlegen Criteria critAngebotposition = session.createCriteria(FLRAngebotpositionReport.class); Criteria critAngebot = critAngebotposition .createCriteria(AngebotpositionFac.FLR_ANGEBOTPOSITION_FLRANGEBOT); // zuerst alle jene Einschraenkungen, die fuer alle Spaltentypen der // Uebersicht gelten critAngebot.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant())); if (iIdVertreterI != null) { critAngebot.add(Restrictions.eq(AngebotFac.FLR_ANGEBOT_VERTRETER_I_ID, iIdVertreterI)); } // UW 22.03.06 alle nicht alternativen Positionen mit positiver // Menge critAngebotposition.add(Restrictions.isNotNull(AngebotpositionFac.FLR_ANGEBOTPOSITION_N_MENGE)); critAngebotposition .add(Restrictions.gt(AngebotpositionFac.FLR_ANGEBOTPOSITION_N_MENGE, new BigDecimal(0))); critAngebotposition.add( Restrictions.eq(AngebotpositionFac.FLR_ANGEBOTPOSITION_B_ALTERNATIVE, new Short((short) 0))); // die folgenden Einschraenkungen sind vom Spaltentyp der Ubersicht // abhaengig // IDX_GESAMT: Basis ist Belegdatum, alle Angebote mit Status != // (Angelegt || Storniert) // IDX_OFFEN: Basis ist Belegdatum, alle Angebote mit Status Offen // IDX_OFFENTERMINBEWERTET: Basis ist Realisierungstermin, alle // Angebote mit Status offen; // der Wert wird jeweils mit der Auftragswahrscheinlichkeit // multipliziert // IDX_BESTELLT: Basis ist Belegdatum, Erledigungsgrund == Auftrag // erhalten if (iIndexSpaltentyp == IDX_GESAMT) { critAngebot.add(Restrictions.ne(AngebotFac.FLR_ANGEBOT_ANGEBOTSTATUS_C_NR, AngebotServiceFac.ANGEBOTSTATUS_ANGELEGT)); critAngebot.add(Restrictions.ne(AngebotFac.FLR_ANGEBOT_ANGEBOTSTATUS_C_NR, AngebotServiceFac.ANGEBOTSTATUS_STORNIERT)); } else if (iIndexSpaltentyp == IDX_OFFEN || iIndexSpaltentyp == IDX_OFFENTERMINBEWERTET) { critAngebot.add(Restrictions.eq(AngebotFac.FLR_ANGEBOT_ANGEBOTSTATUS_C_NR, AngebotServiceFac.ANGEBOTSTATUS_OFFEN)); } else if (iIndexSpaltentyp == IDX_BESTELLT) { critAngebot.add(Restrictions.eq(AngebotFac.FLR_ANGEBOT_ANGEBOTSTATUS_C_NR, AngebotServiceFac.ANGEBOTSTATUS_ERLEDIGT)); critAngebot.add(Restrictions.eq(AngebotFac.FLR_ANGEBOT_ANGEBOTERLEDIGUNGSGRUND_C_NR, AngebotServiceFac.ANGEBOTERLEDIGUNGSGRUND_AUFTRAGERHALTEN)); } if (iIndexSpaltentyp == IDX_GESAMT || iIndexSpaltentyp == IDX_OFFEN || iIndexSpaltentyp == IDX_BESTELLT) { if (gcBerechnungsdatumVonI.getTime() != null) { critAngebot.add( Restrictions.ge(AngebotFac.FLR_ANGEBOT_T_BELEGDATUM, gcBerechnungsdatumVonI.getTime())); } if (gcBerechnungsdatumBisI.getTime() != null) { critAngebot.add( Restrictions.lt(AngebotFac.FLR_ANGEBOT_T_BELEGDATUM, gcBerechnungsdatumBisI.getTime())); } } if (iIndexSpaltentyp == IDX_OFFENTERMINBEWERTET) { if (gcBerechnungsdatumVonI.getTime() != null) { critAngebot.add(Restrictions.ge(AngebotFac.FLR_ANGEBOT_T_REALISIERUNGSTERMIN, gcBerechnungsdatumVonI.getTime())); } if (gcBerechnungsdatumBisI.getTime() != null) { critAngebot.add(Restrictions.lt(AngebotFac.FLR_ANGEBOT_T_REALISIERUNGSTERMIN, gcBerechnungsdatumBisI.getTime())); } } List<?> list = critAngebotposition.list(); int iIndex = 0; Iterator<?> it = list.iterator(); while (it.hasNext()) { FLRAngebotpositionReport flrangebotposition = (FLRAngebotpositionReport) it.next(); // der Beitrag der einzelnen Position in Angebotswaehrung BigDecimal nBeitragDerPositionInAngebotswaehrung = flrangebotposition .getN_nettogesamtpreisplusversteckteraufschlagminusrabatte() .multiply(flrangebotposition.getN_menge()); BigDecimal nBeitragDerPositionInMandantenwaehrung = nBeitragDerPositionInAngebotswaehrung .multiply(Helper.getKehrwert(new BigDecimal(flrangebotposition.getFlrangebot() .getF_wechselkursmandantwaehrungzuangebotswaehrung().doubleValue()))); if (iIndexSpaltentyp == IDX_OFFENTERMINBEWERTET) { double dAuftragswahrscheinlichkeit = flrangebotposition.getFlrangebot() .getF_auftragswahrscheinlichkeit().doubleValue(); nBeitragDerPositionInMandantenwaehrung = nBeitragDerPositionInMandantenwaehrung .multiply(new BigDecimal(dAuftragswahrscheinlichkeit).movePointLeft(2)); } nBeitragDerPositionInMandantenwaehrung = Helper .rundeKaufmaennisch(nBeitragDerPositionInMandantenwaehrung, 4); checkNumberFormat(nBeitragDerPositionInMandantenwaehrung); nGesamtwertInMandantenwaehrung = nGesamtwertInMandantenwaehrung .add(nBeitragDerPositionInMandantenwaehrung); iIndex++; } } catch (Throwable t) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FLR, new Exception(t)); } finally { try { session.close(); } catch (HibernateException he) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_HIBERNATE, he); } } return nGesamtwertInMandantenwaehrung; }
From source file:com.lp.server.angebot.ejbfac.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. * /* 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
private ReportAngebotsstatistikDto[] getReportAngebotsstatistik( ReportAngebotsstatistikKriterienDto reportAngebotsstatistikKriterienDtoI, TheClientDto theClientDto) throws EJBExceptionLP { ReportAngebotsstatistikDto[] aResult = null; SessionFactory factory = FLRSessionFactory.getFactory(); Session session = null;// w w w . j a v 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.ArtikelbestelltFacBean.java
License:Open Source License
/** * Bestelltliste pruefen. 1. Bestehende Eintraege. 2. Bestellungen pruefen, * ob die Bestelltwerte richtig eingetragen sind. * /*from w ww .jav a 2 s. c om*/ * @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 a2 s.c om 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.ArtikelReportFacBean.java
License:Open Source License
private RahmenbestelltReportDto[] getReportRahmenbestelltDto(Integer artikelIId, TheClientDto theClientDto) throws RemoteException { Session session;//w w w .j av a 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>//from w w w.j av a2 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 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.FehlmengeFacBean.java
License:Open Source License
public ArrayList getFehlmengen(Integer artikelIId, String mandantCNr, TheClientDto theClientDto) throws EJBExceptionLP { Session session = null;//from w w w .j a va 2 s . c o m try { SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); Criteria c = session.createCriteria(FLRFehlmenge.class); // Filter nach Artikel c.add(Restrictions.eq(ArtikelFac.FLR_FEHLMENGE_ARTIKEL_I_ID, artikelIId)); // Filter nach Mandant c.createCriteria(ArtikelFac.FLR_FEHLMENGE_FLRLOSSOLLMATERIAL) .createCriteria(FertigungFac.FLR_LOSSOLLMATERIAL_FLRLOS) .add(Restrictions.eq(FertigungFac.FLR_LOS_MANDANT_C_NR, mandantCNr)); // Sortierung nach Liefertermin c.addOrder(Order.asc(ArtikelFac.FLR_FEHLMENGE_T_LIEFERTERMIN)); List<?> list = c.list(); return new ArrayList(list); } finally { if (session != null) { session.close(); } } }
From source file:com.lp.server.artikel.ejbfac.FehlmengeFacBean.java
License:Open Source License
/** * Fehlmengen komplett neu erzeugen/* ww w .j a v a2 s . co m*/ * * @param theClientDto der aktuelle Benutzer * @throws EJBExceptionLP */ @TransactionAttribute(TransactionAttributeType.NEVER) public void pruefeFehlmengen(TheClientDto theClientDto) throws EJBExceptionLP { Session session = null; try { session = FLRSessionFactory.getFactory().openSession(); String hqlDelete = "delete FROM FLRFehlmenge"; session.createQuery(hqlDelete).executeUpdate(); session.close(); session = FLRSessionFactory.getFactory().openSession(); Criteria cLosmat = session.createCriteria(FLRLossollmaterial.class); Criteria cLos = cLosmat.createCriteria(FertigungFac.FLR_LOSSOLLMATERIAL_FLRLOS); // Filter nach Status Collection<String> cStati = new LinkedList<String>(); cStati.add(FertigungFac.STATUS_AUSGEGEBEN); cStati.add(FertigungFac.STATUS_GESTOPPT); cStati.add(FertigungFac.STATUS_IN_PRODUKTION); cStati.add(FertigungFac.STATUS_TEILERLEDIGT); cLos.add(Restrictions.in(FertigungFac.FLR_LOS_STATUS_C_NR, cStati)); // Query ausfuehren List<?> listLosmat = cLosmat.list(); for (Iterator<?> iter = listLosmat.iterator(); iter.hasNext();) { FLRLossollmaterial item = (FLRLossollmaterial) iter.next(); BigDecimal bdAusgegeben = getFertigungFac().getAusgegebeneMenge(item.getI_id(), null, theClientDto); BigDecimal bdFehlmenge = item.getN_menge().subtract(bdAusgegeben.abs()); // gibt es ein Fehlmenge? if (bdFehlmenge.compareTo(new BigDecimal(0)) > 0) { // Eintrag suchen ArtikelfehlmengeDto fmDto = new ArtikelfehlmengeDto(); fmDto.setArtikelIId(item.getFlrartikel().getI_id()); fmDto.setCBelegartnr(LocaleFac.BELEGART_LOS); fmDto.setIBelegartpositionid(item.getI_id()); fmDto.setNMenge(bdFehlmenge); fmDto.setTLiefertermin(new java.sql.Date(item.getFlrlos().getT_produktionsbeginn().getTime())); // PJ17994 fmDto.setTLiefertermin(Helper.addiereTageZuDatum( new java.sql.Date(item.getFlrlos().getT_produktionsbeginn().getTime()), item.getI_beginnterminoffset())); context.getBusinessObject(FehlmengeFac.class).createArtikelfehlmenge(fmDto); myLogger.warn(theClientDto.getIDUser(), "Fehlmenge nachgetragen: " + fmDto); } else { BigDecimal fehlmenge = item.getN_menge().abs().subtract(bdAusgegeben.abs()); if (fehlmenge.doubleValue() > 0) { ArtikelfehlmengeDto fmDto = new ArtikelfehlmengeDto(); fmDto.setArtikelIId(item.getFlrartikel().getI_id()); fmDto.setCBelegartnr(LocaleFac.BELEGART_LOS); fmDto.setIBelegartpositionid(item.getI_id()); fmDto.setNMenge(item.getN_menge().subtract(bdAusgegeben)); // PJ17994 fmDto.setTLiefertermin(Helper.addiereTageZuDatum( new java.sql.Date(item.getFlrlos().getT_produktionsende().getTime()), item.getI_beginnterminoffset())); context.getBusinessObject(FehlmengeFac.class).createArtikelfehlmenge(fmDto); myLogger.warn(theClientDto.getIDUser(), "Fehlmenge nachgetragen: " + fmDto); } } } } catch (RemoteException ex) { throwEJBExceptionLPRespectOld(ex); } finally { if (session != null) { session.close(); } } }