List of usage examples for org.hibernate.criterion Restrictions in
public static Criterion in(String propertyName, Collection values)
From source file:com.lp.server.artikel.ejbfac.ArtikelReportFacBean.java
License:Open Source License
@TransactionAttribute(TransactionAttributeType.NEVER) public JasperPrintLP printArtikelstatistik(Integer artikelIId, java.sql.Date dVon, java.sql.Date dBis, Integer iOption, boolean bMonatsstatistik, boolean bEingeschraenkt, boolean bMitHandlagerbewegungen, boolean bMitBewegungsvorschau, boolean bMitHistory, TheClientDto theClientDto) throws RemoteException { if (artikelIId == null) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FELD_DARF_NICHT_NULL_SEIN, new Exception("artikelIId == null")); }/* w w w. java2 s .co m*/ boolean bWeReferenzAndrucken = false; try { ParametermandantDto parameter = getParameterFac().getMandantparameter(theClientDto.getMandant(), ParameterFac.KATEGORIE_ARTIKEL, ParameterFac.PARAMETER_WE_REFERENZ_IN_STATISTIK); bWeReferenzAndrucken = ((Boolean) parameter.getCWertAsObject()).booleanValue(); } catch (RemoteException ex) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER, ex); } // Erstellung des Reports HashMap<String, Object> parameter = new HashMap<String, Object>(); Session session = FLRSessionFactory.getFactory().openSession(); org.hibernate.Criteria crit = session.createCriteria(FLRLagerbewegung.class).createAlias("flrartikel", "a") .add(Restrictions.eq("a.i_id", artikelIId)) .createAlias("flrlager", "l"); if (bMitHistory == false) { crit.add(Restrictions.eq("b_historie", Helper.boolean2Short(false))); } parameter.put("P_MITBUCHUNGSDETAILS", new Boolean(bMitHistory)); parameter.put("P_MITBEWEGUNGSVORSCHAU", new Boolean(bMitBewegungsvorschau)); parameter.put("P_EINGESCHRAENKT", new Boolean(bEingeschraenkt)); if (!getMandantFac().darfAnwenderAufZusatzfunktionZugreifen( MandantFac.ZUSATZFUNKTION_ZENTRALER_ARTIKELSTAMM, theClientDto)) { crit.add(Restrictions.eq("l.mandant_c_nr", theClientDto.getMandant())); } else { if (getMandantFac().darfAnwenderAufZusatzfunktionZugreifen(MandantFac.ZUSATZFUNKTION_GETRENNTE_LAGER, theClientDto)) { crit.add(Restrictions.eq("l.mandant_c_nr", theClientDto.getMandant())); } } // PJ 17221 // crit.add( // Restrictions.not(Restrictions.eq("l.lagerart_c_nr", // LagerFac.LAGERART_WERTGUTSCHRIFT))); crit.addOrder(Order.desc(LagerFac.FLR_LAGERBEWEGUNG_T_BELEGDATUM)) .addOrder(Order.desc(LagerFac.FLR_LAGERBEWEGUNG_T_BUCHUNGSZEIT)) .addOrder(Order.desc(LagerFac.FLR_LAGERBEWEGUNG_B_ABGANG)); if (dVon != null) { crit.add(Restrictions.ge(LagerFac.FLR_LAGERBEWEGUNG_T_BELEGDATUM, dVon)); parameter.put("P_VON", new java.sql.Timestamp(dVon.getTime())); } if (dBis != null) { crit.add(Restrictions.le(LagerFac.FLR_LAGERBEWEGUNG_T_BELEGDATUM, dBis)); parameter.put("P_BIS", new java.sql.Timestamp(dBis.getTime())); } boolean darfEinkaufspreisSehen = getTheJudgeFac().hatRecht(RechteFac.RECHT_LP_DARF_PREISE_SEHEN_EINKAUF, theClientDto); boolean darfVerkaufspreisSehen = getTheJudgeFac().hatRecht(RechteFac.RECHT_LP_DARF_PREISE_SEHEN_VERKAUF, theClientDto); parameter.put("P_RECHT_LP_DARF_PREISE_SEHEN_EINKAUF", darfEinkaufspreisSehen); parameter.put("P_RECHT_LP_DARF_PREISE_SEHEN_VERKAUF", darfVerkaufspreisSehen); if (iOption == ArtikelFac.REPORT_ARTIKELSTATISTIK_OPTION_ALLE) { parameter.put("P_MITSUMMENZEILE", new Boolean(false)); parameter.put("P_BELEGARTEN", getTextRespectUISpr("lp.alle", theClientDto.getMandant(), theClientDto.getLocUi())); parameter.put("P_BELEGART_AUSWAHL", "lp.alle"); } else if (iOption == ArtikelFac.REPORT_ARTIKELSTATISTIK_OPTION_EK) { parameter.put("P_MITSUMMENZEILE", new Boolean(true)); parameter.put("P_BELEGARTEN", getTextRespectUISpr("lp.einkauf", theClientDto.getMandant(), theClientDto.getLocUi())); String[] belegarten = new String[1]; belegarten[0] = LocaleFac.BELEGART_BESTELLUNG; crit.add(Restrictions.in(LagerFac.FLR_LAGERBEWEGUNG_C_BELEGARTNR, belegarten)); parameter.put("P_BELEGART_AUSWAHL", "lp.einkauf"); } else if (iOption == ArtikelFac.REPORT_ARTIKELSTATISTIK_OPTION_VK) { parameter.put("P_MITSUMMENZEILE", new Boolean(true)); parameter.put("P_BELEGARTEN", getTextRespectUISpr("lp.verkauf", theClientDto.getMandant(), theClientDto.getLocUi())); String[] belegarten = new String[3]; belegarten[0] = LocaleFac.BELEGART_RECHNUNG; belegarten[1] = LocaleFac.BELEGART_LIEFERSCHEIN; belegarten[2] = LocaleFac.BELEGART_GUTSCHRIFT; crit.add(Restrictions.in(LagerFac.FLR_LAGERBEWEGUNG_C_BELEGARTNR, belegarten)); parameter.put("P_BELEGART_AUSWAHL", "lp.verkauf"); } else if (iOption == ArtikelFac.REPORT_ARTIKELSTATISTIK_OPTION_FERTIGUNG) { parameter.put("P_MITSUMMENZEILE", new Boolean(true)); parameter.put("P_BELEGARTEN", getTextRespectUISpr("lp.fertigung", theClientDto.getMandant(), theClientDto.getLocUi())); String[] belegarten = new String[2]; belegarten[0] = LocaleFac.BELEGART_LOS; belegarten[1] = LocaleFac.BELEGART_LOSABLIEFERUNG; crit.add(Restrictions.in(LagerFac.FLR_LAGERBEWEGUNG_C_BELEGARTNR, belegarten)); parameter.put("P_BELEGART_AUSWAHL", "lp.fertigung"); } if (bMitHandlagerbewegungen == false) { String[] belegarten = new String[1]; belegarten[0] = LocaleFac.BELEGART_HAND; crit.add(Restrictions.not(Restrictions.in(LagerFac.FLR_LAGERBEWEGUNG_C_BELEGARTNR, belegarten))); } parameter.put("P_MITHANDLAGERBEWEGUNGEN", new Boolean(bMitHandlagerbewegungen)); if (bEingeschraenkt) { crit.setMaxResults(50); } List<?> results = crit.list(); Iterator<?> resultListIterator = results.iterator(); ArrayList<Object[]> al = new ArrayList<Object[]>(); // PJ 14202 Session sessionInv = FLRSessionFactory.getFactory().openSession(); String sQuery = "FROM FLRInventurstand AS i WHERE i.flrartikel.i_id=" + artikelIId; if (dVon != null) { sQuery += " AND i.flrinventur.t_inventurdatum>='" + Helper.formatDateWithSlashes(dVon) + "'"; } if (dBis != null) { sQuery += " AND i.flrinventur.t_inventurdatum<='" + Helper.formatDateWithSlashes(dBis) + "'"; } sQuery += " ORDER BY i.flrinventur.t_inventurdatum DESC"; Query inventurliste = sessionInv.createQuery(sQuery); ArrayList alInventurliste = new ArrayList(); List<?> resultList = inventurliste.list(); Iterator<?> resultListInventur = resultList.iterator(); while (resultListInventur.hasNext()) { FLRInventurstand item = (FLRInventurstand) resultListInventur.next(); alInventurliste.add(item); } while (resultListIterator.hasNext()) { FLRLagerbewegung lagerbewegung = (FLRLagerbewegung) resultListIterator.next(); if (bMitHistory == true || lagerbewegung.getN_menge().doubleValue() > 0) { while (alInventurliste.size() > 0) { FLRInventurstand flr = (FLRInventurstand) alInventurliste.get(0); if (lagerbewegung.getT_belegdatum().getTime() <= flr.getFlrinventur().getT_inventurdatum() .getTime()) { Object[] zeile = new Object[REPORT_ARTIKELSTATISTIK_ANZAHL_SPALTEN]; zeile[REPORT_ARTIKELSTATISTIK_BEWEGUNGSVORSCHAU] = new Boolean(false); zeile[REPORT_ARTIKELSTATISTIK_BELEGART] = "Inventurstand"; java.sql.Timestamp ts = new java.sql.Timestamp( flr.getFlrinventur().getT_inventurdatum().getTime()); zeile[REPORT_ARTIKELSTATISTIK_SORTIERDATUM] = ts; zeile[REPORT_ARTIKELSTATISTIK_BELEGDATUM] = ts; zeile[REPORT_ARTIKELSTATISTIK_BUCHUNGSZEIT] = ts; zeile[REPORT_ARTIKELSTATISTIK_INVENTURMENGE] = flr.getN_inventurmenge(); zeile[REPORT_ARTIKELSTATISTIK_BELEGNUMMER] = flr.getFlrinventur().getC_bez(); al.add(zeile); alInventurliste.remove(0); } else { break; } } Object[] zeile = new Object[REPORT_ARTIKELSTATISTIK_ANZAHL_SPALTEN]; zeile[REPORT_ARTIKELSTATISTIK_BEWEGUNGSVORSCHAU] = new Boolean(false); String sBelegartCNr = lagerbewegung.getFlrbelegart().getC_nr(); zeile[REPORT_ARTIKELSTATISTIK_BELEGARTCNR] = sBelegartCNr; if (lagerbewegung.getFlrlager().getLagerart_c_nr().equals(LagerFac.LAGERART_WERTGUTSCHRIFT)) { zeile[REPORT_ARTIKELSTATISTIK_BELEGART] = LagerFac.LAGERART_WERTGUTSCHRIFT; } else { zeile[REPORT_ARTIKELSTATISTIK_BELEGART] = lagerbewegung.getC_belegartnr(); } if (lagerbewegung.getC_belegartnr().equals(LocaleFac.BELEGART_LOS) || lagerbewegung.getC_belegartnr().equals(LocaleFac.BELEGART_LOSABLIEFERUNG)) { LosDto losDto = getFertigungFac().losFindByPrimaryKey(lagerbewegung.getI_belegartid()); if (losDto.getStuecklisteIId() != null) { zeile[REPORT_ARTIKELSTATISTIK_STUECKLISTENARTIKEL] = getStuecklisteFac() .stuecklisteFindByPrimaryKey(losDto.getStuecklisteIId(), theClientDto) .getArtikelDto().formatArtikelbezeichnung(); } else { zeile[REPORT_ARTIKELSTATISTIK_STUECKLISTENARTIKEL] = "Materialliste"; } zeile[REPORT_ARTIKELSTATISTIK_LOS_STATUS] = losDto.getStatusCNr(); zeile[REPORT_ARTIKELSTATISTIK_LOS_BEGINN] = losDto.getTProduktionsbeginn(); zeile[REPORT_ARTIKELSTATISTIK_LOS_ENDE] = losDto.getTProduktionsende(); zeile[REPORT_ARTIKELSTATISTIK_LOS_PROJEKT] = losDto.getCProjekt(); zeile[REPORT_ARTIKELSTATISTIK_LOS_ABGELIFERT] = getFertigungFac() .getErledigteMenge(losDto.getIId(), theClientDto); if (losDto.getAuftragIId() != null) { zeile[REPORT_ARTIKELSTATISTIK_LOS_AUFTRAG] = getAuftragFac() .auftragFindByPrimaryKey(losDto.getAuftragIId()).getCNr(); } } if (lagerbewegung.getC_belegartnr().equals(LocaleFac.BELEGART_LIEFERSCHEIN) || lagerbewegung.getC_belegartnr().equals(LocaleFac.BELEGART_RECHNUNG)) { Integer aufposIId = null; if (lagerbewegung.getC_belegartnr().equals(LocaleFac.BELEGART_RECHNUNG)) { RechnungPositionDto rechPos = getRechnungFac() .rechnungPositionFindByPrimaryKeyOhneExc(lagerbewegung.getI_belegartpositionid()); if (rechPos != null) { aufposIId = rechPos.getAuftragpositionIId(); } } else if (lagerbewegung.getC_belegartnr().equals(LocaleFac.BELEGART_LIEFERSCHEIN)) { LieferscheinpositionDto lsPos = getLieferscheinpositionFac() .lieferscheinpositionFindByPrimaryKeyOhneExc( lagerbewegung.getI_belegartpositionid(), theClientDto); if (lsPos != null) { aufposIId = lsPos.getAuftragpositionIId(); } } if (aufposIId != null) { AuftragpositionDto aufposDto = getAuftragpositionFac() .auftragpositionFindByPrimaryKey(aufposIId); AuftragDto aDto = getAuftragFac().auftragFindByPrimaryKey(aufposDto.getBelegIId()); zeile[REPORT_ARTIKELSTATISTIK_AUFTRAG_AUSLOESER] = aDto.getCNr(); } } zeile[REPORT_ARTIKELSTATISTIK_LAGER] = lagerbewegung.getFlrlager().getC_nr(); zeile[REPORT_ARTIKELSTATISTIK_SNRCHNR] = lagerbewegung.getC_seriennrchargennr(); BigDecimal preis = new BigDecimal(0); BigDecimal wert = new BigDecimal(0); if (lagerbewegung.getB_abgang().intValue() == 0) { if (darfEinkaufspreisSehen) { if (lagerbewegung.getC_belegartnr().equals(LocaleFac.BELEGART_GUTSCHRIFT)) { RechnungPositionDto rechposDto = getRechnungFac() .rechnungPositionFindByPrimaryKeyOhneExc( lagerbewegung.getI_belegartpositionid()); if (rechposDto != null) { RechnungDto rechnungDto = getRechnungFac() .rechnungFindByPrimaryKey(rechposDto.getRechnungIId()); preis = rechposDto.getNNettoeinzelpreisplusversteckteraufschlagminusrabatte() .divide(rechnungDto.getNKurs(), 5, BigDecimal.ROUND_HALF_EVEN); zeile[REPORT_ARTIKELSTATISTIK_PREIS] = Helper.rundeKaufmaennisch(preis, 4); } else { preis = lagerbewegung.getN_einstandspreis(); zeile[REPORT_ARTIKELSTATISTIK_PREIS] = Helper.rundeKaufmaennisch(preis, 4); } } else { preis = lagerbewegung.getN_einstandspreis(); zeile[REPORT_ARTIKELSTATISTIK_PREIS] = Helper.rundeKaufmaennisch(preis, 4); } } else { zeile[REPORT_ARTIKELSTATISTIK_PREIS] = null; } } else { if (darfVerkaufspreisSehen) { preis = lagerbewegung.getN_verkaufspreis(); if (lagerbewegung.getC_belegartnr().equals(LocaleFac.BELEGART_LOS)) { preis = getLagerFac().getGemittelterGestehungspreisEinerAbgangsposition( LocaleFac.BELEGART_LOS, lagerbewegung.getI_belegartpositionid()); } zeile[REPORT_ARTIKELSTATISTIK_PREIS] = Helper.rundeKaufmaennisch(preis, 4); } else { zeile[REPORT_ARTIKELSTATISTIK_PREIS] = null; } } if (bWeReferenzAndrucken) { zeile[REPORT_ARTIKELSTATISTIK_WE_REFERENZ] = getLagerFac().getWareneingangsreferenzSubreport( lagerbewegung.getC_belegartnr(), lagerbewegung.getI_belegartpositionid(), lagerbewegung.getC_seriennrchargennr(), false, theClientDto); } wert = preis.multiply(lagerbewegung.getN_menge()); BigDecimal d = lagerbewegung.getN_menge(); // Wenn Lagerabgang, dann negative Menge if (Helper.short2boolean(lagerbewegung.getB_abgang())) { d = d.negate(); } zeile[REPORT_ARTIKELSTATISTIK_MENGE] = d; if (lagerbewegung.getFlrhersteller() != null) { zeile[REPORT_ARTIKELSTATISTIK_HERSTELLER] = lagerbewegung.getFlrhersteller().getC_nr(); } if (lagerbewegung.getFlrland() != null) { zeile[REPORT_ARTIKELSTATISTIK_URSPRUNGSLAND] = lagerbewegung.getFlrland().getC_lkz(); } try { BelegInfos bi = getLagerFac().getBelegInfos(lagerbewegung.getC_belegartnr(), lagerbewegung.getI_belegartid(), lagerbewegung.getI_belegartpositionid(), theClientDto); zeile[REPORT_ARTIKELSTATISTIK_BELEGNUMMER] = bi.getBelegnummer(); zeile[REPORT_ARTIKELSTATISTIK_FIRMA] = bi.getKundeLieferant(); zeile[REPORT_ARTIKELSTATISTIK_VERLEIHFAKTOR] = bi.getVerleihfaktor(); zeile[REPORT_ARTIKELSTATISTIK_VERLEIHTAGE] = bi.getVerleihtage(); zeile[REPORT_ARTIKELSTATISTIK_BUCHUNGSZEIT] = lagerbewegung.getT_buchungszeit(); if (lagerbewegung.getC_belegartnr().equals(LocaleFac.BELEGART_LIEFERSCHEIN)) { zeile[REPORT_ARTIKELSTATISTIK_LIEFERTERMIN] = bi.getBelegdatum(); } if (bi.getBelegdatum() != null) { zeile[REPORT_ARTIKELSTATISTIK_BELEGDATUM] = bi.getBelegdatum(); } else { zeile[REPORT_ARTIKELSTATISTIK_BELEGDATUM] = lagerbewegung.getT_belegdatum(); } zeile[REPORT_ARTIKELSTATISTIK_MATERIALZUSCHLAG] = bi.getBdMaterialzuschlag(); zeile[REPORT_ARTIKELSTATISTIK_SORTIERDATUM] = zeile[REPORT_ARTIKELSTATISTIK_BELEGDATUM]; // Wenn Belegdatum und Buchungsdatum gleich, dann wird die // Buchungszeit + Datum als Belegdatum verwendet if (Helper.cutTimestamp((Timestamp) zeile[REPORT_ARTIKELSTATISTIK_BELEGDATUM]) .equals(Helper.cutTimestamp((Timestamp) zeile[REPORT_ARTIKELSTATISTIK_BUCHUNGSZEIT]))) { zeile[REPORT_ARTIKELSTATISTIK_SORTIERDATUM] = lagerbewegung.getT_buchungszeit(); } // Fuer Monatsstatistik Calendar c = Calendar.getInstance(); if (bi.getBelegdatum() != null) { c.setTimeInMillis(bi.getBelegdatum().getTime()); } else { c.setTimeInMillis(lagerbewegung.getT_buchungszeit().getTime()); } c.set(Calendar.HOUR_OF_DAY, 0); c.set(Calendar.MINUTE, 0); c.set(Calendar.SECOND, 0); c.set(Calendar.MILLISECOND, 0); c.set(Calendar.DAY_OF_MONTH, 1); // Schon enthalten? al.add(zeile); } catch (RemoteException ex2) { throwEJBExceptionLPRespectOld(ex2); } } } // while (alInventurliste.size() > 0) { FLRInventurstand flr = (FLRInventurstand) alInventurliste.get(0); Object[] zeile = new Object[REPORT_ARTIKELSTATISTIK_ANZAHL_SPALTEN]; zeile[REPORT_ARTIKELSTATISTIK_BELEGART] = "Inventurstand"; zeile[REPORT_ARTIKELSTATISTIK_BEWEGUNGSVORSCHAU] = new Boolean(false); java.sql.Timestamp ts = new java.sql.Timestamp(flr.getFlrinventur().getT_inventurdatum().getTime()); zeile[REPORT_ARTIKELSTATISTIK_SORTIERDATUM] = ts; zeile[REPORT_ARTIKELSTATISTIK_BELEGDATUM] = ts; zeile[REPORT_ARTIKELSTATISTIK_BUCHUNGSZEIT] = ts; zeile[REPORT_ARTIKELSTATISTIK_INVENTURMENGE] = flr.getN_inventurmenge(); zeile[REPORT_ARTIKELSTATISTIK_BELEGNUMMER] = flr.getFlrinventur().getC_bez(); al.add(zeile); alInventurliste.remove(0); } sessionInv.close(); session.close(); ArtikelDto aDto = getArtikelFac().artikelFindByPrimaryKey(artikelIId, theClientDto); parameter.put("P_ARTIKEL", aDto.formatArtikelbezeichnung()); parameter.put("P_ARTIKELEINHEIT", aDto.getEinheitCNr().trim()); parameter.put("P_BESTELLEINHEIT", aDto.getEinheitCNrBestellung()); parameter.put("P_MULTIPLIKATORBESTELLMENGE", aDto.getNUmrechnungsfaktor()); parameter.put("P_BESTELLEINHEIT_INVERS", Helper.short2Boolean(aDto.getbBestellmengeneinheitInvers())); if (bMonatsstatistik == true) { sAktuellerReport = ArtikelReportFac.REPORT_MONATSSTATISTIK; for (int i = 0; i < al.size() - 1; i = i + 1) { for (int j = al.size() - 1; j > i; j = j - 1) { Object[] erstes = (Object[]) al.get(j - 1); Object[] zweites = (Object[]) al.get(j); if (((java.sql.Timestamp) erstes[REPORT_ARTIKELSTATISTIK_BELEGDATUM]) .before(((java.sql.Timestamp) zweites[REPORT_ARTIKELSTATISTIK_BELEGDATUM]))) { Object[] temp = erstes; al.set(j - 1, zweites); al.set(j, temp); } } } // sortiere nach Jahr/Monat java.text.DateFormatSymbols symbols = new java.text.DateFormatSymbols(theClientDto.getLocUi()); String[] defaultMonths = symbols.getMonths(); GregorianCalendar cAktuell = new GregorianCalendar(); if (al.size() > 0) { Object[] erste = (Object[]) al.get(al.size() - 1); Object[] letzte = (Object[]) al.get(0); cAktuell.setTimeInMillis(((Timestamp) letzte[REPORT_ARTIKELSTATISTIK_BELEGDATUM]).getTime()); ArrayList alMonate = new ArrayList(); while (cAktuell.getTimeInMillis() >= ((Timestamp) erste[REPORT_ARTIKELSTATISTIK_BELEGDATUM]) .getTime()) { BigDecimal mengeZugang = new BigDecimal(0); BigDecimal wertZugang = new BigDecimal(0); BigDecimal mengeAbgang = new BigDecimal(0); BigDecimal wertAbgang = new BigDecimal(0); for (int i = 0; i < al.size(); i++) { Object[] zeile = (Object[]) al.get(i); Timestamp d = (Timestamp) zeile[REPORT_ARTIKELSTATISTIK_BELEGDATUM]; Calendar cZeile = Calendar.getInstance(); cZeile.setTimeInMillis(d.getTime()); if (cAktuell.get(Calendar.MONTH) == cZeile.get(Calendar.MONTH) && cAktuell.get(Calendar.YEAR) == cZeile.get(Calendar.YEAR)) { BigDecimal mengeZeile = (BigDecimal) zeile[REPORT_ARTIKELSTATISTIK_MENGE]; BigDecimal preisZeile = (BigDecimal) zeile[REPORT_ARTIKELSTATISTIK_PREIS]; if (mengeZeile != null && preisZeile != null) { boolean bGutschrift = false; if (zeile[REPORT_ARTIKELSTATISTIK_BELEGART] != null && zeile[REPORT_ARTIKELSTATISTIK_BELEGART] .equals(LocaleFac.BELEGART_GUTSCHRIFT)) { bGutschrift = true; } // SP18027 if (mengeZeile.doubleValue() > 0) { if (bGutschrift == true) { mengeAbgang = mengeAbgang.subtract(mengeZeile.abs()); wertAbgang = wertAbgang.subtract(mengeZeile.abs().multiply(preisZeile)); } else { mengeZugang = mengeZugang.add(mengeZeile); wertZugang = wertZugang.add(mengeZeile.multiply(preisZeile)); } } else { mengeAbgang = mengeAbgang.add(mengeZeile.abs()); wertAbgang = wertAbgang.add(mengeZeile.abs().multiply(preisZeile)); } } } } Object[] zeileMonate = new Object[KundeReportFac.REPORT_MONATSSTATISTIK_ANZAHL_FELDER]; zeileMonate[REPORT_MONATSSTATISTIK_MONAT] = defaultMonths[cAktuell.get(Calendar.MONTH)]; zeileMonate[REPORT_MONATSSTATISTIK_JAHR] = cAktuell.get(Calendar.YEAR); zeileMonate[REPORT_MONATSSTATISTIK_ABGANG_MENGE] = mengeAbgang; zeileMonate[REPORT_MONATSSTATISTIK_ABGANG_WERT] = wertAbgang; zeileMonate[REPORT_MONATSSTATISTIK_ZUGANG_MENGE] = mengeZugang; zeileMonate[REPORT_MONATSSTATISTIK_ZUGANG_WERT] = wertZugang; alMonate.add(zeileMonate); cAktuell.set(Calendar.DAY_OF_MONTH, 1); cAktuell.getTimeInMillis(); cAktuell.set(Calendar.MONTH, cAktuell.get(Calendar.MONTH) - 1); cAktuell.getTimeInMillis(); cAktuell.set(Calendar.DAY_OF_MONTH, cAktuell.getActualMaximum(Calendar.DAY_OF_MONTH)); cAktuell.getTimeInMillis(); } Object[][] dataTemp = new Object[1][1]; data = (Object[][]) alMonate.toArray(dataTemp); initJRDS(parameter, ArtikelFac.REPORT_MODUL, ArtikelReportFac.REPORT_MONATSSTATISTIK, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); return getReportPrint(); } else { return null; } } else { if (bMitBewegungsvorschau == true) { // SP 1008 OHNE Internebestellung ArrayList<?> list = getInternebestellungFac().getBewegungsvorschauSortiert(artikelIId, false, theClientDto); BewegungsvorschauDto[] returnArray = new BewegungsvorschauDto[list.size()]; BewegungsvorschauDto[] dtos = (com.lp.server.bestellung.service.BewegungsvorschauDto[]) list .toArray(returnArray); for (int i = 0; i < dtos.length; i++) { BewegungsvorschauDto dto = dtos[i]; if (dto.getTLiefertermin() != null) { Object[] zeile = new Object[REPORT_ARTIKELSTATISTIK_ANZAHL_SPALTEN]; zeile[REPORT_ARTIKELSTATISTIK_BEWEGUNGSVORSCHAU] = new Boolean(true); if (dto.getCBelegartCNr() != null && dto.getCBelegartCNr().equals(LocaleFac.BELEGART_LOSABLIEFERUNG)) { LosDto losDto = getFertigungFac().losFindByPrimaryKey(dto.getIBelegIId()); zeile[REPORT_ARTIKELSTATISTIK_LOS_STATUS] = losDto.getStatusCNr(); zeile[REPORT_ARTIKELSTATISTIK_LOS_BEGINN] = losDto.getTProduktionsbeginn(); zeile[REPORT_ARTIKELSTATISTIK_LOS_ENDE] = losDto.getTProduktionsende(); zeile[REPORT_ARTIKELSTATISTIK_LOS_PROJEKT] = losDto.getCProjekt(); zeile[REPORT_ARTIKELSTATISTIK_LOS_ABGELIFERT] = getFertigungFac() .getErledigteMenge(losDto.getIId(), theClientDto); if (losDto.getAuftragIId() != null) { zeile[REPORT_ARTIKELSTATISTIK_LOS_AUFTRAG] = getAuftragFac() .auftragFindByPrimaryKey(losDto.getAuftragIId()).getCNr(); } } zeile[REPORT_ARTIKELSTATISTIK_BELEGART] = dto.getCBelegartCNr(); zeile[REPORT_ARTIKELSTATISTIK_BELEGNUMMER] = dto.getCBelegnummer(); if (dto.getPartnerDto() != null) { zeile[REPORT_ARTIKELSTATISTIK_FIRMA] = dto.getPartnerDto().formatFixTitelName1Name2(); } else { zeile[REPORT_ARTIKELSTATISTIK_FIRMA] = dto.getCProjekt(); } // PJ17836 zeile[REPORT_ARTIKELSTATISTIK_SORTIERDATUM] = dto.getTLiefertermin(); if (dto.getTABTerminBestellung() != null) { zeile[REPORT_ARTIKELSTATISTIK_SORTIERDATUM] = new Timestamp( dto.getTABTerminBestellung().getTime()); } zeile[REPORT_ARTIKELSTATISTIK_BELEGDATUM] = dto.getTLiefertermin(); zeile[REPORT_ARTIKELSTATISTIK_BUCHUNGSZEIT] = dto.getTLiefertermin(); zeile[REPORT_ARTIKELSTATISTIK_LIEFERTERMIN] = dto.getTLiefertermin(); zeile[REPORT_ARTIKELSTATISTIK_MENGE] = dto.getNMenge(); al.add(zeile); } } // PJ17817 ReportAnfragestatistikKriterienDto kritDtoI = new ReportAnfragestatistikKriterienDto(); kritDtoI.setArtikelIId(artikelIId); ReportRahmenreservierungDto[] aReportRahmenreservierungDto = getReportRahmenreservierung(kritDtoI, theClientDto); for (int i = 0; i < aReportRahmenreservierungDto.length; i++) { ReportRahmenreservierungDto reportRahmenreservierungDto = (ReportRahmenreservierungDto) aReportRahmenreservierungDto[i]; Object[] zeile = new Object[REPORT_ARTIKELSTATISTIK_ANZAHL_SPALTEN]; zeile[REPORT_ARTIKELSTATISTIK_BEWEGUNGSVORSCHAU] = new Boolean(true); zeile[REPORT_ARTIKELSTATISTIK_BELEGART] = "Rahmenreservierung"; zeile[REPORT_ARTIKELSTATISTIK_BELEGNUMMER] = reportRahmenreservierungDto.getAuftragCNr(); zeile[REPORT_ARTIKELSTATISTIK_FIRMA] = reportRahmenreservierungDto.getCKundenname(); zeile[REPORT_ARTIKELSTATISTIK_SORTIERDATUM] = reportRahmenreservierungDto .getTUebersteuerterLiefertermin(); zeile[REPORT_ARTIKELSTATISTIK_LIEFERTERMIN] = reportRahmenreservierungDto .getTUebersteuerterLiefertermin(); zeile[REPORT_ARTIKELSTATISTIK_BELEGDATUM] = reportRahmenreservierungDto .getTUebersteuerterLiefertermin(); zeile[REPORT_ARTIKELSTATISTIK_BUCHUNGSZEIT] = reportRahmenreservierungDto .getTUebersteuerterLiefertermin(); zeile[REPORT_ARTIKELSTATISTIK_MENGE] = reportRahmenreservierungDto.getNOffeneMenge().negate(); al.add(zeile); } RahmenbestelltReportDto[] rahmenbestelltDtos = getReportRahmenbestelltDto(artikelIId, theClientDto); for (int i = 0; i < rahmenbestelltDtos.length; i++) { RahmenbestelltReportDto dto = rahmenbestelltDtos[i]; Object[] zeile = new Object[REPORT_ARTIKELSTATISTIK_ANZAHL_SPALTEN]; zeile[REPORT_ARTIKELSTATISTIK_BEWEGUNGSVORSCHAU] = new Boolean(true); zeile[REPORT_ARTIKELSTATISTIK_BELEGART] = "Rahmenbestellt"; zeile[REPORT_ARTIKELSTATISTIK_BELEGNUMMER] = dto.getBestellnummer(); zeile[REPORT_ARTIKELSTATISTIK_FIRMA] = dto.getLieferant(); zeile[REPORT_ARTIKELSTATISTIK_LIEFERTERMIN] = dto.getTLiefertermin(); zeile[REPORT_ARTIKELSTATISTIK_BELEGDATUM] = dto.getTLiefertermin(); zeile[REPORT_ARTIKELSTATISTIK_BUCHUNGSZEIT] = dto.getTLiefertermin(); zeile[REPORT_ARTIKELSTATISTIK_SORTIERDATUM] = dto.getTLiefertermin(); zeile[REPORT_ARTIKELSTATISTIK_MENGE] = dto.getOffenmenge(); // Nettoeinzelpreis zeile[REPORT_ARTIKELSTATISTIK_PREIS] = dto.getPreis(); al.add(zeile); } } Timestamp tHeute = new Timestamp(System.currentTimeMillis()); Timestamp tMorgen = new Timestamp(System.currentTimeMillis() + (24 * 3600000)); for (int i = 0; i < al.size(); i++) { // Bei Bewegungsvorschau-Daten kann der Liefertermin fruehestens // morgen sein Object[] zeile = (Object[]) al.get(i); if (((Boolean) zeile[REPORT_ARTIKELSTATISTIK_BEWEGUNGSVORSCHAU]) == true) { Timestamp t = (Timestamp) zeile[REPORT_ARTIKELSTATISTIK_SORTIERDATUM]; if (t.before(tHeute)) { zeile[REPORT_ARTIKELSTATISTIK_SORTIERDATUM] = tMorgen; al.set(i, zeile); } } } // PJ17836 immer nach diesem Sortierdatum sortieren for (int i = 0; i < al.size() - 1; i = i + 1) { for (int j = al.size() - 1; j > i; j = j - 1) { Object[] erstes = (Object[]) al.get(j - 1); Object[] zweites = (Object[]) al.get(j); if (((java.sql.Timestamp) erstes[REPORT_ARTIKELSTATISTIK_SORTIERDATUM]) .before(((java.sql.Timestamp) zweites[REPORT_ARTIKELSTATISTIK_SORTIERDATUM]))) { Object[] temp = erstes; al.set(j - 1, zweites); al.set(j, temp); } } } index = -1; sAktuellerReport = ArtikelReportFac.REPORT_ARTIKELSTATISTIK; Object[][] returnArray = new Object[al.size()][16]; data = (Object[][]) al.toArray(returnArray); initJRDS(parameter, ArtikelFac.REPORT_MODUL, ArtikelReportFac.REPORT_ARTIKELSTATISTIK, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); return getReportPrint(); } }
From source file:com.lp.server.artikel.ejbfac.ArtikelReportFacBean.java
License:Open Source License
private RahmenbestelltReportDto[] getReportRahmenbestelltDto(Integer artikelIId, TheClientDto theClientDto) throws RemoteException { Session session;//from w w w. j ava 2s.c o m SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); Criteria crit = session.createCriteria(FLRBestellpositionReport.class); Criteria critBestellung = crit.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRBESTELLUNG); Criteria critArtikel = crit.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRARTIKEL); // nur diesen Artikel critArtikel.add(Restrictions.eq("i_id", artikelIId)); // Filter nach Mandant critBestellung.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_MANDANT_C_NR, theClientDto.getMandant())); // keine stornierten oder erledigten Bestellungen. Collection<String> cStati = new LinkedList<String>(); cStati.add(BestellungFac.BESTELLSTATUS_STORNIERT); cStati.add(BestellungFac.BESTELLSTATUS_ERLEDIGT); critBestellung .add(Restrictions.not(Restrictions.in(BestellungFac.FLR_BESTELLUNG_BESTELLUNGSTATUS_C_NR, cStati))); // Nur Rahmenbestellungen critBestellung.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_BESTELLUNGART_C_NR, BestellungFac.BESTELLUNGART_RAHMENBESTELLUNG_C_NR)); // Query ausfuehren List<?> list = crit.list(); Iterator<?> resultListIterator = list.iterator(); int row = 0; RahmenbestelltReportDto[] dtos = new RahmenbestelltReportDto[list.size()]; while (resultListIterator.hasNext()) { FLRBestellpositionReport besPos = (FLRBestellpositionReport) resultListIterator.next(); RahmenbestelltReportDto dto = new RahmenbestelltReportDto(); dto.setBestellnummer(besPos.getFlrbestellung().getC_nr()); dto.setLieferant( besPos.getFlrbestellung().getFlrlieferant().getFlrpartner().getC_name1nachnamefirmazeile1()); dto.setProjekt(besPos.getFlrbestellung().getC_bezprojektbezeichnung()); if (besPos.getT_uebersteuerterliefertermin() != null) { dto.setTLiefertermin(besPos.getT_uebersteuerterliefertermin()); } else { if (besPos.getFlrbestellung().getT_liefertermin() != null) { dto.setTLiefertermin(new Timestamp(besPos.getFlrbestellung().getT_liefertermin().getTime())); } } // Rahmenmenge ist die Menge der Rahmenposition dto.setRahmenmenge(besPos.getN_menge()); BigDecimal bdOffen = besPos.getN_offenemenge(); dto.setOffenmenge(bdOffen); // Nettoeinzelpreis dto.setPreis(besPos.getN_nettogesamtpreis()); BestellpositionDto bestellpositionDto = getBestellpositionFac() .bestellpositionFindByPrimaryKey(besPos.getI_id()); dto.setAbNummer(bestellpositionDto.getCABNummer()); dto.settAbTermin(bestellpositionDto.getTAuftragsbestaetigungstermin()); dto.setAbKommentar(bestellpositionDto.getCABKommentar()); dtos[row] = dto; row++; } session.close(); return dtos; }
From source file:com.lp.server.artikel.ejbfac.ArtikelReportFacBean.java
License:Open Source License
/** * Diese Methode liefert eine Liste von allen Auftraegen zu einem bestimmten * Artikel, die nach den eingegebenen Kriterien des Benutzers * zusammengestellt wird. <br>/*from w ww . java 2 s . c om*/ * Achtung: Hibernate verwendet lazy initialization, d.h. der Zugriff auf * Collections muss innerhalb der Session erfolgen. * * @param kritDtoI * die Kriterien des Benutzers * @param theClientDto * der aktuelle Benutzer * @return ReportRahmenreservierungDto[] die Liste der Auftraege * @throws EJBExceptionLP * Ausnahme */ public ReportRahmenreservierungDto[] getReportRahmenreservierung(ReportAnfragestatistikKriterienDto kritDtoI, TheClientDto theClientDto) throws EJBExceptionLP { ReportRahmenreservierungDto[] aResult = null; SessionFactory factory = FLRSessionFactory.getFactory(); Session session = null; try { session = factory.openSession(); // Hiberante Criteria fuer alle Tabellen ausgehend von meiner // Haupttabelle anlegen, // nach denen ich filtern und sortieren kann Criteria critAuftragposition = session.createCriteria(FLRAuftragpositionReport.class); // flrauftragpositionreport > flrauftrag Criteria critAuftrag = critAuftragposition .createCriteria(AuftragpositionFac.FLR_AUFTRAGPOSITION_FLRAUFTRAG); // Einschraenken auf Rahmenauftraege des Mandanten critAuftrag.add(Restrictions.eq(AuftragFac.FLR_AUFTRAG_MANDANT_C_NR, theClientDto.getMandant())); critAuftrag.add( Restrictions.eq(AuftragFac.FLR_AUFTRAG_AUFTRAGART_C_NR, AuftragServiceFac.AUFTRAGART_RAHMEN)); // keine stornierten oder erledigten Auftraege. Collection<String> cStati = new LinkedList<String>(); cStati.add(AuftragServiceFac.AUFTRAGSTATUS_STORNIERT); cStati.add(AuftragServiceFac.AUFTRAGSTATUS_ERLEDIGT); critAuftrag.add(Restrictions.not(Restrictions.in(AuftragFac.FLR_AUFTRAG_AUFTRAGSTATUS_C_NR, cStati))); // Einschraenkung auf den gewaehlten Artikel if (kritDtoI.getArtikelIId() != null) { critAuftragposition.add(Restrictions.eq(AuftragpositionFac.FLR_AUFTRAGPOSITION_ARTIKEL_I_ID, kritDtoI.getArtikelIId())); } /* * // die offene Menge muss != null > 0 sein * critAuftragposition.add( * Restrictions.isNotNull(AuftragpositionFac. * FLR_AUFTRAGPOSITION_N_MENGE)); * critAuftragposition.add(Restrictions.gt(AuftragpositionFac. * FLR_AUFTRAGPOSITION_N_OFFENEMENGE, new BigDecimal(0))); */ // Einschraenkung nach Rahmentermin von - bis if (kritDtoI.getDVon() != null) { critAuftragposition.add(Restrictions.ge( AuftragpositionFac.FLR_AUFTRAGPOSITION_T_UEBERSTEUERTERLIEFERTERMIN, kritDtoI.getDVon())); } if (kritDtoI.getDBis() != null) { critAuftragposition.add(Restrictions.le( AuftragpositionFac.FLR_AUFTRAGPOSITION_T_UEBERSTEUERTERLIEFERTERMIN, kritDtoI.getDBis())); } // es wird nach Belegnummer und Artikel sortiert critAuftrag.addOrder(Order.asc(AuftragFac.FLR_AUFTRAG_C_NR)); List<?> list = critAuftrag.list(); aResult = new ReportRahmenreservierungDto[list.size()]; Iterator<?> it = list.iterator(); int iIndex = 0; while (it.hasNext()) { FLRAuftragpositionReport flrauftragposition = (FLRAuftragpositionReport) it.next(); FLRAuftragReport flrauftrag = flrauftragposition.getFlrauftrag(); FLRPartner flrpartner = flrauftrag.getFlrkunde().getFlrpartner(); ReportRahmenreservierungDto reportDto = new ReportRahmenreservierungDto(); reportDto.setAuftragCNr(flrauftrag.getC_nr()); reportDto.setAuftragIId(flrauftrag.getI_id()); reportDto.setArtikelIId(flrauftragposition.getArtikel_i_id()); reportDto.setCBez(flrauftrag.getC_bez()); reportDto.setCKundenname(flrpartner.getC_name1nachnamefirmazeile1()); reportDto.setTUebersteuerterLiefertermin( new Timestamp(flrauftragposition.getT_uebersteuerterliefertermin().getTime())); reportDto.setNMenge(flrauftragposition.getN_menge()); // offene (rahmenmenge-abgerufenemenge) reportDto.setNOffeneMenge(flrauftragposition.getN_offenerahmenmenge()); // geliefert if (flrauftragposition.getN_offenerahmenmenge() != null) { reportDto.setNGelieferteMenge( flrauftragposition.getN_menge().subtract(flrauftragposition.getN_offenerahmenmenge())); } else { reportDto.setNGelieferteMenge(flrauftragposition.getN_menge()); } aResult[iIndex] = reportDto; iIndex++; } } finally { try { session.close(); } catch (HibernateException he) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_HIBERNATE, he); } } return aResult; }
From source file:com.lp.server.artikel.ejbfac.FehlmengeFacBean.java
License:Open Source License
/** * Fehlmengen komplett neu erzeugen// w w w. j a va 2 s . c om * * @param theClientDto der aktuelle Benutzer * @throws EJBExceptionLP */ @TransactionAttribute(TransactionAttributeType.NEVER) public void pruefeFehlmengen(TheClientDto theClientDto) throws EJBExceptionLP { Session session = null; try { session = FLRSessionFactory.getFactory().openSession(); String hqlDelete = "delete FROM FLRFehlmenge"; session.createQuery(hqlDelete).executeUpdate(); session.close(); session = FLRSessionFactory.getFactory().openSession(); Criteria cLosmat = session.createCriteria(FLRLossollmaterial.class); Criteria cLos = cLosmat.createCriteria(FertigungFac.FLR_LOSSOLLMATERIAL_FLRLOS); // Filter nach Status Collection<String> cStati = new LinkedList<String>(); cStati.add(FertigungFac.STATUS_AUSGEGEBEN); cStati.add(FertigungFac.STATUS_GESTOPPT); cStati.add(FertigungFac.STATUS_IN_PRODUKTION); cStati.add(FertigungFac.STATUS_TEILERLEDIGT); cLos.add(Restrictions.in(FertigungFac.FLR_LOS_STATUS_C_NR, cStati)); // Query ausfuehren List<?> listLosmat = cLosmat.list(); for (Iterator<?> iter = listLosmat.iterator(); iter.hasNext();) { FLRLossollmaterial item = (FLRLossollmaterial) iter.next(); BigDecimal bdAusgegeben = getFertigungFac().getAusgegebeneMenge(item.getI_id(), null, theClientDto); BigDecimal bdFehlmenge = item.getN_menge().subtract(bdAusgegeben.abs()); // gibt es ein Fehlmenge? if (bdFehlmenge.compareTo(new BigDecimal(0)) > 0) { // Eintrag suchen ArtikelfehlmengeDto fmDto = new ArtikelfehlmengeDto(); fmDto.setArtikelIId(item.getFlrartikel().getI_id()); fmDto.setCBelegartnr(LocaleFac.BELEGART_LOS); fmDto.setIBelegartpositionid(item.getI_id()); fmDto.setNMenge(bdFehlmenge); fmDto.setTLiefertermin(new java.sql.Date(item.getFlrlos().getT_produktionsbeginn().getTime())); // PJ17994 fmDto.setTLiefertermin(Helper.addiereTageZuDatum( new java.sql.Date(item.getFlrlos().getT_produktionsbeginn().getTime()), item.getI_beginnterminoffset())); context.getBusinessObject(FehlmengeFac.class).createArtikelfehlmenge(fmDto); myLogger.warn(theClientDto.getIDUser(), "Fehlmenge nachgetragen: " + fmDto); } else { BigDecimal fehlmenge = item.getN_menge().abs().subtract(bdAusgegeben.abs()); if (fehlmenge.doubleValue() > 0) { ArtikelfehlmengeDto fmDto = new ArtikelfehlmengeDto(); fmDto.setArtikelIId(item.getFlrartikel().getI_id()); fmDto.setCBelegartnr(LocaleFac.BELEGART_LOS); fmDto.setIBelegartpositionid(item.getI_id()); fmDto.setNMenge(item.getN_menge().subtract(bdAusgegeben)); // PJ17994 fmDto.setTLiefertermin(Helper.addiereTageZuDatum( new java.sql.Date(item.getFlrlos().getT_produktionsende().getTime()), item.getI_beginnterminoffset())); context.getBusinessObject(FehlmengeFac.class).createArtikelfehlmenge(fmDto); myLogger.warn(theClientDto.getIDUser(), "Fehlmenge nachgetragen: " + fmDto); } } } } catch (RemoteException ex) { throwEJBExceptionLPRespectOld(ex); } finally { if (session != null) { session.close(); } } }
From source file:com.lp.server.artikel.ejbfac.InventurFacBean.java
License:Open Source License
@TransactionAttribute(TransactionAttributeType.NEVER) public void inventurpreiseAufEkPreisSetzen(Integer inventurIId, TheClientDto theClientDto) { InventurDto inventurDto = inventurFindByPrimaryKey(inventurIId, theClientDto); Session session = FLRSessionFactory.getFactory().openSession(); org.hibernate.Criteria crit = session.createCriteria(FLRInventurstand.class); crit.add(Restrictions.eq("inventur_i_id", inventurIId)); List<?> results = crit.list(); Iterator<?> resultListIteratorInventur = results.iterator(); int row = 0;/*from w ww . java 2 s . co m*/ while (resultListIteratorInventur.hasNext()) { FLRInventurstand flrInventurstand = (FLRInventurstand) resultListIteratorInventur.next(); row++; System.out.println(row + " von " + results.size()); java.math.BigDecimal inventurpeis = new BigDecimal(0); Session sessionZugang = FLRSessionFactory.getFactory().openSession(); org.hibernate.Criteria critZugang = sessionZugang.createCriteria(FLRLagerbewegung.class); critZugang.add(Restrictions.eq(LagerFac.FLR_LAGERBEWEGUNG_ARTIKEL_I_ID, flrInventurstand.getFlrartikel().getI_id())); critZugang.add(Restrictions.eq(LagerFac.FLR_LAGERBEWEGUNG_B_ABGANG, Helper.boolean2Short(false))); critZugang.add(Restrictions.eq(LagerFac.FLR_LAGERBEWEGUNG_B_HISTORIE, Helper.boolean2Short(false))); critZugang.add(Restrictions.gt(LagerFac.FLR_LAGERBEWEGUNG_N_MENGE, new BigDecimal(0))); critZugang.add( Restrictions.gt(LagerFac.FLR_LAGERBEWEGUNG_T_BUCHUNGSZEIT, inventurDto.getTInventurdatum())); String[] arten = new String[2]; arten[0] = LocaleFac.BELEGART_LOSABLIEFERUNG; arten[1] = LocaleFac.BELEGART_BESTELLUNG; critZugang.add(Restrictions.in(LagerFac.FLR_LAGERBEWEGUNG_C_BELEGARTNR, arten)); critZugang.addOrder(Order.asc(LagerFac.FLR_LAGERBEWEGUNG_T_BUCHUNGSZEIT)); critZugang.setMaxResults(1); List<?> resultList = critZugang.list(); if (resultList.size() > 0) { Iterator<?> resultListIterator = resultList.iterator(); FLRLagerbewegung lagerbewegung = (FLRLagerbewegung) resultListIterator.next(); inventurpeis = lagerbewegung.getN_einstandspreis(); } else { // EK-Preis ArtikellieferantDto alDto; try { alDto = getArtikelFac().getArtikelEinkaufspreis(flrInventurstand.getFlrartikel().getI_id(), new BigDecimal(1), theClientDto.getSMandantenwaehrung(), theClientDto); if (alDto != null && alDto.getNNettopreis() != null && alDto.getNNettopreis().doubleValue() != 0) { inventurpeis = alDto.getNNettopreis(); } else { continue; } } catch (RemoteException e) { throwEJBExceptionLPRespectOld(e); } } sessionZugang.close(); // Updaten InventurstandDto inventurstandDto = inventurstandFindByPrimaryKey(flrInventurstand.getI_id()); inventurstandDto.setNInventurpreis(inventurpeis); try { getInventurFac().updateInventurstand(inventurstandDto); } catch (RemoteException e) { throwEJBExceptionLPRespectOld(e); } } InventurDto dto = inventurFindByPrimaryKey(inventurIId, theClientDto); dto.setBAbwertungdurchgefuehrt(Helper.boolean2Short(false)); dto.setTAbwertungdurchgefuehrt(null); getInventurFac().updateInventur(dto, theClientDto); }
From source file:com.lp.server.artikel.ejbfac.InventurFacBean.java
License:Open Source License
@TransactionAttribute(TransactionAttributeType.NEVER) public void inventurDurchfuehren(Integer inventurIId, boolean bNichtInventierteArtikelAufNullSetzen, TheClientDto theClientDto) throws EJBExceptionLP { InventurDto inventurDto = inventurFindByPrimaryKey(inventurIId, theClientDto); myLogger.logKritisch("Inventur Start:" + new Timestamp(System.currentTimeMillis())); // Inventurdatum auf morgen 00:00 setzen Calendar c = Calendar.getInstance(); c.setTimeInMillis(inventurDto.getTInventurdatum().getTime()); c.set(Calendar.DAY_OF_YEAR, c.get(Calendar.DAY_OF_YEAR) + 1); Timestamp ts = new Timestamp(c.getTimeInMillis()); inventurDto.setTInventurdatum(Helper.cutTimestamp(ts)); if (Helper.short2boolean(inventurDto.getBInventurdurchgefuehrt()) == true) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_INVENTUR_BEREITS_DURCHGEFUEHRT, new Exception("Helper.short2boolean(inventurDto.getBInventurdurchgefuehrt())==true")); }//from www .j a v a 2s. c o m try { // Wenn nur ein Lager angegeben, dann Inventur auch nur fuer ein // Lager durchfuehren LagerDto[] lagerDtos = null; if (inventurDto.getLagerIId() == null) { lagerDtos = getLagerFac().lagerFindByMandantCNr(theClientDto.getMandant()); } else { lagerDtos = new LagerDto[1]; lagerDtos[0] = getLagerFac().lagerFindByPrimaryKey(inventurDto.getLagerIId()); } SessionFactory factory = FLRSessionFactory.getFactory(); Session session = factory.openSession(); Criteria artikelQuery = session.createCriteria(FLRArtikel.class); artikelQuery.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant())) .add(Restrictions.not(Restrictions.in(ArtikelFac.FLR_ARTIKELLISTE_ARTIKELART_C_NR, new String[] { ArtikelFac.ARTIKELART_HANDARTIKEL }))); artikelQuery.addOrder(Order.asc("i_id")); List<?> resultList = artikelQuery.list(); Iterator<?> resultListIterator = resultList.iterator(); int ii = 0; while (resultListIterator.hasNext()) { FLRArtikel artikel = (FLRArtikel) resultListIterator.next(); ii += 1; // myLogger.logKritisch(artikel.getC_nr()+": "+new // Integer(ii).toString()); // long t=System.currentTimeMillis(); for (int i = 0; i < lagerDtos.length; i++) { long l = System.currentTimeMillis(); // wenn bNichtInventierteArtikelAufNullSetzen==true, dann // artikel mit jetzt auf lagerstand null setzen if (bNichtInventierteArtikelAufNullSetzen == true && Helper.short2boolean(artikel.getB_lagerbewirtschaftet()) == true) { if (Helper.short2boolean(artikel.getB_chargennrtragend()) == false && Helper.short2boolean(artikel.getB_seriennrtragend()) == false) { InventurlisteDto[] ilDtos = inventurlisteFindByInventurIIdLagerIIdArtikelIId( inventurIId, lagerDtos[i].getIId(), artikel.getI_id(), theClientDto); if (ilDtos.length < 1) { InventurlisteDto inventurlisteDto = new InventurlisteDto(); inventurlisteDto.setArtikelIId(artikel.getI_id()); inventurlisteDto.setLagerIId(lagerDtos[i].getIId()); inventurlisteDto.setInventurIId(inventurIId); inventurlisteDto.setNInventurmenge(new BigDecimal(0)); getInventurFac().createInventurliste(inventurlisteDto, false, theClientDto); } } } InventurstandDto inventurstandDtoVorhanden = inventurstandfindByInventurIIdArtikelIIdLagerIIdOhneExc( inventurIId, lagerDtos[i].getIId(), artikel.getI_id(), theClientDto); if (inventurstandDtoVorhanden == null) { java.math.BigDecimal gestpreis = getLagerFac().getGestehungspreisZumZeitpunkt( artikel.getI_id(), lagerDtos[i].getIId(), inventurDto.getTInventurdatum(), theClientDto); if (gestpreis == null) { gestpreis = new BigDecimal(0); } InventurstandDto inventurstandDto = new InventurstandDto(); inventurstandDto.setArtikelIId(artikel.getI_id()); inventurstandDto.setInventurIId(inventurIId); inventurstandDto.setLagerIId(lagerDtos[i].getIId()); inventurstandDto .setNInventurmenge(getInventurstand(artikel.getI_id(), lagerDtos[i].getIId(), inventurDto.getIId(), inventurDto.getTInventurdatum(), theClientDto)); inventurstandDto.setNInventurpreis(gestpreis); getInventurFac().createInventurstand(inventurstandDto, theClientDto); } } // myLogger.logKritisch("*"+ new // Long(System.currentTimeMillis()-t).toString()); // t=System.currentTimeMillis(); } session.close(); } catch (RemoteException ex) { throwEJBExceptionLPRespectOld(ex); } InventurDto inventur = inventurFindByPrimaryKey(inventurIId, theClientDto); inventur.setBInventurdurchgefuehrt(Helper.boolean2Short(true)); inventur.setTInventurdurchgefuehrt(new Timestamp(System.currentTimeMillis())); inventur.setPersonalIIdInventurdurchgefuehrt(theClientDto.getIDPersonal()); getInventurFac().updateInventur(inventur, theClientDto); myLogger.logKritisch("Inventur Ende:" + new Timestamp(System.currentTimeMillis())); }
From source file:com.lp.server.artikel.ejbfac.LagerFacBean.java
License:Open Source License
@TransactionAttribute(TransactionAttributeType.NEVER) public String pruefeQuickLagerstandGegenEchtenLagerstand(Integer artikelIIdInput, TheClientDto theClientDto) { LagerDto[] lagerDtos = lagerFindByMandantCNr(theClientDto.getMandant()); String[] handartikel = new String[1]; handartikel[0] = ArtikelFac.ARTIKELART_HANDARTIKEL; Session session = FLRSessionFactory.getFactory().openSession(); org.hibernate.Criteria crit = session.createCriteria(FLRArtikel.class); crit.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant())); // crit.add(Restrictions.eq("i_id", 6901)); crit.add(Restrictions.not(Restrictions.in(ArtikelFac.FLR_ARTIKEL_ARTIKELART_C_NR, handartikel))); crit.add(Expression.eq(ArtikelFac.FLR_ARTIKEL_B_LAGERBEWIRTSCHAFTET, new Short((short) 1))); if (artikelIIdInput != null) { crit.add(Restrictions.eq("i_id", artikelIIdInput)); }/* w ww .j a v a 2 s. com*/ crit.addOrder(Order.asc("c_nr")); List<?> resultList = crit.list(); int zaehler = 1; byte[] CRLFAscii = { 13, 10 }; String rueckgabe = "ZAEHLER;ARTIKEL_I_ID;ARTIKEL_C_NR;LAGER;QUICK;LAGERSTAND" + new String(CRLFAscii); String sql = ""; Iterator<?> resultListIterator = resultList.iterator(); while (resultListIterator.hasNext()) { FLRArtikel flrArtikel = (FLRArtikel) resultListIterator.next(); for (int i = 0; i < lagerDtos.length; i++) { LagerDto lagerDto = lagerDtos[i]; String ausgabe = flrArtikel.getI_id() + ";" + flrArtikel.getC_nr() + ";"; ausgabe += lagerDto.getCNr() + ";"; BigDecimal quicklagerstand = new BigDecimal(0); Artikellager artikellager = em.find(Artikellager.class, new ArtikellagerPK(flrArtikel.getI_id(), lagerDto.getIId())); if (artikellager == null) { ausgabe += "0;"; } else { quicklagerstand = artikellager.getNLagerstand(); } ausgabe += quicklagerstand.toString() + ";"; BigDecimal echterlagerstand = getLagerstandZumZeitpunkt(flrArtikel.getI_id(), lagerDto.getIId(), new java.sql.Timestamp(System.currentTimeMillis() + 3600000 * 24), theClientDto); ausgabe += echterlagerstand.toString() + ";"; if (quicklagerstand.doubleValue() != echterlagerstand.doubleValue()) { rueckgabe += zaehler + ";" + ausgabe + new String(CRLFAscii); System.out.println(zaehler + ";" + ausgabe); String update = "UPDATE WW_ARTIKELLAGER SET N_LAGERSTAND=" + echterlagerstand.doubleValue() + " WHERE ARTIKEL_I_ID=" + flrArtikel.getI_id() + " AND LAGER_I_ID=" + lagerDto.getIId(); System.out.println(update + ";" + new String(CRLFAscii)); sql += update + ";" + new String(CRLFAscii); zaehler++; } } } session.close(); return rueckgabe + sql; }
From source file:com.lp.server.artikel.ejbfac.LagerFacBean.java
License:Open Source License
public void pruefeQuickLagerstandGegenEchtenLagerstandUndFuehreAus(Integer artikelIIdInput, TheClientDto theClientDto) {//from w w w.java 2 s. c o m LagerDto[] lagerDtos = lagerFindByMandantCNr(theClientDto.getMandant()); String[] handartikel = new String[1]; handartikel[0] = ArtikelFac.ARTIKELART_HANDARTIKEL; Session session = FLRSessionFactory.getFactory().openSession(); org.hibernate.Criteria crit = session.createCriteria(FLRArtikel.class); crit.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant())); // crit.add(Restrictions.eq("i_id", 6901)); crit.add(Restrictions.not(Restrictions.in(ArtikelFac.FLR_ARTIKEL_ARTIKELART_C_NR, handartikel))); crit.add(Expression.eq(ArtikelFac.FLR_ARTIKEL_B_LAGERBEWIRTSCHAFTET, new Short((short) 1))); if (artikelIIdInput != null) { crit.add(Restrictions.eq("i_id", artikelIIdInput)); } crit.addOrder(Order.asc("c_nr")); List<?> resultList = crit.list(); int zaehler = 1; byte[] CRLFAscii = { 13, 10 }; Iterator<?> resultListIterator = resultList.iterator(); while (resultListIterator.hasNext()) { FLRArtikel flrArtikel = (FLRArtikel) resultListIterator.next(); for (int i = 0; i < lagerDtos.length; i++) { LagerDto lagerDto = lagerDtos[i]; String ausgabe = flrArtikel.getI_id() + ";" + flrArtikel.getC_nr() + ";"; ausgabe += lagerDto.getCNr() + ";"; BigDecimal quicklagerstand = new BigDecimal(0); Artikellager artikellager = em.find(Artikellager.class, new ArtikellagerPK(flrArtikel.getI_id(), lagerDto.getIId())); if (artikellager == null) { ausgabe += "0;"; } else { quicklagerstand = artikellager.getNLagerstand(); } ausgabe += quicklagerstand.toString() + ";"; BigDecimal echterlagerstand = getLagerstandZumZeitpunkt(flrArtikel.getI_id(), lagerDto.getIId(), new java.sql.Timestamp(System.currentTimeMillis() + 3600000 * 24), theClientDto); ausgabe += echterlagerstand.toString() + ";"; if (quicklagerstand.doubleValue() != echterlagerstand.doubleValue()) { // System.out.println(zaehler + ";" + ausgabe); String update = "UPDATE WW_ARTIKELLAGER SET N_LAGERSTAND=" + echterlagerstand.doubleValue() + " WHERE ARTIKEL_I_ID=" + flrArtikel.getI_id() + " AND LAGER_I_ID=" + lagerDto.getIId(); System.out.println(update + ";--BEREITS_AUSGEFUEHRT" + new String(CRLFAscii)); artikellager.setNLagerstand(echterlagerstand); em.flush(); zaehler++; } } } session.close(); }
From source file:com.lp.server.artikel.ejbfac.LagerFacBean.java
License:Open Source License
@TransactionAttribute(TransactionAttributeType.NEVER) public String pruefeVerbrauchteMenge(TheClientDto theClientDto) { System.out.println("ZAEHLER;I_ID_BUCHUNG;ARTIKEL_I_ID;ARTIKEL_C_NR;POSITIONSMENGE;VERBRAUCHTEMENGE"); byte[] CRLFAscii = { 13, 10 }; String rueckgabe = "ZAEHLER;I_ID_BUCHUNG;ARTIKEL_I_ID;ARTIKEL_C_NR;POSITIONSMENGE;VERBRAUCHTEMENGE" + new String(CRLFAscii); String[] handartikel = new String[1]; handartikel[0] = ArtikelFac.ARTIKELART_HANDARTIKEL; Session sessionArtikel = FLRSessionFactory.getFactory().openSession(); org.hibernate.Criteria critArtikel = sessionArtikel.createCriteria(FLRArtikel.class); critArtikel.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant())); // crit.add(Restrictions.eq("i_id", 13995)); critArtikel.add(Restrictions.not(Restrictions.in(ArtikelFac.FLR_ARTIKEL_ARTIKELART_C_NR, handartikel))); critArtikel.add(Expression.eq(ArtikelFac.FLR_ARTIKEL_B_LAGERBEWIRTSCHAFTET, new Short((short) 1))); critArtikel.addOrder(Order.asc("c_nr")); List<?> resultListArtikel = critArtikel.list(); Iterator<?> resultListIteratorArtikel = resultListArtikel.iterator(); int row = 0;//from w w w. j a v a 2 s .com while (resultListIteratorArtikel.hasNext()) { FLRArtikel flrArtikel = (FLRArtikel) resultListIteratorArtikel.next(); SessionFactory factory = FLRSessionFactory.getFactory(); Session session = null; session = factory.openSession(); org.hibernate.Criteria crit = session.createCriteria(FLRLagerbewegung.class) .createAlias(LagerFac.FLR_LAGERPLAETZE_FLRLAGER, "l"); crit.add(Expression.not(Expression.in("l.c_nr", new String[] { LagerFac.LAGER_KEINLAGER }))); crit.add(Expression.eq(LagerFac.FLR_LAGERBEWEGUNG_B_ABGANG, Helper.boolean2Short(true))); crit.add(Expression.eq(LagerFac.FLR_LAGERBEWEGUNG_ARTIKEL_I_ID, flrArtikel.getI_id())); crit.addOrder(Order.asc(LagerFac.FLR_LAGERBEWEGUNG_I_ID_BUCHUNG)) .addOrder(Order.desc(LagerFac.FLR_LAGERBEWEGUNG_T_BUCHUNGSZEIT)); List<?> resultList = crit.list(); Iterator<?> resultListIterator = resultList.iterator(); int lastColumn = -1; while (resultListIterator.hasNext()) { FLRLagerbewegung lagerbewegung = (FLRLagerbewegung) resultListIterator.next(); if (lastColumn == lagerbewegung.getI_id_buchung().intValue()) { } else { BigDecimal verbrauchteMenge = new BigDecimal(0); Query query = em.createNamedQuery("LagerabgangursprungfindByILagerbewegungid"); query.setParameter(1, lagerbewegung.getI_id_buchung()); Collection<?> cl = query.getResultList(); // if (cl.isEmpty()) { // verbrauchteMenge = new BigDecimal(0); // } // else { LagerabgangursprungDto[] dtos = assembleLagerabgangursprungDtos(cl); for (int i = 0; i < dtos.length; i++) { verbrauchteMenge = verbrauchteMenge.add(dtos[i].getNVerbrauchtemenge()); } if (lagerbewegung.getN_menge().compareTo(verbrauchteMenge) != 0) { row++; String zeile = row + ";" + lagerbewegung.getI_id_buchung() + ";" + lagerbewegung.getArtikel_i_id() + ";" + lagerbewegung.getFlrartikel().getC_nr() + ";" + lagerbewegung.getN_menge() + ";" + verbrauchteMenge; System.out.println(zeile); rueckgabe += zeile + new String(CRLFAscii); } lastColumn = lagerbewegung.getI_id_buchung().intValue(); } } session.close(); } sessionArtikel.close(); return rueckgabe; }
From source file:com.lp.server.artikel.ejbfac.LagerFacBean.java
License:Open Source License
public BigDecimal getAbgewertetenGestehungspreis(BigDecimal gestpreis, Integer artikelIId, Integer lagerIId, Timestamp tStichtag, int iMonate, double dProzent) { Session session = FLRSessionFactory.getFactory().openSession(); org.hibernate.Criteria crit = session.createCriteria(FLRLagerbewegung.class); crit.add(Restrictions.eq(LagerFac.FLR_LAGERBEWEGUNG_ARTIKEL_I_ID, artikelIId)); crit.add(Restrictions.eq(LagerFac.FLR_LAGERBEWEGUNG_B_HISTORIE, Helper.boolean2Short(false))); if (lagerIId != null) { crit.add(Restrictions.eq(LagerFac.FLR_LAGERBEWEGUNG_LAGER_I_ID, lagerIId)); }/*ww w .j a v a 2s .c o m*/ if (tStichtag != null) { crit.add(Restrictions.le(LagerFac.FLR_LAGERBEWEGUNG_T_BELEGDATUM, tStichtag)); } else { crit.add(Restrictions.lt(LagerFac.FLR_LAGERBEWEGUNG_T_BELEGDATUM, Helper.cutTimestamp(new Timestamp(System.currentTimeMillis() + 24 * 3600000)))); } // CK: Kundenwunsch am 2009-03-04: Handbuchungen und // Inventurbuchungen // sollen nicht beruecksichtigt werden String[] belegarten = new String[2]; belegarten[0] = LocaleFac.BELEGART_INVENTUR; belegarten[1] = LocaleFac.BELEGART_HAND; crit.add(Restrictions.not(Restrictions.in(LagerFac.FLR_LAGERBEWEGUNG_C_BELEGARTNR, belegarten))); // CK: Kundenwunsch am 2009-03-04: Es muessen sowohl // Zubuchungen, als auch Abbuchungen // beruecksichtigt werden // crit.add(Restrictions.eq(LagerFac.FLR_LAGERBEWEGUNG_B_ABGANG, Helper // .boolean2Short(false))); crit.addOrder(Order.desc(LagerFac.FLR_LAGERBEWEGUNG_T_BUCHUNGSZEIT)); List results = crit.list(); Iterator resultListIterator = results.iterator(); ArrayList<FLRLagerbewegung> alZugaenge = new ArrayList<FLRLagerbewegung>(); while (resultListIterator.hasNext()) { FLRLagerbewegung lagerbewegung = (FLRLagerbewegung) resultListIterator.next(); if (lagerbewegung.getN_menge().doubleValue() > 0) { // Datum des letzten Zugangs alZugaenge.add(lagerbewegung); } } if (alZugaenge.size() > 0) { // Lagerbewegungen nach Belegdatum sortieren for (int m = alZugaenge.size() - 1; m > 0; --m) { for (int n = 0; n < m; ++n) { FLRLagerbewegung o1 = (FLRLagerbewegung) alZugaenge.get(n); FLRLagerbewegung o2 = (FLRLagerbewegung) alZugaenge.get(n + 1); if (o1.getT_belegdatum().before(o2.getT_belegdatum())) { alZugaenge.set(n, o2); alZugaenge.set(n + 1, o1); } } } // nun zaehlt das juengste Belegdatum FLRLagerbewegung lagerbewegung = (FLRLagerbewegung) alZugaenge.get(0); java.util.Calendar cAbDemWirdAbgewertet = java.util.Calendar.getInstance(); if (tStichtag != null) { cAbDemWirdAbgewertet.setTimeInMillis(tStichtag.getTime()); } cAbDemWirdAbgewertet.set(java.util.Calendar.MONTH, cAbDemWirdAbgewertet.get(java.util.Calendar.MONTH) - iMonate); double dAbwertung = 0; while (dAbwertung < 100 && lagerbewegung.getT_buchungszeit().getTime() < cAbDemWirdAbgewertet.getTimeInMillis()) { dAbwertung += dProzent; cAbDemWirdAbgewertet.set(java.util.Calendar.MONTH, cAbDemWirdAbgewertet.get(java.util.Calendar.MONTH) - 1); } return Helper.rundeKaufmaennisch(gestpreis.multiply(new BigDecimal(1 - (dAbwertung / 100))), 4); } session.close(); return new BigDecimal(0); }