List of usage examples for org.hibernate.criterion Restrictions ge
public static SimpleExpression ge(String propertyName, Object value)
From source file:com.lp.server.bestellung.ejbfac.BestellungFacBean.java
License:Open Source License
public void importiereMonatsbestellung(ArrayList<ImportMonatsbestellungDto> importMonatbestellung, TheClientDto theClientDto) {// w ww . j a v a 2s . co m // letzte Bestellung des Lieferanten suchen und nachsehen, ob diese in // diesem Monat bereits vorhanden ist. // PJ 17876 Integer iMonatsbestellungsart = 0; try { ParametermandantDto parameter = getParameterFac().getMandantparameter(theClientDto.getMandant(), ParameterFac.KATEGORIE_BESTELLUNG, ParameterFac.PARAMETER_MONATSBESTELLUNGSART); iMonatsbestellungsart = (Integer) parameter.getCWertAsObject(); } catch (RemoteException e2) { throwEJBExceptionLPRespectOld(e2); } if (iMonatsbestellungsart == 2) { importiereBestellung(importMonatbestellung, theClientDto); return; } for (int i = 0; i < importMonatbestellung.size(); i++) { SessionFactory factory = FLRSessionFactory.getFactory(); Session session = factory.openSession(); Criteria c = session.createCriteria(FLRBestellung.class); c.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_LIEFERANT_I_ID_BESTELLADRESSE, importMonatbestellung.get(i).getLieferantIId())); Calendar cal = Calendar.getInstance(); cal.setTimeInMillis(importMonatbestellung.get(i).getWeDatum().getTime()); cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH)); cal.set(Calendar.HOUR_OF_DAY, 23); cal.set(Calendar.MINUTE, 59); cal.set(Calendar.SECOND, 59); cal.set(Calendar.MILLISECOND, 999); c.add(Restrictions.le(BestellungFac.FLR_BESTELLUNG_T_BELEGDATUM, cal.getTime())); cal.set(Calendar.DAY_OF_MONTH, 1); cal.set(Calendar.HOUR_OF_DAY, 0); cal.set(Calendar.MINUTE, 0); cal.set(Calendar.SECOND, 0); cal.set(Calendar.MILLISECOND, 0); SimpleDateFormat dateformat = new SimpleDateFormat("MMMM", theClientDto.getLocUi()); dateformat.format(cal.getTime()); String projektTextMonatsbestellung = "Monatsbestellung " + dateformat.format(cal.getTime()) + " " + cal.get(Calendar.YEAR); c.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_C_BEZPROJEKTBEZEICHNUNG, projektTextMonatsbestellung)); c.add(Restrictions.ge(BestellungFac.FLR_BESTELLUNG_T_BELEGDATUM, cal.getTime())); // String[] s = new String[2]; s[0] = BestellungFac.BESTELLSTATUS_ERLEDIGT; s[1] = BestellungFac.BESTELLSTATUS_STORNIERT; c.add(Restrictions.not(Restrictions.in(BestellungFac.FLR_BESTELLUNG_BESTELLUNGSTATUS_C_NR, s))); c.addOrder(Order.desc(BestellungFac.FLR_BESTELLUNG_T_BELEGDATUM)); c.setMaxResults(1); List<?> list = c.list(); Integer bestellungIId = null; if (list.size() > 0) { FLRBestellung b = (FLRBestellung) list.iterator().next(); bestellungIId = b.getI_id(); } Lieferant lieferant = em.find(Lieferant.class, importMonatbestellung.get(i).getLieferantIId()); Partner partner = em.find(Partner.class, lieferant.getPartnerIId()); if (bestellungIId == null) { BestellungDto bsdto = createBestellungDto(importMonatbestellung.get(i).getLieferantIId(), theClientDto.getMandant(), theClientDto.getIDPersonal()); try { BestellungtextDto bsText = getBestellungServiceFac().bestellungtextFindByMandantLocaleCNr( theClientDto.getMandant(), partner.getLocaleCNrKommunikation(), MediaFac.MEDIAART_KOPFTEXT, theClientDto); if (bsText != null) { bsdto.setBestelltextIIdKopftext(bsText.getIId()); } bsText = getBestellungServiceFac().bestellungtextFindByMandantLocaleCNr( theClientDto.getMandant(), partner.getLocaleCNrKommunikation(), MediaFac.MEDIAART_FUSSTEXT, theClientDto); if (bsText != null) { bsdto.setBestelltextIIdFusstext(bsText.getIId()); } } catch (RemoteException e1) { throwEJBExceptionLPRespectOld(e1); } bsdto.setDBelegdatum(new Date(cal.getTimeInMillis()));// bsdto.setDLiefertermin(new Timestamp(cal.getTimeInMillis())); bsdto.setCBez(projektTextMonatsbestellung); try { bestellungIId = getBestellungFac().createBestellung(bsdto, theClientDto); } catch (EJBExceptionLP e) { throw new EJBExceptionLP(e); } catch (RemoteException e) { throw new EJBExceptionLP(e); } } // Position anlegen try { BestellpositionDto bspos = createBestellPositionDto(bestellungIId, importMonatbestellung.get(i).getLieferantIId(), importMonatbestellung.get(i).getArtikelIId(), importMonatbestellung.get(i).getMenge(), theClientDto); Integer bsPosIId = getBestellpositionFac().createBestellposition(bspos, theClientDto, null, null); // Wareneingang zu Verladedatum anlegen, wenn noch nicht // vorhanden if (iMonatsbestellungsart == 0) { Timestamp tVerladedatum = new java.sql.Timestamp( importMonatbestellung.get(i).getWeDatum().getTime()); Query query = em.createNamedQuery("WareneingangfindByBestellungIIdTWareneingangsdatum"); query.setParameter(1, bestellungIId); query.setParameter(2, tVerladedatum); Collection<?> col = query.getResultList(); Integer wareneingangId = null; if (col.size() > 0) { Wareneingang we = (Wareneingang) col.iterator().next(); wareneingangId = we.getIId(); } else { WareneingangDto wedto = new WareneingangDto(); wedto.setBestellungIId(bestellungIId); wedto.setCLieferscheinnr(importMonatbestellung.get(i).getLieferscheinnr()); wedto.setTLieferscheindatum(tVerladedatum); wedto.setTWareneingangsdatum(tVerladedatum); wedto.setLagerIId(lieferant.getLagerIIdZubuchungslager()); wedto.setNWechselkurs(new BigDecimal(1)); try { wareneingangId = getWareneingangFac().createWareneingang(wedto, theClientDto); } catch (RemoteException e) { throw new EJBExceptionLP(e); } } try { WareneingangspositionDto weposDto = new WareneingangspositionDto(); weposDto.setBestellpositionIId(bsPosIId); weposDto.setNGeliefertemenge(importMonatbestellung.get(i).getMenge()); weposDto.setPersonalIIdAendern(theClientDto.getIDPersonal()); weposDto.setPersonalIIdAnlegen(theClientDto.getIDPersonal()); weposDto.setTAendern(new Timestamp(System.currentTimeMillis())); weposDto.setTAnlegen(weposDto.getTAendern()); weposDto.setWareneingangIId(wareneingangId); BigDecimal nGeliefertpreis = bspos.getNNettogesamtpreis(); weposDto.setNGelieferterpreis(nGeliefertpreis); getWareneingangFac().createWareneingangsposition(weposDto, theClientDto); getBestellungFac().aktiviereBestellung(bestellungIId, theClientDto); getBestellpositionFac().manuellAufVollstaendigGeliefertSetzen(bsPosIId, theClientDto); } catch (EJBExceptionLP e) { throw new EJBExceptionLP(e); } catch (RemoteException e) { throw new EJBExceptionLP(e); } } } catch (EJBExceptionLP e) { throw new EJBExceptionLP(e); } catch (RemoteException e) { throw new EJBExceptionLP(e); } session.close(); } }
From source file:com.lp.server.bestellung.ejbfac.BestellungReportFacBean.java
License:Open Source License
public JasperPrintLP printBestellungenAlle(ReportJournalKriterienDto krit, TheClientDto theClientDto) throws EJBExceptionLP { Session session = null;/*from w w w . j av a 2 s . co m*/ try { this.useCase = UC_ALLE; SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); boolean darfEinkaufspreisSehen = getTheJudgeFac().hatRecht(RechteFac.RECHT_LP_DARF_PREISE_SEHEN_EINKAUF, theClientDto); // reportjournal: 00 Erzeugen einer Hibernate-Criteria-Query Criteria c = session.createCriteria(FLRBestellung.class); // reportjournal: 01 Filter nach Mandant c.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_MANDANT_C_NR, theClientDto.getMandant())); // reportjournal: 02 Filter: nur eine Kostenstelle if (krit.kostenstelleIId != null) { c.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_KOSTENSTELLE_I_ID, krit.kostenstelleIId)); } // reportjournal: 03 Filter: nur ein Lieferant if (krit.lieferantIId != null) { c.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_LIEFERANT_I_ID_BESTELLADRESSE, krit.lieferantIId)); } String sVon = null; String sBis = null; // reportjournal: 04 Datum von if (krit.dVon != null) { c.add(Restrictions.ge(BestellungFac.FLR_BESTELLUNG_T_LIEFERTERMIN, Helper.cutDate(krit.dVon))); sVon = Helper.formatDatum(krit.dVon, theClientDto.getLocUi()); } // reportjournal: 05 Datum bis if (krit.dBis != null) { c.add(Restrictions.lt(BestellungFac.FLR_BESTELLUNG_T_LIEFERTERMIN, Helper.cutDate(Helper.addiereTageZuDatum(krit.dBis, 1)))); sBis = Helper.formatDatum(krit.dBis, theClientDto.getLocUi()); } // reportjournalbelegnummer: 0 dazu muss ich das Belegnummernformat // und das // aktuelle Geschaeftsjahr des Mandanten kennen. 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(); // reportjournal: 06 belegnummer von // reportjournalbelegnummer: 1 (von) hier funktionierts fast gleich // wie bei den Direktfiltern if (krit.sBelegnummerVon != null) { sVon = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr, sMandantKuerzel, krit.sBelegnummerVon); c.add(Restrictions.ge(BestellungFac.FLR_BESTELLUNG_C_NR, sVon)); } // reportjournal: 07 belegnummer bis // reportjournalbelegnummer: 2 (bis) detto if (krit.sBelegnummerBis != null) { sBis = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr, sMandantKuerzel, krit.sBelegnummerBis); c.add(Restrictions.le(BestellungFac.FLR_BESTELLUNG_C_NR, sBis)); } // reportjournal: 08 Sortierung nach Kostenstelle if (krit.bSortiereNachKostenstelle) { c.createCriteria(BestellungFac.FLR_BESTELLUNG_FLRKOSTENSTELLE).addOrder(Order.asc("c_nr")); } // reportjournal: 09 Sortierung nach Lieferant if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) { c.createCriteria(BestellungFac.FLR_BESTELLUNG_FLRLIEFERANT).createCriteria(LieferantFac.FLR_PARTNER) .addOrder(Order.asc(PartnerFac.FLR_PARTNER_NAME1NACHNAMEFIRMAZEILE1)); } // reportjournal: 10 Sortierung nach Belegnummer else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_BELEGNUMMER) { c.addOrder(Order.asc(BestellungFac.FLR_BESTELLUNG_C_NR)); } // reportjournal: 11 Und nun zusammenbauen der Daten List<?> list = c.list(); data = new Object[list.size()][7]; int i = 0; for (Iterator<?> iter = list.iterator(); iter.hasNext();) { FLRBestellung b = (FLRBestellung) iter.next(); // reportjournal: 12 Fuer die Performance: so wenige // ejb-Methoden wie moeglich aufrufen! data[i][ALLE_BELEGDATUM] = b.getT_belegdatum(); data[i][ALLE_BESTELLNUMMER] = b.getC_nr(); data[i][ALLE_STATUS] = b.getBestellungstatus_c_nr(); if (darfEinkaufspreisSehen) { data[i][ALLE_BESTELLWERT] = b.getN_bestellwert(); } else { data[i][ALLE_BESTELLWERT] = null; } data[i][ALLE_KOSTENSTELLENUMMER] = b.getFlrkostenstelle() != null ? b.getFlrkostenstelle().getC_nr() : null; data[i][ALLE_LIEFERANT] = b.getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1(); data[i][ALLE_LIEFERTERMIN] = b.getT_liefertermin(); i++; } Map<String, Object> map = new TreeMap<String, Object>(); MandantDto mandantDto = getMandantFac().mandantFindByPrimaryKey(theClientDto.getMandant(), theClientDto); // Waehrung map.put(LPReport.P_WAEHRUNG, mandantDto.getWaehrungCNr()); StringBuffer sSortierung = new StringBuffer(); // Sortierung nach Kostenstelle // reportjournalparameter: 0 nach Kostenstelle map.put(LPReport.P_SORTIERENACHKOSTENSTELLE, new Boolean(krit.bSortiereNachKostenstelle)); if (krit.bSortiereNachKostenstelle) { sSortierung.append( getTextRespectUISpr("lp.kostenstelle", theClientDto.getMandant(), theClientDto.getLocUi())); sSortierung.append(", "); } // Sortierung nach Lieferant // reportjournalparameter: 1 nach Lieferanten map.put(LPReport.P_SORTIERENACHLIEFERANT, new Boolean(krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER)); if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) { sSortierung.append( getTextRespectUISpr("lp.lieferant", theClientDto.getMandant(), theClientDto.getLocUi())); } // reportjournalparameter: 2 nach Belegnummer else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_BELEGNUMMER) { sSortierung.append( getTextRespectUISpr("bes.bestnr", theClientDto.getMandant(), theClientDto.getLocUi())); } StringBuffer sFilter = new StringBuffer(); if (sVon != null) { sFilter.append(getTextRespectUISpr("lp.von", theClientDto.getMandant(), theClientDto.getLocUi())); sFilter.append(" " + sVon + " "); } if (sBis != null) { sFilter.append(getTextRespectUISpr("lp.bis", theClientDto.getMandant(), theClientDto.getLocUi())); sFilter.append(" " + sBis + " "); } if (krit.kostenstelleIId != null) { if (sFilter.length() > 0) { sFilter.append(", "); } KostenstelleDto kstDto = getSystemFac().kostenstelleFindByPrimaryKey(krit.kostenstelleIId); sFilter.append( getTextRespectUISpr("lp.kostenstelle", theClientDto.getMandant(), theClientDto.getLocUi())); sFilter.append(" "); sFilter.append(kstDto.getCNr()); } // reportjournalparameter: 3 Uebergabe map.put(LPReport.P_SORTIERUNG, sSortierung.toString()); map.put(LPReport.P_FILTER, sFilter.toString()); initJRDS(map, BestellungReportFac.REPORT_MODUL, BestellungReportFac.REPORT_BESTELLUNGEN_ALLE, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); } catch (RemoteException ex) { throwEJBExceptionLPRespectOld(ex); } finally { closeSession(session); } return getReportPrint(); }
From source file:com.lp.server.bestellung.ejbfac.BestellungReportFacBean.java
License:Open Source License
/** * Alle offenen Bestellungen fuer einen bestimmten Mandanten drucken. * // ww w . j a v a2 s . c o m * @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
public JasperPrintLP printBestellungWareneingangsJournal(ReportJournalKriterienDto krit, Integer artikelklasseIId, Integer artikelgruppeIId, String artikelCNrVon, String artikelCNrBis, String projektCBezeichnung, Integer auftragIId, boolean bMitWarenverbrauch, TheClientDto theClientDto) throws EJBExceptionLP, RemoteException { Session session = null;//from w ww.j a v a 2s . c om useCase = UC_BESTELLUNG_WARENEINGANG; SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); boolean darfEinkaufspreisSehen = getTheJudgeFac().hatRecht(RechteFac.RECHT_LP_DARF_PREISE_SEHEN_EINKAUF, theClientDto); Criteria c = session.createCriteria(FLRWareneingangspositionen.class); Criteria cWe = c.createCriteria(WareneingangFac.FLR_WEPOS_FLRWARENEINGANG); Criteria cBesPos = c.createCriteria(WareneingangFac.FLR_WEPOS_FLRBESTELLPOSITION); Criteria cArt = cBesPos.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRARTIKEL); Criteria cBestellung = cWe.createCriteria(WareneingangFac.FLR_WE_FLRBESTELLUNG); cBestellung.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_MANDANT_C_NR, theClientDto.getMandant())); // Datum von if (krit.dVon != null) { cWe.add(Restrictions.ge(WareneingangFac.FLRSPALTE_T_WARENEINGANGSDATUM, Helper.cutDate(krit.dVon))); } // Datum bis if (krit.dBis != null) { java.sql.Date dBisTemp = Helper.cutDate(new java.sql.Date(krit.dBis.getTime() + 24 * 3600000)); cWe.add(Restrictions.lt(WareneingangFac.FLRSPALTE_T_WARENEINGANGSDATUM, dBisTemp)); } // Filter nach Projektbezeichnung if (projektCBezeichnung != null) { cBestellung.add(Restrictions.ilike(BestellungFac.FLR_BESTELLUNG_C_BEZPROJEKTBEZEICHNUNG, "%" + projektCBezeichnung + "%")); } // Filter nach Auftrag if (auftragIId != null) { cBestellung.add(Restrictions.like(BestellungFac.FLR_BESTELLUNG_AUFTRAG_I_ID, auftragIId)); } 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(); // reportjournal: 06 belegnummer von // reportjournalbelegnummer: 1 (von) hier funktionierts fast gleich // wie bei den Direktfiltern if (krit.sBelegnummerVon != null) { String sVon = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr, sMandantKuerzel, krit.sBelegnummerVon); cBestellung.add(Restrictions.ge(BestellungFac.FLR_BESTELLUNG_C_NR, sVon)); } // reportjournal: 07 belegnummer bis // reportjournalbelegnummer: 2 (bis) detto if (krit.sBelegnummerBis != null) { String sBis = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr, sMandantKuerzel, krit.sBelegnummerBis); cBestellung.add(Restrictions.le(BestellungFac.FLR_BESTELLUNG_C_NR, sBis)); } // Einschraenkung nach einer bestimmten Kostenstelle if (krit.kostenstelleIId != null) { cBestellung.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_KOSTENSTELLE_I_ID, krit.kostenstelleIId)); } // Einschraenkung nach einem bestimmten Lieferanten if (krit.lieferantIId != null) { cBestellung.add( Restrictions.eq(BestellungFac.FLR_BESTELLUNG_LIEFERANT_I_ID_BESTELLADRESSE, krit.lieferantIId)); } if (artikelklasseIId != null) { cArt.createCriteria(ArtikelFac.FLR_ARTIKEL_FLRARTIKELKLASSE) .add(Restrictions.eq("i_id", artikelklasseIId)); } if (artikelgruppeIId != null) { cArt.createCriteria(ArtikelFac.FLR_ARTIKEL_FLRARTIKELGRUPPE) .add(Restrictions.eq("i_id", artikelgruppeIId)); } if (artikelCNrVon != null) { cArt.add(Restrictions.ge(ArtikelFac.FLR_ARTIKEL_C_NR, artikelCNrVon)); } if (artikelCNrBis != null) { cArt.add(Restrictions.le(ArtikelFac.FLR_ARTIKEL_C_NR, artikelCNrBis)); } // Sortierung nach Kostenstelle ist immer die erste Sortierung if (krit.bSortiereNachKostenstelle) { cBestellung.createCriteria(BestellungFac.FLR_BESTELLUNG_FLRKOSTENSTELLE).addOrder(Order.asc("c_nr")); } Map<String, Object> map = new TreeMap<String, Object>(); if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_DATUM) { cWe.addOrder(Order.asc(WareneingangFac.FLRSPALTE_T_WARENEINGANGSDATUM)); map.put(LPReport.P_SORTIERUNG, getTextRespectUISpr("bes.wedatum", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_IDENT) { cArt.addOrder(Order.asc(ArtikelFac.FLR_ARTIKEL_C_NR)); map.put(LPReport.P_SORTIERUNG, getTextRespectUISpr("lp.artikel", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_BELEGNUMMER) { cBestellung.addOrder(Order.asc(BestellungFac.FLR_BESTELLUNG_C_NR)); map.put(LPReport.P_SORTIERUNG, getTextRespectUISpr("bes.belegnummer", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PROJEKT) { cBestellung.addOrder(Order.asc(BestellungFac.FLR_BESTELLUNG_C_BEZPROJEKTBEZEICHNUNG)); map.put(LPReport.P_SORTIERUNG, getTextRespectUISpr("lp.projekt", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) { cBestellung.createCriteria(BestellungFac.FLR_BESTELLUNG_FLRLIEFERANT) .createCriteria(LieferantFac.FLR_PARTNER) .addOrder(Order.asc(PartnerFac.FLR_PARTNER_NAME1NACHNAMEFIRMAZEILE1)); map.put(LPReport.P_SORTIERUNG, getTextRespectUISpr("lp.partner", theClientDto.getMandant(), theClientDto.getLocUi())); } else { c.addOrder(Order.asc("i_id")); map.put(LPReport.P_SORTIERUNG, "i_id"); } List<?> list = c.list(); data = new Object[list.size()][REPORT_BSWARENEINGANGSJOURNAL_ANZAHL_SPALTEN]; int i = 0; for (Iterator<?> iter = list.iterator(); iter.hasNext();) { FLRWareneingangspositionen w = (FLRWareneingangspositionen) iter.next(); if (w.getFlrwareneingang().getT_wareneingansdatum() != null) { data[i][REPORT_BSWARENEINGANGSJOURNAL_DATUM] = w.getFlrwareneingang().getT_wareneingansdatum(); } if (w.getFlrwareneingang().getFlrbestellung().getC_nr() != null) { data[i][REPORT_BSWARENEINGANGSJOURNAL_BESTELLNUMMER] = w.getFlrwareneingang().getFlrbestellung() .getC_nr(); } else { data[i][REPORT_BSWARENEINGANGSJOURNAL_BESTELLNUMMER] = ""; } if (w.getFlrbestellposition().getFlrartikel().getC_nr() != null) { data[i][REPORT_BSWARENEINGANGSJOURNAL_IDENT] = w.getFlrbestellposition().getFlrartikel().getC_nr(); } else { data[i][REPORT_BSWARENEINGANGSJOURNAL_IDENT] = ""; } if (w.getFlrbestellposition().getC_bezeichnung() != null) { data[i][REPORT_BSWARENEINGANGSJOURNAL_BEZEICHNUNG] = w.getFlrbestellposition().getC_bezeichnung(); } else { ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKeySmall( w.getFlrbestellposition().getFlrartikel().getI_id(), theClientDto); data[i][REPORT_BSWARENEINGANGSJOURNAL_BEZEICHNUNG] = artikelDto.formatBezeichnung(); } if (bMitWarenverbrauch) { data[i][REPORT_BSWARENEINGANGSJOURNAL_WA_REFERENZ] = getLagerFac() .getWarenausgangsreferenzSubreport(LocaleFac.BELEGART_BESTELLUNG, w.getI_id(), null, theClientDto); } // SP903 if (w.getFlrbestellposition().getPosition_i_id_artikelset() != null) { data[i][REPORT_BSWARENEINGANGSJOURNAL_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", w.getFlrbestellposition().getI_id())); int iZeilen = critSet.list().size(); if (iZeilen > 0) { data[i][REPORT_BSWARENEINGANGSJOURNAL_SETARTIKEL_TYP] = ArtikelFac.SETARTIKEL_TYP_KOPF; } sessionSet.close(); } data[i][REPORT_BSWARENEINGANGSJOURNAL_PROJEKT] = w.getFlrbestellposition().getFlrbestellung() .getC_bezprojektbezeichnung(); data[i][REPORT_BSWARENEINGANGSJOURNAL_LIEFERANT] = w.getFlrbestellposition().getFlrbestellung() .getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1(); if (w.getN_geliefertemenge() != null) { data[i][REPORT_BSWARENEINGANGSJOURNAL_MENGE] = w.getN_geliefertemenge(); } else { data[i][REPORT_BSWARENEINGANGSJOURNAL_MENGE] = new BigDecimal(0); } if (w.getN_gelieferterpreis() != null) { if (darfEinkaufspreisSehen) { BigDecimal kurs = new BigDecimal(w.getFlrwareneingang().getFlrbestellung() .getF_wechselkursmandantwaehrungbestellungswaehrung()); if (kurs.doubleValue() != 0) { data[i][REPORT_BSWARENEINGANGSJOURNAL_GELIEFERTERPREIS] = w.getN_gelieferterpreis() .divide(kurs, 4, BigDecimal.ROUND_HALF_EVEN); } else { data[i][REPORT_BSWARENEINGANGSJOURNAL_GELIEFERTERPREIS] = new BigDecimal(0); } } else { data[i][REPORT_BSWARENEINGANGSJOURNAL_GELIEFERTERPREIS] = null; } } else { if (darfEinkaufspreisSehen) { data[i][REPORT_BSWARENEINGANGSJOURNAL_GELIEFERTERPREIS] = new BigDecimal(0); } else { data[i][REPORT_BSWARENEINGANGSJOURNAL_GELIEFERTERPREIS] = null; } } if (w.getN_einstandspreis() != null) { if (darfEinkaufspreisSehen) { BigDecimal kurs = new BigDecimal(w.getFlrwareneingang().getFlrbestellung() .getF_wechselkursmandantwaehrungbestellungswaehrung()); if (kurs.doubleValue() != 0) { data[i][REPORT_BSWARENEINGANGSJOURNAL_EINSTANDSPREIS] = w.getN_einstandspreis().divide(kurs, 4, BigDecimal.ROUND_HALF_EVEN); } else { data[i][REPORT_BSWARENEINGANGSJOURNAL_EINSTANDSPREIS] = new BigDecimal(0); } } else { data[i][REPORT_BSWARENEINGANGSJOURNAL_EINSTANDSPREIS] = null; } } else { if (darfEinkaufspreisSehen) { data[i][REPORT_BSWARENEINGANGSJOURNAL_EINSTANDSPREIS] = new BigDecimal(0); } else { data[i][REPORT_BSWARENEINGANGSJOURNAL_EINSTANDSPREIS] = null; } } data[i][REPORT_BSWARENEINGANGSJOURNAL_LIEFERSCHEIN] = w.getFlrwareneingang().getC_lieferscheinnr(); data[i][REPORT_BSWARENEINGANGSJOURNAL_LIEFERSCHEINDATUM] = w.getFlrwareneingang() .getT_lieferscheindatum(); if (w.getFlrwareneingang().getFlreingangsrechnung() != null) { data[i][REPORT_BSWARENEINGANGSJOURNAL_EINGANGSRECHNUNG] = w.getFlrwareneingang() .getFlreingangsrechnung().getC_nr(); } if (w.getFlrwareneingang().getFlrbestellung().getFlrkostenstelle() != null) { data[i][REPORT_BSWARENEINGANGSJOURNAL_KOSTENSTELLE] = w.getFlrwareneingang().getFlrbestellung() .getFlrkostenstelle().getC_nr(); } data[i][REPORT_BSWARENEINGANGSJOURNAL_ZUBUCHUNGSLAGER] = w.getFlrwareneingang().getFlrlager().getC_nr(); data[i][REPORT_BSWARENEINGANGSJOURNAL_RABATTSATZ] = w.getFlrwareneingang().getF_rabattsatz(); if (w.getFlrwareneingang().getFlrbestellung().getAuftrag_i_id() != null) { data[i][REPORT_BSWARENEINGANGSJOURNAL_AUFTRAG] = w.getFlrwareneingang().getFlrbestellung() .getFlrauftrag().getC_nr(); } if (w.getFlrbestellposition().getFlrartikel().getFlrartikelklasse() != null) { w.getFlrbestellposition().getFlrartikel().getFlrartikelklasse().getC_nr(); data[i][REPORT_BSWARENEINGANGSJOURNAL_ARTIKELKLASSE] = w.getFlrbestellposition().getFlrartikel() .getFlrartikelklasse().getC_nr(); } if (w.getFlrbestellposition().getFlrartikel().getFlrartikelgruppe() != null) { w.getFlrbestellposition().getFlrartikel().getFlrartikelgruppe().getC_nr(); data[i][REPORT_BSWARENEINGANGSJOURNAL_ARTIKELGRUPPE] = w.getFlrbestellposition().getFlrartikel() .getFlrartikelgruppe().getC_nr(); } data[i][REPORT_BSWARENEINGANGSJOURNAL_TRANSPORTKOSTEN] = w.getFlrwareneingang().getN_transportkosten(); data[i][REPORT_BSWARENEINGANGSJOURNAL_BANKSPESEN] = w.getFlrwareneingang().getN_bankspesen(); data[i][REPORT_BSWARENEINGANGSJOURNAL_ZOLLKOSTEN] = w.getFlrwareneingang().getN_zollkosten(); data[i][REPORT_BSWARENEINGANGSJOURNAL_SONSTIGEKOSTEN] = w.getFlrwareneingang().getN_sonstigespesen(); data[i][REPORT_BSWARENEINGANGSJOURNAL_GK_FAKTOR] = w.getFlrwareneingang().getF_gemeinkostenfaktor(); i++; } if (krit.dBis != null) { map.put("P_BIS", new Timestamp(krit.dBis.getTime())); } if (krit.dVon != null) { map.put("P_VON", new Timestamp(krit.dVon.getTime())); } map.put("P_MIT_WARENVERBRAUCH", new Boolean(bMitWarenverbrauch)); map.put(LPReport.P_REPORT_INFORMATION, ""); initJRDS(map, BestellungReportFac.REPORT_MODUL, BestellungReportFac.REPORT_BESTELLUNG_JOURNAL_WARENEINGANG, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); session.close(); return getReportPrint(); }
From source file:com.lp.server.eingangsrechnung.ejbfac.EingangsrechnungReportFacBean.java
License:Open Source License
@TransactionAttribute(TransactionAttributeType.NEVER) public JasperPrintLP printKontierungsjournal(TheClientDto theClientDto, int iFilterER, Integer kostenstelleIId, int iKritDatum, Date dVon, Date dBis, boolean bZusatzkosten) { Session session = null;//from ww w. j a v a 2s . c om try { this.useCase = UC_KONTIERUNG; SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); Criteria cKontierung = session.createCriteria(FLREingangsrechnungKontierung.class); if (kostenstelleIId != null) { cKontierung.add(Restrictions.eq(EingangsrechnungFac.FLR_KONTIERUNG_FLRKOSTENSTELLE + ".i_id", kostenstelleIId)); } // Filter nach ER-status Collection<String> cStati = new TreeSet<String>(); if (iFilterER == EingangsrechnungReportFac.REPORT_KONTIERUNG_FILTER_ER_ALLE) { cStati.add(EingangsrechnungFac.STATUS_ANGELEGT); cStati.add(EingangsrechnungFac.STATUS_ERLEDIGT); cStati.add(EingangsrechnungFac.STATUS_TEILBEZAHLT); // cStati.add(EingangsrechnungFac.STATUS_VERBUCHT); } else if (iFilterER == EingangsrechnungReportFac.REPORT_KONTIERUNG_FILTER_ER_BEZAHLT) { cStati.add(EingangsrechnungFac.STATUS_ERLEDIGT); } else if (iFilterER == EingangsrechnungReportFac.REPORT_KONTIERUNG_FILTER_ER_OFFENE) { cStati.add(EingangsrechnungFac.STATUS_ANGELEGT); cStati.add(EingangsrechnungFac.STATUS_TEILBEZAHLT); // cStati.add(EingangsrechnungFac.STATUS_VERBUCHT); } Collection<String> cArten = new TreeSet<String>(); if (bZusatzkosten) { cArten.add(EingangsrechnungFac.EINGANGSRECHNUNGART_ZUSATZKOSTEN); } else { cArten.add(EingangsrechnungFac.EINGANGSRECHNUNGART_ANZAHLUNG); cArten.add(EingangsrechnungFac.EINGANGSRECHNUNGART_EINGANGSRECHNUNG); cArten.add(EingangsrechnungFac.EINGANGSRECHNUNGART_GUTSCHRIFT); cArten.add(EingangsrechnungFac.EINGANGSRECHNUNGART_SCHLUSSZAHLUNG); } String mandantCNr = theClientDto.getMandant(); Criteria cEigangsrechnung = cKontierung .createCriteria(EingangsrechnungFac.FLR_KONTIERUNG_FLREINGANGSRECHNUNG); if (iKritDatum == EingangsrechnungReportFac.REPORT_KONTIERUNG_KRIT_DATUM_BELEG) { cEigangsrechnung.add(Restrictions.eq(EingangsrechnungFac.FLR_ER_MANDANT_C_NR, mandantCNr)) .add(Restrictions.ge(EingangsrechnungFac.FLR_ER_D_BELEGDATUM, dVon)) .add(Restrictions.le(EingangsrechnungFac.FLR_ER_D_BELEGDATUM, dBis)) .add(Restrictions.in(EingangsrechnungFac.FLR_ER_STATUS_C_NR, cStati)) .add(Restrictions.in(EingangsrechnungFac.FLR_ER_EINGANGSRECHNUNGART_C_NR, cArten)); } else if (iKritDatum == EingangsrechnungReportFac.REPORT_KONTIERUNG_KRIT_DATUM_FREIGABE) { cEigangsrechnung.add(Restrictions.eq(EingangsrechnungFac.FLR_ER_MANDANT_C_NR, mandantCNr)) .add(Restrictions.ge(EingangsrechnungFac.FLR_ER_D_FREIGABEDATUM, dVon)) .add(Restrictions.le(EingangsrechnungFac.FLR_ER_D_FREIGABEDATUM, dBis)) .add(Restrictions.in(EingangsrechnungFac.FLR_ER_STATUS_C_NR, cStati)) .add(Restrictions.in(EingangsrechnungFac.FLR_ER_EINGANGSRECHNUNGART_C_NR, cArten)); } // Sortierung noch kostenstelle, konto cKontierung.createCriteria(EingangsrechnungFac.FLR_KONTIERUNG_FLRKOSTENSTELLE) .addOrder(Order.asc("c_nr")); cKontierung.createCriteria(EingangsrechnungFac.FLR_KONTIERUNG_FLRKONTO).addOrder(Order.asc("c_nr")); List<?> listKontierung = cKontierung.list(); ArrayList<ReportEingangsrechnungKontierungsjournalDto> coll = new ArrayList<ReportEingangsrechnungKontierungsjournalDto>(); for (Iterator<?> iter = listKontierung.iterator(); iter.hasNext();) { FLREingangsrechnungKontierung item = (FLREingangsrechnungKontierung) iter.next(); EingangsrechnungDto erDto = getEingangsrechnungFac() .eingangsrechnungFindByPrimaryKey(item.getEingangsrechnung_i_id()); ReportEingangsrechnungKontierungsjournalDto dto = new ReportEingangsrechnungKontierungsjournalDto(); // Bezahlter Wert in Mandantenwaehrung BigDecimal bdBezahlt = getEingangsrechnungFac().getBezahltBetrag(erDto.getIId(), item.getI_id()); dto.setBdBezahlt(bdBezahlt); dto.setBdBezahltFW(getEingangsrechnungFac().getBezahltBetragFw(erDto.getIId(), item.getI_id())); // Bezahlt Wert mit Kurs der ER in Mandantenwaehrung BigDecimal bdBezahltERKurs = getEingangsrechnungFac().getBezahltBetragFwKontierung(erDto.getIId(), item.getI_id()); if (bdBezahltERKurs != null) { bdBezahltERKurs = bdBezahltERKurs.multiply(erDto.getNKurs()); } dto.setBdBezahltzuERKurs(bdBezahltERKurs); // Letztes Zahldatum EingangsrechnungzahlungDto letzteZahlung = getEingangsrechnungFac() .getLetzteZahlung(erDto.getIId()); Date dLetztesZahldatum = null; if (letzteZahlung != null) { dLetztesZahldatum = new Date(letzteZahlung.getTZahldatum().getTime()); } dto.setDLetzesZahldatum(dLetztesZahldatum); // Errechneter Steuersatz // BigDecimal bdErrechneterSteuersatz = erDto // .getNUstBetrag() // .divide(erDto.getNBetrag().subtract( // erDto.getNUstBetrag()), 4, // BigDecimal.ROUND_HALF_EVEN).movePointRight(2); // dto.setBdErrechneterSteuersatz(bdErrechneterSteuersatz); dto.setWaehrungCNr(erDto.getWaehrungCNr()); dto.setBdUst(item.getN_betrag_ust().multiply(erDto.getNKurs()).setScale(FinanzFac.NACHKOMMASTELLEN, BigDecimal.ROUND_HALF_EVEN)); dto.setBdUstFW(item.getN_betrag_ust()); dto.setBdWert(item.getN_betrag().multiply(erDto.getNKurs()).setScale(FinanzFac.NACHKOMMASTELLEN, BigDecimal.ROUND_HALF_EVEN)); dto.setBdWertFW(item.getN_betrag()); BigDecimal bdErrechneterSteuersatz = getMwstSatzVonBruttoBetragUndUst(erDto.getMandantCNr(), new Timestamp(erDto.getDBelegdatum().getTime()), dto.getBdWert(), dto.getBdUst()); // BigDecimal bdErrechneterSteuersatz = dto // .getBdUst() // .divide(dto.getBdWert().subtract( // dto.getBdUst()), 4, // BigDecimal.ROUND_HALF_EVEN).movePointRight(2); dto.setBdErrechneterSteuersatz(bdErrechneterSteuersatz); dto.setDEingangsrechnungsdatum(item.getFlreingangsrechnung().getT_belegdatum()); dto.setSEingangsrechnungsnummer(item.getFlreingangsrechnung().getC_nr()); dto.setSEingangsrechnungText(erDto.getCText()); dto.setSEingangsrechnungWeartikel(erDto.getCWeartikel()); dto.setSKontobezeichnung(item.getFlrkonto().getC_bez()); dto.setSKontonummer(item.getFlrkonto().getC_nr()); dto.setSKostenstelleBezeichnung(item.getFlrkostenstelle().getC_bez()); dto.setSKostenstellenummer(item.getFlrkostenstelle().getC_nr()); dto.setSLieferant(item.getFlreingangsrechnung().getFlrlieferant().getFlrpartner() .getC_name1nachnamefirmazeile1()); if (item.getFlrkonto().getFlrkontoart() != null) { dto.setSKontoart(getFinanzServiceFac().uebersetzeKontoartOptimal( item.getFlrkonto().getFlrkontoart().getC_nr(), theClientDto.getLocUi(), theClientDto.getLocMandant())); } coll.add(dto); } // jetzt noch die nicht mehrfach kontierten holen Criteria cER = session.createCriteria(FLREingangsrechnungReport.class); if (kostenstelleIId != null) { cER.add(Restrictions.eq(EingangsrechnungFac.FLR_ER_FLRKOSTENSTELLE + ".i_id", kostenstelleIId)); } if (bZusatzkosten) { cER.add(Restrictions.eq(EingangsrechnungFac.FLR_ER_EINGANGSRECHNUNGART_C_NR, EingangsrechnungFac.EINGANGSRECHNUNGART_ZUSATZKOSTEN)); } else { cER.add(Restrictions.not(Restrictions.eq(EingangsrechnungFac.FLR_ER_EINGANGSRECHNUNGART_C_NR, EingangsrechnungFac.EINGANGSRECHNUNGART_ZUSATZKOSTEN))); } if (iKritDatum == EingangsrechnungReportFac.REPORT_KONTIERUNG_KRIT_DATUM_BELEG) { cER.add(Restrictions.eq(EingangsrechnungFac.FLR_ER_MANDANT_C_NR, mandantCNr)) .add(Restrictions.ge(EingangsrechnungFac.FLR_ER_D_BELEGDATUM, dVon)) .add(Restrictions.le(EingangsrechnungFac.FLR_ER_D_BELEGDATUM, dBis)) .add(Restrictions.in(EingangsrechnungFac.FLR_ER_STATUS_C_NR, cStati)); } else if (iKritDatum == EingangsrechnungReportFac.REPORT_KONTIERUNG_KRIT_DATUM_FREIGABE) { cER.add(Restrictions.eq(EingangsrechnungFac.FLR_ER_MANDANT_C_NR, mandantCNr)) .add(Restrictions.ge(EingangsrechnungFac.FLR_ER_D_FREIGABEDATUM, dVon)) .add(Restrictions.le(EingangsrechnungFac.FLR_ER_D_FREIGABEDATUM, dBis)) .add(Restrictions.in(EingangsrechnungFac.FLR_ER_STATUS_C_NR, cStati)); } List<?> listER = cER.list(); for (Iterator<?> iter = listER.iterator(); iter.hasNext();) { FLREingangsrechnungReport item = (FLREingangsrechnungReport) iter.next(); EingangsrechnungDto erDto = getEingangsrechnungFac() .eingangsrechnungFindByPrimaryKey(item.getI_id()); if (erDto.getKostenstelleIId() != null) { ReportEingangsrechnungKontierungsjournalDto dto = new ReportEingangsrechnungKontierungsjournalDto(); // Bezahlter Wert in Mandantenwaehrung BigDecimal bdBezahlt = getEingangsrechnungFac().getBezahltBetrag(erDto.getIId(), null); dto.setBdBezahlt(bdBezahlt); // Bezahlt Wert mit Kurs der ER in Mandantenwaehrung BigDecimal bdBezahltERKurs = getEingangsrechnungFac().getBezahltBetragFw(erDto.getIId(), null); if (bdBezahltERKurs != null) { dto.setBdBezahltFW(new BigDecimal(bdBezahltERKurs.doubleValue())); bdBezahltERKurs = bdBezahltERKurs.multiply(erDto.getNKurs()); } dto.setBdBezahltzuERKurs(bdBezahltERKurs); // Letztes Zahldatum EingangsrechnungzahlungDto letzteZahlung = getEingangsrechnungFac() .getLetzteZahlung(erDto.getIId()); Date dLetztesZahldatum = null; if (letzteZahlung != null) { dLetztesZahldatum = new Date(letzteZahlung.getTZahldatum().getTime()); } dto.setBdERKurs(erDto.getNKurs()); dto.setWaehrungCNr(erDto.getWaehrungCNr()); dto.setDLetzesZahldatum(dLetztesZahldatum); // Werte dto.setBdUst( erDto.getNUstBetrag().setScale(FinanzFac.NACHKOMMASTELLEN, BigDecimal.ROUND_HALF_EVEN)); dto.setBdWert( erDto.getNBetrag().setScale(FinanzFac.NACHKOMMASTELLEN, BigDecimal.ROUND_HALF_EVEN)); dto.setBdUstFW(erDto.getNUstBetragfw().setScale(FinanzFac.NACHKOMMASTELLEN, BigDecimal.ROUND_HALF_EVEN)); dto.setBdWertFW( erDto.getNBetragfw().setScale(FinanzFac.NACHKOMMASTELLEN, BigDecimal.ROUND_HALF_EVEN)); // Errechneter Steuersatz BigDecimal bdErrechneterSteuersatz = null; if (erDto.getNBetrag().subtract(erDto.getNUstBetrag()).doubleValue() == 0) { bdErrechneterSteuersatz = new BigDecimal(100); } else { // bdErrechneterSteuersatz = erDto // .getNUstBetrag() // .divide(erDto.getNBetrag().subtract( // erDto.getNUstBetrag()), 4, // BigDecimal.ROUND_HALF_EVEN) // .movePointRight(2); bdErrechneterSteuersatz = getMwstSatzVonBruttoBetragUndUst(erDto.getMandantCNr(), new Timestamp(erDto.getDBelegdatum().getTime()), dto.getBdWert(), dto.getBdUst()); } dto.setBdErrechneterSteuersatz(bdErrechneterSteuersatz); dto.setDEingangsrechnungsdatum(item.getT_belegdatum()); dto.setSEingangsrechnungsnummer(item.getC_nr()); dto.setSEingangsrechnungText(erDto.getCText()); dto.setSEingangsrechnungWeartikel(erDto.getCWeartikel()); dto.setSLieferantenrechnungsnummer(item.getC_lieferantenrechnungsnummer()); dto.setDFreigabedatum(item.getT_freigabedatum()); if (erDto.getKontoIId() != null) { KontoDto kontoDto = getFinanzFac().kontoFindByPrimaryKey(erDto.getKontoIId()); dto.setSKontobezeichnung(kontoDto.getCBez()); dto.setSKontonummer(kontoDto.getCNr()); if (kontoDto.getKontoartCNr() != null) { dto.setSKontoart( getFinanzServiceFac().uebersetzeKontoartOptimal(kontoDto.getKontoartCNr(), theClientDto.getLocUi(), theClientDto.getLocMandant())); } } else { dto.setSKontobezeichnung(getTextRespectUISpr("er.kontierungfehlerhaft", theClientDto.getMandant(), theClientDto.getLocUi())); dto.setSKontonummer("ERR"); } dto.setSKostenstelleBezeichnung(item.getFlrkostenstelle().getC_bez()); dto.setSKostenstellenummer(item.getFlrkostenstelle().getC_nr()); dto.setSLieferant(item.getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1()); if (item.getFlrlieferant().getKonto_i_id_kreditorenkonto() != null) { KontoDto kredKontoDto = getFinanzFac() .kontoFindByPrimaryKey(item.getFlrlieferant().getKonto_i_id_kreditorenkonto()); dto.setSKreditorennummer(kredKontoDto.getCNr()); } else { dto.setSKreditorennummer(null); } coll.add(dto); } } // Sortieren Collections.sort(coll, new ComparatorKontierungsjournal(Helper.SORTIERUNG_NACH_KOSTENSTELLE_UND_KONTO)); data = new Object[coll.size()][KONTIERUNG_ANZAHL_FELDER]; int i = 0; for (Iterator<ReportEingangsrechnungKontierungsjournalDto> iter = coll.iterator(); iter .hasNext(); i++) { ReportEingangsrechnungKontierungsjournalDto item = (ReportEingangsrechnungKontierungsjournalDto) iter .next(); data[i][KONTIERUNG_FELD_WERT_BEZAHLT] = item.getBdBezahlt(); data[i][KONTIERUNG_FELD_WERT_UST] = item.getBdUst(); data[i][KONTIERUNG_FELD_WERT] = item.getBdWert(); data[i][KONTIERUNG_FELD_WERT_BEZAHLT_FW] = item.getBdBezahltFW(); data[i][KONTIERUNG_FELD_WERT_UST_FW] = item.getBdUstFW(); data[i][KONTIERUNG_FELD_WERT_FW] = item.getBdWertFW(); data[i][KONTIERUNG_FELD_ER_KURS] = item.getBdERKurs(); data[i][KONTIERUNG_FELD_WAEHRUNG_C_NR] = item.getWaehrungCNr(); data[i][KONTIERUNG_FELD_ER_DATUM] = item.getDEingangsrechnungsdatum(); data[i][KONTIERUNG_FELD_ER_C_NR] = item.getSEingangsrechnungsnummer(); data[i][KONTIERUNG_FELD_ER_TEXT] = item.getSEingangsrechnungText(); data[i][KONTIERUNG_FELD_ER_WEARTIKEL] = item.getSEingangsrechnungWeartikel(); data[i][KONTIERUNG_FELD_KONTOART_C_NR] = item.getSKontoart(); data[i][KONTIERUNG_FELD_KONTO_C_BEZ] = item.getSKontobezeichnung(); data[i][KONTIERUNG_FELD_KONTO_C_NR] = item.getSKontonummer(); data[i][KONTIERUNG_FELD_KOSTENSTELLE_C_BEZ] = item.getSKostenstelleBezeichnung(); data[i][KONTIERUNG_FELD_KOSTENSTELLE_C_NR] = item.getSKostenstellenummer(); data[i][KONTIERUNG_FELD_ER_LIEFERANT] = item.getSLieferant(); data[i][KONTIERUNG_FELD_LETZTES_ZAHLDATUM] = item.getDLetzesZahldatum(); data[i][KONTIERUNG_FELD_ERRECHNETER_STEUERSATZ] = item.getBdErrechneterSteuersatz(); data[i][KONTIERUNG_FELD_LIEFERANTENRECHNUNGSNUMMER] = item.getSLieferantenrechnungsnummer(); if (item.getDFreigabedatum() == null) { cKontierung = session.createCriteria(FLREingangsrechnungKontierung.class); if (kostenstelleIId != null) { cKontierung.add(Restrictions .eq(EingangsrechnungFac.FLR_KONTIERUNG_FLRKOSTENSTELLE + ".i_id", kostenstelleIId)); } // Filter nach ER-status cStati = new TreeSet<String>(); if (iFilterER == EingangsrechnungReportFac.REPORT_KONTIERUNG_FILTER_ER_ALLE) { cStati.add(EingangsrechnungFac.STATUS_ANGELEGT); cStati.add(EingangsrechnungFac.STATUS_ERLEDIGT); cStati.add(EingangsrechnungFac.STATUS_TEILBEZAHLT); // cStati.add(EingangsrechnungFac.STATUS_VERBUCHT); } else if (iFilterER == EingangsrechnungReportFac.REPORT_KONTIERUNG_FILTER_ER_BEZAHLT) { cStati.add(EingangsrechnungFac.STATUS_ERLEDIGT); } else if (iFilterER == EingangsrechnungReportFac.REPORT_KONTIERUNG_FILTER_ER_OFFENE) { cStati.add(EingangsrechnungFac.STATUS_ANGELEGT); cStati.add(EingangsrechnungFac.STATUS_TEILBEZAHLT); // cStati.add(EingangsrechnungFac.STATUS_VERBUCHT); } mandantCNr = theClientDto.getMandant(); if (iKritDatum == EingangsrechnungReportFac.REPORT_KONTIERUNG_KRIT_DATUM_BELEG) { cKontierung.createCriteria(EingangsrechnungFac.FLR_KONTIERUNG_FLREINGANGSRECHNUNG) .add(Restrictions.eq(EingangsrechnungFac.FLR_ER_MANDANT_C_NR, mandantCNr)) .add(Restrictions.ge(EingangsrechnungFac.FLR_ER_D_BELEGDATUM, dVon)) .add(Restrictions.le(EingangsrechnungFac.FLR_ER_D_BELEGDATUM, dBis)) .add(Restrictions.in(EingangsrechnungFac.FLR_ER_STATUS_C_NR, cStati)); } else if (iKritDatum == EingangsrechnungReportFac.REPORT_KONTIERUNG_KRIT_DATUM_FREIGABE) { cKontierung.createCriteria(EingangsrechnungFac.FLR_KONTIERUNG_FLREINGANGSRECHNUNG) .add(Restrictions.eq(EingangsrechnungFac.FLR_ER_MANDANT_C_NR, mandantCNr)) .add(Restrictions.ge(EingangsrechnungFac.FLR_ER_D_FREIGABEDATUM, dVon)) .add(Restrictions.le(EingangsrechnungFac.FLR_ER_D_FREIGABEDATUM, dBis)) .add(Restrictions.in(EingangsrechnungFac.FLR_ER_STATUS_C_NR, cStati)); } // Sortierung noch kostenstelle, konto cKontierung.createCriteria(EingangsrechnungFac.FLR_KONTIERUNG_FLRKOSTENSTELLE) .addOrder(Order.asc("c_nr")); cKontierung.createCriteria(EingangsrechnungFac.FLR_KONTIERUNG_FLRKONTO) .addOrder(Order.asc("c_nr")); listKontierung = cKontierung.list(); coll = new ArrayList<ReportEingangsrechnungKontierungsjournalDto>(); for (Iterator<?> iter1 = listKontierung.iterator(); iter1.hasNext();) { FLREingangsrechnungKontierung item1 = (FLREingangsrechnungKontierung) iter1.next(); EingangsrechnungDto erDto = getEingangsrechnungFac() .eingangsrechnungFindByPrimaryKey(item1.getEingangsrechnung_i_id()); ReportEingangsrechnungKontierungsjournalDto dto = new ReportEingangsrechnungKontierungsjournalDto(); BigDecimal bdBezahlt = getEingangsrechnungFac().getBezahltBetrag(erDto.getIId(), item1.getI_id()); dto.setBdBezahlt(bdBezahlt); // Bezahlt Wert mit Kurs der ER in Mandantenwaehrung BigDecimal bdBezahltERKurs = getEingangsrechnungFac().getBezahltBetragFw(erDto.getIId(), item1.getI_id()); if (bdBezahltERKurs != null) { dto.setBdBezahltFW(new BigDecimal(bdBezahltERKurs.doubleValue())); bdBezahltERKurs = bdBezahltERKurs.multiply(erDto.getNKurs()); } dto.setBdBezahltzuERKurs(bdBezahltERKurs); // Letztes Zahldatum EingangsrechnungzahlungDto letzteZahlung = getEingangsrechnungFac() .getLetzteZahlung(erDto.getIId()); Date dLetztesZahldatum = null; if (letzteZahlung != null) { dLetztesZahldatum = new Date(letzteZahlung.getTZahldatum().getTime()); } dto.setDLetzesZahldatum(dLetztesZahldatum); // Errechneter Steuersatz BigDecimal bdErrechneterSteuersatz = erDto.getNUstBetrag() .divide(erDto.getNBetrag().subtract(erDto.getNUstBetrag()), 4, BigDecimal.ROUND_HALF_EVEN) .movePointRight(2); dto.setBdErrechneterSteuersatz(bdErrechneterSteuersatz); dto.setBdUst(item1.getN_betrag_ust().multiply(erDto.getNKurs()) .setScale(FinanzFac.NACHKOMMASTELLEN, BigDecimal.ROUND_HALF_EVEN)); dto.setBdWert(item1.getN_betrag().multiply(erDto.getNKurs()) .setScale(FinanzFac.NACHKOMMASTELLEN, BigDecimal.ROUND_HALF_EVEN)); dto.setBdUstFW(item1.getN_betrag_ust().setScale(FinanzFac.NACHKOMMASTELLEN, BigDecimal.ROUND_HALF_EVEN)); dto.setBdWertFW(item1.getN_betrag().setScale(FinanzFac.NACHKOMMASTELLEN, BigDecimal.ROUND_HALF_EVEN)); dto.setWaehrungCNr(erDto.getWaehrungCNr()); dto.setDEingangsrechnungsdatum(item1.getFlreingangsrechnung().getT_belegdatum()); dto.setSEingangsrechnungsnummer(item1.getFlreingangsrechnung().getC_nr()); dto.setSEingangsrechnungText(erDto.getCText()); dto.setSEingangsrechnungWeartikel(erDto.getCWeartikel()); dto.setSKontobezeichnung(item1.getFlrkonto().getC_bez()); dto.setSKontonummer(item1.getFlrkonto().getC_nr()); dto.setSKostenstelleBezeichnung(item1.getFlrkostenstelle().getC_bez()); dto.setSKostenstellenummer(item1.getFlrkostenstelle().getC_nr()); dto.setSLieferant(item1.getFlreingangsrechnung().getFlrlieferant().getFlrpartner() .getC_name1nachnamefirmazeile1()); if (item1.getFlrkonto().getFlrkontoart() != null) { dto.setSKontoart(getFinanzServiceFac().uebersetzeKontoartOptimal( item1.getFlrkonto().getFlrkontoart().getC_nr(), theClientDto.getLocUi(), theClientDto.getLocMandant())); } if (erDto.getDFreigabedatum() != null) { item.setDFreigabedatum(erDto.getDFreigabedatum()); } } } data[i][KONTIERUNG_FELD_ER_FREIGABEDATUM] = item.getDFreigabedatum(); data[i][KONTIERUNG_FELD_WERT_BEZAHLT_ERKURS] = item.getBdBezahltzuERKurs(); data[i][KONTIERUNG_FELD_KREDITORENNUMMER] = item.getSKreditorennummer(); } // Datumsbereich StringBuffer sDatum = new StringBuffer(); if (iKritDatum == EingangsrechnungReportFac.REPORT_KONTIERUNG_KRIT_DATUM_BELEG) { sDatum.append("Belegdatum "); } else if (iKritDatum == EingangsrechnungReportFac.REPORT_KONTIERUNG_KRIT_DATUM_FREIGABE) { sDatum.append("Freigabedatum "); } if (dVon != null) { sDatum.append("von " + Helper.formatDatum(dVon, theClientDto.getLocUi())); } if (dBis != null) { sDatum.append(" bis " + Helper.formatDatum(dBis, theClientDto.getLocUi())); } Map<String, Object> mapParameter = new TreeMap<String, Object>(); mapParameter.put("P_DATUM", sDatum.toString()); mapParameter.put("P_ZUSATZKOSTEN", new Boolean(bZusatzkosten)); // Filter StringBuffer sFilter = new StringBuffer(); if (iFilterER == EingangsrechnungReportFac.REPORT_KONTIERUNG_FILTER_ER_ALLE) { sFilter.append("Alle Eingangsrechnungen"); } else if (iFilterER == EingangsrechnungReportFac.REPORT_KONTIERUNG_FILTER_ER_BEZAHLT) { sFilter.append("Bezahlte Eingangsrechnungen"); } else if (iFilterER == EingangsrechnungReportFac.REPORT_KONTIERUNG_FILTER_ER_OFFENE) { sFilter.append("Offene Eingangsrechnungen"); } sFilter.append(", "); if (kostenstelleIId == null) { sFilter.append("Alle Kostenstellen"); } else { sFilter.append("Eine Kostenstelle"); } mapParameter.put(LPReport.P_FILTER, sFilter.toString()); initJRDS(mapParameter, EingangsrechnungReportFac.REPORT_MODUL, EingangsrechnungReportFac.REPORT_EINGANGSRECHNUNG_KONTIERUNG, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); return getReportPrint(); } catch (RemoteException ex) { throwEJBExceptionLPRespectOld(ex); return null; } finally { closeSession(session); } }
From source file:com.lp.server.eingangsrechnung.ejbfac.EingangsrechnungReportFacBean.java
License:Open Source License
@TransactionAttribute(TransactionAttributeType.NEVER) public JasperPrintLP printAlle(ReportJournalKriterienDto krit, TheClientDto theClientDto, boolean bZusatzkosten, boolean bDatumIstFreigabedatum) { Session session = null;/* w ww. j a v a2 s . c o m*/ try { this.useCase = UC_ALLE; SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); Criteria c = session.createCriteria(FLREingangsrechnungReport.class); c.add(Restrictions.eq(EingangsrechnungFac.FLR_ER_MANDANT_C_NR, theClientDto.getMandant())); if (krit.kostenstelleIId != null) { c.add(Restrictions.eq(EingangsrechnungFac.FLR_ER_KOSTENSTELLE_I_ID, krit.kostenstelleIId)); } if (krit.lieferantIId != null) { c.add(Restrictions.eq(EingangsrechnungFac.FLR_ER_LIEFERANT_I_ID, krit.lieferantIId)); } String sVon = null; String sBis = null; if (krit.dVon != null) { if (bDatumIstFreigabedatum) { c.add(Restrictions.ge(EingangsrechnungFac.FLR_ER_D_FREIGABEDATUM, krit.dVon)); } else { c.add(Restrictions.ge(EingangsrechnungFac.FLR_ER_D_BELEGDATUM, krit.dVon)); } sVon = Helper.formatDatum(krit.dVon, theClientDto.getLocUi()); } if (krit.dBis != null) { if (bDatumIstFreigabedatum) { c.add(Restrictions.le(EingangsrechnungFac.FLR_ER_D_FREIGABEDATUM, krit.dBis)); } else { c.add(Restrictions.le(EingangsrechnungFac.FLR_ER_D_BELEGDATUM, krit.dBis)); } sBis = Helper.formatDatum(krit.dBis, theClientDto.getLocUi()); } if (bZusatzkosten) { c.add(Restrictions.eq(EingangsrechnungFac.FLR_ER_EINGANGSRECHNUNGART_C_NR, EingangsrechnungFac.EINGANGSRECHNUNGART_ZUSATZKOSTEN)); } else { c.add(Restrictions.not(Restrictions.eq(EingangsrechnungFac.FLR_ER_EINGANGSRECHNUNGART_C_NR, EingangsrechnungFac.EINGANGSRECHNUNGART_ZUSATZKOSTEN))); } 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 (krit.sBelegnummerVon != null) { sVon = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr, sMandantKuerzel, krit.sBelegnummerVon); c.add(Restrictions.ge(EingangsrechnungFac.FLR_ER_C_NR, sVon)); } if (krit.sBelegnummerBis != null) { sBis = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr, sMandantKuerzel, krit.sBelegnummerBis); c.add(Restrictions.le(EingangsrechnungFac.FLR_ER_C_NR, sBis)); } if (krit.bSortiereNachKostenstelle) { c.createCriteria(EingangsrechnungFac.FLR_ER_FLRKOSTENSTELLE).addOrder(Order.asc("c_nr")); } if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) { c.createCriteria(EingangsrechnungFac.FLR_ER_FLRLIEFERANT).createCriteria(LieferantFac.FLR_PARTNER) .addOrder(Order.asc(PartnerFac.FLR_PARTNER_NAME1NACHNAMEFIRMAZEILE1)); c.addOrder(Order.asc(EingangsrechnungFac.FLR_ER_C_NR)); } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_BELEGNUMMER) { c.addOrder(Order.asc(EingangsrechnungFac.FLR_ER_C_NR)); } else { c.addOrder(Order.asc(EingangsrechnungFac.FLR_ER_C_NR)); } List<?> list = c.list(); data = new Object[list.size()][ALLE_ANZAHL_FELDER]; int i = 0; for (Iterator<?> iter = list.iterator(); iter.hasNext();) { FLREingangsrechnungReport e = (FLREingangsrechnungReport) iter.next(); data[i][FELD_ALLE_AUSZUG] = getEingangsrechnungFac().getAuszugDerLetztenZahlung(e.getI_id()); BankverbindungDto bvDto = getEingangsrechnungFac().getZuletztVerwendeteBankverbindung(e.getI_id()); if (bvDto != null) { BankDto bankDto = getBankFac().bankFindByPrimaryKey(bvDto.getBankIId(), theClientDto); data[i][FELD_ALLE_BANK] = bankDto.getPartnerDto().getCName1nachnamefirmazeile1(); } data[i][FELD_ALLE_BELEGDATUM] = e.getT_belegdatum(); data[i][FELD_ALLE_BEZAHLTDATUM] = e.getT_bezahltdatum(); data[i][FELD_ALLE_EINGANGSRECHNUNGSNUMMER] = e.getC_nr(); data[i][FELD_ALLE_STATUS] = e.getStatus_c_nr(); data[i][FELD_ALLE_FREIGABEDATUM] = e.getT_freigabedatum(); data[i][FELD_ALLE_KOSTENSTELLENUMMER] = e.getFlrkostenstelle() != null ? e.getFlrkostenstelle().getC_nr() : ""; data[i][FELD_ALLE_LIEFERANT] = e.getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1(); data[i][FELD_ALLE_TEXT] = e.getC_text(); data[i][FELD_ALLE_WEARTIKEL] = e.getC_weartikel(); data[i][FELD_ALLE_WERT] = e.getN_betrag(); data[i][FELD_ALLE_KURS] = e.getN_kurs(); data[i][FELD_ALLE_WAEHRUNG] = e.getWaehrung_c_nr(); data[i][FELD_ALLE_ZOLLBELEGNUMMER] = e.getC_zollimportpapier(); data[i][FELD_ALLE_WERTNETTO] = e.getN_betrag() != null ? e.getN_betrag().subtract(e.getN_ustbetrag()) : null; data[i][FELD_ALLE_WERTUST] = e.getN_ustbetrag(); data[i][FELD_ALLE_WERT_FW] = e.getN_betragfw(); data[i][FELD_ALLE_WERTNETTO_FW] = e.getN_betragfw() != null ? e.getN_betragfw().subtract(e.getN_ustbetragfw()) : null; data[i][FELD_ALLE_WERTUST_FW] = e.getN_ustbetragfw(); data[i][FELD_ALLE_ZIELDATUM] = getMandantFac().berechneZielDatumFuerBelegdatum( e.getT_freigabedatum(), e.getZahlungsziel_i_id(), theClientDto); data[i][FELD_ALLE_LAENDERART] = getFinanzServiceFac() .getLaenderartZuPartner(e.getFlrlieferant().getFlrpartner().getI_id(), theClientDto); data[i][FELD_ALLE_ZAHLBETRAG] = getEingangsrechnungFac().getBezahltBetrag(e.getI_id(), null); data[i][FELD_ALLE_ZAHLBETRAG_FW] = getEingangsrechnungFac().getBezahltBetragFw(e.getI_id(), null); if (e.getFlrkonto() != null) { data[i][FELD_ALLE_KONTO] = e.getFlrkonto().getC_nr(); } EingangsrechnungKontierungDto[] kontierungDtos = getEingangsrechnungFac() .eingangsrechnungKontierungFindByEingangsrechnungIId(e.getI_id()); if (kontierungDtos.length > 0) { String[] fieldnames = new String[] { "F_BETRAG", "F_USTBETRAG", "F_KOSTENSTELLE", "F_SACHKONTO", "F_UST" }; Object[][] dataSub = new Object[kontierungDtos.length][fieldnames.length]; BigDecimal gesamtUst = new BigDecimal(0); for (int j = 0; j < kontierungDtos.length; j++) { dataSub[j][0] = kontierungDtos[j].getNBetrag(); dataSub[j][1] = kontierungDtos[j].getNBetragUst(); gesamtUst = gesamtUst.add(kontierungDtos[j].getNBetragUst()); dataSub[j][2] = getSystemFac() .kostenstelleFindByPrimaryKey(kontierungDtos[j].getKostenstelleIId()).getCNr(); dataSub[j][3] = getFinanzFac().kontoFindByPrimaryKeySmall(kontierungDtos[j].getKontoIId()) .getCNr(); dataSub[j][4] = new BigDecimal(getMandantFac() .mwstsatzFindByPrimaryKey(kontierungDtos[j].getMwstsatzIId(), theClientDto) .getFMwstsatz()); } data[i][FELD_ALLE_KONTIERUNG] = new LPDatenSubreport(dataSub, fieldnames); data[i][FELD_ALLE_WERTUST] = gesamtUst; } else { data[i][FELD_ALLE_UST] = getMwstSatzVonBruttoBetragUndUst(e.getMandant_c_nr(), new Timestamp(e.getT_belegdatum().getTime()), e.getN_betrag(), e.getN_ustbetrag()); } // Debitorenkontonummer KontoDtoSmall kontoDtoKred = getFinanzFac() .kontoFindByPrimaryKeySmallOhneExc(e.getFlrlieferant().getKonto_i_id_kreditorenkonto()); String sKontonummer; if (kontoDtoKred != null) { sKontonummer = kontoDtoKred.getCNr(); } else { sKontonummer = ""; } data[i][FELD_ALLE_KREDITORENKONTO] = sKontonummer; i++; } Map<String, Object> mapParameter = new TreeMap<String, Object>(); MandantDto mandantDto = getMandantFac().mandantFindByPrimaryKey(theClientDto.getMandant(), theClientDto); // Waehrung mapParameter.put(LPReport.P_WAEHRUNG, mandantDto.getWaehrungCNr()); mapParameter.put("P_ZUSATZKOSTEN", new Boolean(bZusatzkosten)); mapParameter.put("P_AUSWERTUNG_NACH_FREIGABEDATUM", new Boolean(bDatumIstFreigabedatum)); StringBuffer sSortierung = new StringBuffer(); // Sortierung nach Kostenstelle mapParameter.put(LPReport.P_SORTIERENACHKOSTENSTELLE, new Boolean(krit.bSortiereNachKostenstelle)); if (krit.bSortiereNachKostenstelle) { sSortierung.append( getTextRespectUISpr("lp.kostenstelle", theClientDto.getMandant(), theClientDto.getLocUi())); sSortierung.append(", "); } // Sortieung nach Lieferant mapParameter.put(LPReport.P_SORTIERENACHLIEFERANT, new Boolean(krit.iSortierung == krit.KRIT_SORT_NACH_PARTNER)); if (krit.iSortierung == krit.KRIT_SORT_NACH_PARTNER) { sSortierung.append( getTextRespectUISpr("lp.lieferant", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (krit.iSortierung == krit.KRIT_SORT_NACH_BELEGNUMMER) { sSortierung.append(getTextRespectUISpr("er.eingangsrechnungsnummer", theClientDto.getMandant(), theClientDto.getLocUi())); } StringBuffer sFilter = new StringBuffer(); if (sVon != null) { sFilter.append(getTextRespectUISpr("lp.von", theClientDto.getMandant(), theClientDto.getLocUi())); sFilter.append(" " + sVon + " "); } if (sBis != null) { sFilter.append(getTextRespectUISpr("lp.bis", theClientDto.getMandant(), theClientDto.getLocUi())); sFilter.append(" " + sBis + " "); } if (krit.kostenstelleIId != null) { if (sFilter.length() > 0) { sFilter.append(", "); } KostenstelleDto kstDto = getSystemFac().kostenstelleFindByPrimaryKey(krit.kostenstelleIId); sFilter.append( getTextRespectUISpr("lp.kostenstelle", theClientDto.getMandant(), theClientDto.getLocUi())); sFilter.append(" "); sFilter.append(kstDto.getCNr()); } mapParameter.put(LPReport.P_SORTIERUNG, sSortierung.toString()); mapParameter.put(LPReport.P_FILTER, sFilter.toString()); initJRDS(mapParameter, EingangsrechnungReportFac.REPORT_MODUL, EingangsrechnungReportFac.REPORT_EINGANGSRECHNUNG_ALLE, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); return getReportPrint(); } catch (RemoteException ex) { throwEJBExceptionLPRespectOld(ex); return null; } finally { closeSession(session); } }
From source file:com.lp.server.fertigung.ejbfac.FertigungFacBean.java
License:Open Source License
@TransactionAttribute(TransactionAttributeType.NEVER) public ArrayList<Integer> erledigteLoseImZeitraumNachkalkulieren(java.sql.Date tVon, java.sql.Date tBis, TheClientDto theClientDto) {//from ww w. ja v a 2 s . c o m SessionFactory factory = FLRSessionFactory.getFactory(); Session session = factory.openSession(); Criteria c = session.createCriteria(FLRLosablieferung.class); c.add(Restrictions.ge(FertigungFac.FLR_LOSABLIEFERUNG_T_AENDERN, tVon)); c.add(Restrictions.lt(FertigungFac.FLR_LOSABLIEFERUNG_T_AENDERN, tBis)); List<?> results = c.list(); ArrayList<Integer> al = new ArrayList<Integer>(); Iterator<?> resultListIterator = results.iterator(); HashMap bereitsNachkalkuliert = new HashMap(); while (resultListIterator.hasNext()) { FLRLosablieferung los = (FLRLosablieferung) resultListIterator.next(); if (!bereitsNachkalkuliert.containsKey(los.getLos_i_id())) { try { getFertigungFac().aktualisiereNachtraeglichPreiseAllerLosablieferungen(los.getLos_i_id(), theClientDto, true); } catch (RemoteException e) { throwEJBExceptionLPRespectOld(e); } } bereitsNachkalkuliert.put(los.getLos_i_id(), ""); } return al; }
From source file:com.lp.server.fertigung.ejbfac.FertigungReportFacBean.java
License:Open Source License
@TransactionAttribute(TransactionAttributeType.NEVER) public JasperPrintLP printAlle(ReportJournalKriterienDto krit, boolean bNurAngelegte, Integer fertigungsgruppeIId, TheClientDto theClientDto) throws EJBExceptionLP { Session session = null;//from w w w. j av a 2 s. c o m try { this.useCase = UC_ALLE; this.index = -1; Map<String, Object> mapParameter = new TreeMap<String, Object>(); SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); Criteria c = session.createCriteria(FLRLosReport.class); c.add(Restrictions.eq(FertigungFac.FLR_LOS_MANDANT_C_NR, theClientDto.getMandant())); if (krit.kostenstelleIId != null) { c.add(Restrictions.eq(FertigungFac.FLR_LOSREPORT_KOSTENSTELLE_I_ID, krit.kostenstelleIId)); } if (bNurAngelegte) { c.add(Restrictions.eq(FertigungFac.FLR_LOS_STATUS_C_NR, LocaleFac.STATUS_ANGELEGT)); } if (fertigungsgruppeIId != null) { c.add(Restrictions.eq(FertigungFac.FLR_LOSREPORT_FERTIGUNGSGRUPPE_I_ID, fertigungsgruppeIId)); FertigungsgruppeDto fertigungsgruppeDto = getStuecklisteFac() .fertigungsgruppeFindByPrimaryKey(fertigungsgruppeIId); mapParameter.put("P_FERTIGUNGSGRUPPE", fertigungsgruppeDto.getCBez()); } String sVon = null; String sBis = null; if (krit.dVon != null) { c.add(Restrictions.ge(FertigungFac.FLR_LOS_T_PRODUKTIONSBEGINN, krit.dVon)); sVon = Helper.formatDatum(krit.dVon, theClientDto.getLocUi()); } if (krit.dBis != null) { c.add(Restrictions.le(FertigungFac.FLR_LOS_T_PRODUKTIONSBEGINN, krit.dBis)); sBis = Helper.formatDatum(krit.dBis, theClientDto.getLocUi()); } 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 (krit.sBelegnummerVon != null) { sVon = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr, sMandantKuerzel, krit.sBelegnummerVon); c.add(Restrictions.ge(FertigungFac.FLR_LOS_C_NR, sVon)); } if (krit.sBelegnummerBis != null) { sBis = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr, sMandantKuerzel, krit.sBelegnummerBis); c.add(Restrictions.le(FertigungFac.FLR_LOS_C_NR, sBis)); } if (krit.bSortiereNachKostenstelle) { c.createCriteria(FertigungFac.FLR_LOSREPORT_FLRKOSTENSTELLE).addOrder(Order.asc("c_nr")); } // if (krit.iSortierung == // ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) { // c.createCriteria(FertigungFac.FLR_ER_FLRLIEFERANT).createCriteria( // LieferantFac. // FLR_PARTNER).addOrder(Order.asc(PartnerFac. // FLR_PARTNER_NAME1NACHNAMEFIRMAZEILE1)); // } if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) { c.createCriteria(FertigungFac.FLR_LOSREPORT_FLRAUFTRAG) .createCriteria(AuftragFac.FLR_AUFTRAG_FLRKUNDE).createCriteria(KundeFac.FLR_PARTNER) .addOrder(Order.asc(PartnerFac.FLR_PARTNER_C_NAME1NACHNAMEFIRMAZEILE1)); } if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_BELEGNUMMER) { c.addOrder(Order.asc(FertigungFac.FLR_LOS_C_NR)); } List<Object> list = c.list(); if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) { Criteria c2 = session.createCriteria(FLRLosReport.class); c2.add(Restrictions.isNull(FertigungFac.FLR_LOSREPORT_FLRAUFTRAG)); c2.add(Restrictions.eq(FertigungFac.FLR_LOS_MANDANT_C_NR, theClientDto.getMandant())); if (krit.kostenstelleIId != null) { c2.add(Restrictions.eq(FertigungFac.FLR_LOSREPORT_KOSTENSTELLE_I_ID, krit.kostenstelleIId)); } if (bNurAngelegte) { c2.add(Restrictions.eq(FertigungFac.FLR_LOS_STATUS_C_NR, LocaleFac.STATUS_ANGELEGT)); } if (fertigungsgruppeIId != null) { c2.add(Restrictions.eq(FertigungFac.FLR_LOSREPORT_FERTIGUNGSGRUPPE_I_ID, fertigungsgruppeIId)); } if (krit.dVon != null) { c2.add(Restrictions.ge(FertigungFac.FLR_LOS_T_PRODUKTIONSBEGINN, krit.dVon)); } if (krit.dBis != null) { c2.add(Restrictions.le(FertigungFac.FLR_LOS_T_PRODUKTIONSBEGINN, krit.dBis)); } List<?> list2 = c2.list(); Iterator<?> iter2 = list2.iterator(); while (iter2.hasNext()) { list.add(iter2.next()); } } data = new Object[list.size()][ALLE_FELDANZAHL]; int i = 0; for (Iterator<?> iter = list.iterator(); iter.hasNext(); i++) { FLRLosReport los = (FLRLosReport) iter.next(); LossollarbeitsplanDto[] sollaz = getFertigungFac().lossollarbeitsplanFindByLosIId(los.getI_id()); BigDecimal bdArbeitszeitIstmenge = new BigDecimal(0); BigDecimal bdArbeitszeitSollmenge = new BigDecimal(0); BigDecimal bdArbeitszeitIstpreis = new BigDecimal(0); BigDecimal bdArbeitszeitSollpreis = new BigDecimal(0); for (int j = 0; j < sollaz.length; j++) { bdArbeitszeitSollmenge = bdArbeitszeitSollmenge.add(sollaz[j].getNGesamtzeit()); ArtikellieferantDto artikellieferantDto = getArtikelFac().getArtikelEinkaufspreis( sollaz[j].getArtikelIIdTaetigkeit(), new BigDecimal(1), theClientDto.getSMandantenwaehrung(), theClientDto); BigDecimal bdEinzelpreis; if (artikellieferantDto != null) { bdEinzelpreis = artikellieferantDto.getNEinzelpreis(); } else { bdEinzelpreis = new BigDecimal(0); } bdArbeitszeitSollpreis = bdArbeitszeitSollpreis .add(sollaz[j].getNGesamtzeit().multiply(bdEinzelpreis)); } AuftragzeitenDto[] zeiten = getZeiterfassungFac().getAllZeitenEinesBeleges(LocaleFac.BELEGART_LOS, los.getI_id(), null, null, null, null, false, false, theClientDto); for (int j = 0; j < zeiten.length; j++) { bdArbeitszeitIstmenge = bdArbeitszeitIstmenge .add(new BigDecimal(zeiten[j].getDdDauer().doubleValue())); bdArbeitszeitIstpreis = bdArbeitszeitIstpreis.add(zeiten[j].getBdKosten()); } data[i][ALLE_ARBEITSZEITISTMENGE] = bdArbeitszeitIstmenge; data[i][ALLE_ARBEITSZEITISTPREIS] = bdArbeitszeitIstpreis; data[i][ALLE_ARBEITSZEITSOLLMENGE] = bdArbeitszeitSollmenge; data[i][ALLE_ARBEITSZEITSOLLPREIS] = bdArbeitszeitSollpreis; if (los.getFlrstueckliste() != null) { ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKeySmall( los.getFlrstueckliste().getFlrartikel().getI_id(), theClientDto); data[i][ALLE_BEZEICHNUNG] = artikelDto.getArtikelsprDto().getCBez(); if (artikelDto.getArtikelsprDto().getCZbez() != null) { data[i][ALLE_ZUSATZBEZEICHNUNG] = artikelDto.getArtikelsprDto().getCZbez(); } else { data[i][ALLE_ZUSATZBEZEICHNUNG] = ""; } data[i][ALLE_IDENT] = los.getFlrstueckliste().getFlrartikel().getC_nr(); data[i][ALLE_OFFENERAHMENRESERVIERUNGEN] = getReservierungFac() .getAnzahlRahmenreservierungen(artikelDto.getIId(), theClientDto); } else { data[i][ALLE_BEZEICHNUNG] = los.getC_projekt(); data[i][ALLE_BEZEICHNUNG] = null; data[i][ALLE_IDENT] = getTextRespectUISpr("fert.materialliste", theClientDto.getMandant(), theClientDto.getLocUi()); data[i][ALLE_OFFENERAHMENRESERVIERUNGEN] = new BigDecimal(0); } data[i][ALLE_LOSNUMMER] = los.getC_nr(); LossollmaterialDto[] sollmat = getFertigungFac().lossollmaterialFindByLosIId(los.getI_id()); BigDecimal bdMaterialIstmenge = new BigDecimal(0); BigDecimal bdMaterialSollmenge = new BigDecimal(0); BigDecimal bdMaterialIstpreis = new BigDecimal(0); BigDecimal bdMaterialSollpreis = new BigDecimal(0); for (int j = 0; j < sollmat.length; j++) { BigDecimal bdAusgegebeneMenge = getFertigungFac().getAusgegebeneMenge(sollmat[j].getIId(), null, theClientDto); bdMaterialIstmenge = bdMaterialIstmenge.add(bdAusgegebeneMenge); bdMaterialSollmenge = bdMaterialSollmenge.add(sollmat[j].getNMenge()); bdMaterialIstpreis = bdMaterialIstpreis.add(bdAusgegebeneMenge.multiply( getFertigungFac().getAusgegebeneMengePreis(sollmat[j].getIId(), null, theClientDto))); bdMaterialSollpreis = bdMaterialSollpreis .add(sollmat[j].getNMenge().multiply(sollmat[j].getNSollpreis())); } data[i][ALLE_MATERIALISTMENGE] = bdMaterialIstmenge; data[i][ALLE_MATERIALISTPREIS] = bdMaterialIstpreis; data[i][ALLE_MATERIALSOLLMENGE] = bdMaterialSollmenge; data[i][ALLE_MATERIALSOLLPREIS] = bdMaterialSollpreis; data[i][ALLE_BEGINNTERMIN] = los.getT_produktionsbeginn(); data[i][ALLE_LOSGROESSE] = los.getN_losgroesse(); if (los.getFlrauftrag() != null) { data[i][ALLE_AUFTRAGLIEFERTERMIN] = los.getFlrauftrag().getT_liefertermin(); data[i][ALLE_AUFTRAGSNUMMER] = los.getFlrauftrag().getC_nr(); if (los.getFlrauftrag().getFlrkunde() != null) { if (los.getFlrauftrag().getFlrkunde().getFlrpartner() != null) { data[i][ALLE_KUNDE] = los.getFlrauftrag().getFlrkunde().getFlrpartner() .getC_name1nachnamefirmazeile1(); } else { data[i][ALLE_KUNDE] = ""; } } else { data[i][ALLE_KUNDE] = ""; } } else { data[i][ALLE_AUFTRAGSNUMMER] = ""; data[i][ALLE_AUFTRAGLIEFERTERMIN] = null; } if (los.getFlrfertigungsgruppe() != null) { data[i][ALLE_FERTIGUNGSGRUPPE] = los.getFlrfertigungsgruppe().getC_bez(); } else { data[i][ALLE_FERTIGUNGSGRUPPE] = ""; } } StringBuffer sSortierung = new StringBuffer(); // Sortierung nach Kostenstelle sSortierung.append( getTextRespectUISpr("lp.sortierungnach", theClientDto.getMandant(), theClientDto.getLocUi()) + ": "); mapParameter.put(LPReport.P_SORTIERENACHKOSTENSTELLE, new Boolean(krit.bSortiereNachKostenstelle)); if (krit.bSortiereNachKostenstelle) { sSortierung.append( getTextRespectUISpr("lp.kostenstelle", theClientDto.getMandant(), theClientDto.getLocUi())); sSortierung.append(", "); } // Sortieung nach Kunde mapParameter.put(LPReport.P_SORTIERENACHKUNDE, new Boolean(krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER)); if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_PARTNER) { sSortierung.append( getTextRespectUISpr("lp.kunde", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (krit.iSortierung == ReportJournalKriterienDto.KRIT_SORT_NACH_BELEGNUMMER) { sSortierung.append( getTextRespectUISpr("lp.losnr", theClientDto.getMandant(), theClientDto.getLocUi())); } StringBuffer sFilter = new StringBuffer(); sFilter.append( getTextRespectUISpr("lp.filter", theClientDto.getMandant(), theClientDto.getLocUi()) + ": "); if (bNurAngelegte) { sFilter.append(getTextRespectUISpr("lp.nichtausgegebene", theClientDto.getMandant(), theClientDto.getLocUi()) + ", "); } if (sVon != null) { sFilter.append(getTextRespectUISpr("lp.von", theClientDto.getMandant(), theClientDto.getLocUi())); sFilter.append(" " + sVon + " "); } if (sBis != null) { sFilter.append(getTextRespectUISpr("lp.bis", theClientDto.getMandant(), theClientDto.getLocUi())); sFilter.append(" " + sBis + " "); } if (krit.kostenstelleIId != null) { if (sFilter.length() > 0) { sFilter.append(", "); } KostenstelleDto kstDto = getSystemFac().kostenstelleFindByPrimaryKey(krit.kostenstelleIId); sFilter.append( getTextRespectUISpr("lp.kostenstelle", theClientDto.getMandant(), theClientDto.getLocUi())); sFilter.append(" "); sFilter.append(kstDto.getCNr()); } mapParameter.put(LPReport.P_SORTIERUNG, sSortierung.toString()); mapParameter.put("P_VON", krit.dVon); mapParameter.put("P_BIS", krit.dBis); mapParameter.put(LPReport.P_FILTER, sFilter.toString()); initJRDS(mapParameter, FertigungReportFac.REPORT_MODUL, FertigungReportFac.REPORT_ALLE, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); return getReportPrint(); } catch (RemoteException t) { throwEJBExceptionLPRespectOld(t); return null; } finally { closeSession(session); } }
From source file:com.lp.server.fertigung.ejbfac.FertigungReportFacBean.java
License:Open Source License
@TransactionAttribute(TransactionAttributeType.NEVER) public JasperPrintLP printOffene(java.sql.Date dStichtag, int iOptionStichtag, String belegNrVon, String belegNrBis, Integer kundeIId, Integer kostenstelleIId, Integer fertigungsgruppeIId, int iSortierung, TheClientDto theClientDto) throws EJBExceptionLP { Session session = null;/*w w w. j a v a2 s . c o m*/ try { this.useCase = UC_OFFENE; this.index = -1; SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); Criteria c = session.createCriteria(FLRLosReport.class); c.add(Restrictions.eq(FertigungFac.FLR_LOS_MANDANT_C_NR, theClientDto.getMandant())); Map<String, Object> mapParameter = new TreeMap<String, Object>(); if (kostenstelleIId != null) { KostenstelleDto kostenstelleDto = getSystemFac().kostenstelleFindByPrimaryKey(kostenstelleIId); mapParameter.put("P_KOSTENSTELLE", kostenstelleDto.formatKostenstellenbezeichnung()); c.add(Restrictions.eq(FertigungFac.FLR_LOSREPORT_KOSTENSTELLE_I_ID, kostenstelleIId)); } boolean flrAuftragSchonVerwendet = false; if (kundeIId != null) { KundeDto kundeDto = getKundeFac().kundeFindByPrimaryKey(kundeIId, theClientDto); mapParameter.put("P_KUNDE", kundeDto.getPartnerDto().formatFixTitelName1Name2()); c.createAlias(FertigungFac.FLR_LOSREPORT_FLRAUFTRAG, "a", CriteriaSpecification.LEFT_JOIN); flrAuftragSchonVerwendet = true; c.add(Restrictions.eq("a." + AuftragFac.FLR_AUFTRAG_KUNDE_I_ID_AUFTRAGSADRESSE, kundeIId)); } if (fertigungsgruppeIId != null) { c.add(Restrictions.eq(FertigungFac.FLR_LOSREPORT_FERTIGUNGSGRUPPE_I_ID, fertigungsgruppeIId)); } String[] stati = new String[4]; stati[0] = LocaleFac.STATUS_AUSGEGEBEN; stati[1] = LocaleFac.STATUS_IN_PRODUKTION; stati[2] = LocaleFac.STATUS_TEILERLEDIGT; stati[3] = LocaleFac.STATUS_ANGELEGT; c.add(Restrictions.in(FertigungFac.FLR_LOS_STATUS_C_NR, stati)); if (dStichtag != null) { dStichtag = Helper.cutDate(dStichtag); // PJ 14420 mapParameter.put("P_STICHTAG", dStichtag); Calendar cal = Calendar.getInstance(); cal.setTimeInMillis(dStichtag.getTime()); cal.set(Calendar.DATE, cal.get(Calendar.DATE) + 1); dStichtag = new java.sql.Date(cal.getTimeInMillis()); String datumsart = ""; if (iOptionStichtag == FertigungReportFac.OFFENE_OPTION_STICHTAG_BEGINNDATUM) { c.add(Restrictions.lt(FertigungFac.FLR_LOS_T_PRODUKTIONSBEGINN, dStichtag)); datumsart = getTextRespectUISpr("lp.begintermin", theClientDto.getMandant(), theClientDto.getLocUi()); } else if (iOptionStichtag == FertigungReportFac.OFFENE_OPTION_STICHTAG_ENDEDATUM) { c.add(Restrictions.lt(FertigungFac.FLR_LOS_T_PRODUKTIONSENDE, dStichtag)); datumsart = getTextRespectUISpr("lp.endetermin", theClientDto.getMandant(), theClientDto.getLocUi()); } else if (iOptionStichtag == FertigungReportFac.OFFENE_OPTION_STICHTAG_LIEFERTERMIN) { if (flrAuftragSchonVerwendet == false) { c.createAlias(FertigungFac.FLR_LOSREPORT_FLRAUFTRAG, "a", CriteriaSpecification.LEFT_JOIN); flrAuftragSchonVerwendet = true; c.add(Restrictions.lt("a." + AuftragFac.FLR_AUFTRAG_T_LIEFERTERMIN, dStichtag)); } datumsart = getTextRespectUISpr("bes.liefertermin", theClientDto.getMandant(), theClientDto.getLocUi()); } mapParameter.put("P_DATUMSART", datumsart); } 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 (belegNrVon != null) { String sVon = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr, sMandantKuerzel, belegNrVon); c.add(Restrictions.ge(FertigungFac.FLR_LOS_C_NR, sVon)); mapParameter.put("P_LOSNRVON", sVon); } if (belegNrBis != null) { String sBis = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr, sMandantKuerzel, belegNrBis); c.add(Restrictions.le(FertigungFac.FLR_LOS_C_NR, sBis)); mapParameter.put("P_LOSNRBIS", sBis); } // Sortierung if (iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_KOSTENSTELLE) { c.createCriteria(FertigungFac.FLR_LOSREPORT_FLRKOSTENSTELLE).addOrder(Order.asc("c_nr")); mapParameter.put(P_SORTIERUNG, getTextRespectUISpr("lp.kostenstelle", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_KUNDE) { if (flrAuftragSchonVerwendet == false) { c.createAlias(FertigungFac.FLR_LOSREPORT_FLRAUFTRAG, "a", CriteriaSpecification.LEFT_JOIN); flrAuftragSchonVerwendet = true; } c.createAlias("a." + AuftragFac.FLR_AUFTRAG_FLRKUNDE, "k", CriteriaSpecification.LEFT_JOIN); c.createAlias("k." + KundeFac.FLR_PARTNER, "p", CriteriaSpecification.LEFT_JOIN); c.addOrder(Order.asc("p." + PartnerFac.FLR_PARTNER_C_NAME1NACHNAMEFIRMAZEILE1)); c.addOrder(Order.asc("k.i_id")); mapParameter.put(P_SORTIERUNG, getTextRespectUISpr("lp.kunde", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_KUNDEUNDGEWAEHLTERTERMIN) { if (flrAuftragSchonVerwendet == false) { c.createAlias(FertigungFac.FLR_LOSREPORT_FLRAUFTRAG, "a", CriteriaSpecification.LEFT_JOIN); flrAuftragSchonVerwendet = true; } c.createAlias("a." + AuftragFac.FLR_AUFTRAG_FLRKUNDE, "k", CriteriaSpecification.LEFT_JOIN); c.createAlias("k." + KundeFac.FLR_PARTNER, "p", CriteriaSpecification.LEFT_JOIN); c.addOrder(Order.asc("p." + PartnerFac.FLR_PARTNER_C_NAME1NACHNAMEFIRMAZEILE1)); if (iOptionStichtag == FertigungReportFac.OFFENE_OPTION_STICHTAG_BEGINNDATUM) { c.addOrder(Order.asc(FertigungFac.FLR_LOS_T_PRODUKTIONSBEGINN)); } else if (iOptionStichtag == FertigungReportFac.OFFENE_OPTION_STICHTAG_ENDEDATUM) { c.addOrder(Order.asc(FertigungFac.FLR_LOS_T_PRODUKTIONSENDE)); } else if (iOptionStichtag == FertigungReportFac.OFFENE_OPTION_STICHTAG_LIEFERTERMIN) { c.addOrder(Order.asc("a." + AuftragFac.FLR_AUFTRAG_T_LIEFERTERMIN)); } mapParameter.put(P_SORTIERUNG, getTextRespectUISpr("fert.kundeundtermin", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_LIEFERTERMIN) { if (flrAuftragSchonVerwendet == false) { c.createAlias(FertigungFac.FLR_LOSREPORT_FLRAUFTRAG, "a", CriteriaSpecification.LEFT_JOIN); flrAuftragSchonVerwendet = true; } c.createAlias("a." + AuftragFac.FLR_AUFTRAG_FLRKUNDE, "k", CriteriaSpecification.LEFT_JOIN); c.createAlias("k." + KundeFac.FLR_PARTNER, "p", CriteriaSpecification.LEFT_JOIN); c.addOrder(Order.asc("a." + AuftragFac.FLR_AUFTRAG_T_LIEFERTERMIN)); c.addOrder(Order.asc("p." + PartnerFac.FLR_PARTNER_C_NAME1NACHNAMEFIRMAZEILE1)); mapParameter.put(P_SORTIERUNG, getTextRespectUISpr("fert.liefertermin", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_ARTIKEL) { c.createAlias(FertigungFac.FLR_LOS_FLRSTUECKLISTE, "s"); c.createAlias("s." + StuecklisteFac.FLR_STUECKLISTE_FLRARTIKEL, "art"); c.addOrder(Order.asc("art.c_nr")); mapParameter.put(P_SORTIERUNG, getTextRespectUISpr("lp.kunde", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_FERTIGUNGSGRUPPE) { c.createAlias(FertigungFac.FLR_LOSREPORT_FLRFERTIGUNGSGRUPPE, "f"); c.addOrder(Order.asc("f.c_bez")); mapParameter.put(P_SORTIERUNG, getTextRespectUISpr("lp.fertigungsgruppe", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_BEGINN) { c.addOrder(Order.asc(FertigungFac.FLR_LOS_T_PRODUKTIONSBEGINN)); mapParameter.put(P_SORTIERUNG, getTextRespectUISpr("lp.beginn", theClientDto.getMandant(), theClientDto.getLocUi())); } else if (iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_ENDE) { c.addOrder(Order.asc(FertigungFac.FLR_LOS_T_PRODUKTIONSENDE)); mapParameter.put(P_SORTIERUNG, getTextRespectUISpr("lp.ende", theClientDto.getMandant(), theClientDto.getLocUi())); } else { mapParameter.put(P_SORTIERUNG, getTextRespectUISpr("lp.losnr", theClientDto.getMandant(), theClientDto.getLocUi())); } // 2tes sortierkriterium immer Losnr if (iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_BEGINN || iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_ENDE || iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_LIEFERTERMIN || iSortierung == FertigungReportFac.OFFENE_OPTION_SORTIERUNG_KUNDEUNDGEWAEHLTERTERMIN) { if (flrAuftragSchonVerwendet == false) { c.createAlias(FertigungFac.FLR_LOSREPORT_FLRAUFTRAG, "a", CriteriaSpecification.LEFT_JOIN); flrAuftragSchonVerwendet = true; } c.addOrder(Order.asc("a.c_nr")); } else { c.addOrder(Order.asc(FertigungFac.FLR_LOS_C_NR)); } List<?> list = c.list(); data = new Object[list.size()][OFFENE_SPALTENANZAHL]; int i = 0; for (Iterator<?> iter = list.iterator(); iter.hasNext(); i++) { FLRLosReport los = (FLRLosReport) iter.next(); if (los.getFlrauftrag() != null) { Integer partnerIId = los.getFlrauftrag().getFlrkunde().getFlrpartner().getI_id(); PartnerDto partnerDto = getPartnerFac().partnerFindByPrimaryKey(partnerIId, theClientDto); data[i][OFFENE_KUNDE] = partnerDto.formatFixTitelName1Name2(); data[i][OFFENE_AUFTRAGSPOENALE] = los.getFlrauftrag().getB_poenale(); } if (los.getFlrauftrag() != null) { data[i][OFFENE_AUFTRAGSNUMMER] = los.getFlrauftrag().getC_nr(); data[i][OFFENE_PROJEKT] = los.getFlrauftrag().getC_bez(); data[i][OFFENE_LIEFERTERMIN] = los.getFlrauftrag().getT_liefertermin(); } BigDecimal bdGeliefert = new BigDecimal(0); for (Iterator<?> iter2 = los.getAblieferungset().iterator(); iter2.hasNext();) { FLRLosablieferung item = (FLRLosablieferung) iter2.next(); bdGeliefert = bdGeliefert.add(item.getN_menge()); } data[i][OFFENE_GELIEFERT] = bdGeliefert; if (los.getFlrstueckliste() != null) { ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKeySmall( los.getFlrstueckliste().getFlrartikel().getI_id(), theClientDto); data[i][OFFENE_BEZEICHNUNG] = artikelDto.getArtikelsprDto().getCBez(); data[i][OFFENE_ZUSATZBEZEICHNUNG] = artikelDto.getArtikelsprDto().getCZbez(); data[i][OFFENE_ARTIKELNUMMER] = los.getFlrstueckliste().getFlrartikel().getC_nr(); data[i][OFFENE_DETAILBEDARF] = getRahmenbedarfeFac() .getSummeAllerRahmenbedarfeEinesArtikels(artikelDto.getIId()); // Offene Fehlmengen data[i][OFFENE_FEHLMENGE] = getFehlmengeFac() .getAnzahlFehlmengeEinesArtikels(artikelDto.getIId(), theClientDto); LossollarbeitsplanDto[] lossollarbeitsplanDto = getFertigungFac() .lossollarbeitsplanFindByLosIId(los.getI_id()); BigDecimal bdFertigungszeit = new BigDecimal(0); for (int j = 0; lossollarbeitsplanDto.length > j; j++) { bdFertigungszeit = bdFertigungszeit.add(lossollarbeitsplanDto[j].getNGesamtzeit()); } data[i][OFFENE_FERTIGUNGSZEIT] = bdFertigungszeit; // Rahmenbestellt Hashtable<?, ?> htRahmenbestellt = getArtikelbestelltFac() .getAnzahlRahmenbestellt(artikelDto.getIId(), theClientDto); if (htRahmenbestellt.containsKey(ArtikelbestelltFac.KEY_RAHMENBESTELLT_ANZAHL)) { BigDecimal bdAnzahlRahmenbestellt = (BigDecimal) htRahmenbestellt .get(ArtikelbestelltFac.KEY_RAHMENBESTELLT_ANZAHL); data[i][OFFENE_RAHMEN_BESTELLT] = bdAnzahlRahmenbestellt; } data[i][OFFENE_RESERVIERUNGEN] = getReservierungFac() .getAnzahlReservierungen(artikelDto.getIId(), theClientDto); data[i][OFFENE_RAHMENRESERVIERUNGEN] = getReservierungFac() .getAnzahlRahmenreservierungen(artikelDto.getIId(), theClientDto); } else { data[i][OFFENE_BEZEICHNUNG] = los.getC_projekt(); data[i][OFFENE_ZUSATZBEZEICHNUNG] = null; data[i][OFFENE_ARTIKELNUMMER] = getTextRespectUISpr("fert.materialliste", theClientDto.getMandant(), theClientDto.getLocUi()); } GregorianCalendar gc = new GregorianCalendar(); gc.setTime(los.getT_produktionsbeginn()); data[i][OFFENE_KALENDERWOCHE] = new Integer(gc.get(GregorianCalendar.WEEK_OF_YEAR)); data[i][OFFENE_LOSGROESSE] = los.getN_losgroesse(); data[i][OFFENE_LOSNUMMER] = los.getC_nr(); data[i][OFFENE_FERTIGUNGSGRUPPE] = los.getFlrfertigungsgruppe().getC_bez(); /** * @todo material PJ 4239 */ data[i][OFFENE_MATERIAL] = null; data[i][OFFENE_BEGINN] = los.getT_produktionsbeginn(); data[i][OFFENE_ENDE] = los.getT_produktionsende(); data[i][OFFENE_LOSSTATUS] = los.getStatus_c_nr(); // PJ 15009 String queryf = "select sum(flrfehlmenge.n_menge) FROM FLRFehlmenge flrfehlmenge WHERE flrfehlmenge.flrlossollmaterial.flrlos = " + los.getI_id() + " AND flrfehlmenge.n_menge>0"; Session session2 = FLRSessionFactory.getFactory().openSession(); Query query = session2.createQuery(queryf); List<?> results = query.list(); data[i][OFFENE_LOSHATFEHLMENGE] = new Boolean(false); if (results.size() > 0) { BigDecimal bd = (BigDecimal) results.iterator().next(); if (bd != null && bd.doubleValue() > 0) { data[i][OFFENE_LOSHATFEHLMENGE] = new Boolean(true); } } session2.close(); } initJRDS(mapParameter, FertigungReportFac.REPORT_MODUL, FertigungReportFac.REPORT_OFFENE, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); return getReportPrint(); } catch (Exception t) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER, t); } finally { closeSession(session); } }
From source file:com.lp.server.fertigung.ejbfac.FertigungReportFacBean.java
License:Open Source License
@TransactionAttribute(TransactionAttributeType.NEVER) public JasperPrintLP printOffeneArbeitsgaenge(java.sql.Date dStichtag, int iOptionStichtag, String belegNrVon, String belegNrBis, Integer kundeIId, Integer kostenstelleIId, Integer fertigungsgruppeIId, Integer artikelgruppeIId, Integer maschineIId, boolean bSollstundenbetrachtung, TheClientDto theClientDto) {/*from ww w .ja v a 2 s . co m*/ Session session = null; try { this.useCase = UC_OFFENE_AG; this.index = -1; SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); Criteria c = session.createCriteria(FLRLossollarbeitsplan.class); c.createAlias(FertigungFac.FLR_LOSSOLLARBEITSPLAN_FLRLOS, "l", CriteriaSpecification.LEFT_JOIN); c.add(Restrictions.eq("l." + FertigungFac.FLR_LOS_MANDANT_C_NR, theClientDto.getMandant())); c.add(Restrictions.eq(FertigungFac.FLR_LOSSOLLARBEITSPLAN_B_FERTIG, Helper.boolean2Short(false))); Map<String, Object> mapParameter = new TreeMap<String, Object>(); mapParameter.put("P_SOLLSTUNDENBETRACHTUNG", new Boolean(bSollstundenbetrachtung)); if (artikelgruppeIId != null) { c.createAlias(FertigungFac.FLR_LOSSOLLARBEITSPLAN_FLRARTIKEL, "artikel", CriteriaSpecification.LEFT_JOIN); c.createAlias("artikel." + ArtikelFac.FLR_ARTIKEL_FLRARTIKELGRUPPE, "artikelgruppe", CriteriaSpecification.LEFT_JOIN); c.add(Restrictions.eq("artikelgruppe.i_id", artikelgruppeIId)); ArtgruDto artgruDto = getArtikelFac().artgruFindByPrimaryKey(artikelgruppeIId, theClientDto); mapParameter.put("P_ARTIKELGRUPPE", artgruDto.getBezeichnung()); } /* * if (kostenstelleIId != null) { KostenstelleDto kostenstelleDto = * getSystemFac() .kostenstelleFindByPrimaryKey(kostenstelleIId); * mapParameter.put("P_KOSTENSTELLE", * kostenstelleDto.formatKostenstellenbezeichnung()); * * c.add(Restrictions.eq("l." + * FertigungFac.FLR_LOSREPORT_KOSTENSTELLE_I_ID, kostenstelleIId)); * } */ boolean flrAuftragSchonVerwendet = false; if (kundeIId != null) { KundeDto kundeDto = getKundeFac().kundeFindByPrimaryKey(kundeIId, theClientDto); mapParameter.put("P_KUNDE", kundeDto.getPartnerDto().formatFixTitelName1Name2()); c.createAlias("l." + FertigungFac.FLR_LOSREPORT_FLRAUFTRAG, "a", CriteriaSpecification.LEFT_JOIN); flrAuftragSchonVerwendet = true; c.add(Restrictions.eq("a." + AuftragFac.FLR_AUFTRAG_KUNDE_I_ID_AUFTRAGSADRESSE, kundeIId)); } String[] stati = new String[4]; stati[0] = LocaleFac.STATUS_AUSGEGEBEN; stati[1] = LocaleFac.STATUS_IN_PRODUKTION; stati[2] = LocaleFac.STATUS_TEILERLEDIGT; stati[3] = LocaleFac.STATUS_ANGELEGT; c.add(Restrictions.in("l." + FertigungFac.FLR_LOS_STATUS_C_NR, stati)); if (dStichtag != null) { dStichtag = Helper.cutDate(dStichtag); // PJ 14420 mapParameter.put("P_STICHTAG", dStichtag); Calendar cal = Calendar.getInstance(); cal.setTimeInMillis(dStichtag.getTime()); cal.set(Calendar.DATE, cal.get(Calendar.DATE) + 1); dStichtag = new java.sql.Date(cal.getTimeInMillis()); String datumsart = ""; if (iOptionStichtag == FertigungReportFac.OFFENE_OPTION_STICHTAG_BEGINNDATUM) { c.add(Restrictions.lt("l." + FertigungFac.FLR_LOS_T_PRODUKTIONSBEGINN, dStichtag)); datumsart = getTextRespectUISpr("lp.begintermin", theClientDto.getMandant(), theClientDto.getLocUi()); } else if (iOptionStichtag == FertigungReportFac.OFFENE_OPTION_STICHTAG_ENDEDATUM) { c.add(Restrictions.lt("l." + FertigungFac.FLR_LOS_T_PRODUKTIONSENDE, dStichtag)); datumsart = getTextRespectUISpr("lp.endetermin", theClientDto.getMandant(), theClientDto.getLocUi()); } else if (iOptionStichtag == FertigungReportFac.OFFENE_OPTION_STICHTAG_LIEFERTERMIN) { if (flrAuftragSchonVerwendet == false) { c.createAlias("l." + FertigungFac.FLR_LOSREPORT_FLRAUFTRAG, "a", CriteriaSpecification.LEFT_JOIN); flrAuftragSchonVerwendet = true; c.add(Restrictions.lt("a." + AuftragFac.FLR_AUFTRAG_T_LIEFERTERMIN, dStichtag)); } datumsart = getTextRespectUISpr("bes.liefertermin", theClientDto.getMandant(), theClientDto.getLocUi()); } mapParameter.put("P_DATUMSART", datumsart); } 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 (belegNrVon != null) { String sVon = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr, sMandantKuerzel, belegNrVon); c.add(Restrictions.ge("l." + FertigungFac.FLR_LOS_C_NR, sVon)); mapParameter.put("P_LOSNRVON", sVon); } if (belegNrBis != null) { String sBis = HelperServer.getBelegnummernFilterForHibernateCriterias(f, iGeschaeftsjahr, sMandantKuerzel, belegNrBis); c.add(Restrictions.le("l." + FertigungFac.FLR_LOS_C_NR, sBis)); mapParameter.put("P_LOSNRBIS", sBis); } if (maschineIId != null) { MaschineDto mDto = getZeiterfassungFac().maschineFindByPrimaryKey(maschineIId); c.add(Restrictions.eq("maschine_i_id", maschineIId)); mapParameter.put("P_MASCHINE", mDto.getBezeichnung()); } List<?> list = c.list(); data = new Object[list.size()][OFFENE_AG_SPALTENANZAHL]; int i = 0; for (Iterator<?> iter = list.iterator(); iter.hasNext(); i++) { FLRLossollarbeitsplan a = (FLRLossollarbeitsplan) iter.next(); FLRLos los = a.getFlrlos(); if (fertigungsgruppeIId != null && kostenstelleIId != null) { if (los.getFertigungsgruppe_i_id().intValue() != fertigungsgruppeIId.intValue() && los.getKostenstelle_i_id().intValue() != kostenstelleIId.intValue()) { i--; } else { // skip } } else if (fertigungsgruppeIId != null && kostenstelleIId == null) { if (los.getFertigungsgruppe_i_id().intValue() != fertigungsgruppeIId.intValue()) { i--; } else { // skip } } else if (fertigungsgruppeIId == null && kostenstelleIId != null) { if (los.getKostenstelle_i_id().intValue() != kostenstelleIId.intValue()) { i--; } else { // skip } } } if (fertigungsgruppeIId != null || kostenstelleIId != null) { data = new Object[i][OFFENE_AG_SPALTENANZAHL]; } i = 0; for (Iterator<?> iter = list.iterator(); iter.hasNext(); i++) { FLRLossollarbeitsplan a = (FLRLossollarbeitsplan) iter.next(); FLRLos los = a.getFlrlos(); if (fertigungsgruppeIId != null && kostenstelleIId != null) { if (los.getFertigungsgruppe_i_id().intValue() != fertigungsgruppeIId.intValue() && los.getKostenstelle_i_id().intValue() != kostenstelleIId.intValue()) { i--; } else { data[i][OFFENE_AG_AGNUMMER] = a.getI_arbeitsgangsnummer(); data[i][OFFENE_AG_UAGNUMMER] = a.getI_unterarbeitsgang(); data[i][OFFENE_AG_AG_ARTIKEL] = a.getFlrartikel().getC_nr(); ArtikelDto aDto = getArtikelFac().artikelFindByPrimaryKeySmall(a.getFlrartikel().getI_id(), theClientDto); data[i][OFFENE_AG_AG_ARTIKELBEZEICHNUNG] = aDto.formatBezeichnung(); if (Helper.short2boolean(a.getB_fertig())) { data[i][OFFENE_AG_AG_GESAMTZEIT] = new BigDecimal(0); } else { data[i][OFFENE_AG_AG_GESAMTZEIT] = a.getN_gesamtzeit(); } if (bSollstundenbetrachtung == true) { data[i][OFFENE_AG_AG_ISTZEIT] = getZeiterfassungFac().getSummeZeitenEinesBeleges( LocaleFac.BELEGART_LOS, los.getI_id(), a.getI_id(), null, null, null, theClientDto); } if (a.getFlrmaschine() != null) { data[i][OFFENE_AG_AG_MASCHINE_BEZEICHNUNG] = a.getFlrmaschine().getC_bez(); data[i][OFFENE_AG_AG_MASCHINE_IDENTIFIKATIONSNUMMMER] = a.getFlrmaschine() .getC_identifikationsnr(); data[i][OFFENE_AG_AG_MASCHINE_INVENTARNUMMMER] = a.getFlrmaschine() .getC_inventarnummer(); } if (a.getFlrartikel().getFlrartikelgruppe() != null) { data[i][OFFENE_AG_AG_ARTIKELGRUPPPE] = a.getFlrartikel().getFlrartikelgruppe() .getC_nr(); } else { data[i][OFFENE_AG_AG_ARTIKELGRUPPPE] = ""; } if (a.getI_maschinenversatztage() != null) { data[i][OFFENE_AG_AG_BEGINN] = Helper.addiereTageZuTimestamp( (Timestamp) los.getT_produktionsbeginn(), a.getI_maschinenversatztage()); } else { data[i][OFFENE_AG_AG_BEGINN] = los.getT_produktionsbeginn(); } if (los.getFlrauftrag() != null) { Integer partnerIId = los.getFlrauftrag().getFlrkunde().getFlrpartner().getI_id(); PartnerDto partnerDto = getPartnerFac().partnerFindByPrimaryKey(partnerIId, theClientDto); data[i][OFFENE_AG_KUNDE] = partnerDto.formatFixTitelName1Name2(); data[i][OFFENE_AG_AUFTRAGSPOENALE] = los.getFlrauftrag().getB_poenale(); } if (los.getFlrauftrag() != null) { data[i][OFFENE_AG_AUFTRAGSNUMMER] = los.getFlrauftrag().getC_nr(); data[i][OFFENE_AG_PROJEKT] = los.getFlrauftrag().getC_bez(); data[i][OFFENE_AG_LIEFERTERMIN] = los.getFlrauftrag().getT_liefertermin(); } BigDecimal bdGeliefert = new BigDecimal(0); for (Iterator<?> iter2 = los.getAblieferungset().iterator(); iter2.hasNext();) { FLRLosablieferung item = (FLRLosablieferung) iter2.next(); bdGeliefert = bdGeliefert.add(item.getN_menge()); } data[i][OFFENE_AG_GELIEFERT] = bdGeliefert; if (los.getFlrstueckliste() != null) { ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKeySmall( los.getFlrstueckliste().getFlrartikel().getI_id(), theClientDto); data[i][OFFENE_AG_BEZEICHNUNG] = artikelDto.getArtikelsprDto().getCBez(); data[i][OFFENE_AG_ZUSATZBEZEICHNUNG] = artikelDto.getArtikelsprDto().getCZbez(); data[i][OFFENE_AG_ARTIKELNUMMER] = los.getFlrstueckliste().getFlrartikel().getC_nr(); data[i][OFFENE_AG_DETAILBEDARF] = getRahmenbedarfeFac() .getSummeAllerRahmenbedarfeEinesArtikels(artikelDto.getIId()); // Offene Fehlmengen data[i][OFFENE_AG_FEHLMENGE] = getFehlmengeFac() .getAnzahlFehlmengeEinesArtikels(artikelDto.getIId(), theClientDto); LossollarbeitsplanDto[] lossollarbeitsplanDto = getFertigungFac() .lossollarbeitsplanFindByLosIId(los.getI_id()); BigDecimal bdFertigungszeit = new BigDecimal(0); for (int j = 0; lossollarbeitsplanDto.length > j; j++) { bdFertigungszeit = bdFertigungszeit.add(lossollarbeitsplanDto[j].getNGesamtzeit()); } data[i][OFFENE_AG_FERTIGUNGSZEIT] = bdFertigungszeit; // Rahmenbestellt Hashtable<?, ?> htRahmenbestellt = getArtikelbestelltFac() .getAnzahlRahmenbestellt(artikelDto.getIId(), theClientDto); if (htRahmenbestellt.containsKey(ArtikelbestelltFac.KEY_RAHMENBESTELLT_ANZAHL)) { BigDecimal bdAnzahlRahmenbestellt = (BigDecimal) htRahmenbestellt .get(ArtikelbestelltFac.KEY_RAHMENBESTELLT_ANZAHL); data[i][OFFENE_AG_RAHMEN_BESTELLT] = bdAnzahlRahmenbestellt; } data[i][OFFENE_AG_RESERVIERUNGEN] = getReservierungFac() .getAnzahlReservierungen(artikelDto.getIId(), theClientDto); data[i][OFFENE_AG_RAHMENRESERVIERUNGEN] = getReservierungFac() .getAnzahlRahmenreservierungen(artikelDto.getIId(), theClientDto); } else { data[i][OFFENE_AG_BEZEICHNUNG] = los.getC_projekt(); data[i][OFFENE_AG_ZUSATZBEZEICHNUNG] = null; data[i][OFFENE_AG_ARTIKELNUMMER] = getTextRespectUISpr("fert.materialliste", theClientDto.getMandant(), theClientDto.getLocUi()); } GregorianCalendar gc = new GregorianCalendar(); gc.setTime(los.getT_produktionsbeginn()); data[i][OFFENE_AG_KALENDERWOCHE] = new Integer(gc.get(GregorianCalendar.WEEK_OF_YEAR)); data[i][OFFENE_AG_LOSGROESSE] = los.getN_losgroesse(); data[i][OFFENE_AG_LOSNUMMER] = los.getC_nr(); data[i][OFFENE_AG_FERTIGUNGSGRUPPE] = los.getFlrfertigungsgruppe().getC_bez(); /** * @todo material PJ 4239 */ data[i][OFFENE_AG_MATERIAL] = null; data[i][OFFENE_AG_BEGINN] = los.getT_produktionsbeginn(); data[i][OFFENE_AG_ENDE] = los.getT_produktionsende(); data[i][OFFENE_AG_LOSSTATUS] = los.getStatus_c_nr(); // PJ 15009 String queryf = "select sum(flrfehlmenge.n_menge) FROM FLRFehlmenge flrfehlmenge WHERE flrfehlmenge.flrlossollmaterial.flrlos = " + los.getI_id() + " AND flrfehlmenge.n_menge>0"; Session session2 = FLRSessionFactory.getFactory().openSession(); Query query = session2.createQuery(queryf); List<?> results = query.list(); data[i][OFFENE_AG_LOSHATFEHLMENGE] = new Boolean(false); if (results.size() > 0) { BigDecimal bd = (BigDecimal) results.iterator().next(); if (bd != null && bd.doubleValue() > 0) { data[i][OFFENE_AG_LOSHATFEHLMENGE] = new Boolean(true); } } session2.close(); } } else if (fertigungsgruppeIId != null || kostenstelleIId != null) { if (fertigungsgruppeIId != null) { if (los.getFertigungsgruppe_i_id().intValue() != fertigungsgruppeIId.intValue()) { i--; } else { data[i][OFFENE_AG_AGNUMMER] = a.getI_arbeitsgangsnummer(); data[i][OFFENE_AG_UAGNUMMER] = a.getI_unterarbeitsgang(); data[i][OFFENE_AG_AG_ARTIKEL] = a.getFlrartikel().getC_nr(); ArtikelDto aDto = getArtikelFac() .artikelFindByPrimaryKeySmall(a.getFlrartikel().getI_id(), theClientDto); data[i][OFFENE_AG_AG_ARTIKELBEZEICHNUNG] = aDto.formatBezeichnung(); if (Helper.short2boolean(a.getB_fertig())) { data[i][OFFENE_AG_AG_GESAMTZEIT] = new BigDecimal(0); } else { data[i][OFFENE_AG_AG_GESAMTZEIT] = a.getN_gesamtzeit(); } if (bSollstundenbetrachtung == true) { data[i][OFFENE_AG_AG_ISTZEIT] = getZeiterfassungFac().getSummeZeitenEinesBeleges( LocaleFac.BELEGART_LOS, los.getI_id(), a.getI_id(), null, null, null, theClientDto); } if (a.getFlrmaschine() != null) { data[i][OFFENE_AG_AG_MASCHINE_BEZEICHNUNG] = a.getFlrmaschine().getC_bez(); data[i][OFFENE_AG_AG_MASCHINE_IDENTIFIKATIONSNUMMMER] = a.getFlrmaschine() .getC_identifikationsnr(); data[i][OFFENE_AG_AG_MASCHINE_INVENTARNUMMMER] = a.getFlrmaschine() .getC_inventarnummer(); } if (a.getFlrartikel().getFlrartikelgruppe() != null) { data[i][OFFENE_AG_AG_ARTIKELGRUPPPE] = a.getFlrartikel().getFlrartikelgruppe() .getC_nr(); } else { data[i][OFFENE_AG_AG_ARTIKELGRUPPPE] = ""; } if (a.getI_maschinenversatztage() != null) { data[i][OFFENE_AG_AG_BEGINN] = Helper.addiereTageZuTimestamp( (Timestamp) los.getT_produktionsbeginn(), a.getI_maschinenversatztage()); } else { data[i][OFFENE_AG_AG_BEGINN] = los.getT_produktionsbeginn(); } if (los.getFlrauftrag() != null) { Integer partnerIId = los.getFlrauftrag().getFlrkunde().getFlrpartner().getI_id(); PartnerDto partnerDto = getPartnerFac().partnerFindByPrimaryKey(partnerIId, theClientDto); data[i][OFFENE_AG_KUNDE] = partnerDto.formatFixTitelName1Name2(); data[i][OFFENE_AG_AUFTRAGSPOENALE] = los.getFlrauftrag().getB_poenale(); } if (los.getFlrauftrag() != null) { data[i][OFFENE_AG_AUFTRAGSNUMMER] = los.getFlrauftrag().getC_nr(); data[i][OFFENE_AG_PROJEKT] = los.getFlrauftrag().getC_bez(); data[i][OFFENE_AG_LIEFERTERMIN] = los.getFlrauftrag().getT_liefertermin(); } BigDecimal bdGeliefert = new BigDecimal(0); for (Iterator<?> iter2 = los.getAblieferungset().iterator(); iter2.hasNext();) { FLRLosablieferung item = (FLRLosablieferung) iter2.next(); bdGeliefert = bdGeliefert.add(item.getN_menge()); } data[i][OFFENE_AG_GELIEFERT] = bdGeliefert; if (los.getFlrstueckliste() != null) { ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKeySmall( los.getFlrstueckliste().getFlrartikel().getI_id(), theClientDto); data[i][OFFENE_AG_BEZEICHNUNG] = artikelDto.getArtikelsprDto().getCBez(); data[i][OFFENE_AG_ZUSATZBEZEICHNUNG] = artikelDto.getArtikelsprDto().getCZbez(); data[i][OFFENE_AG_ARTIKELNUMMER] = los.getFlrstueckliste().getFlrartikel() .getC_nr(); data[i][OFFENE_AG_DETAILBEDARF] = getRahmenbedarfeFac() .getSummeAllerRahmenbedarfeEinesArtikels(artikelDto.getIId()); // Offene Fehlmengen data[i][OFFENE_AG_FEHLMENGE] = getFehlmengeFac() .getAnzahlFehlmengeEinesArtikels(artikelDto.getIId(), theClientDto); LossollarbeitsplanDto[] lossollarbeitsplanDto = getFertigungFac() .lossollarbeitsplanFindByLosIId(los.getI_id()); BigDecimal bdFertigungszeit = new BigDecimal(0); for (int j = 0; lossollarbeitsplanDto.length > j; j++) { bdFertigungszeit = bdFertigungszeit .add(lossollarbeitsplanDto[j].getNGesamtzeit()); } data[i][OFFENE_AG_FERTIGUNGSZEIT] = bdFertigungszeit; // Rahmenbestellt Hashtable<?, ?> htRahmenbestellt = getArtikelbestelltFac() .getAnzahlRahmenbestellt(artikelDto.getIId(), theClientDto); if (htRahmenbestellt.containsKey(ArtikelbestelltFac.KEY_RAHMENBESTELLT_ANZAHL)) { BigDecimal bdAnzahlRahmenbestellt = (BigDecimal) htRahmenbestellt .get(ArtikelbestelltFac.KEY_RAHMENBESTELLT_ANZAHL); data[i][OFFENE_AG_RAHMEN_BESTELLT] = bdAnzahlRahmenbestellt; } data[i][OFFENE_AG_RESERVIERUNGEN] = getReservierungFac() .getAnzahlReservierungen(artikelDto.getIId(), theClientDto); data[i][OFFENE_AG_RAHMENRESERVIERUNGEN] = getReservierungFac() .getAnzahlRahmenreservierungen(artikelDto.getIId(), theClientDto); } else { data[i][OFFENE_AG_BEZEICHNUNG] = los.getC_projekt(); data[i][OFFENE_AG_ZUSATZBEZEICHNUNG] = null; data[i][OFFENE_AG_ARTIKELNUMMER] = getTextRespectUISpr("fert.materialliste", theClientDto.getMandant(), theClientDto.getLocUi()); } GregorianCalendar gc = new GregorianCalendar(); gc.setTime(los.getT_produktionsbeginn()); data[i][OFFENE_AG_KALENDERWOCHE] = new Integer(gc.get(GregorianCalendar.WEEK_OF_YEAR)); data[i][OFFENE_AG_LOSGROESSE] = los.getN_losgroesse(); data[i][OFFENE_AG_LOSNUMMER] = los.getC_nr(); data[i][OFFENE_AG_FERTIGUNGSGRUPPE] = los.getFlrfertigungsgruppe().getC_bez(); /** * @todo material PJ 4239 */ data[i][OFFENE_AG_MATERIAL] = null; data[i][OFFENE_AG_BEGINN] = los.getT_produktionsbeginn(); data[i][OFFENE_AG_ENDE] = los.getT_produktionsende(); data[i][OFFENE_AG_LOSSTATUS] = los.getStatus_c_nr(); // PJ 15009 String queryf = "select sum(flrfehlmenge.n_menge) FROM FLRFehlmenge flrfehlmenge WHERE flrfehlmenge.flrlossollmaterial.flrlos = " + los.getI_id() + " AND flrfehlmenge.n_menge>0"; Session session2 = FLRSessionFactory.getFactory().openSession(); Query query = session2.createQuery(queryf); List<?> results = query.list(); data[i][OFFENE_AG_LOSHATFEHLMENGE] = new Boolean(false); if (results.size() > 0) { BigDecimal bd = (BigDecimal) results.iterator().next(); if (bd != null && bd.doubleValue() > 0) { data[i][OFFENE_AG_LOSHATFEHLMENGE] = new Boolean(true); } } session2.close(); } } else if (kostenstelleIId != null) { if (los.getKostenstelle_i_id().intValue() != kostenstelleIId.intValue()) { i--; } else { data[i][OFFENE_AG_AGNUMMER] = a.getI_arbeitsgangsnummer(); data[i][OFFENE_AG_UAGNUMMER] = a.getI_unterarbeitsgang(); data[i][OFFENE_AG_AG_ARTIKEL] = a.getFlrartikel().getC_nr(); ArtikelDto aDto = getArtikelFac() .artikelFindByPrimaryKeySmall(a.getFlrartikel().getI_id(), theClientDto); data[i][OFFENE_AG_AG_ARTIKELBEZEICHNUNG] = aDto.formatBezeichnung(); if (Helper.short2boolean(a.getB_fertig())) { data[i][OFFENE_AG_AG_GESAMTZEIT] = new BigDecimal(0); } else { data[i][OFFENE_AG_AG_GESAMTZEIT] = a.getN_gesamtzeit(); } if (bSollstundenbetrachtung == true) { data[i][OFFENE_AG_AG_ISTZEIT] = getZeiterfassungFac().getSummeZeitenEinesBeleges( LocaleFac.BELEGART_LOS, los.getI_id(), a.getI_id(), null, null, null, theClientDto); } if (a.getFlrmaschine() != null) { data[i][OFFENE_AG_AG_MASCHINE_BEZEICHNUNG] = a.getFlrmaschine().getC_bez(); data[i][OFFENE_AG_AG_MASCHINE_IDENTIFIKATIONSNUMMMER] = a.getFlrmaschine() .getC_identifikationsnr(); data[i][OFFENE_AG_AG_MASCHINE_INVENTARNUMMMER] = a.getFlrmaschine() .getC_inventarnummer(); } if (a.getFlrartikel().getFlrartikelgruppe() != null) { data[i][OFFENE_AG_AG_ARTIKELGRUPPPE] = a.getFlrartikel().getFlrartikelgruppe() .getC_nr(); } else { data[i][OFFENE_AG_AG_ARTIKELGRUPPPE] = ""; } if (a.getI_maschinenversatztage() != null) { data[i][OFFENE_AG_AG_BEGINN] = Helper.addiereTageZuTimestamp( (Timestamp) los.getT_produktionsbeginn(), a.getI_maschinenversatztage()); } else { data[i][OFFENE_AG_AG_BEGINN] = los.getT_produktionsbeginn(); } if (los.getFlrauftrag() != null) { Integer partnerIId = los.getFlrauftrag().getFlrkunde().getFlrpartner().getI_id(); PartnerDto partnerDto = getPartnerFac().partnerFindByPrimaryKey(partnerIId, theClientDto); data[i][OFFENE_AG_KUNDE] = partnerDto.formatFixTitelName1Name2(); data[i][OFFENE_AG_AUFTRAGSPOENALE] = los.getFlrauftrag().getB_poenale(); } if (los.getFlrauftrag() != null) { data[i][OFFENE_AG_AUFTRAGSNUMMER] = los.getFlrauftrag().getC_nr(); data[i][OFFENE_AG_PROJEKT] = los.getFlrauftrag().getC_bez(); data[i][OFFENE_AG_LIEFERTERMIN] = los.getFlrauftrag().getT_liefertermin(); } BigDecimal bdGeliefert = new BigDecimal(0); for (Iterator<?> iter2 = los.getAblieferungset().iterator(); iter2.hasNext();) { FLRLosablieferung item = (FLRLosablieferung) iter2.next(); bdGeliefert = bdGeliefert.add(item.getN_menge()); } data[i][OFFENE_AG_GELIEFERT] = bdGeliefert; if (los.getFlrstueckliste() != null) { ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKeySmall( los.getFlrstueckliste().getFlrartikel().getI_id(), theClientDto); data[i][OFFENE_AG_BEZEICHNUNG] = artikelDto.getArtikelsprDto().getCBez(); data[i][OFFENE_AG_ZUSATZBEZEICHNUNG] = artikelDto.getArtikelsprDto().getCZbez(); data[i][OFFENE_AG_ARTIKELNUMMER] = los.getFlrstueckliste().getFlrartikel() .getC_nr(); data[i][OFFENE_AG_DETAILBEDARF] = getRahmenbedarfeFac() .getSummeAllerRahmenbedarfeEinesArtikels(artikelDto.getIId()); // Offene Fehlmengen data[i][OFFENE_AG_FEHLMENGE] = getFehlmengeFac() .getAnzahlFehlmengeEinesArtikels(artikelDto.getIId(), theClientDto); LossollarbeitsplanDto[] lossollarbeitsplanDto = getFertigungFac() .lossollarbeitsplanFindByLosIId(los.getI_id()); BigDecimal bdFertigungszeit = new BigDecimal(0); for (int j = 0; lossollarbeitsplanDto.length > j; j++) { bdFertigungszeit = bdFertigungszeit .add(lossollarbeitsplanDto[j].getNGesamtzeit()); } data[i][OFFENE_AG_FERTIGUNGSZEIT] = bdFertigungszeit; // Rahmenbestellt Hashtable<?, ?> htRahmenbestellt = getArtikelbestelltFac() .getAnzahlRahmenbestellt(artikelDto.getIId(), theClientDto); if (htRahmenbestellt.containsKey(ArtikelbestelltFac.KEY_RAHMENBESTELLT_ANZAHL)) { BigDecimal bdAnzahlRahmenbestellt = (BigDecimal) htRahmenbestellt .get(ArtikelbestelltFac.KEY_RAHMENBESTELLT_ANZAHL); data[i][OFFENE_AG_RAHMEN_BESTELLT] = bdAnzahlRahmenbestellt; } data[i][OFFENE_AG_RESERVIERUNGEN] = getReservierungFac() .getAnzahlReservierungen(artikelDto.getIId(), theClientDto); data[i][OFFENE_AG_RAHMENRESERVIERUNGEN] = getReservierungFac() .getAnzahlRahmenreservierungen(artikelDto.getIId(), theClientDto); } else { data[i][OFFENE_AG_BEZEICHNUNG] = los.getC_projekt(); data[i][OFFENE_AG_ZUSATZBEZEICHNUNG] = null; data[i][OFFENE_AG_ARTIKELNUMMER] = getTextRespectUISpr("fert.materialliste", theClientDto.getMandant(), theClientDto.getLocUi()); } GregorianCalendar gc = new GregorianCalendar(); gc.setTime(los.getT_produktionsbeginn()); data[i][OFFENE_AG_KALENDERWOCHE] = new Integer(gc.get(GregorianCalendar.WEEK_OF_YEAR)); data[i][OFFENE_AG_LOSGROESSE] = los.getN_losgroesse(); data[i][OFFENE_AG_LOSNUMMER] = los.getC_nr(); data[i][OFFENE_AG_FERTIGUNGSGRUPPE] = los.getFlrfertigungsgruppe().getC_bez(); /** * @todo material PJ 4239 */ data[i][OFFENE_AG_MATERIAL] = null; data[i][OFFENE_AG_BEGINN] = los.getT_produktionsbeginn(); data[i][OFFENE_AG_ENDE] = los.getT_produktionsende(); data[i][OFFENE_AG_LOSSTATUS] = los.getStatus_c_nr(); // PJ 15009 String queryf = "select sum(flrfehlmenge.n_menge) FROM FLRFehlmenge flrfehlmenge WHERE flrfehlmenge.flrlossollmaterial.flrlos = " + los.getI_id() + " AND flrfehlmenge.n_menge>0"; Session session2 = FLRSessionFactory.getFactory().openSession(); Query query = session2.createQuery(queryf); List<?> results = query.list(); data[i][OFFENE_AG_LOSHATFEHLMENGE] = new Boolean(false); if (results.size() > 0) { BigDecimal bd = (BigDecimal) results.iterator().next(); if (bd != null && bd.doubleValue() > 0) { data[i][OFFENE_AG_LOSHATFEHLMENGE] = new Boolean(true); } } session2.close(); } } } else { data[i][OFFENE_AG_AGNUMMER] = a.getI_arbeitsgangsnummer(); data[i][OFFENE_AG_UAGNUMMER] = a.getI_unterarbeitsgang(); data[i][OFFENE_AG_AG_ARTIKEL] = a.getFlrartikel().getC_nr(); ArtikelDto aDto = getArtikelFac().artikelFindByPrimaryKeySmall(a.getFlrartikel().getI_id(), theClientDto); data[i][OFFENE_AG_AG_ARTIKELBEZEICHNUNG] = aDto.formatBezeichnung(); if (Helper.short2boolean(a.getB_fertig())) { data[i][OFFENE_AG_AG_GESAMTZEIT] = new BigDecimal(0); } else { data[i][OFFENE_AG_AG_GESAMTZEIT] = a.getN_gesamtzeit(); } if (bSollstundenbetrachtung == true) { data[i][OFFENE_AG_AG_ISTZEIT] = getZeiterfassungFac().getSummeZeitenEinesBeleges( LocaleFac.BELEGART_LOS, los.getI_id(), a.getI_id(), null, null, null, theClientDto); } if (a.getFlrmaschine() != null) { data[i][OFFENE_AG_AG_MASCHINE_BEZEICHNUNG] = a.getFlrmaschine().getC_bez(); data[i][OFFENE_AG_AG_MASCHINE_IDENTIFIKATIONSNUMMMER] = a.getFlrmaschine() .getC_identifikationsnr(); data[i][OFFENE_AG_AG_MASCHINE_INVENTARNUMMMER] = a.getFlrmaschine().getC_inventarnummer(); } if (a.getFlrartikel().getFlrartikelgruppe() != null) { data[i][OFFENE_AG_AG_ARTIKELGRUPPPE] = a.getFlrartikel().getFlrartikelgruppe().getC_nr(); } else { data[i][OFFENE_AG_AG_ARTIKELGRUPPPE] = ""; } if (a.getI_maschinenversatztage() != null) { data[i][OFFENE_AG_AG_BEGINN] = Helper.addiereTageZuTimestamp( (Timestamp) los.getT_produktionsbeginn(), a.getI_maschinenversatztage()); } else { data[i][OFFENE_AG_AG_BEGINN] = los.getT_produktionsbeginn(); } if (los.getFlrauftrag() != null) { Integer partnerIId = los.getFlrauftrag().getFlrkunde().getFlrpartner().getI_id(); PartnerDto partnerDto = getPartnerFac().partnerFindByPrimaryKey(partnerIId, theClientDto); data[i][OFFENE_AG_KUNDE] = partnerDto.formatFixTitelName1Name2(); data[i][OFFENE_AG_AUFTRAGSPOENALE] = los.getFlrauftrag().getB_poenale(); } if (los.getFlrauftrag() != null) { data[i][OFFENE_AG_AUFTRAGSNUMMER] = los.getFlrauftrag().getC_nr(); data[i][OFFENE_AG_PROJEKT] = los.getFlrauftrag().getC_bez(); data[i][OFFENE_AG_LIEFERTERMIN] = los.getFlrauftrag().getT_liefertermin(); } BigDecimal bdGeliefert = new BigDecimal(0); for (Iterator<?> iter2 = los.getAblieferungset().iterator(); iter2.hasNext();) { FLRLosablieferung item = (FLRLosablieferung) iter2.next(); bdGeliefert = bdGeliefert.add(item.getN_menge()); } data[i][OFFENE_AG_GELIEFERT] = bdGeliefert; if (los.getFlrstueckliste() != null) { ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKeySmall( los.getFlrstueckliste().getFlrartikel().getI_id(), theClientDto); data[i][OFFENE_AG_BEZEICHNUNG] = artikelDto.getArtikelsprDto().getCBez(); data[i][OFFENE_AG_ZUSATZBEZEICHNUNG] = artikelDto.getArtikelsprDto().getCZbez(); data[i][OFFENE_AG_ARTIKELNUMMER] = los.getFlrstueckliste().getFlrartikel().getC_nr(); data[i][OFFENE_AG_DETAILBEDARF] = getRahmenbedarfeFac() .getSummeAllerRahmenbedarfeEinesArtikels(artikelDto.getIId()); // Offene Fehlmengen data[i][OFFENE_AG_FEHLMENGE] = getFehlmengeFac() .getAnzahlFehlmengeEinesArtikels(artikelDto.getIId(), theClientDto); LossollarbeitsplanDto[] lossollarbeitsplanDto = getFertigungFac() .lossollarbeitsplanFindByLosIId(los.getI_id()); BigDecimal bdFertigungszeit = new BigDecimal(0); for (int j = 0; lossollarbeitsplanDto.length > j; j++) { bdFertigungszeit = bdFertigungszeit.add(lossollarbeitsplanDto[j].getNGesamtzeit()); } data[i][OFFENE_AG_FERTIGUNGSZEIT] = bdFertigungszeit; // Rahmenbestellt Hashtable<?, ?> htRahmenbestellt = getArtikelbestelltFac() .getAnzahlRahmenbestellt(artikelDto.getIId(), theClientDto); if (htRahmenbestellt.containsKey(ArtikelbestelltFac.KEY_RAHMENBESTELLT_ANZAHL)) { BigDecimal bdAnzahlRahmenbestellt = (BigDecimal) htRahmenbestellt .get(ArtikelbestelltFac.KEY_RAHMENBESTELLT_ANZAHL); data[i][OFFENE_AG_RAHMEN_BESTELLT] = bdAnzahlRahmenbestellt; } data[i][OFFENE_AG_RESERVIERUNGEN] = getReservierungFac() .getAnzahlReservierungen(artikelDto.getIId(), theClientDto); data[i][OFFENE_AG_RAHMENRESERVIERUNGEN] = getReservierungFac() .getAnzahlRahmenreservierungen(artikelDto.getIId(), theClientDto); } else { data[i][OFFENE_AG_BEZEICHNUNG] = los.getC_projekt(); data[i][OFFENE_AG_ZUSATZBEZEICHNUNG] = null; data[i][OFFENE_AG_ARTIKELNUMMER] = getTextRespectUISpr("fert.materialliste", theClientDto.getMandant(), theClientDto.getLocUi()); } GregorianCalendar gc = new GregorianCalendar(); gc.setTime(los.getT_produktionsbeginn()); data[i][OFFENE_AG_KALENDERWOCHE] = new Integer(gc.get(GregorianCalendar.WEEK_OF_YEAR)); data[i][OFFENE_AG_LOSGROESSE] = los.getN_losgroesse(); data[i][OFFENE_AG_LOSNUMMER] = los.getC_nr(); data[i][OFFENE_AG_FERTIGUNGSGRUPPE] = los.getFlrfertigungsgruppe().getC_bez(); /** * @todo material PJ 4239 */ data[i][OFFENE_AG_MATERIAL] = null; data[i][OFFENE_AG_BEGINN] = los.getT_produktionsbeginn(); data[i][OFFENE_AG_ENDE] = los.getT_produktionsende(); data[i][OFFENE_AG_LOSSTATUS] = los.getStatus_c_nr(); // PJ 15009 String queryf = "select sum(flrfehlmenge.n_menge) FROM FLRFehlmenge flrfehlmenge WHERE flrfehlmenge.flrlossollmaterial.flrlos = " + los.getI_id() + " AND flrfehlmenge.n_menge>0"; Session session2 = FLRSessionFactory.getFactory().openSession(); Query query = session2.createQuery(queryf); List<?> results = query.list(); data[i][OFFENE_AG_LOSHATFEHLMENGE] = new Boolean(false); if (results.size() > 0) { BigDecimal bd = (BigDecimal) results.iterator().next(); if (bd != null && bd.doubleValue() > 0) { data[i][OFFENE_AG_LOSHATFEHLMENGE] = new Boolean(true); } } session2.close(); } } // Sortieren nach Artikelgruppe + AG-Beginn for (int k = data.length - 1; k > 0; --k) { for (int j = 0; j < k; ++j) { Object[] a1 = (Object[]) data[j]; Object[] a2 = (Object[]) data[j + 1]; if (((String) a1[OFFENE_AG_AG_ARTIKELGRUPPPE]) .compareTo((String) a2[OFFENE_AG_AG_ARTIKELGRUPPPE]) > 0) { data[j] = a2; data[j + 1] = a1; } else if (((String) a1[OFFENE_AG_AG_ARTIKELGRUPPPE]) .compareTo((String) a2[OFFENE_AG_AG_ARTIKELGRUPPPE]) == 0) { java.util.Date k1 = (java.util.Date) a1[OFFENE_AG_AG_BEGINN]; java.util.Date k2 = (java.util.Date) a2[OFFENE_AG_AG_BEGINN]; if (iOptionStichtag == FertigungReportFac.OFFENE_OPTION_STICHTAG_ENDEDATUM) { k1 = (java.util.Date) a1[OFFENE_AG_ENDE]; k2 = (java.util.Date) a2[OFFENE_AG_ENDE]; } else if (iOptionStichtag == FertigungReportFac.OFFENE_OPTION_STICHTAG_LIEFERTERMIN) { k1 = (java.util.Date) a1[OFFENE_AG_LIEFERTERMIN]; if (k1 == null) { k1 = new Date(0); } k2 = (java.util.Date) a2[OFFENE_AG_LIEFERTERMIN]; if (k2 == null) { k2 = new Date(0); } } k1 = Helper.cutDate(k1); k2 = Helper.cutDate(k2); if (k1.after(k2)) { data[j] = a2; data[j + 1] = a1; } else if (k1.equals(k2)) { String l1 = (String) a1[OFFENE_AG_LOSNUMMER]; String l2 = (String) a1[OFFENE_AG_LOSNUMMER]; if (l1.compareTo(l2) > 0) { data[j] = a2; data[j + 1] = a1; } } } } } initJRDS(mapParameter, FertigungReportFac.REPORT_MODUL, FertigungReportFac.REPORT_OFFENE_AG, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); return getReportPrint(); } catch (Exception t) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER, t); } finally { closeSession(session); } }