List of usage examples for org.hibernate.criterion Restrictions ne
public static SimpleExpression ne(String propertyName, Object value)
From source file:com.lp.server.auftrag.ejbfac.AuftragFacBean.java
License:Open Source License
/** * Fuer eine bestimmte Auftragsart fuer einen bestimmten Zeitraum und eine * bestimmte Terminart (Belegdatum, Liefertermin, Finaltermin) den * Nettoauftragswert in Abhaengigkeit vom aktuellen Mandanten bestimmen. <br> * Beruecksichtigt werden koennen entweder alle offenen Auftraege oder alle * eingegangenen Auftraege./*from w w w .j a v a 2 s. c om*/ * * @param cNrAuftragartI * die Auftragart (Frei, Rahmen, Abruf) * @param whichKriteriumI * welche Zeitraumart (Belegdatum, Liefertermin, Finaltermin) * @param gcBerechnungsdatumVonI * ab diesem Datum * @param gcBerechnungsdatumBisI * bis zu diesem Datum * @param offenOderEingegangenI * sollen alle offenen oder alle eingegangengen Auftraegr * beruecksichtigt werden * @param theClientDto * der aktuelle Benutzer * @return BigDecimal der Nettoauftragswert, 0 wenn keine offenen Positionen * gefunden wurden * @throws EJBExceptionLP * Ausnahme */ public BigDecimal berechneSummeAuftragsnettowert(String cNrAuftragartI, String whichKriteriumI, GregorianCalendar gcBerechnungsdatumVonI, GregorianCalendar gcBerechnungsdatumBisI, String offenOderEingegangenI, TheClientDto theClientDto) throws EJBExceptionLP { StringBuffer buff = new StringBuffer(); buff.append(offenOderEingegangenI).append(", ").append(whichKriteriumI).append(", ").append(cNrAuftragartI) .append(", ").append("Von: ") .append(Helper.formatDatum(gcBerechnungsdatumVonI.getTime(), theClientDto.getLocUi())) .append(", Bis: ") .append(Helper.formatDatum(gcBerechnungsdatumBisI.getTime(), theClientDto.getLocUi())); myLogger.info(buff.toString()); BigDecimal nSummeAuftragsnettowert = new BigDecimal(0); Session session = null; try { SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); // Criteria duerfen keine Texts oder Blobs enthalten! // Criteria anlegen fuer alle referenzierten Objekte anlegen Criteria crit = session.createCriteria(FLRAuftragFuerUebersicht.class); // Einschraenken nach Mandant crit.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant())); // Einschraenken nach Auftragart crit.add(Restrictions.eq(AuftragFac.FLR_AUFTRAG_AUFTRAGART_C_NR, cNrAuftragartI)); if (whichKriteriumI.equals(AuftragFac.KRIT_BELEGDATUM)) { // Belegdatum von bis: flrauftrag.t_belegdatum if (gcBerechnungsdatumVonI != null) { crit.add(Restrictions.ge(AuftragFac.FLR_AUFTRAG_D_BELEGDATUM, new java.sql.Date(gcBerechnungsdatumVonI.getTimeInMillis()))); } if (gcBerechnungsdatumBisI != null) { crit.add(Restrictions.lt(AuftragFac.FLR_AUFTRAG_D_BELEGDATUM, new java.sql.Date(gcBerechnungsdatumBisI.getTimeInMillis()))); } } else if (whichKriteriumI.equals(AuftragFac.KRIT_LIEFERTERMIN)) { // Liefertermin von bis: flrauftrag.t_liefertermin if (gcBerechnungsdatumVonI != null) { crit.add(Restrictions.ge(AuftragFac.FLR_AUFTRAG_T_LIEFERTERMIN, new java.sql.Date(gcBerechnungsdatumVonI.getTimeInMillis()))); } if (gcBerechnungsdatumBisI != null) { crit.add(Restrictions.le(AuftragFac.FLR_AUFTRAG_T_LIEFERTERMIN, new java.sql.Date(gcBerechnungsdatumBisI.getTimeInMillis()))); } } else if (whichKriteriumI.equals(AuftragFac.KRIT_FINALTERMIN)) { // Belegdatum von bis: flrauftrag.t_finaltermin if (gcBerechnungsdatumVonI != null) { crit.add(Restrictions.ge(AuftragFac.FLR_AUFTRAG_T_FINALTERMIN, new java.sql.Date(gcBerechnungsdatumVonI.getTimeInMillis()))); } if (gcBerechnungsdatumBisI != null) { crit.add(Restrictions.le(AuftragFac.FLR_AUFTRAG_T_FINALTERMIN, new java.sql.Date(gcBerechnungsdatumBisI.getTimeInMillis()))); } } // Einschraenken nach Auftragstatus if (offenOderEingegangenI.equals(AuftragFac.AUFT_UMSATZUEBERSICHT_OFFEN)) { crit.add(Expression.or( Restrictions.eq(AuftragFac.FLR_AUFTRAG_AUFTRAGSTATUS_C_NR, AuftragServiceFac.AUFTRAGSTATUS_OFFEN), Restrictions.eq(AuftragFac.FLR_AUFTRAG_AUFTRAGSTATUS_C_NR, AuftragServiceFac.AUFTRAGSTATUS_TEILERLEDIGT))); } else if (offenOderEingegangenI.equals(AuftragFac.AUFT_UMSATZUEBERSICHT_EINGANG)) { crit.add(Restrictions.ne(AuftragFac.FLR_AUFTRAG_AUFTRAGSTATUS_C_NR, AuftragServiceFac.AUFTRAGSTATUS_ANGELEGT)); crit.add(Restrictions.ne(AuftragFac.FLR_AUFTRAG_AUFTRAGSTATUS_C_NR, AuftragServiceFac.AUFTRAGSTATUS_STORNIERT)); } List<?> list = crit.list(); if (offenOderEingegangenI.equals(AuftragFac.AUFT_UMSATZUEBERSICHT_OFFEN)) { nSummeAuftragsnettowert = berechneAuftragsnettowertOffen(list, session, theClientDto); } else if (offenOderEingegangenI.equals(AuftragFac.AUFT_UMSATZUEBERSICHT_EINGANG)) { nSummeAuftragsnettowert = berechneAuftragsnettowertEingang(list, theClientDto); } } catch (Throwable t) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FLR, new Exception(t)); } finally { try { session.close(); } catch (HibernateException he) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_HIBERNATE, he); } } return nSummeAuftragsnettowert; }
From source file:com.lp.server.auftrag.ejbfac.AuftragpositionFacBean.java
License:Open Source License
public void pruefeAuftragseriennumern(TheClientDto theClientDto) { Session session = FLRSessionFactory.getFactory().openSession(); String[] srnnrn = null;/*from w ww .jav a 2 s . co m*/ AuftragseriennrnDto auftragseriennrnDto = null; try { org.hibernate.Criteria crit = session.createCriteria(FLRAuftragpositionReport.class); org.hibernate.Criteria critAuftrag = crit .createCriteria(AuftragpositionFac.FLR_AUFTRAGPOSITION_FLRAUFTRAG); critAuftrag.add(Restrictions.ne(AuftragFac.FLR_AUFTRAG_AUFTRAGSTATUS_C_NR, AuftragServiceFac.AUFTRAGSTATUS_STORNIERT)); crit.add(Restrictions.isNotNull("c_seriennrchargennr")); List<?> aposList = crit.list(); Iterator<?> aposIterator = aposList.iterator(); while (aposIterator.hasNext()) { FLRAuftragpositionReport item = (FLRAuftragpositionReport) aposIterator.next(); srnnrn = Helper.erzeugeStringArrayAusString(item.getC_seriennrchargennr()); for (int i = 0; i < srnnrn.length; i++) { auftragseriennrnDto = new AuftragseriennrnDto(); auftragseriennrnDto.setAuftragpositionIId(item.getI_id()); auftragseriennrnDto.setArtikelIId(item.getArtikel_i_id()); auftragseriennrnDto.setCSeriennr(srnnrn[i]); try { createAuftragseriennrn(auftragseriennrnDto, theClientDto); if (i == srnnrn.length - 1) { Auftragposition oPos = null; oPos = em.find(Auftragposition.class, item.getI_id()); if (oPos == null) { } oPos.setCSeriennrchargennr(null); } } catch (EJBExceptionLP ex) { System.out.println( "auftragposition " + item.getI_id() + " auftrag " + item.getFlrauftrag().getC_nr()); } } } } finally { if (session != null) { session.close(); } } }
From source file:com.lp.server.bestellung.ejbfac.BestellungReportFacBean.java
License:Open Source License
/** * Alle offenen Bestellungen fuer einen bestimmten Mandanten drucken. * /*from www . j av a 2 s. com*/ * @param krit * die Filter- und Sortierkriterien * @param dStichtag * Date * @param bSortierungNachLiefertermin * Boolean * @param artikelklasseIId * Integer * @param artikelgruppeIId * Integer * @param artikelCNrVon * String * @param artikelCNrBis * String * @param projektCBezeichnung * String * @param auftragIId * Integer * @param theClientDto * der aktuelle Benutzer * @throws EJBExceptionLP * Ausnahme * @return JasperPrint der Druck */ @TransactionAttribute(TransactionAttributeType.NEVER) public JasperPrintLP printBestellungOffene(ReportJournalKriterienDto krit, Date dStichtag, Boolean bSortierungNachLiefertermin, Integer artikelklasseIId, Integer artikelgruppeIId, String artikelCNrVon, String artikelCNrBis, String projektCBezeichnung, Integer auftragIId, Integer iArt, boolean bNurAngelegte, boolean bNurOffeneMengenAnfuehren, Integer[] projekte, TheClientDto theClientDto) throws EJBExceptionLP { useCase = UC_OFFENE; int iAnzahlZeilen = 0; SessionFactory factory = FLRSessionFactory.getFactory(); Session session = null; // vom Stichtag die Uhrzeit abschneiden dStichtag = Helper.cutDate(dStichtag); // die dem Report uebergeben HashMap<String, Object> parameter = new HashMap<String, Object>(); parameter.put("P_STICHTAG", Helper.formatDatum(dStichtag, theClientDto.getLocUi())); dStichtag = Helper.addiereTageZuDatum(dStichtag, 1); session = factory.openSession(); boolean darfEinkaufspreisSehen = getTheJudgeFac().hatRecht(RechteFac.RECHT_LP_DARF_PREISE_SEHEN_EINKAUF, theClientDto); boolean bProjektklammer = getMandantFac().darfAnwenderAufZusatzfunktionZugreifen( MandantFac.ZUSATZFUNKTION_PROJEKTKLAMMER, theClientDto.getMandant()); // Hiberante Criteria fuer alle Tabellen ausgehend von meiner // Haupttabelle anlegen, // nach denen ich filtern und sortieren kann Criteria crit = session.createCriteria(FLRBestellung.class); // Einschraenkung auf den aktuellen Mandanten crit.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_MANDANT_C_NR, theClientDto.getMandant())); // Einschraenkung nach Status Offen, Erledigt Collection<String> cStati = new LinkedList<String>(); cStati.add(BestellungFac.BESTELLSTATUS_ANGELEGT); if (bNurAngelegte == false) { cStati.add(BestellungFac.BESTELLSTATUS_OFFEN); cStati.add(BestellungFac.BESTELLSTATUS_BESTAETIGT); cStati.add(BestellungFac.BESTELLSTATUS_ERLEDIGT); } crit.add(Restrictions.in(BestellungFac.FLR_BESTELLUNG_BESTELLUNGSTATUS_C_NR, cStati)); // Das Belegdatum muss vor dem Stichtag liegen crit.add(Restrictions.le(BestellungFac.FLR_BESTELLUNG_T_BELEGDATUM, dStichtag)); /** * @todo MB->MB hier sollte auch das erledigt-datum ziehen, das gibts * aber in der BS nicht :-( */ crit.add(Restrictions.or(Restrictions.ge(BestellungFac.FLR_BESTELLUNG_T_MANUELLGELIEFERT, dStichtag), Restrictions.isNull(BestellungFac.FLR_BESTELLUNG_T_MANUELLGELIEFERT))); // Das Belegdatum muss vor dem Stichtag liegen crit.add(Restrictions.le(BestellungFac.FLR_BESTELLUNG_T_BELEGDATUM, dStichtag)); // Filter nach Projektbezeichnung if (projektCBezeichnung != null) { crit.add(Restrictions.ilike(BestellungFac.FLR_BESTELLUNG_C_BEZPROJEKTBEZEICHNUNG, "%" + projektCBezeichnung + "%")); } // Projektklammer if (projekte != null && projekte.length > 0) { crit.add(Restrictions.in(BestellungFac.FLR_BESTELLUNG_PROJEKT_I_ID, projekte)); String text = ""; for (int i = 0; i < projekte.length; i++) { try { ProjektDto pDto = getProjektFac().projektFindByPrimaryKey(projekte[i]); text += pDto.getCNr() + ", "; } catch (RemoteException e) { throwEJBExceptionLPRespectOld(e); } } parameter.put("P_PROJEKTE", text); } // Filter nach Auftrag if (auftragIId != null) { crit.add(Restrictions.like(BestellungFac.FLR_BESTELLUNG_AUFTRAG_I_ID, auftragIId)); } // Einschraenkung nach einer bestimmten Kostenstelle if (krit.kostenstelleIId != null) { crit.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_KOSTENSTELLE_I_ID, krit.kostenstelleIId)); } // Einschraenkung nach einem bestimmten Lieferanten if (krit.lieferantIId != null) { crit.add( Restrictions.eq(BestellungFac.FLR_BESTELLUNG_LIEFERANT_I_ID_BESTELLADRESSE, krit.lieferantIId)); } // Filter nach Bestellungsart Collection<String> cArt = null; if (iArt != null) { if (iArt == 1) { // Ohne Rahmenbestellungen cArt = new LinkedList<String>(); cArt.add(BestellungFac.BESTELLUNGART_FREIE_BESTELLUNG_C_NR); cArt.add(BestellungFac.BESTELLUNGART_ABRUFBESTELLUNG_C_NR); cArt.add(BestellungFac.BESTELLUNGART_LEIHBESTELLUNG_C_NR); crit.add(Restrictions.in(BestellungFac.FLR_BESTELLUNG_BESTELLUNGART_C_NR, cArt)); } else if (iArt == 2) { // Nur Rahmenbestellungen cArt = new LinkedList<String>(); cArt.add(BestellungFac.BESTELLUNGART_RAHMENBESTELLUNG_C_NR); crit.add(Restrictions.in(BestellungFac.FLR_BESTELLUNG_BESTELLUNGART_C_NR, cArt)); } } // Sortierung nach Kostenstelle ist immer die erste Sortierung if (krit.bSortiereNachKostenstelle) { crit.createCriteria(BestellungFac.FLR_BESTELLUNG_FLRKOSTENSTELLE).addOrder(Order.asc("c_nr")); } // Sortierung nach Kunde, eventuell innerhalb der Kostenstelle if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) { crit.createCriteria(BestellungFac.FLR_BESTELLUNG_FLRLIEFERANT).createCriteria(LieferantFac.FLR_PARTNER) .addOrder(Order.asc(PartnerFac.FLR_PARTNER_NAME1NACHNAMEFIRMAZEILE1)); } // Sortierung nach Projekt, eventuell innerhalb der Kostenstelle else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PROJEKT) { if (bProjektklammer == true) { crit.createAlias(BestellungFac.FLR_BESTELLUNG_FLRPROJEKT, "p"); crit.addOrder(Order.asc("p.c_nr")); } else { crit.addOrder(Order.asc(BestellungFac.FLR_BESTELLUNG_C_BEZPROJEKTBEZEICHNUNG)); } } // Sortierung nach Bestellungart, eventuell innerhalb der // Kostenstelle // else if (krit.iSortierung == // ReportJournalKriterienDto.KRIT_SORT_NACH_ART) { // crit.addOrder(Order // .asc(BestellungFac.FLR_BESTELLUNG_BESTELLUNGART_C_NR)); // } // Sortierung nach Liefertermin (optional) if (bSortierungNachLiefertermin != null && bSortierungNachLiefertermin.booleanValue()) { crit.addOrder(Order.asc(BestellungFac.FLR_BESTELLUNG_T_LIEFERTERMIN)); } // es wird in jedem Fall nach der Belegnummer sortiert crit.addOrder(Order.asc("c_nr")); List<?> list = crit.list(); Iterator<?> it = list.iterator(); ArrayList<FLRBestellung> bestellung = new ArrayList<FLRBestellung>(); while (it.hasNext()) { FLRBestellung flrbestellung = (FLRBestellung) it.next(); session = factory.openSession(); Criteria crit1 = session.createCriteria(FLRBestellposition.class); Criteria crit1Bestellung = crit1.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRBESTELLUNG); // nur Positionen der aktuellen Bestellung. crit1Bestellung.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_I_ID, flrbestellung.getI_id())); // keine erledigten Positionen. crit1.add(Restrictions.ne(BestellpositionFac.FLR_BESTELLPOSITION_BESTELLPOSITIONSTATUS_C_NR, BestellpositionFac.BESTELLPOSITIONSTATUS_ERLEDIGT)); // keine geliferten Positionen. crit1.add(Restrictions.ne(BestellpositionFac.FLR_BESTELLPOSITION_BESTELLPOSITIONSTATUS_C_NR, BestellpositionFac.BESTELLPOSITIONSTATUS_GELIEFERT)); // Der Liefertermin muss vor dem Stichtag liegen crit1.add(Restrictions.or(Restrictions.and( // Wenn der AB-Termin // eingegeben ist, zieht // der Restrictions.isNotNull(BestellpositionFac.FLR_BESTELLPOSITION_T_AUFTRAGSBESTAETIGUNGSTERMIN), Restrictions .le(BestellpositionFac.FLR_BESTELLPOSITION_T_AUFTRAGSBESTAETIGUNGSTERMIN, dStichtag)), Restrictions.and( // sonst der // uebersteuerte // Liefertermin Restrictions .isNull(BestellpositionFac.FLR_BESTELLPOSITION_T_AUFTRAGSBESTAETIGUNGSTERMIN), Restrictions.le(BestellpositionFac.FLR_BESTELLPOSITION_T_UEBERSTEUERTERLIEFERTERMIN, dStichtag)))); if (artikelklasseIId != null || artikelgruppeIId != null || artikelCNrVon != null || artikelCNrBis != null) { // Wenn nach Artikelklassen/Gruppen gefiltert wird, dann // kommen nur Ident-Positionen crit1.add(Restrictions.eq(BestellpositionFac.FLR_BESTELLPOSITION_BESTELLPOSITIONART_C_NR, BestellpositionFac.BESTELLPOSITIONART_IDENT)); Criteria critArtikel = crit1.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRARTIKEL); if (artikelklasseIId != null) { critArtikel.createCriteria(ArtikelFac.FLR_ARTIKEL_FLRARTIKELKLASSE) .add(Restrictions.eq("i_id", artikelklasseIId)); } if (artikelgruppeIId != null) { critArtikel.createCriteria(ArtikelFac.FLR_ARTIKEL_FLRARTIKELGRUPPE) .add(Restrictions.eq("i_id", artikelgruppeIId)); } if (artikelCNrVon != null) { critArtikel.add(Restrictions.ge(ArtikelFac.FLR_ARTIKEL_C_NR, artikelCNrVon)); } if (artikelCNrBis != null) { critArtikel.add(Restrictions.le(ArtikelFac.FLR_ARTIKEL_C_NR, artikelCNrBis)); } } List<?> resultList = crit1.list(); // Wenn die Bestellung anzuzeigende Positionen enthaelt, dann in // die Liste aufnehmen. if (resultList.size() > 0) { bestellung.add(flrbestellung); iAnzahlZeilen++; } for (Iterator<?> iter = resultList.iterator(); iter.hasNext();) { FLRBestellposition item = (FLRBestellposition) iter.next(); if (item.getN_menge() != null) { bestellung.add(null); iAnzahlZeilen++; } } } data = new Object[iAnzahlZeilen][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ANZAHL_SPALTEN]; int i = 0; while (i < iAnzahlZeilen) { FLRBestellung flrbestellung = null; if (bestellung.get(i) != null) { flrbestellung = (FLRBestellung) bestellung.get(i); data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGCNR] = flrbestellung.getC_nr(); data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGARTCNR] = flrbestellung .getBestellungart_c_nr(); if (bProjektklammer && flrbestellung.getProjekt_i_id() != null) { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_PROJEKT] = flrbestellung.getFlrprojekt() .getC_nr(); } else { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_PROJEKT] = flrbestellung .getC_bezprojektbezeichnung(); } data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGLIEFERANT] = flrbestellung .getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1(); // PJ 14752 String sortierstring = ""; if (krit.bSortiereNachKostenstelle == true) { sortierstring = Helper.fitString2Length(flrbestellung.getFlrkostenstelle().getC_nr(), 80, ' '); } if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_IDENT) { sortierstring += Helper.fitString2Length( flrbestellung.getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1(), 80, ' ') + Helper.fitString2Length("", 80, ' '); } if (bSortierungNachLiefertermin == true) { sortierstring += Helper.fitString2Length(flrbestellung.getT_liefertermin() + "", 15, ' '); } data[i][REPORT_BESTELLUNG_OFFENE_SORTIERKRITERIUM] = sortierstring; data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGDATUM] = Helper .formatDatum(flrbestellung.getT_belegdatum(), theClientDto.getLocUi()); if (flrbestellung.getFlrkostenstelle() != null) { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_KOSTENSTELLECNR] = flrbestellung .getFlrkostenstelle().getC_nr(); } i++; } session = factory.openSession(); Criteria crit1 = session.createCriteria(FLRBestellpositionReport.class); // Keine erledigten Positionen. crit1.add(Restrictions.ne(BestellpositionFac.FLR_BESTELLPOSITION_BESTELLPOSITIONSTATUS_C_NR, BestellpositionFac.BESTELLPOSITIONSTATUS_ERLEDIGT)); crit1.add(Restrictions.ne(BestellpositionFac.FLR_BESTELLPOSITION_BESTELLPOSITIONSTATUS_C_NR, BestellpositionFac.BESTELLPOSITIONSTATUS_GELIEFERT)); // Der Liefertermin muss vor dem Stichtag liegen crit1.add(Restrictions.or(Restrictions.and( // Wenn der AB-Termin // eingegeben ist, zieht // der Restrictions.isNotNull(BestellpositionFac.FLR_BESTELLPOSITION_T_AUFTRAGSBESTAETIGUNGSTERMIN), Restrictions .le(BestellpositionFac.FLR_BESTELLPOSITION_T_AUFTRAGSBESTAETIGUNGSTERMIN, dStichtag)), Restrictions.and( // sonst der // uebersteuerte // Liefertermin Restrictions .isNull(BestellpositionFac.FLR_BESTELLPOSITION_T_AUFTRAGSBESTAETIGUNGSTERMIN), Restrictions.le(BestellpositionFac.FLR_BESTELLPOSITION_T_UEBERSTEUERTERLIEFERTERMIN, dStichtag)))); // Nur Positionen der aktuellen Bestellung. Criteria crit1Bestellung = crit1.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRBESTELLUNG); crit1Bestellung.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_I_ID, flrbestellung.getI_id())); if (artikelklasseIId != null || artikelgruppeIId != null || artikelCNrVon != null || artikelCNrBis != null) { // Wenn nach Artikelklassen/Gruppen gefiltert wird, dann // kommen nur Ident-Positionen crit1.add(Restrictions.eq(BestellpositionFac.FLR_BESTELLPOSITION_BESTELLPOSITIONART_C_NR, BestellpositionFac.BESTELLPOSITIONART_IDENT)); Criteria critArtikel = crit1.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRARTIKEL); if (artikelklasseIId != null) { critArtikel.createCriteria(ArtikelFac.FLR_ARTIKEL_FLRARTIKELKLASSE) .add(Restrictions.eq("i_id", artikelklasseIId)); } if (artikelgruppeIId != null) { critArtikel.createCriteria(ArtikelFac.FLR_ARTIKEL_FLRARTIKELGRUPPE) .add(Restrictions.eq("i_id", artikelgruppeIId)); } if (artikelCNrVon != null) { critArtikel.add(Restrictions.ge(ArtikelFac.FLR_ARTIKEL_C_NR, artikelCNrVon)); } if (artikelCNrBis != null) { critArtikel.add(Restrictions.le(ArtikelFac.FLR_ARTIKEL_C_NR, artikelCNrBis)); } } List<?> resultList = crit1.list(); for (Iterator<?> iter = resultList.iterator(); iter.hasNext();) { FLRBestellpositionReport item = (FLRBestellpositionReport) iter.next(); if (item.getN_menge() != null) { String artikelCNr = null; /** * @todo das ist nicht sehr sauber ... */ if (item.getFlrartikel().getC_nr().startsWith("~")) { artikelCNr = BestellungReportFac.REPORT_VORKALKULATION_ZEICHEN_FUER_HANDEINGABE; } else { artikelCNr = item.getFlrartikel().getC_nr(); } Criteria critWep = session.createCriteria(FLRWareneingangspositionen.class); critWep.createCriteria("flrbestellposition").add(Restrictions.eq("i_id", item.getI_id())); List<?> wepResultList = critWep.list(); Iterator<?> wepResultListIterator = wepResultList.iterator(); data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGCNR] = flrbestellung.getC_nr(); data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGARTCNR] = flrbestellung .getBestellungart_c_nr(); data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_PROJEKT] = flrbestellung .getC_bezprojektbezeichnung(); data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGLIEFERANT] = flrbestellung .getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1(); data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELCNR] = artikelCNr; // SP903 if (item.getPosition_i_id_artikelset() != null) { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_SETARTIKEL_TYP] = ArtikelFac.SETARTIKEL_TYP_POSITION; } else { Session sessionSet = FLRSessionFactory.getFactory().openSession(); sessionSet = factory.openSession(); Criteria critSet = sessionSet.createCriteria(FLRBestellpositionReport.class); critSet.add(Restrictions.eq("position_i_id_artikelset", item.getI_id())); int iZeilen = critSet.list().size(); if (iZeilen > 0) { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_SETARTIKEL_TYP] = ArtikelFac.SETARTIKEL_TYP_KOPF; } sessionSet.close(); } // PJ 14752 String sortierstring = ""; if (krit.bSortiereNachKostenstelle == true) { sortierstring = Helper.fitString2Length(flrbestellung.getFlrkostenstelle().getC_nr(), 80, ' '); } if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_IDENT) { sortierstring += Helper .fitString2Length(flrbestellung.getFlrlieferant().getFlrpartner() .getC_name1nachnamefirmazeile1(), 80, ' ') + Helper.fitString2Length(artikelCNr, 80, ' '); } if (bSortierungNachLiefertermin == true) { sortierstring += Helper.fitString2Length(flrbestellung.getT_liefertermin() + "", 15, ' '); } data[i][REPORT_BESTELLUNG_OFFENE_SORTIERKRITERIUM] = sortierstring; data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELMENGE] = item.getN_menge(); BigDecimal bdOffeneLiefermenge = new BigDecimal(0); if (BestellungFac.BESTELLUNGART_RAHMENBESTELLUNG_C_NR .equals(flrbestellung.getBestellungart_c_nr())) { try { BestellpositionDto[] abrufPos = getBestellpositionFac() .bestellpositionFindByBestellpositionIIdRahmenposition(item.getI_id(), theClientDto); for (int y = 0; y < abrufPos.length; y++) { bdOffeneLiefermenge = bdOffeneLiefermenge .add(getBestellpositionFac().berechneOffeneMenge(abrufPos[y])); } } catch (RemoteException e) { } data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_OFFENELIEFERUNGEN] = bdOffeneLiefermenge; } else { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_OFFENELIEFERUNGEN] = null; } StringBuffer sbArtikelInfo = new StringBuffer(); if (item.getC_bezeichnung() != null) { sbArtikelInfo.append(item.getC_bezeichnung()); } else { ArtikelDto artikelDto = getArtikelFac() .artikelFindByPrimaryKey(item.getFlrartikel().getI_id(), theClientDto); if (artikelDto.getArtikelsprDto() != null) { if (artikelDto.getArtikelsprDto().getCBez() != null) { sbArtikelInfo.append(artikelDto.getArtikelsprDto().getCBez()); } } } data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELBEZ] = sbArtikelInfo.toString(); // der Preis wird in Mandantenwaehrung angezeigt, es // gilt der hinterlegte Wechselkurs BigDecimal bdPreisinmandantenwaehrung = item.getN_nettogesamtpreis(); BigDecimal wechselkursmandantwaehrungzuauftragswaehrung = null; if (!flrbestellung.getWaehrung_c_nr_bestellwaehrung() .equals(theClientDto.getSMandantenwaehrung())) { wechselkursmandantwaehrungzuauftragswaehrung = new BigDecimal( flrbestellung.getF_wechselkursmandantwaehrungbestellungswaehrung().doubleValue()); bdPreisinmandantenwaehrung = getBetragMalWechselkurs(bdPreisinmandantenwaehrung, Helper.getKehrwert(wechselkursmandantwaehrungzuauftragswaehrung)); } if (darfEinkaufspreisSehen) { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELPREIS] = bdPreisinmandantenwaehrung; } else { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELPREIS] = null; } if (item.getEinheit_c_nr() != null) { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELEINHEIT] = item .getEinheit_c_nr().trim(); } if (item.getT_auftragsbestaetigungstermin() != null) { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ABTERMIN] = Helper .formatDatum(item.getT_auftragsbestaetigungstermin(), theClientDto.getLocUi()); } data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ABNUMMER] = item.getC_abnummer(); data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ABKOMMENTAR] = item.getC_abkommentar(); if (item.getT_uebersteuerterliefertermin() != null) { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGLIEFERTERMIN] = Helper .formatDatum(item.getT_uebersteuerterliefertermin(), theClientDto.getLocUi()); } else { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_BESTELLUNGLIEFERTERMIN] = Helper .formatDatum(item.getFlrbestellung().getT_liefertermin(), theClientDto.getLocUi()); } BigDecimal noffeneMenge = item.getN_menge(); BigDecimal ngeliferteMenge = new BigDecimal(0); if (flrbestellung.getBestellungart_c_nr() .equals(BestellungFac.BESTELLUNGART_RAHMENBESTELLUNG_C_NR)) { noffeneMenge = item.getN_offenemenge(); while (wepResultListIterator.hasNext()) { FLRWareneingangspositionen waren = (FLRWareneingangspositionen) wepResultListIterator .next(); ngeliferteMenge = ngeliferteMenge.add(waren.getN_geliefertemenge()); } } else { while (wepResultListIterator.hasNext()) { FLRWareneingangspositionen waren = (FLRWareneingangspositionen) wepResultListIterator .next(); noffeneMenge = noffeneMenge.subtract(waren.getN_geliefertemenge()); } } data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELGELIFERTEMENGE] = ngeliferteMenge; data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELOFFENEMENGE] = noffeneMenge; if (darfEinkaufspreisSehen) { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELOFFENEWERT] = noffeneMenge .multiply(bdPreisinmandantenwaehrung); } else { data[i][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELOFFENEWERT] = null; } i++; } } } closeSession(session); // PJ 15254 if (bNurOffeneMengenAnfuehren) { ArrayList alTemp = new ArrayList(); for (int k = 0; k < data.length; k++) { BigDecimal bdOffeneMenge = (BigDecimal) data[k][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ARTIKELOFFENEMENGE]; if (bdOffeneMenge != null && bdOffeneMenge.doubleValue() > 0) { alTemp.add(data[k]); } } Object[][] returnArray = new Object[alTemp .size()][BestellungReportFac.REPORT_BESTELLUNG_OFFENE_ANZAHL_SPALTEN]; data = (Object[][]) alTemp.toArray(returnArray); } // PJ 14752 Manuell nachsortieren (in Besprechung mit AD+WH besprochen) if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_IDENT) { for (int k = data.length - 1; k > 0; --k) { for (int j = 0; j < k; ++j) { Object[] o = data[j]; Object[] o1 = data[j + 1]; String s = (String) o[REPORT_BESTELLUNG_OFFENE_SORTIERKRITERIUM]; String s1 = (String) o1[REPORT_BESTELLUNG_OFFENE_SORTIERKRITERIUM]; if (s.toUpperCase().compareTo(s1.toUpperCase()) > 0) { data[j] = o1; data[j + 1] = o; } } } } parameter.put(LPReport.P_SORTIERUNG, buildSortierungBestellungOffene(krit, theClientDto)); parameter.put(LPReport.P_FILTER, buildFilterBestellungOffene(krit, artikelklasseIId, artikelgruppeIId, artikelCNrVon, artikelCNrBis, projektCBezeichnung, theClientDto)); parameter.put(LPReport.P_SORTIERENACHLIEFERANT, new Boolean(krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER)); parameter.put("P_SORTIERENACHBESTELLUNGART", new Boolean(krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_ART)); parameter.put("P_TITLE", getTextRespectUISpr("bes.print.offene", theClientDto.getMandant(), theClientDto.getLocUi())); parameter.put(P_MANDANTWAEHRUNG, theClientDto.getSMandantenwaehrung()); initJRDS(parameter, BestellungReportFac.REPORT_MODUL, BestellungReportFac.REPORT_BESTELLUNG_JOURNAL_OFFENE, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); return getReportPrint(); }
From source file:com.lp.server.bestellung.ejbfac.BestellungReportFacBean.java
License:Open Source License
/** * Diese Methode liefert eine Liste von allen offenen Bestellungen eines * Mandanten, die nach den eingegebenen Kriterien des Benutzers * zusammengestellt wird. <br>/*from ww w .jav a 2 s. com*/ * Achtung: Hibernate verwendet lazy initialization, d.h. der Zugriff auf * Collections muss innerhalb der Session erfolgen. * * @param reportJournalKriterienDtoI * die Kriterien des Benutzers * @param dStichtag * Date * @param bSortierungNachLiefertermin * Boolean * @param artikelklasseIId * Integer * @param artikelgruppeIId * Integer * @param theClientDto * der aktuelle Benutzer * @return ReportBestellungOffeneDto[] die Liste der Bestellungen * @throws EJBExceptionLP * Ausnahme */ private ReportBestellungOffeneDto[] getListeReportBestellungOffene( ReportJournalKriterienDto reportJournalKriterienDtoI, Date dStichtag, Boolean bSortierungNachLiefertermin, Integer artikelklasseIId, Integer artikelgruppeIId, TheClientDto theClientDto) throws EJBExceptionLP { ReportBestellungOffeneDto[] aResult = null; SessionFactory factory = FLRSessionFactory.getFactory(); Session session = null; // vom Stichtag die Uhrzeit abschneiden dStichtag = Helper.cutDate(dStichtag); try { session = factory.openSession(); // Hiberante Criteria fuer alle Tabellen ausgehend von meiner // Haupttabelle anlegen, // nach denen ich filtern und sortieren kann Criteria crit = session.createCriteria(FLRBestellung.class); // Einschraenkung auf den aktuellen Mandanten crit.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant())); // Einschraenkung nach Bestelllungart crit.add(Restrictions.ne(BestellungFac.FLR_BESTELLUNG_BESTELLUNGART_C_NR, BestellungFac.BESTELLUNGART_RAHMENBESTELLUNG_C_NR)); crit.add(Restrictions.ne(BestellungFac.FLR_BESTELLUNG_BESTELLUNGART_C_NR, BestellungFac.BESTELLUNGART_ABRUFBESTELLUNG_C_NR)); crit.add(Restrictions.ne(BestellungFac.FLR_BESTELLUNG_BESTELLUNGART_C_NR, BestellungFac.BESTELLUNGART_LEIHBESTELLUNG_C_NR)); // Einschraenkung nach Status Offen, Erledigt Collection<String> cStati = new LinkedList<String>(); cStati.add(BestellungFac.BESTELLSTATUS_OFFEN); cStati.add(BestellungFac.BESTELLSTATUS_BESTAETIGT); cStati.add(BestellungFac.BESTELLSTATUS_ERLEDIGT); crit.add(Restrictions.in(BestellungFac.FLR_BESTELLUNG_BESTELLUNGSTATUS_C_NR, cStati)); // Das Belegdatum muss vor dem Stichtag liegen crit.add(Restrictions.le(BestellungFac.FLR_BESTELLUNG_T_BELEGDATUM, dStichtag)); // Einschraenkung nach einer bestimmten Kostenstelle if (reportJournalKriterienDtoI.kostenstelleIId != null) { crit.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_KOSTENSTELLE_I_ID, reportJournalKriterienDtoI.kostenstelleIId)); } // Einschraenkung nach einem bestimmten Lieferanten if (reportJournalKriterienDtoI.lieferantIId != null) { crit.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_LIEFERANT_I_ID_BESTELLADRESSE, reportJournalKriterienDtoI.lieferantIId)); } // Sortierung nach Kostenstelle ist immer die erste Sortierung if (reportJournalKriterienDtoI.bSortiereNachKostenstelle) { crit.createCriteria(BestellungFac.FLR_BESTELLUNG_FLRKOSTENSTELLE).addOrder(Order.asc("c_nr")); } // Sortierung nach Kunde, eventuell innerhalb der Kostenstelle if (reportJournalKriterienDtoI.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) { crit.createCriteria(BestellungFac.FLR_BESTELLUNG_FLRLIEFERANT) .createCriteria(LieferantFac.FLR_PARTNER) .addOrder(Order.asc(PartnerFac.FLR_PARTNER_NAME1NACHNAMEFIRMAZEILE1)); } // Sortierung nach Projekt, eventuell innerhalb der Kostenstelle else if (reportJournalKriterienDtoI.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PROJEKT) { crit.addOrder(Order.asc(BestellungFac.FLR_BESTELLUNG_C_BEZPROJEKTBEZEICHNUNG)); } // Sortierung nach Liefertermin (optional) if (bSortierungNachLiefertermin != null && bSortierungNachLiefertermin.booleanValue()) { crit.addOrder(Order.asc(BestellungFac.FLR_BESTELLUNG_T_LIEFERTERMIN)); } // es wird in jedem Fall nach der Belegnummer sortiert crit.addOrder(Order.asc("c_nr")); List<?> list = crit.list(); aResult = new ReportBestellungOffeneDto[list.size()]; int iIndex = 0; Iterator<?> it = list.iterator(); ReportBestellungOffeneDto reportDto = null; while (it.hasNext()) { FLRBestellung flrbestellung = (FLRBestellung) it.next(); Session session1 = null; session1 = factory.openSession(); Criteria crit1 = session1.createCriteria(FLRBestellposition.class); // keine erledigten Positionen. crit1.add(Restrictions.ne(BestellpositionFac.FLR_BESTELLPOSITION_BESTELLPOSITIONSTATUS_C_NR, BestellpositionFac.BESTELLPOSITIONSTATUS_ERLEDIGT)); // und nur die, die sich auf den aktuellen Bestellung beziehen. Criteria crit1Bestellung = crit1 .createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRBESTELLUNG); crit1Bestellung.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_I_ID, flrbestellung.getI_id())); int anzahlPositionen = 0; List<?> resultList = crit1.list(); for (Iterator<?> iter = resultList.iterator(); iter.hasNext();) { FLRBestellposition item = (FLRBestellposition) iter.next(); if (item.getBestellpositionart_c_nr().equals(BestellpositionFac.BESTELLPOSITIONART_IDENT) || item.getBestellpositionart_c_nr() .equals(BestellpositionFac.BESTELLPOSITIONART_HANDEINGABE)) { anzahlPositionen++; } } reportDto = new ReportBestellungOffeneDto(); reportDto.setIIdBestellung(flrbestellung.getI_id()); reportDto.setCNrBestellung(flrbestellung.getC_nr()); reportDto.setLieferantCName1( flrbestellung.getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1()); reportDto.setIAnzahlPositionen(anzahlPositionen); aResult[iIndex] = reportDto; iIndex++; } } finally { closeSession(session); } return aResult; }
From source file:com.lp.server.finanz.ejbfac.FibuExportFacBean.java
License:Open Source License
@TransactionTimeout(20000) public ArrayList<IntrastatDto> getIntrastatDatenWareneingang(java.sql.Date dVon, java.sql.Date dBis, BigDecimal bdTransportkosten, TheClientDto theClientDto) throws EJBExceptionLP { ArrayList<IntrastatDto> daten = new ArrayList<IntrastatDto>(); Session session = null;/* w w w .j a v a2 s . c o m*/ try { SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); Criteria c = session.createCriteria(FLRWareneingangspositionen.class); Criteria cWE = c.createCriteria(WareneingangFac.FLR_WEPOS_FLRWARENEINGANG); Criteria cBesPos = c.createCriteria(WareneingangFac.FLR_WEPOS_FLRBESTELLPOSITION); Criteria cBes = cBesPos.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRBESTELLUNG); Criteria cLieferant = cBes.createCriteria(BestellungFac.FLR_BESTELLUNG_FLRLIEFERANT); Criteria cPartner = cLieferant.createCriteria(LieferantFac.FLR_PARTNER); Criteria cLandPLZOrt = cPartner.createCriteria(PartnerFac.FLR_PARTNER_FLRLANDPLZORT); Criteria cLand = cLandPLZOrt.createCriteria(SystemFac.FLR_LP_FLRLAND); // Nur auslaendische MandantDto mandantDto = getMandantFac().mandantFindByPrimaryKey(theClientDto.getMandant(), theClientDto); //und die die eine UID-Nummer haben cPartner.add(Restrictions.isNotNull(PartnerFac.FLR_PARTNER_C_UID)); cLand.add(Restrictions.ne(SystemFac.FLR_LP_LANDLKZ, mandantDto.getPartnerDto().getLandplzortDto().getLandDto().getCLkz())); // Filter nach Mandant cBes.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_MANDANT_C_NR, theClientDto.getMandant())); // Filter: Nur Ident-Positionen cBesPos.add(Restrictions.eq(BestellpositionFac.FLR_BESTELLPOSITION_BESTELLPOSITIONART_C_NR, BestellpositionFac.BESTELLPOSITIONART_IDENT)); // Wareneingangsdatum von - bis cWE.add(Restrictions.ge(WareneingangFac.FLR_WE_T_WARENEINGANGSDATUM, dVon)); // von // 00 // : // 00 // : // 00 cWE.add(Restrictions.lt(WareneingangFac.FLR_WE_T_WARENEINGANGSDATUM, dBis)); // bis // 23 // : // 59 // : // 59 List<?> list = c.list(); for (Iterator<?> iter = list.iterator(); iter.hasNext();) { FLRWareneingangspositionen wePos = (FLRWareneingangspositionen) iter.next(); IntrastatDto iDto = new IntrastatDto(); iDto.setArtikelDto(getArtikelFac().artikelFindByPrimaryKey( wePos.getFlrbestellposition().getFlrartikel().getI_id(), theClientDto)); iDto.setBelegart("BS"); iDto.setBelegnummer(wePos.getFlrbestellposition().getFlrbestellung().getC_nr()); // Einstandspreis in Mandantenwaehrung BigDecimal bdEinstandspreis; if (wePos.getN_einstandspreis() != null) { bdEinstandspreis = getLocaleFac().rechneUmInMandantenWaehrung(wePos.getN_einstandspreis(), wePos.getFlrwareneingang().getN_wechselkurs()); } else { bdEinstandspreis = new BigDecimal(0); } iDto.setEinzelpreis(bdEinstandspreis); iDto.setMenge( wePos.getN_geliefertemenge() != null ? wePos.getN_geliefertemenge() : new BigDecimal(0)); // Wert = Menge * Preis iDto.setWert(iDto.getMenge().multiply(iDto.getEinzelpreis())); // Zur Aufteilung der Transportkosten den Gesamtwert des // Wareneingangs berechnen BigDecimal bdGesamtwertDesWareneingangs = new BigDecimal(0); WareneingangspositionDto[] wePositionen = getWareneingangFac() .wareneingangspositionFindByWareneingangIId(wePos.getWareneingang_i_id()); for (int i = 0; i < wePositionen.length; i++) { if (wePositionen[i].getNGeliefertemenge() != null && wePositionen[i].getNEinstandspreis() != null) { bdGesamtwertDesWareneingangs = bdGesamtwertDesWareneingangs .add(getLocaleFac().rechneUmInMandantenWaehrung( wePositionen[i].getNGeliefertemenge() .multiply(wePositionen[i].getNEinstandspreis()), wePos.getFlrwareneingang().getN_wechselkurs())); } } BigDecimal bdAnteiligeTransportkosten; if (bdGesamtwertDesWareneingangs.compareTo(new BigDecimal(0)) > 0) { bdAnteiligeTransportkosten = bdGesamtwertDesWareneingangs.divide( bdGesamtwertDesWareneingangs.add(bdTransportkosten), FinanzReportFac.INTRASTAT_NACHKOMMASTELLEN_PREISE, BigDecimal.ROUND_HALF_EVEN); if (bdAnteiligeTransportkosten.compareTo(new BigDecimal(0)) == 0) { bdAnteiligeTransportkosten = new BigDecimal(1); } iDto.setStatistischerWert(iDto.getWert().divide(bdAnteiligeTransportkosten, FinanzReportFac.INTRASTAT_NACHKOMMASTELLEN_PREISE, BigDecimal.ROUND_HALF_EVEN)); } else { // kann nicht aufgeteilt werden bdAnteiligeTransportkosten = bdTransportkosten; iDto.setStatistischerWert(iDto.getWert().add(bdAnteiligeTransportkosten)); } iDto.setPartnerDto(getPartnerFac().partnerFindByPrimaryKey(wePos.getFlrbestellposition() .getFlrbestellung().getFlrlieferant().getFlrpartner().getI_id(), theClientDto)); WarenverkehrsnummerDto wvk = null; if (iDto.getArtikelDto().getCWarenverkehrsnummer() != null) { wvk = getFinanzServiceFac().warenverkehrsnummerFindByPrimaryKeyOhneExc( iDto.getArtikelDto().getCWarenverkehrsnummer()); } BigDecimal bdGewicht = null; iDto.setWarenverkehrsnummerDto(wvk); if (iDto.getArtikelDto().getFGewichtkg() != null) { bdGewicht = iDto.getMenge().multiply(new BigDecimal(iDto.getArtikelDto().getFGewichtkg())); } else { bdGewicht = new BigDecimal(0); } iDto.setGewichtInKg(bdGewicht); daten.add(iDto); } } catch (RemoteException ex) { throwEJBExceptionLPRespectOld(ex); } finally { closeSession(session); } return daten; }
From source file:com.lp.server.finanz.ejbfac.FibuExportFacBean.java
License:Open Source License
@TransactionTimeout(20000) public ArrayList<IntrastatDto> getIntrastatDatenVersand(java.sql.Date dVon, java.sql.Date dBis, BigDecimal bdTransportkosten, TheClientDto theClientDto) throws EJBExceptionLP { ArrayList<IntrastatDto> daten = new ArrayList<IntrastatDto>(); Session session = null;//from w w w . j a va 2 s .co m try { SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); // Lieferscheinpositionen Criteria cLSPos = session.createCriteria(FLRLieferscheinposition.class); Criteria cLS = cLSPos.createCriteria(LieferscheinpositionFac.FLR_LIEFERSCHEINPOSITION_FLRLIEFERSCHEIN); Criteria cLSKunde = cLS.createCriteria(LieferscheinFac.FLR_LIEFERSCHEIN_FLRKUNDE); Criteria cLSPartner = cLSKunde.createCriteria(LieferantFac.FLR_PARTNER); Criteria cLSLandPLZOrt = cLSPartner.createCriteria(PartnerFac.FLR_PARTNER_FLRLANDPLZORT); Criteria cLSLand = cLSLandPLZOrt.createCriteria(SystemFac.FLR_LP_FLRLAND); // Nur auslaendische MandantDto mandantDto = getMandantFac().mandantFindByPrimaryKey(theClientDto.getMandant(), theClientDto); //und die die eine UID-Nummer haben cLSPartner.add(Restrictions.isNotNull(PartnerFac.FLR_PARTNER_C_UID)); cLSLand.add(Restrictions.ne(SystemFac.FLR_LP_LANDLKZ, mandantDto.getPartnerDto().getLandplzortDto().getLandDto().getCLkz())); // Filter nach Mandant cLS.add(Restrictions.eq(LieferscheinFac.FLR_LIEFERSCHEIN_MANDANT_C_NR, theClientDto.getMandant())); // Filter: Nur Ident-Positionen cLSPos.add( Restrictions.eq(LieferscheinpositionFac.FLR_LIEFERSCHEINPOSITION_LIEFERSCHEINPOSITIONART_C_NR, LieferscheinpositionFac.LIEFERSCHEINPOSITIONSART_IDENT)); // Belegdatum von - bis cLS.add(Restrictions.ge(LieferscheinFac.FLR_LIEFERSCHEIN_D_BELEGDATUM, dVon)); // von // 00 // : // 00 // : // 00 cLS.add(Restrictions.lt(LieferscheinFac.FLR_LIEFERSCHEIN_D_BELEGDATUM, dBis)); // bis // 23 // : // 59 // : // 59 List<?> listLSPos = cLS.list(); for (Iterator<?> iter = listLSPos.iterator(); iter.hasNext();) { FLRLieferscheinposition lsPos = (FLRLieferscheinposition) iter.next(); IntrastatDto iDto = new IntrastatDto(); iDto.setArtikelDto( getArtikelFac().artikelFindByPrimaryKey(lsPos.getFlrartikel().getI_id(), theClientDto)); iDto.setBelegart("LS"); iDto.setBelegnummer(lsPos.getFlrlieferschein().getC_nr()); /** * @todo MB ist das der richtige Preis? * @todo MB Wechselkurs beruecksichtigen */ iDto.setEinzelpreis(lsPos.getN_nettogesamtpreisplusversteckteraufschlagminusrabatt() != null ? lsPos.getN_nettogesamtpreisplusversteckteraufschlagminusrabatt() : new BigDecimal(0)); iDto.setMenge(lsPos.getN_menge() != null ? lsPos.getN_menge() : new BigDecimal(0)); iDto.setPartnerDto(getPartnerFac().partnerFindByPrimaryKey( lsPos.getFlrlieferschein().getFlrkunde().getFlrpartner().getI_id(), theClientDto)); /** * @todo das mit den Transportkosten noch besser loesen */ BigDecimal bdGesamtwertDesWareneingangs = new BigDecimal(0); LieferscheinpositionDto[] lsPositionen = getLieferscheinpositionFac() .lieferscheinpositionFindByLieferscheinIId(lsPos.getFlrlieferschein().getI_id()); for (int i = 0; i < lsPositionen.length; i++) { if (lsPositionen[i].getNMenge() != null && lsPositionen[i].getNEinzelpreisplusversteckteraufschlag() != null) { bdGesamtwertDesWareneingangs = bdGesamtwertDesWareneingangs .add(getLocaleFac().rechneUmInMandantenWaehrung( lsPositionen[i].getNMenge().multiply( lsPositionen[i].getNEinzelpreisplusversteckteraufschlag()), new BigDecimal(lsPos.getFlrlieferschein() .getF_wechselkursmandantwaehrungzulieferscheinwaehrung()))); } } iDto.setWert(iDto.getMenge().multiply(iDto.getEinzelpreis())); /* * iDto .setStatistischerWert(iDto.getWert().add( * bdTransportkosten)); */ BigDecimal bdAnteiligeTransportkosten; if (bdGesamtwertDesWareneingangs.compareTo(new BigDecimal(0)) > 0) { bdAnteiligeTransportkosten = bdGesamtwertDesWareneingangs.divide( bdGesamtwertDesWareneingangs.add(bdTransportkosten), FinanzReportFac.INTRASTAT_NACHKOMMASTELLEN_PREISE, BigDecimal.ROUND_HALF_EVEN); if (bdAnteiligeTransportkosten.compareTo(new BigDecimal(0)) == 0) { bdAnteiligeTransportkosten = new BigDecimal(1); } iDto.setStatistischerWert(iDto.getWert().divide(bdAnteiligeTransportkosten, FinanzReportFac.INTRASTAT_NACHKOMMASTELLEN_PREISE, BigDecimal.ROUND_HALF_EVEN)); } else { // kann nicht aufgeteilt werden bdAnteiligeTransportkosten = bdTransportkosten; iDto.setStatistischerWert(iDto.getWert().add(bdAnteiligeTransportkosten)); } WarenverkehrsnummerDto wvk = null; if (iDto.getArtikelDto().getCWarenverkehrsnummer() != null) { wvk = getFinanzServiceFac().warenverkehrsnummerFindByPrimaryKeyOhneExc( iDto.getArtikelDto().getCWarenverkehrsnummer()); } iDto.setWarenverkehrsnummerDto(wvk); BigDecimal bdGewicht = null; iDto.setWarenverkehrsnummerDto(wvk); if (iDto.getArtikelDto().getFGewichtkg() != null) { bdGewicht = iDto.getMenge().multiply(new BigDecimal(iDto.getArtikelDto().getFGewichtkg())); } else { bdGewicht = new BigDecimal(0); } iDto.setGewichtInKg(bdGewicht); daten.add(iDto); } // Rechnungspositionen Criteria cREPos = session.createCriteria(FLRRechnungPosition.class); Criteria cRE = cREPos.createCriteria(RechnungFac.FLR_RECHNUNGPOSITION_FLRRECHNUNG); Criteria cREArt = cRE.createCriteria(RechnungFac.FLR_RECHNUNG_FLRRECHNUNGART); Criteria cREKunde = cRE.createCriteria(RechnungFac.FLR_RECHNUNG_FLRKUNDE); Criteria cREPartner = cREKunde.createCriteria(LieferantFac.FLR_PARTNER); Criteria cRELandPLZOrt = cREPartner.createCriteria(PartnerFac.FLR_PARTNER_FLRLANDPLZORT); Criteria cRELand = cRELandPLZOrt.createCriteria(SystemFac.FLR_LP_FLRLAND); // Nur auslaendische cRELand.add(Restrictions.ne(SystemFac.FLR_LP_LANDLKZ, mandantDto.getPartnerDto().getLandplzortDto().getLandDto().getCLkz())); // Filter nach Mandant cRE.add(Restrictions.eq(RechnungFac.FLR_RECHNUNG_MANDANT_C_NR, theClientDto.getMandant())); // Filter: Nur Ident-Positionen cREPos.add(Restrictions.eq(RechnungFac.FLR_RECHNUNGPOSITION_POSITIONSART_C_NR, RechnungFac.POSITIONSART_RECHNUNG_IDENT)); // keine stornierten cRE.add(Restrictions.ne(RechnungFac.FLR_RECHNUNG_STATUS_C_NR, RechnungFac.STATUS_STORNIERT)); // Belegdatum von - bis cRE.add(Restrictions.ge(RechnungFac.FLR_RECHNUNG_D_BELEGDATUM, dVon)); // von // 00: // 00:00 cRE.add(Restrictions.lt(RechnungFac.FLR_RECHNUNG_D_BELEGDATUM, dBis)); // bis // 23: // 59:59 // nur Rechnungen cREArt.add(Restrictions.eq(RechnungFac.FLR_RECHNUNGART_RECHNUNGTYP_C_NR, RechnungFac.RECHNUNGTYP_RECHNUNG)); // Query List<?> listREPos = cREPos.list(); for (Iterator<?> iter = listREPos.iterator(); iter.hasNext();) { FLRRechnungPosition rePos = (FLRRechnungPosition) iter.next(); // Die Rechnung muss aktiviert sein if (rePos.getFlrrechnung().getStatus_c_nr().equals(RechnungFac.STATUS_ANGELEGT)) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FINANZ_EXPORT_BELEG_IST_NOCH_NICHT_AKTIVIERT, new Exception("Rechnung " + rePos.getFlrrechnung().getC_nr())); } IntrastatDto iDto = new IntrastatDto(); iDto.setArtikelDto( getArtikelFac().artikelFindByPrimaryKey(rePos.getFlrartikel().getI_id(), theClientDto)); iDto.setBelegart("RE"); iDto.setBelegnummer(rePos.getFlrrechnung().getC_nr()); /** * @todo MB ist das der richtige Preis? * @todo MB Wechselkurs beruecksichtigen */ iDto.setEinzelpreis(rePos.getN_nettoeinzelpreis_plus_aufschlag_minus_rabatt() != null ? rePos.getN_nettoeinzelpreis_plus_aufschlag_minus_rabatt() : new BigDecimal(0)); iDto.setMenge(rePos.getN_menge() != null ? rePos.getN_menge() : new BigDecimal(0)); iDto.setPartnerDto(getPartnerFac().partnerFindByPrimaryKey( rePos.getFlrrechnung().getFlrkunde().getFlrpartner().getI_id(), theClientDto)); /** * @todo das mit den Transportkosten noch besser loesen */ BigDecimal bdGesamtwertDesWareneingangs = new BigDecimal(0); RechnungPositionDto[] rsPositionen = getRechnungFac() .rechnungPositionFindByRechnungIId(rePos.getFlrrechnung().getI_id()); try { for (int i = 0; i < rsPositionen.length; i++) { if (rsPositionen[i].getNMenge() != null && rsPositionen[i].getNEinzelpreisplusversteckteraufschlag() != null) { bdGesamtwertDesWareneingangs = bdGesamtwertDesWareneingangs .add(getLocaleFac() .rechneUmInMandantenWaehrung( rsPositionen[i].getNMenge() .multiply(rsPositionen[i] .getNEinzelpreisplusversteckteraufschlag()), rePos.getFlrrechnung().getN_kurs())); } } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } iDto.setWert(iDto.getMenge().multiply(iDto.getEinzelpreis())); /* * iDto .setStatistischerWert(iDto.getWert().add( * bdTransportkosten)); */ BigDecimal bdAnteiligeTransportkosten; if (bdGesamtwertDesWareneingangs.compareTo(new BigDecimal(0)) > 0) { bdAnteiligeTransportkosten = bdGesamtwertDesWareneingangs.divide( bdGesamtwertDesWareneingangs.add(bdTransportkosten), FinanzReportFac.INTRASTAT_NACHKOMMASTELLEN_PREISE, BigDecimal.ROUND_HALF_EVEN); if (bdAnteiligeTransportkosten.compareTo(new BigDecimal(0)) == 0) { bdAnteiligeTransportkosten = new BigDecimal(1); } iDto.setStatistischerWert(iDto.getWert().divide(bdAnteiligeTransportkosten, FinanzReportFac.INTRASTAT_NACHKOMMASTELLEN_PREISE, BigDecimal.ROUND_HALF_EVEN)); } else { // kann nicht aufgeteilt werden bdAnteiligeTransportkosten = bdTransportkosten; iDto.setStatistischerWert(iDto.getWert().add(bdAnteiligeTransportkosten)); } WarenverkehrsnummerDto wvk = null; if (iDto.getArtikelDto().getCWarenverkehrsnummer() != null) { wvk = getFinanzServiceFac().warenverkehrsnummerFindByPrimaryKeyOhneExc( iDto.getArtikelDto().getCWarenverkehrsnummer()); } iDto.setWarenverkehrsnummerDto(wvk); BigDecimal bdGewicht = null; iDto.setWarenverkehrsnummerDto(wvk); if (iDto.getArtikelDto().getFGewichtkg() != null) { bdGewicht = iDto.getMenge().multiply(new BigDecimal(iDto.getArtikelDto().getFGewichtkg())); } else { bdGewicht = new BigDecimal(0); } iDto.setGewichtInKg(bdGewicht); daten.add(iDto); } } catch (RemoteException ex) { throwEJBExceptionLPRespectOld(ex); } finally { closeSession(session); } return daten; }
From source file:com.lushapp.common.orm.hibernate.HibernateDao.java
License:Apache License
/** * ??Criterion,./*from w w w.j a va 2s. c o m*/ */ protected Criterion buildCriterion(final String propertyName, final Object propertyValue, final MatchType matchType) { Assert.hasText(propertyName, "propertyName?"); Criterion criterion = null; String value; Character ESCAPE = '!'; // ?MatchTypecriterion switch (matchType) { case EQ: criterion = Restrictions.eq(propertyName, propertyValue); break; case NE: criterion = Restrictions.ne(propertyName, propertyValue); break; case LIKE: // value = (String) propertyValue; if ((ESCAPE.toString()).equals(value)) { criterion = Restrictions.like(propertyName, (String) propertyValue, MatchMode.ANYWHERE); } else { criterion = new LikeExpression(propertyName, (String) propertyValue, MatchMode.ANYWHERE, ESCAPE, true); } break; case SLIKE: // value = (String) propertyValue; if ((ESCAPE.toString()).equals(value)) { criterion = Restrictions.like(propertyName, (String) propertyValue, MatchMode.START); } else { criterion = new LikeExpression(propertyName, (String) propertyValue, MatchMode.START, ESCAPE, true); } break; case ELIKE: // value = (String) propertyValue; if ((ESCAPE.toString()).equals(value)) { criterion = Restrictions.like(propertyName, (String) propertyValue, MatchMode.END); } else { criterion = new LikeExpression(propertyName, (String) propertyValue, MatchMode.END, ESCAPE, true); } 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); break; case ISNULL: criterion = Restrictions.isNull(propertyName); } return criterion; }
From source file:com.lushapp.modules.sys.web.AviationOrderController.java
License:Apache License
/** * //from w ww . java 2s .com * * * @throws Exception */ @RequestMapping(value = { "customCombobox" }) @ResponseBody public List<Combobox> customCombobox(String selectType) throws Exception { List<Combobox> cList = Lists.newArrayList(); //combobox "------"?"------" if (!StringUtils.isBlank(selectType)) { SelectType s = SelectType.getSelectTypeValue(selectType); if (s != null) { Combobox selectCombobox = new Combobox("", s.getDescription()); cList.add(selectCombobox); } } List<AviationBuyers> aviationBuyersList = new ArrayList<AviationBuyers>(); aviationBuyersList = aviationBuyersManager .findByCriteria(Restrictions.ne("status", StatusState.delete.getValue())); for (int i = 0; i < aviationBuyersList.size(); i++) { //Combobox combobox = new Combobox(aviationBuyersList[i].getValue().toString(), aviationBuyersList[i].getDescription()); //cList.add(combobox); } return cList; }
From source file:com.mac.green_leaves.v1.dashboard.receive_dashboard.DashboardService.java
List<TGreenLeavesWeigh> getGeenLeavesWeighTotalSummary(greenLeavesSummry leavesSummry) { Criteria criteria = entityManager.unwrap(Session.class).createCriteria(TGreenLeavesWeigh.class); criteria.add(Restrictions.eq("type", leavesSummry.getType())); if (leavesSummry.getBranch() != null) { criteria.add(Restrictions.eq("branch", leavesSummry.getBranch())); }/*from w w w . ja v a 2 s.c o m*/ if (leavesSummry.getFromDate() != null && leavesSummry.getToDate() != null) { criteria.add(Restrictions.between("date", leavesSummry.getFromDate(), leavesSummry.getToDate())); } if (leavesSummry.getRoute() != null) { criteria.add(Restrictions.eq("route", leavesSummry.getRoute())); } if (!"null".equals(leavesSummry.getStatus())) { if (leavesSummry.getStatus() != null) { criteria.add(Restrictions.eq("status", leavesSummry.getStatus())); } } if (leavesSummry.getClient() != null) { criteria.add(Restrictions.eq("client", leavesSummry.getClient())); } if (leavesSummry.getRouteOfficer() != null) { criteria.add(Restrictions.eq("routeOfficer", leavesSummry.getRouteOfficer())); } if (leavesSummry.getRouteHelper() != null) { criteria.add(Restrictions.eq("routeHelper", leavesSummry.getRouteHelper())); } if (leavesSummry.getVehicle() != null) { criteria.add(Restrictions.eq("vehicle", leavesSummry.getVehicle())); } if (leavesSummry.getFromDate() == null && leavesSummry.getToDate() == null && leavesSummry.getRoute() == null && leavesSummry.getClient() == null && leavesSummry.getRouteOfficer() == null && leavesSummry.getRouteHelper() == null && leavesSummry.getVehicle() == null) { throw new EntityNotFoundException("green leaves weigh not found"); } criteria.setResultTransformer(DetachedCriteria.DISTINCT_ROOT_ENTITY); criteria.addOrder(Order.asc("date")); criteria.add(Restrictions.ne("status", "DELETED")); List<TGreenLeavesWeigh> greenLeavesWeigh = criteria.list(); return greenLeavesWeigh; }
From source file:com.mac.green_leaves.v1.dashboard.receive_dashboard.DashboardService.java
List<TGreenLeavesReceive> getGeenLeavesReceiveTotalSummary(greenLeavesSummry leavesSummry) { if ("client".equals(leavesSummry.getType())) { Criteria criteria = entityManager.unwrap(Session.class).createCriteria(TGreenLeavesReceive.class); if (leavesSummry.getBranch() != null) { criteria.add(Restrictions.eq("branch", leavesSummry.getBranch())); }//from w ww. jav a 2 s . co m if (leavesSummry.getFromDate() != null && leavesSummry.getToDate() != null) { criteria.add(Restrictions.between("date", leavesSummry.getFromDate(), leavesSummry.getToDate())); } if (!"null".equals(leavesSummry.getStatus())) { if (leavesSummry.getStatus() != null) { criteria.add(Restrictions.eq("status", leavesSummry.getStatus())); } } if (leavesSummry.getRoute() != null) { criteria.add(Restrictions.eq("route", leavesSummry.getRoute())); } if (leavesSummry.getClient() != null) { System.out.println(leavesSummry.getClient()); criteria.createAlias("greenLeavesReceiveDetails", "glrd"); criteria.add(Restrictions.eq("glrd.client", leavesSummry.getClient())); } if (leavesSummry.getClient() == null && leavesSummry.getRoute() == null && leavesSummry.getFromDate() == null && leavesSummry.getToDate() == null) { throw new EntityNotFoundException("green leaves receive not found"); } criteria.setResultTransformer(DetachedCriteria.DISTINCT_ROOT_ENTITY); criteria.addOrder(Order.asc("date")); //get only bulk receive criteria.add(Restrictions.eq("type", "BULK")); criteria.add(Restrictions.ne("status", "DELETED")); List<TGreenLeavesReceive> greenLeavesReceives = criteria.list(); return greenLeavesReceives; } else { Criteria criteria = entityManager.unwrap(Session.class).createCriteria(TGreenLeavesReceive.class); if (leavesSummry.getBranch() != null) { criteria.add(Restrictions.eq("branch", leavesSummry.getBranch())); } if (leavesSummry.getFromDate() != null && leavesSummry.getToDate() != null) { criteria.add(Restrictions.between("date", leavesSummry.getFromDate(), leavesSummry.getToDate())); } if (!"null".equals(leavesSummry.getStatus())) { if (leavesSummry.getStatus() != null) { criteria.add(Restrictions.eq("status", leavesSummry.getStatus())); } } if (leavesSummry.getRoute() != null) { criteria.add(Restrictions.eq("route", leavesSummry.getRoute())); } if (leavesSummry.getClient() == null && leavesSummry.getRoute() == null && leavesSummry.getFromDate() == null && leavesSummry.getToDate() == null) { throw new EntityNotFoundException("green leaves receive not found"); } criteria.setResultTransformer(DetachedCriteria.DISTINCT_ROOT_ENTITY); criteria.addOrder(Order.asc("date")); //get only bulk receive criteria.add(Restrictions.eq("type", "BULK")); criteria.add(Restrictions.ne("status", "DELETED")); List<TGreenLeavesReceive> greenLeavesReceives = criteria.list(); return greenLeavesReceives; } }