List of usage examples for org.hibernate.criterion Restrictions gt
public static SimpleExpression gt(String propertyName, Object value)
From source file:com.lp.server.artikel.ejbfac.InventurFacBean.java
License:Open Source License
@TransactionAttribute(TransactionAttributeType.NEVER) public void invturprotokollZumStichtagZuruecknehmen(Integer inventurIId, java.sql.Date tAbStichtag, TheClientDto theClientDto) {//w w w.j a v a 2 s. com InventurDto inventurDto = inventurFindByPrimaryKey(inventurIId, theClientDto); if (Helper.short2boolean(inventurDto.getBInventurdurchgefuehrt()) == false) { Session session = FLRSessionFactory.getFactory().openSession(); org.hibernate.Criteria crit = session.createCriteria(FLRInventurprotokoll.class); crit.add(Restrictions.gt("t_zeitpunkt", tAbStichtag)); crit.createAlias("flrinventurliste", "il").createAlias("flrinventur", "i"); crit.add(Restrictions.eq("i.i_id", inventurIId)); List<?> results = crit.list(); Iterator<?> resultListIteratorInventur = results.iterator(); int row = 0; while (resultListIteratorInventur.hasNext()) { FLRInventurprotokoll flrInventurprotokoll = (FLRInventurprotokoll) resultListIteratorInventur .next(); if (flrInventurprotokoll.getN_korrekturmenge().doubleValue() < 0) { try { getLagerFac().bucheAb(LocaleFac.BELEGART_INVENTUR, inventurIId, flrInventurprotokoll.getFlrinventurliste().getI_id(), flrInventurprotokoll.getFlrinventurliste().getFlrartikel().getI_id(), new BigDecimal(0), flrInventurprotokoll.getN_inventurpreis(), flrInventurprotokoll.getFlrinventurliste().getFlrlager().getI_id(), flrInventurprotokoll.getFlrinventurliste().getC_seriennrchargennr(), inventurDto.getTInventurdatum(), theClientDto); } catch (Throwable e) { // Auslassen continue; } } else if (flrInventurprotokoll.getN_korrekturmenge().doubleValue() > 0) { try { getLagerFac().bucheZu(LocaleFac.BELEGART_INVENTUR, inventurIId, flrInventurprotokoll.getFlrinventurliste().getI_id(), flrInventurprotokoll.getFlrinventurliste().getFlrartikel().getI_id(), new BigDecimal(0), flrInventurprotokoll.getN_inventurpreis(), flrInventurprotokoll.getFlrinventurliste().getFlrlager().getI_id(), flrInventurprotokoll.getFlrinventurliste().getC_seriennrchargennr(), inventurDto.getTInventurdatum(), theClientDto, null, true); } catch (RemoteException e) { // Auslassen continue; } } Integer inventurlisteIId = flrInventurprotokoll.getFlrinventurliste().getI_id(); getInventurFac().removeInventurprotokoll(flrInventurprotokoll.getI_id()); InventurlisteDto ilDto = new InventurlisteDto(); ilDto.setIId(inventurlisteIId); try { getInventurFac().removeInventurliste(ilDto, theClientDto); } catch (RemoteException e) { throwEJBExceptionLPRespectOld(e); } } } }
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;//w w w. j av a 2s.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.LagerFacBean.java
License:Open Source License
/** * Holt alle Lagerbewegungsdatensaetzte einer Belegart und einer * Belegartposition, ausser vollstaendig verbrauchten Lagerbewegungen. Wenn * eine Seriennummer angegeben wird, dann wird diese mitberuecksichtigt. * //w ww . j ava2 s . c o m * @param belegartCNr * Rechnung * @param belegartIId * 6785 * @param artikelIId * Id des Artikels * @param cSnrChnr * f54653 * @throws EJBExceptionLP * belegartCNr == null || belegartpositionIId == null * @return LagerbewegungDto[] */ public boolean pruefeObSnrChnrAufBelegGebuchtWurde(String belegartCNr, Integer belegartIId, Integer artikelIId, String cSnrChnr) { Session session = FLRSessionFactory.getFactory().openSession(); org.hibernate.Criteria crit = session.createCriteria(FLRLagerbewegung.class) .createAlias(LagerFac.FLR_LAGERBEWEGUNG_FLRARTIKEL, "a"); crit.add(Restrictions.eq("a.i_id", artikelIId)); crit.add(Restrictions.eq(LagerFac.FLR_LAGERBEWEGUNG_B_HISTORIE, Helper.boolean2Short(false))); crit.add(Restrictions.eq(LagerFac.FLR_LAGERBEWEGUNG_B_ABGANG, Helper.boolean2Short(false))); crit.add(Restrictions.eq(LagerFac.FLR_LAGERBEWEGUNG_C_SERIENNRCHARGENNR, cSnrChnr)); crit.add(Restrictions.gt(LagerFac.FLR_LAGERBEWEGUNG_N_MENGE, new BigDecimal(0))); List<?> resultList = crit.list(); if (resultList.size() > 0) { session.close(); return true; } else { session.close(); return false; } }
From source file:com.lp.server.artikel.ejbfac.LagerFacBean.java
License:Open Source License
/** * Gibt das Datum der Letzten Zugangsbuchung zurueck * // ww w.jav a 2 s. c o m * @param artikelIId * 4711 * @param bAbgang * Zu/Abgang * @throws EJBExceptionLP * artikelIId == null * @return java.sql.Timestamp Timestamp der Letzten Buchung */ public java.sql.Timestamp getDatumLetzterZugangsOderAbgangsbuchung(Integer artikelIId, boolean bAbgang) throws EJBExceptionLP { if (artikelIId == null) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FELD_DARF_NICHT_NULL_SEIN, new Exception("artikelIId == null")); } java.sql.Timestamp tsZeit = null; 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_ABGANG, Helper.boolean2Short(bAbgang))); crit.add(Restrictions.gt(LagerFac.FLR_LAGERBEWEGUNG_N_MENGE, new BigDecimal(0))); crit.addOrder(Order.desc(LagerFac.FLR_LAGERBEWEGUNG_T_BUCHUNGSZEIT)); crit.setMaxResults(1); List<?> resultList = crit.list(); if (resultList.size() > 0) { Iterator<?> resultListIterator = resultList.iterator(); FLRLagerbewegung lagerbewegung = (FLRLagerbewegung) resultListIterator.next(); tsZeit = new Timestamp(lagerbewegung.getT_buchungszeit().getTime()); } session.close(); return tsZeit; }
From source file:com.lp.server.artikel.ejbfac.LagerFacBean.java
License:Open Source License
public Integer getLetzteWEP_IID(Integer artikelIId) { if (artikelIId == null) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FELD_DARF_NICHT_NULL_SEIN, new Exception("artikelIId == null")); }//ww w.j a v a 2s . c om Integer wepIId = null; 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_C_BELEGARTNR, LocaleFac.BELEGART_BESTELLUNG)); crit.add(Restrictions.eq(LagerFac.FLR_LAGERBEWEGUNG_B_ABGANG, Helper.boolean2Short(false))); crit.add(Restrictions.eq(LagerFac.FLR_LAGERBEWEGUNG_B_HISTORIE, Helper.boolean2Short(false))); crit.add(Restrictions.gt(LagerFac.FLR_LAGERBEWEGUNG_N_MENGE, new BigDecimal(0))); crit.addOrder(Order.desc(LagerFac.FLR_LAGERBEWEGUNG_T_BUCHUNGSZEIT)); crit.setMaxResults(1); List<?> resultList = crit.list(); if (resultList.size() > 0) { Iterator<?> resultListIterator = resultList.iterator(); FLRLagerbewegung lagerbewegung = (FLRLagerbewegung) resultListIterator.next(); wepIId = lagerbewegung.getI_belegartpositionid(); } session.close(); return wepIId; }
From source file:com.lp.server.auftrag.ejbfac.AuftragFacBean.java
License:Open Source License
/** * Hier wird der Auftragsnettowert fuer eine Hibernate Liste von offenen * Auftraegen bestimmt (Status Offen oder Teilerledigt). <br> * Dabei werden alle Auftragswerte in Mandantenwaehrung beruecksichtigt. * /*from w w w . jav a2 s.c o m*/ * @param listFLRAuftragFuerUebersichtI * Liste von FLRAuftragFuerUebersicht Objekten * @param sessionI * die aktive Hibernate Session * @param theClientDto * der aktuelle Benutzer * @return BigDecimal der offene Auftragsnettowert * @throws Throwable * Ausnahme */ private BigDecimal berechneAuftragsnettowertOffen(List<?> listFLRAuftragFuerUebersichtI, Session sessionI, TheClientDto theClientDto) throws Throwable { BigDecimal nSummeAuftragsnettowert = new BigDecimal(0); if (listFLRAuftragFuerUebersichtI != null) { Iterator<?> it = listFLRAuftragFuerUebersichtI.iterator(); while (it.hasNext()) { BigDecimal nBeitragDiesesAuftrags = new BigDecimal(0); FLRAuftragFuerUebersicht flrauftrag = (FLRAuftragFuerUebersicht) it.next(); // wir befinden uns innerhalb einer Hibernate Session Criteria critAuftragposition = sessionI.createCriteria(FLRAuftragpositionFuerUebersicht.class); critAuftragposition.add( Restrictions.eq(AuftragpositionFac.FLR_AUFTRAGPOSITION_AUFTRAG_I_ID, flrauftrag.getI_id())); critAuftragposition .add(Restrictions.isNotNull(AuftragpositionFac.FLR_AUFTRAGPOSITION_N_OFFENEMENGE)); critAuftragposition.add( Restrictions.gt(AuftragpositionFac.FLR_AUFTRAGPOSITION_N_OFFENEMENGE, new BigDecimal(0))); List<?> listPositionen = critAuftragposition.list(); Iterator<?> it2 = listPositionen.iterator(); while (it2.hasNext()) { FLRAuftragpositionFuerUebersicht flrauftragposition = (FLRAuftragpositionFuerUebersicht) it2 .next(); BigDecimal bdBeitragDieserPosition = flrauftragposition .getN_nettogesamtpreisplusversteckteraufschlagminusrabatte() .multiply(flrauftragposition.getN_offenemenge()); nBeitragDiesesAuftrags = nBeitragDiesesAuftrags.add(bdBeitragDieserPosition); } // Umrechnen des Beitrags in Mandantenwaehrung Double ddWechselkursReziprok = flrauftrag.getF_wechselkursmandantwaehrungzuauftragswaehrung(); if (ddWechselkursReziprok != null && ddWechselkursReziprok.doubleValue() != 1) { ddWechselkursReziprok = new Double(1 / ddWechselkursReziprok.doubleValue()); nBeitragDiesesAuftrags = nBeitragDiesesAuftrags .multiply(new BigDecimal(ddWechselkursReziprok.doubleValue())); } nBeitragDiesesAuftrags = Helper.rundeKaufmaennisch(nBeitragDiesesAuftrags, 4); checkNumberFormat(nBeitragDiesesAuftrags); nSummeAuftragsnettowert = nSummeAuftragsnettowert.add(nBeitragDiesesAuftrags); } } return nSummeAuftragsnettowert; }
From source file:com.lp.server.bestellung.ejbfac.BestellvorschlagFacBean.java
License:Open Source License
public BestellungDto[] erstelleAbrufbestellungenAusBV(BestellvorschlagDto[] bestellvorschlagDto, TheClientDto theClientDto) throws EJBExceptionLP, RemoteException { Session session = FLRSessionFactory.getFactory().openSession(); try {// w w w . ja v a 2 s . c o m ArrayList<Integer> alUeberlieferteBestellungIId = new ArrayList<Integer>(); HashMap<Integer, Integer> hmAbrufeZuRahmen = new HashMap<Integer, Integer>(); for (int i = 0; i < bestellvorschlagDto.length; i++) { boolean bUebergeleitet = false; if (bestellvorschlagDto[i].getILieferantId() != null) { BigDecimal bdZuBestellendeMenge = bestellvorschlagDto[i].getNZubestellendeMenge(); Criteria besPos = session.createCriteria(FLRBestellposition.class); Criteria best = besPos.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRBESTELLUNG); Criteria artikel = besPos.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRARTIKEL); // Filter auf den Mandanten best.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_MANDANT_C_NR, theClientDto.getMandant())); // nur Rahmenbestellungen. best.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_BESTELLUNGART_C_NR, BestellungFac.BESTELLUNGART_RAHMENBESTELLUNG_C_NR)); // Einschraenkung nach Status Offen, Erledigt Collection<String> cStati = new LinkedList<String>(); cStati.add(BestellungFac.BESTELLSTATUS_TEILERLEDIGT); cStati.add(BestellungFac.BESTELLSTATUS_BESTAETIGT); cStati.add(BestellungFac.BESTELLSTATUS_OFFEN); best.add(Restrictions.in(BestellungFac.FLR_BESTELLUNG_BESTELLUNGSTATUS_C_NR, cStati)); best.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_LIEFERANT_I_ID_BESTELLADRESSE, bestellvorschlagDto[i].getILieferantId())); besPos.add(Restrictions.gt(BestellpositionFac.FLR_BESTELLPOSITION_N_OFFENEMENGE, new BigDecimal(0))); artikel.add( Restrictions.eq(ArtikelFac.FLR_ARTIKEL_I_ID, bestellvorschlagDto[i].getIArtikelId())); // Sortierung damit die aelteren Rahmen zuerst abgerufen // werden best.addOrder(Order.desc(BestellungFac.FLR_BESTELLUNG_T_LIEFERTERMIN)); // Query ausfuehren List<?> besposList = besPos.list(); Iterator<?> besposListIterator = besposList.iterator(); boolean bMengeGenuegt = false; ArrayList<Integer> alVerwendeteBesPosIId = new ArrayList<Integer>(); while (besposListIterator.hasNext() && !bMengeGenuegt) { FLRBestellposition bespos = (FLRBestellposition) besposListIterator.next(); if (bdZuBestellendeMenge.compareTo(bespos.getN_offenemenge()) < 0) { bMengeGenuegt = true; } else { bdZuBestellendeMenge = bdZuBestellendeMenge.subtract(bespos.getN_offenemenge()); } alVerwendeteBesPosIId.add(bespos.getI_id()); } // Jetzt haben wir eine Liste aller Rahmenpositionen die // verwendet werden sollen. BigDecimal bdBereitsBestellteMenge = new BigDecimal(0); for (int y = 0; y < alVerwendeteBesPosIId.size(); y++) { BestellpositionDto besPosDto = getBestellpositionFac() .bestellpositionFindByPrimaryKey(alVerwendeteBesPosIId.get(y)); BestellungDto abrufBestellungDto = null; if (hmAbrufeZuRahmen.containsKey(besPosDto.getBelegIId())) { abrufBestellungDto = getBestellungFac() .bestellungFindByPrimaryKey(hmAbrufeZuRahmen.get(besPosDto.getBelegIId())); } BestellungDto rahmenBestellungDto = getBestellungFac() .bestellungFindByPrimaryKey(besPosDto.getBelegIId()); boolean bAbrufvorhanden = false; // wenn wir bereits durch einen anderen Bestellvorschlag // einen Abruf fuer diesen Lieferanten mit diesem // Liefertermin angelegt haben if (abrufBestellungDto != null) { if (abrufBestellungDto.getDLiefertermin() .equals(bestellvorschlagDto[i].getTLiefertermin())) { bAbrufvorhanden = true; } } if (!bAbrufvorhanden) { // Wir haben fuer diese Bestellung noch keinen Abruf // und legen diesen an MandantDto mandantDto = getMandantFac() .mandantFindByPrimaryKey(theClientDto.getMandant(), theClientDto); // Wechselkurs ist immer der aktuelle BigDecimal wechselkurs = getLocaleFac().getWechselkurs2( rahmenBestellungDto.getWaehrungCNr(), mandantDto.getWaehrungCNr(), theClientDto); abrufBestellungDto = new BestellungDto(); abrufBestellungDto.setFWechselkursmandantwaehrungzubelegwaehrung( new Double(wechselkurs.doubleValue())); abrufBestellungDto .setPersonalIIdAnforderer(rahmenBestellungDto.getPersonalIIdAnforderer()); abrufBestellungDto.setPersonalIIdAendern(theClientDto.getIDPersonal()); abrufBestellungDto.setPersonalIIdAnlegen(theClientDto.getIDPersonal()); abrufBestellungDto.setZahlungszielIId(rahmenBestellungDto.getZahlungszielIId()); abrufBestellungDto.setBelegartCNr(LocaleFac.BELEGART_BESTELLUNG); abrufBestellungDto .setBestellungartCNr(BestellungFac.BESTELLUNGART_ABRUFBESTELLUNG_C_NR); abrufBestellungDto.setStatusCNr(BestellungFac.BESTELLSTATUS_ANGELEGT); abrufBestellungDto.setIBestellungIIdRahmenbestellung(rahmenBestellungDto.getIId()); abrufBestellungDto .setBTeillieferungMoeglich(rahmenBestellungDto.getBTeillieferungMoeglich()); abrufBestellungDto.setDBelegdatum(this.getDate()); abrufBestellungDto.setDLiefertermin(bestellvorschlagDto[i].getTLiefertermin()); abrufBestellungDto.setKostenstelleIId(rahmenBestellungDto.getKostenstelleIId()); abrufBestellungDto.setLieferantIIdBestelladresse( rahmenBestellungDto.getLieferantIIdBestelladresse()); abrufBestellungDto.setLieferantIIdRechnungsadresse( rahmenBestellungDto.getLieferantIIdRechnungsadresse()); abrufBestellungDto.setSpediteurIId(rahmenBestellungDto.getSpediteurIId()); abrufBestellungDto.setMandantCNr(mandantDto.getCNr()); abrufBestellungDto.setLieferartIId(rahmenBestellungDto.getLieferartIId()); abrufBestellungDto.setWaehrungCNr(rahmenBestellungDto.getWaehrungCNr()); abrufBestellungDto .setFAllgemeinerRabattsatz(rahmenBestellungDto.getFAllgemeinerRabattsatz()); Integer iAbrufBEstellungIId = getBestellungFac().createBestellung(abrufBestellungDto, theClientDto); abrufBestellungDto = getBestellungFac().bestellungFindByPrimaryKey(iAbrufBEstellungIId); hmAbrufeZuRahmen.put(besPosDto.getBelegIId(), abrufBestellungDto.getIId()); } // Bestellung wurde nun angelgt oder war bereits // vorhanden // Jetzt die Position anlegen oder updaten BestellpositionDto[] vorhandeneAbrufe = getBestellpositionFac() .bestellpositionFindByBestellung(abrufBestellungDto.getIId(), theClientDto); BestellpositionDto abrufBestellpositionDto = null; for (int x = 0; x < vorhandeneAbrufe.length; x++) { if (bestellvorschlagDto[i].getIArtikelId() .equals(vorhandeneAbrufe[x].getArtikelIId())) { abrufBestellpositionDto = vorhandeneAbrufe[x]; } } BigDecimal bdbenoetigteMenge = bestellvorschlagDto[i].getNZubestellendeMenge() .subtract(bdBereitsBestellteMenge); BigDecimal bdAbrufmenge; if (bdbenoetigteMenge.compareTo(besPosDto.getNOffeneMenge()) > 0) { if (y == alVerwendeteBesPosIId.size() - 1) { // Letzte Pos, also wird ueberliefert bdAbrufmenge = bdbenoetigteMenge; if (!alUeberlieferteBestellungIId.contains(besPosDto.getBelegIId())) { alUeberlieferteBestellungIId.add(besPosDto.getBelegIId()); } } else { bdAbrufmenge = besPosDto.getNOffeneMenge(); } } else { bdAbrufmenge = bdbenoetigteMenge; } if (abrufBestellpositionDto == null) { abrufBestellpositionDto = new BestellpositionDto(); abrufBestellpositionDto.setNMenge(bdAbrufmenge); bdbenoetigteMenge = bdbenoetigteMenge.subtract(bdAbrufmenge); ArtikelDto artikelDto = getArtikelFac() .artikelFindByPrimaryKey(bestellvorschlagDto[i].getIArtikelId(), theClientDto); abrufBestellpositionDto.setIBestellpositionIIdRahmenposition(besPosDto.getIId()); abrufBestellpositionDto.setArtikelIId(bestellvorschlagDto[i].getIArtikelId()); abrufBestellpositionDto.setBDrucken(Helper.boolean2Short(false)); abrufBestellpositionDto.setPositionsartCNr(BestellpositionFac.BESTELLPOSITIONART_IDENT); abrufBestellpositionDto .setBestellpositionstatusCNr(BestellpositionFac.BESTELLPOSITIONSTATUS_OFFEN); abrufBestellpositionDto.setBestellungIId(abrufBestellungDto.getIId()); abrufBestellpositionDto.setCBez(artikelDto.getArtikelsprDto().getCBez()); // bestellpositionDto.setISort(new Integer(j++)); abrufBestellpositionDto.setEinheitCNr(artikelDto.getEinheitCNr()); abrufBestellpositionDto.setNNettoeinzelpreis(besPosDto.getNNettoeinzelpreis()); abrufBestellpositionDto.setNNettogesamtpreis(besPosDto.getNNettogesamtpreis()); abrufBestellpositionDto.setNRabattbetrag(besPosDto.getNRabattbetrag()); abrufBestellpositionDto.setDRabattsatz(besPosDto.getDRabattsatz()); abrufBestellpositionDto.setNMaterialzuschlag(besPosDto.getNMaterialzuschlag()); abrufBestellpositionDto .setBNettopreisuebersteuert(besPosDto.getBNettopreisuebersteuert()); abrufBestellpositionDto .setTUebersteuerterLiefertermin(bestellvorschlagDto[i].getTLiefertermin()); getBestellpositionFac().createAbrufbestellposition(abrufBestellpositionDto, BestellpositionFac.PREISPFLEGEARTIKELLIEFERANT_PREIS_UNVERAENDERT, null, theClientDto); } else { BigDecimal bdMenge = bdAbrufmenge.add(abrufBestellpositionDto.getNMenge()); abrufBestellpositionDto.setNMenge(bdMenge); bdbenoetigteMenge = bdbenoetigteMenge.subtract(bdMenge); getBestellpositionFac().updateAbrufbestellposition(abrufBestellpositionDto, BestellpositionFac.PREISPFLEGEARTIKELLIEFERANT_PREIS_UNVERAENDERT, null, theClientDto); } bUebergeleitet = true; } if (bUebergeleitet) { this.removeBestellvorschlag(bestellvorschlagDto[i]); } } } BestellungDto[] toReturn = new BestellungDto[alUeberlieferteBestellungIId.size()]; for (int x = 0; x < alUeberlieferteBestellungIId.size(); x++) { toReturn[x] = getBestellungFac().bestellungFindByPrimaryKey(alUeberlieferteBestellungIId.get(x)); } return toReturn; } catch (Exception e) { throw new EJBExceptionLP(e); } finally { session.close(); } }
From source file:com.lp.server.eingangsrechnung.ejbfac.EingangsrechnungReportFacBean.java
License:Open Source License
@TransactionAttribute(TransactionAttributeType.NEVER) public JasperPrintLP printOffene(TheClientDto theClientDto, int iSort, Integer lieferantIId, Date dStichtag, boolean bStichtagIstFreigabeDatum, boolean bZusatzkosten, boolean mitNichtZugeordnetenBelegen) { this.useCase = UC_OFFENE; SessionFactory factory = FLRSessionFactory.getFactory(); Session session = null;/*from w w w . j ava 2 s.c o m*/ try { Map<Integer, ZahlungszielDto> mZahlungsziel = getMandantFac() .zahlungszielFindAllByMandantAsDto(theClientDto.getMandant(), theClientDto); session = factory.openSession(); List<Integer> lieferantenIIds = new ArrayList<Integer>(); if (lieferantIId != null) { lieferantenIIds.add(lieferantIId); } else if (iSort == EingangsrechnungReportFac.REPORT_OFFENE_SORT_LIEFERANT) { Iterator<?> iter = session.createCriteria(FLRLieferant.class).createAlias("flrpartner", "p") .addOrder(Order.asc("p.c_name1nachnamefirmazeile1")) .add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant())) .list().iterator(); while (iter.hasNext()) { lieferantenIIds.add(((FLRLieferant) iter.next()).getI_id()); } } else { lieferantenIIds.add(null); } List<Object[]> dataList = new ArrayList<Object[]>(); for (Integer liefIId : lieferantenIIds) { Criteria crit = session.createCriteria(FLREingangsrechnungReport.class); // Filter nach Mandant crit.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant())); Collection<String> cStati = new LinkedList<String>(); cStati.add(EingangsrechnungFac.STATUS_TEILBEZAHLT); cStati.add(EingangsrechnungFac.STATUS_ANGELEGT); cStati.add(EingangsrechnungFac.STATUS_ERLEDIGT); crit.add(Restrictions.in("status_c_nr", cStati)); if (bZusatzkosten) { crit.add(Restrictions.eq(EingangsrechnungFac.FLR_ER_EINGANGSRECHNUNGART_C_NR, EingangsrechnungFac.EINGANGSRECHNUNGART_ZUSATZKOSTEN)); } else { crit.add(Restrictions.not(Restrictions.eq(EingangsrechnungFac.FLR_ER_EINGANGSRECHNUNGART_C_NR, EingangsrechnungFac.EINGANGSRECHNUNGART_ZUSATZKOSTEN))); } if (liefIId != null) { crit.add(Restrictions.eq("lieferant_i_id", liefIId)); } if (bStichtagIstFreigabeDatum) { crit.add(Restrictions.le("t_freigabedatum", dStichtag)); } else { crit.add(Restrictions.le("t_belegdatum", dStichtag)); } crit.add(Restrictions.or(Restrictions.gt("t_bezahltdatum", dStichtag), Restrictions.isNull("t_bezahltdatum"))); crit.add(Restrictions.or(Restrictions.gt("t_manuellerledigt", dStichtag), Restrictions.isNull("t_manuellerledigt"))); if (iSort == EingangsrechnungReportFac.REPORT_OFFENE_SORT_RECHNUNGSNUMMER) { crit.addOrder(Order.asc("c_nr")); } else if (iSort == EingangsrechnungReportFac.REPORT_OFFENE_SORT_LIEFERANT) { crit.addOrder(Order.asc("c_nr")); } else if (iSort == EingangsrechnungReportFac.REPORT_OFFENE_SORT_FAELLIGKEIT) { crit.addOrder(Order.asc("t_faelligkeit")).addOrder(Order.asc("c_nr")); // Inerhalb wird immer nach // Rechnungsnummer sortiert } else if (iSort == EingangsrechnungReportFac.REPORT_OFFENE_SORT_FAELLIGKEIT_SKONTO1) { crit.addOrder(Order.asc("t_faelligkeit_skonto1")).addOrder(Order.asc("c_nr")); } else if (iSort == EingangsrechnungReportFac.REPORT_OFFENE_SORT_FAELLIGKEIT_SKONTO2) { crit.addOrder(Order.asc("t_faelligkeit_skonto2")).addOrder(Order.asc("c_nr")); } if (iSort != EingangsrechnungReportFac.REPORT_OFFENE_SORT_LIEFERANT) { mitNichtZugeordnetenBelegen = false; } List<?> resultList = crit.list(); Iterator<?> resultListIterator = resultList.iterator(); int row = 0; Object[][] tempData = new Object[resultList.size()][OFFENE_ANZAHL_FELDER]; if (mitNichtZugeordnetenBelegen) { LieferantDto liefDto = getLieferantFac().lieferantFindByPrimaryKey(liefIId, theClientDto); if (liefDto.getKontoIIdKreditorenkonto() != null) { // TODO: nur FLRFinanzBuchungDetail holen Query query = session.createQuery( "SELECT buchungdetail from FLRFinanzBuchungDetail buchungdetail LEFT OUTER JOIN buchungdetail.flrbuchung AS buchung" + " WHERE" + BuchungDetailQueryBuilder.buildNurOffeneBuchungDetails("buchungdetail") + "AND" + BuchungDetailQueryBuilder.buildNichtZuordenbareVonKonto("buchungdetail", "buchung", liefDto.getKontoIIdKreditorenkonto()) + (dStichtag == null ? "" : ("AND buchung.d_buchungsdatum<='" + Helper.formatDateWithSlashes(dStichtag) + "'"))); @SuppressWarnings("unchecked") List<FLRFinanzBuchungDetail> bdList = query.list(); if (bdList.size() > 0) { if (tempData.length < 1) { tempData = new Object[1][OFFENE_ANZAHL_FELDER]; String sFirma = liefDto.getPartnerDto().formatFixTitelName1Name2(); tempData[0][OFFENE_FELD_FIRMA] = sFirma; tempData[0][OFFENE_FELD_KREDITORENNR] = getFinanzFac() .kontoFindByPrimaryKeySmall(liefDto.getKontoIIdKreditorenkonto()).getCNr(); } tempData[0][OFFENE_SUBREPORT_OFFENE_BUCHUNGEN] = FinanzSubreportGenerator .createBuchungsdetailSubreport(bdList, false); } } } while (resultListIterator.hasNext()) { FLREingangsrechnungReport er = (FLREingangsrechnungReport) resultListIterator.next(); EingangsrechnungDto erDto = getEingangsrechnungFac() .eingangsrechnungFindByPrimaryKey(er.getI_id()); LieferantDto liefDto = getLieferantFac().lieferantFindByPrimaryKey(erDto.getLieferantIId(), theClientDto); String sErCNr = erDto.getCNr(); String sFirma = liefDto.getPartnerDto().formatFixTitelName1Name2(); ZahlungszielDto zzDto = mZahlungsziel.get(erDto.getZahlungszielIId()); tempData[row][OFFENE_FELD_ER_C_NR] = sErCNr; tempData[row][OFFENE_FELD_FIRMA] = sFirma; tempData[row][OFFENE_FELD_ERDATUM] = er.getT_belegdatum(); tempData[row][OFFENE_FELD_MAHNDATUM] = erDto.getTMahndatum(); tempData[row][OFFENE_FELD_KREDITORENNR] = liefDto.getKontoIIdKreditorenkonto() != null ? getFinanzFac().kontoFindByPrimaryKeySmall(liefDto.getKontoIIdKreditorenkonto()) .getCNr() : null; tempData[row][OFFENE_FELD_MAHNSTUFE] = er.getMahnstufe_i_id(); tempData[row][OFFENE_FELD_FREIGABEDATUM] = er.getT_freigabedatum(); tempData[row][OFFENE_FELD_WERT] = erDto.getNBetrag(); tempData[row][OFFENE_FELD_LIEFERANTENRECHNUNGSNUMMER] = erDto.getCLieferantenrechnungsnummer(); tempData[row][OFFENE_FELD_TEXT] = erDto.getCText(); if (zzDto != null) { tempData[row][OFFENE_FELD_ZAHLUNGSZIEL] = zzDto.getCBez(); tempData[row][OFFENE_FELD_SKONTOTAGE1] = zzDto.getSkontoAnzahlTage1(); tempData[row][OFFENE_FELD_SKONTOTAGE2] = zzDto.getSkontoAnzahlTage2(); tempData[row][OFFENE_FELD_SKONTOPROZENT1] = zzDto.getSkontoProzentsatz1(); tempData[row][OFFENE_FELD_SKONTOPROZENT2] = zzDto.getSkontoProzentsatz2(); tempData[row][OFFENE_FELD_NETTOTAGE] = zzDto.getAnzahlZieltageFuerNetto(); if (erDto.getDFreigabedatum() != null) { if (zzDto.getAnzahlZieltageFuerNetto() != null) { tempData[row][OFFENE_FELD_FAELLIGKEIT] = er.getT_faelligkeit(); } if (zzDto.getSkontoAnzahlTage1() != null) { tempData[row][OFFENE_FELD_FAELLIGKEIT_SKONTO1] = er.getT_faelligkeit_skonto1(); } if (zzDto.getSkontoAnzahlTage2() != null) { tempData[row][OFFENE_FELD_FAELLIGKEIT_SKONTO2] = er.getT_faelligkeit_skonto2(); } } } // datum der letzten zahlung bis zum stichtag ermitteln EingangsrechnungzahlungDto[] zahlungen = getEingangsrechnungFac() .eingangsrechnungzahlungFindByEingangsrechnungIId(er.getI_id()); java.sql.Date dZahldatum = null; for (int i = 0; i < zahlungen.length; i++) { if ((dZahldatum == null || zahlungen[i].getTZahldatum().after(dZahldatum)) && !zahlungen[i].getTZahldatum().after(dStichtag)) { dZahldatum = new Date(zahlungen[i].getTZahldatum().getTime()); } } tempData[row][OFFENE_FELD_ZAHLDATUM] = dZahldatum; // Zahlungsbetrag bis zum Stichtag ermitteln BigDecimal bdBezahltFw = new BigDecimal(0); BigDecimal bdBezahltKursBelegdatum = new BigDecimal(0); for (int i = 0; i < zahlungen.length; i++) { if (!zahlungen[i].getTZahldatum().after(dStichtag)) { bdBezahltFw = bdBezahltFw.add(zahlungen[i].getNBetragfw()); bdBezahltKursBelegdatum = bdBezahltKursBelegdatum .add(zahlungen[i].getNBetragfw().multiply(erDto.getNKurs())); } } tempData[row][OFFENE_FELD_BETRAG] = getLocaleFac().rechneUmInAndereWaehrungZuDatum(bdBezahltFw, erDto.getWaehrungCNr(), theClientDto.getSMandantenwaehrung(), // new Date(System.currentTimeMillis()), dStichtag, theClientDto); tempData[row][OFFENE_FELD_BETRAG_KURS_BELEGDATUM] = bdBezahltKursBelegdatum; tempData[row][OFFENE_FELD_OFFEN] = getLocaleFac().rechneUmInAndereWaehrungZuDatum( erDto.getNBetragfw().subtract(bdBezahltFw), erDto.getWaehrungCNr(), theClientDto.getSMandantenwaehrung(), // new Date(System.currentTimeMillis()), dStichtag, theClientDto); tempData[row][OFFENE_FELD_OFFEN_KURS_BELEGDATUM] = erDto.getNBetrag() .subtract(bdBezahltKursBelegdatum); tempData[row][OFFENE_FELD_BETRAG_FW] = bdBezahltFw; tempData[row][OFFENE_FELD_OFFEN_FW] = erDto.getNBetragfw().subtract(bdBezahltFw); tempData[row][OFFENE_FELD_ERWAEHRUNG] = erDto.getWaehrungCNr(); tempData[row][OFFENE_FELD_WERT_FW] = erDto.getNBetragfw(); tempData[row][OFFENE_FELD_ERKURS] = erDto.getNKurs(); WechselkursDto wkDto = getLocaleFac().getKursZuDatum(erDto.getWaehrungCNr(), theClientDto.getSMandantenwaehrung(), dStichtag, theClientDto); tempData[row][OFFENE_FELD_KURS_STICHTAG] = wkDto.getNKurs() .setScale(LocaleFac.ANZAHL_NACHKOMMASTELLEN_WECHSELKURS, RoundingMode.HALF_EVEN); row++; } dataList.addAll(Arrays.asList(tempData)); } data = dataList.toArray(new Object[0][]); Map<String, Object> mapParameter = new TreeMap<String, Object>(); mapParameter.put("P_DATUM", dStichtag); mapParameter.put("P_STICHTAGISTFREIGABEDATUM", new Boolean(bStichtagIstFreigabeDatum)); mapParameter.put("P_ZUSATZKOSTEN", new Boolean(bZusatzkosten)); String sSortierung = null; if (iSort == EingangsrechnungReportFac.REPORT_OFFENE_SORT_LIEFERANT) { sSortierung = "Lieferant"; } else if (iSort == EingangsrechnungReportFac.REPORT_OFFENE_SORT_RECHNUNGSNUMMER) { sSortierung = "Rechnungsnummer"; } else if (iSort == EingangsrechnungReportFac.REPORT_OFFENE_SORT_FAELLIGKEIT) { sSortierung = getTextRespectUISpr("lp.faelligkeit", theClientDto.getMandant(), theClientDto.getLocUi()); } else if (iSort == EingangsrechnungReportFac.REPORT_OFFENE_SORT_FAELLIGKEIT_SKONTO1) { sSortierung = getTextRespectUISpr("er.faelligkeitskonto1", theClientDto.getMandant(), theClientDto.getLocUi()); } else if (iSort == EingangsrechnungReportFac.REPORT_OFFENE_SORT_FAELLIGKEIT_SKONTO2) { sSortierung = getTextRespectUISpr("er.faelligkeitskonto2", theClientDto.getMandant(), theClientDto.getLocUi()); } mapParameter.put("P_SORTIERUNGNACHLIEFERANT", new Boolean(iSort == EingangsrechnungReportFac.REPORT_OFFENE_SORT_LIEFERANT)); mapParameter.put(LPReport.P_SORTIERUNG, sSortierung); String sZessionstext = null; sZessionstext = getParameterFac().parametermandantFindByPrimaryKey(ParameterFac.PARAMETER_ZESSIONSTEXT, ParameterFac.KATEGORIE_ALLGEMEIN, theClientDto.getMandant()).getCWert(); if (sZessionstext != null) { mapParameter.put("P_ZESSIONSTEXT", sZessionstext); } mapParameter.put("P_MANDANTENWAEHRUNG", theClientDto.getSMandantenwaehrung()); initJRDS(mapParameter, EingangsrechnungReportFac.REPORT_MODUL, EingangsrechnungReportFac.REPORT_EINGANGSRECHNUNG_OFFENE, 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.FertigungReportFacBean.java
License:Open Source License
@TransactionAttribute(TransactionAttributeType.NEVER) public JasperPrintLP printHalbfertigfabrikatsinventur(java.sql.Timestamp tsStichtag, int iSortierung, boolean bVerdichtet, Integer partnerIIdFertigungsort, TheClientDto theClientDto) throws EJBExceptionLP { Session session = null;/*from w w w. j a va 2 s . c om*/ try { Map<String, Object> mapParameter = new TreeMap<String, Object>(); if (tsStichtag != null) { mapParameter.put("P_STICHTAG", tsStichtag); Calendar c = Calendar.getInstance(); c.setTimeInMillis(tsStichtag.getTime()); c.set(Calendar.DAY_OF_MONTH, c.get(Calendar.DAY_OF_MONTH) + 1); tsStichtag = new java.sql.Timestamp(c.getTimeInMillis()); tsStichtag = Helper.cutTimestamp(tsStichtag); } this.useCase = UC_HALBFERTIGFABRIKATSINVENTUR; 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())); // c.add(Restrictions.eq("i_id", 99579)); if (partnerIIdFertigungsort != null) { c.add(Restrictions.eq(FertigungFac.FLR_LOSREPORT_PARTNER_I_ID_FERTIGUNGSORT, partnerIIdFertigungsort)); } if (tsStichtag == null) { c.add(Restrictions.not(Restrictions.in(FertigungFac.FLR_LOS_STATUS_C_NR, new String[] { FertigungFac.STATUS_STORNIERT, FertigungFac.STATUS_ERLEDIGT, FertigungFac.STATUS_ANGELEGT, FertigungFac.STATUS_GESTOPPT }))); } else { c.add(Restrictions.not(Restrictions.in(FertigungFac.FLR_LOS_STATUS_C_NR, new String[] { FertigungFac.STATUS_STORNIERT, FertigungFac.STATUS_GESTOPPT }))); c.add(Restrictions.or(Restrictions.gt(FertigungFac.FLR_LOS_T_ERLEDIGT, tsStichtag), Restrictions.isNull(FertigungFac.FLR_LOS_T_ERLEDIGT))); c.add(Restrictions.or(Restrictions.gt(FertigungFac.FLR_LOSREPORT_T_MANUELLERLEDIGT, tsStichtag), Restrictions.isNull(FertigungFac.FLR_LOSREPORT_T_MANUELLERLEDIGT))); c.add(Restrictions.le(FertigungFac.FLR_LOS_T_AUSGABE, tsStichtag)); } // Sortierung nach Losnummer c.addOrder(Order.asc(FertigungFac.FLR_LOS_C_NR)); List<?> list = c.list(); ArrayList<Object[]> alDaten = new ArrayList<Object[]>(); int i = 0; for (Iterator<?> iter = list.iterator(); iter.hasNext(); i++) { FLRLosReport item = (FLRLosReport) iter.next(); Object[] zeile = new Object[17]; zeile[HF_LOSNUMMER] = item.getC_nr(); zeile[HF_LOSGROESSE] = item.getN_losgroesse(); if (item.getFlrstueckliste() != null) { zeile[HF_ARTIKELNUMMER] = item.getFlrstueckliste().getFlrartikel().getC_nr(); ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKeySmall( item.getFlrstueckliste().getFlrartikel().getI_id(), theClientDto); zeile[HF_BEZEICHNUNG] = artikelDto.getArtikelsprDto().getCBez(); ; } else { zeile[HF_ARTIKELNUMMER] = getTextRespectUISpr("fert.materialliste", theClientDto.getMandant(), theClientDto.getLocUi()); zeile[HF_BEZEICHNUNG] = item.getC_projekt(); } LosablieferungDto[] losablieferungDtos = getFertigungFac() .losablieferungFindByLosIId(item.getI_id(), true, theClientDto); BigDecimal bdAbgeliefert = new BigDecimal(0.0000); for (int j = 0; j < losablieferungDtos.length; j++) { if (tsStichtag == null) { bdAbgeliefert = bdAbgeliefert.add(losablieferungDtos[j].getNMenge()); } else { if (tsStichtag.after(losablieferungDtos[j].getTAendern())) { bdAbgeliefert = bdAbgeliefert.add(losablieferungDtos[j].getNMenge()); } } } zeile[HF_ERLEDIGT] = bdAbgeliefert; // Nun eine Zeile pro Position // Ausgegebenes Material LossollmaterialDto[] sollmat = getFertigungFac().lossollmaterialFindByLosIId(item.getI_id()); for (int j = 0; j < sollmat.length; j++) { BigDecimal bdMenge = getFertigungFac().getAusgegebeneMenge(sollmat[j].getIId(), tsStichtag, theClientDto); zeile[HF_POSITION_AUSGEGEBEN] = bdMenge; // Einkaufspreis des ersten Lieferanten hinzufuegen ArtikellieferantDto dto = getArtikelFac().getArtikelEinkaufspreis(sollmat[j].getArtikelIId(), null, new BigDecimal(1), theClientDto.getSMandantenwaehrung(), new java.sql.Date(sollmat[j].getTAendern().getTime()), theClientDto); if (dto != null) { zeile[HF_POSITION_EKPREIS] = dto.getLief1Preis(); } // CK:2008-12-23 Wegen Beistellteilen ist die Verfaelschung // des Gestehungspreises falsch // es muss immer der Gestehungspreis zum ausgabezeitpunkt // verwendet werden. BigDecimal bdPreis = getFertigungFac().getAusgegebeneMengePreis(sollmat[j].getIId(), tsStichtag, theClientDto); zeile[HF_POSITION_PREIS] = bdPreis; BigDecimal sollsatzmenge = new BigDecimal(0); if (item.getN_losgroesse().doubleValue() != 0) { sollsatzmenge = sollmat[j].getNMenge().divide(item.getN_losgroesse(), BigDecimal.ROUND_HALF_EVEN); } BigDecimal theoretischabgeliefert = sollsatzmenge.multiply(bdAbgeliefert); if (theoretischabgeliefert.doubleValue() > bdMenge.doubleValue()) { theoretischabgeliefert = bdMenge; } zeile[HF_POSITION_ABGELIFERT] = theoretischabgeliefert; zeile[HF_POSITION_OFFEN] = bdMenge.subtract(theoretischabgeliefert); ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKey(sollmat[j].getArtikelIId(), theClientDto); zeile[HF_POSITION_ARTIKELNUMMMER] = artikelDto.getCNr(); zeile[HF_POSITION_BEZEICHNUNG] = artikelDto.formatBezeichnung(); if (bVerdichtet) { if (iSortierung == FertigungReportFac.HF_OPTION_SORTIERUNG_ARTIKELNR) { boolean bGefunden = false; for (int k = 0; k < alDaten.size(); k++) { Object[] zeileTemp = (Object[]) alDaten.get(k); if (zeileTemp[HF_POSITION_ARTIKELNUMMMER] .equals(zeile[HF_POSITION_ARTIKELNUMMMER])) { bGefunden = true; zeileTemp[HF_LOSNUMMER] = ""; zeileTemp[HF_POSITION_AUSGEGEBEN] = ((BigDecimal) zeileTemp[HF_POSITION_AUSGEGEBEN]) .add((BigDecimal) zeile[HF_POSITION_AUSGEGEBEN]); zeileTemp[HF_POSITION_ABGELIFERT] = ((BigDecimal) zeileTemp[HF_POSITION_ABGELIFERT]) .add((BigDecimal) zeile[HF_POSITION_ABGELIFERT]); // Neuen Preis berechnen BigDecimal alterPreis = (BigDecimal) zeileTemp[HF_POSITION_PREIS]; BigDecimal alteOffen = (BigDecimal) zeileTemp[HF_POSITION_OFFEN]; BigDecimal neuerPreis = (BigDecimal) zeile[HF_POSITION_PREIS]; BigDecimal neueOffen = (BigDecimal) zeile[HF_POSITION_OFFEN]; BigDecimal wertNeu = alterPreis.multiply(alteOffen) .add(neuerPreis.multiply(neueOffen)); if (neueOffen.add(alteOffen).doubleValue() != 0) { zeileTemp[HF_POSITION_PREIS] = wertNeu.divide(neueOffen.add(alteOffen), 4, BigDecimal.ROUND_HALF_EVEN); } else { zeileTemp[HF_POSITION_PREIS] = new BigDecimal(0); } zeileTemp[HF_POSITION_OFFEN] = neueOffen.add(alteOffen); alDaten.set(k, zeileTemp); } } if (bGefunden == false) { alDaten.add(zeile); } } else if (iSortierung == FertigungReportFac.HF_OPTION_SORTIERUNG_LOSNR) { boolean bGefunden = false; for (int k = 0; k < alDaten.size(); k++) { Object[] zeileTemp = (Object[]) alDaten.get(k); if (zeileTemp[HF_LOSNUMMER].equals(zeile[HF_LOSNUMMER])) { bGefunden = true; zeileTemp[HF_POSITION_ARTIKELNUMMMER] = ""; zeileTemp[HF_POSITION_BEZEICHNUNG] = ""; zeileTemp[HF_POSITION_AUSGEGEBEN] = ((BigDecimal) zeileTemp[HF_POSITION_AUSGEGEBEN]) .add((BigDecimal) zeile[HF_POSITION_AUSGEGEBEN]); zeileTemp[HF_POSITION_ABGELIFERT] = ((BigDecimal) zeileTemp[HF_POSITION_ABGELIFERT]) .add((BigDecimal) zeile[HF_POSITION_ABGELIFERT]); // Neuen Preis berechnen BigDecimal alterPreis = (BigDecimal) zeileTemp[HF_POSITION_PREIS]; BigDecimal alteOffen = (BigDecimal) zeileTemp[HF_POSITION_OFFEN]; BigDecimal neuerPreis = (BigDecimal) zeile[HF_POSITION_PREIS]; BigDecimal neueOffen = (BigDecimal) zeile[HF_POSITION_OFFEN]; BigDecimal wertNeu = alterPreis.multiply(alteOffen) .add(neuerPreis.multiply(neueOffen)); if (neueOffen.add(alteOffen).doubleValue() != 0) { zeileTemp[HF_POSITION_PREIS] = wertNeu.divide(neueOffen.add(alteOffen), 4, BigDecimal.ROUND_HALF_EVEN); } else { zeileTemp[HF_POSITION_PREIS] = new BigDecimal(0); } zeileTemp[HF_POSITION_OFFEN] = neueOffen.add(alteOffen); alDaten.set(k, zeileTemp); } } if (bGefunden == false) { alDaten.add(zeile); } } } else { alDaten.add(zeile); } zeile = new Object[17]; zeile[HF_LOSNUMMER] = item.getC_nr(); } // Verbrauchte Arbeitszeit LossollarbeitsplanDto[] lossollarbeitsplanDto = getFertigungFac() .lossollarbeitsplanFindByLosIId(item.getI_id()); for (int j = 0; j < lossollarbeitsplanDto.length; j++) { AuftragzeitenDto[] zeiten = getZeiterfassungFac().getAllZeitenEinesBeleges( LocaleFac.BELEGART_LOS, item.getI_id(), null, null, null, tsStichtag, false, false, theClientDto); ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKey( lossollarbeitsplanDto[j].getArtikelIIdTaetigkeit(), theClientDto); zeile[HF_POSITION_ARTIKELNUMMMER] = artikelDto.getCNr(); zeile[HF_POSITION_BEZEICHNUNG] = artikelDto.formatBezeichnung(); BigDecimal bdArbeitszeitwert = new BigDecimal(0); BigDecimal bdIstZeit = new BigDecimal(0); for (int k = 0; k < zeiten.length; k++) { if (artikelDto.getIId().equals(zeiten[k].getArtikelIId())) { bdArbeitszeitwert = bdArbeitszeitwert.add(zeiten[k].getBdKosten()); bdIstZeit = bdIstZeit.add(new BigDecimal(zeiten[k].getDdDauer().doubleValue())); } } BigDecimal sollsatzmenge = new BigDecimal(0); if (item.getN_losgroesse().doubleValue() != 0) { sollsatzmenge = lossollarbeitsplanDto[j].getNGesamtzeit().divide(item.getN_losgroesse(), BigDecimal.ROUND_HALF_EVEN); } if (Helper.short2boolean(lossollarbeitsplanDto[j].getBNurmaschinenzeit())) { zeile[HF_POSITION_AUSGEGEBEN] = new BigDecimal(0); } else { zeile[HF_POSITION_AUSGEGEBEN] = lossollarbeitsplanDto[j].getNGesamtzeit(); } BigDecimal theoretischabgeliefert = sollsatzmenge.multiply(bdAbgeliefert); BigDecimal restist = bdIstZeit.subtract(theoretischabgeliefert); if (restist.doubleValue() <= 0) { restist = new BigDecimal(0); } if (theoretischabgeliefert.doubleValue() > bdIstZeit.doubleValue()) { theoretischabgeliefert = bdIstZeit; } zeile[HF_POSITION_ABGELIFERT] = theoretischabgeliefert; zeile[HF_POSITION_OFFEN] = restist; if (bdIstZeit.doubleValue() != 0) { zeile[HF_POSITION_PREIS] = bdArbeitszeitwert.divide(bdIstZeit, BigDecimal.ROUND_HALF_EVEN); } else { zeile[HF_POSITION_PREIS] = new BigDecimal(0); } AuftragzeitenDto[] maschinenzeiten = getZeiterfassungFac().getAllMaschinenzeitenEinesBeleges( item.getI_id(), lossollarbeitsplanDto[j].getIId(), null, tsStichtag, theClientDto); BigDecimal bdArbeitszeitwertMaschine = new BigDecimal(0); BigDecimal bdIstZeitMaschine = new BigDecimal(0); for (int k = 0; k < maschinenzeiten.length; k++) { bdArbeitszeitwertMaschine = bdArbeitszeitwertMaschine.add(maschinenzeiten[k].getBdKosten()); bdIstZeitMaschine = bdIstZeitMaschine .add(new BigDecimal(maschinenzeiten[k].getDdDauer().doubleValue())); } if (lossollarbeitsplanDto[j].getMaschineIId() == null) { zeile[HF_POSITION_AUSGEGEBEN_MASCHINE] = new BigDecimal(0); } else { zeile[HF_POSITION_AUSGEGEBEN_MASCHINE] = lossollarbeitsplanDto[j].getNGesamtzeit(); } theoretischabgeliefert = sollsatzmenge.multiply(bdAbgeliefert); BigDecimal restistMaschine = bdIstZeitMaschine.subtract(theoretischabgeliefert); if (restistMaschine.doubleValue() <= 0) { restistMaschine = new BigDecimal(0); } if (theoretischabgeliefert.doubleValue() > bdIstZeitMaschine.doubleValue()) { theoretischabgeliefert = bdIstZeitMaschine; } zeile[HF_POSITION_ABGELIFERT_MASCHINE] = theoretischabgeliefert; zeile[HF_POSITION_OFFEN_MASCHINE] = restistMaschine; if (bdIstZeitMaschine.doubleValue() != 0) { zeile[HF_POSITION_PREIS_MASCHINE] = bdArbeitszeitwertMaschine.divide(bdIstZeitMaschine, BigDecimal.ROUND_HALF_EVEN); } else { zeile[HF_POSITION_PREIS_MASCHINE] = new BigDecimal(0); } if (bVerdichtet) { if (iSortierung == FertigungReportFac.HF_OPTION_SORTIERUNG_ARTIKELNR) { boolean bGefunden = false; for (int k = 0; k < alDaten.size(); k++) { Object[] zeileTemp = (Object[]) alDaten.get(k); if (zeileTemp[HF_POSITION_ARTIKELNUMMMER] .equals(zeile[HF_POSITION_ARTIKELNUMMMER])) { bGefunden = true; zeileTemp[HF_LOSNUMMER] = ""; zeileTemp[HF_POSITION_AUSGEGEBEN] = ((BigDecimal) zeileTemp[HF_POSITION_AUSGEGEBEN]) .add((BigDecimal) zeile[HF_POSITION_AUSGEGEBEN]); zeileTemp[HF_POSITION_ABGELIFERT] = ((BigDecimal) zeileTemp[HF_POSITION_ABGELIFERT]) .add((BigDecimal) zeile[HF_POSITION_ABGELIFERT]); // Neuen Preis berechnen BigDecimal alterPreis = (BigDecimal) zeileTemp[HF_POSITION_PREIS]; BigDecimal alteOffen = (BigDecimal) zeileTemp[HF_POSITION_OFFEN]; BigDecimal neuerPreis = (BigDecimal) zeile[HF_POSITION_PREIS]; BigDecimal neueOffen = (BigDecimal) zeile[HF_POSITION_OFFEN]; BigDecimal wertNeu = alterPreis.multiply(alteOffen) .add(neuerPreis.multiply(neueOffen)); if (neueOffen.add(alteOffen).doubleValue() != 0) { zeileTemp[HF_POSITION_PREIS] = wertNeu.divide(neueOffen.add(alteOffen), 4, BigDecimal.ROUND_HALF_EVEN); } else { zeileTemp[HF_POSITION_PREIS] = new BigDecimal(0); } zeileTemp[HF_POSITION_OFFEN] = neueOffen.add(alteOffen); alDaten.set(k, zeileTemp); } } if (bGefunden == false) { alDaten.add(zeile); } } else if (iSortierung == FertigungReportFac.HF_OPTION_SORTIERUNG_LOSNR) { boolean bGefunden = false; for (int k = 0; k < alDaten.size(); k++) { Object[] zeileTemp = (Object[]) alDaten.get(k); if (zeileTemp[HF_LOSNUMMER].equals(zeile[HF_LOSNUMMER])) { bGefunden = true; zeileTemp[HF_POSITION_ARTIKELNUMMMER] = ""; zeileTemp[HF_POSITION_BEZEICHNUNG] = ""; zeileTemp[HF_POSITION_AUSGEGEBEN] = ((BigDecimal) zeileTemp[HF_POSITION_AUSGEGEBEN]) .add((BigDecimal) zeile[HF_POSITION_AUSGEGEBEN]); zeileTemp[HF_POSITION_ABGELIFERT] = ((BigDecimal) zeileTemp[HF_POSITION_ABGELIFERT]) .add((BigDecimal) zeile[HF_POSITION_ABGELIFERT]); // Neuen Preis berechnen BigDecimal alterPreis = (BigDecimal) zeileTemp[HF_POSITION_PREIS]; BigDecimal alteOffen = (BigDecimal) zeileTemp[HF_POSITION_OFFEN]; BigDecimal neuerPreis = (BigDecimal) zeile[HF_POSITION_PREIS]; BigDecimal neueOffen = (BigDecimal) zeile[HF_POSITION_OFFEN]; BigDecimal wertNeu = alterPreis.multiply(alteOffen) .add(neuerPreis.multiply(neueOffen)); if (neueOffen.add(alteOffen).doubleValue() != 0) { zeileTemp[HF_POSITION_PREIS] = wertNeu.divide(neueOffen.add(alteOffen), 4, BigDecimal.ROUND_HALF_EVEN); } else { zeileTemp[HF_POSITION_PREIS] = new BigDecimal(0); } zeileTemp[HF_POSITION_OFFEN] = neueOffen.add(alteOffen); alDaten.set(k, zeileTemp); } } if (bGefunden == false) { alDaten.add(zeile); } } } else { alDaten.add(zeile); } zeile = new Object[17]; zeile[HF_LOSNUMMER] = item.getC_nr(); } } mapParameter.put(LPReport.P_WAEHRUNG, theClientDto.getSMandantenwaehrung()); mapParameter.put("P_VERDICHTET", new Boolean(bVerdichtet)); if (iSortierung == FertigungReportFac.HF_OPTION_SORTIERUNG_LOSNR) { // Sortierng nach Losnr data = new Object[alDaten.size()][17]; data = (Object[][]) alDaten.toArray(data); initJRDS(mapParameter, FertigungReportFac.REPORT_MODUL, FertigungReportFac.REPORT_HALBFERTIGFABRIKATSINVENTUR, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); } else if (iSortierung == FertigungReportFac.HF_OPTION_SORTIERUNG_ARTIKELNR) { // Sortieren nach Identnr for (int k = alDaten.size() - 1; k > 0; --k) { for (int j = 0; j < k; ++j) { Object[] a1 = (Object[]) alDaten.get(j); Object[] a2 = (Object[]) alDaten.get(j + 1); if (((String) a1[HF_POSITION_ARTIKELNUMMMER]) .compareTo((String) a2[HF_POSITION_ARTIKELNUMMMER]) > 0) { alDaten.set(j, a2); alDaten.set(j + 1, a1); } } } data = new Object[alDaten.size()][17]; data = (Object[][]) alDaten.toArray(data); initJRDS(mapParameter, FertigungReportFac.REPORT_MODUL, FertigungReportFac.REPORT_HALBFERTIGFABRIKATSINVENTUR_IDENT, theClientDto.getMandant(), theClientDto.getLocUi(), theClientDto); } return getReportPrint(); } catch (RemoteException t) { throwEJBExceptionLPRespectOld(t); } finally { closeSession(session); } return getReportPrint(); }
From source file:com.lp.server.finanz.ejbfac.FibuExportFacBean.java
License:Open Source License
@TransactionAttribute(TransactionAttributeType.NEVER) private List<BuchungsjournalExportDatevBuchung> getBuchungen(Date von, Date bis, boolean mitAutoEB, boolean mitManEB, boolean mitAutoB, TheClientDto theClientDto) throws RemoteException, EJBExceptionLP { String mandant = theClientDto.getMandant(); ParametermandantDto pMitlaufendesKonto = getParameterFac().getMandantparameter(mandant, ParameterFac.KATEGORIE_FINANZ, ParameterFac.PARAMETER_EXPORT_DATEV_MITLAUFENDES_KONTO); String durchlaufKonto = pMitlaufendesKonto.getCWert(); ParametermandantDto pKontoklassenOhneUst = getParameterFac().getMandantparameter(mandant, ParameterFac.KATEGORIE_FINANZ, ParameterFac.PARAMETER_EXPORT_DATEV_KONTOKLASSEN_OHNE_BU_SCHLUESSEL); List<String> kontoklassenOhneUst = Arrays.asList(pKontoklassenOhneUst.getCWert().split(",")); FinanzamtDto[] finanzaemter = getFinanzFac().finanzamtFindAll(theClientDto); List<Integer> mitlaufendeKonten = new ArrayList<Integer>(); Map<Integer, Integer> mwstKonten = new HashMap<Integer, Integer>(); for (FinanzamtDto amt : finanzaemter) { SteuerkategorieDto[] stkDtos = getFinanzServiceFac() .steuerkategorieFindByFinanzamtIId(amt.getPartnerIId(), theClientDto); for (SteuerkategorieDto stkat : stkDtos) { if (stkat.getKontoIIdForderungen() != null) mitlaufendeKonten.add(stkat.getKontoIIdForderungen()); if (stkat.getKontoIIdVerbindlichkeiten() != null) mitlaufendeKonten.add(stkat.getKontoIIdVerbindlichkeiten()); SteuerkategoriekontoDto[] stkks = getFinanzServiceFac().steuerkategoriekontoFindAll(stkat.getIId()); for (SteuerkategoriekontoDto stkk : stkks) { if (mwstKonten.containsKey(stkk.getKontoIIdEk())) mwstKonten.put(stkk.getKontoIIdEk(), null); else mwstKonten.put(stkk.getKontoIIdEk(), stkk.getMwstsatzbezIId()); if (mwstKonten.containsKey(stkk.getKontoIIdVk())) mwstKonten.put(stkk.getKontoIIdVk(), null); else mwstKonten.put(stkk.getKontoIIdVk(), stkk.getMwstsatzbezIId()); if (mwstKonten.containsKey(stkk.getKontoIIdEinfuhrUst())) mwstKonten.put(stkk.getKontoIIdEinfuhrUst(), null); else mwstKonten.put(stkk.getKontoIIdEinfuhrUst(), stkk.getMwstsatzbezIId()); //gibt es fuer ein Konto mehrere zugewiesene MwstSaetze, null in die Map schreiben //so weiss man, dass das Konto entweder nur einen MwstSatz haben kann oder aber //wenn vorhanden in der Map aber null, dann MwstSatz berechnen. }/*from w ww. java 2 s . c o m*/ } } List<BuchungsjournalExportDatevBuchung> buchungen = new ArrayList<BuchungsjournalExportDatevBuchung>(); Session session = FLRSessionFactory.getFactory().openSession(); Criteria c = session.createCriteria(FLRFinanzBuchung.class); c.createAlias("flrkostenstelle", "ks"); if (!mitAutoB) c.add(Restrictions.like("b_autombuchung", 0)); if (!mitAutoEB) c.add(Restrictions.like("b_autombuchungeb", 0)); if (!mitManEB) c.add(Restrictions.not(Restrictions.like("buchungsart_c_nr", FinanzFac.BUCHUNGSART_EROEFFNUNG))); c.add(Restrictions.ge("d_buchungsdatum", von)).add(Restrictions.le("d_buchungsdatum", bis)) .add(Restrictions.like("ks.mandant_c_nr", mandant)).addOrder(Order.asc("d_buchungsdatum")) .addOrder(Order.asc("c_belegnummer")); Iterator<?> iter = c.list().iterator(); while (iter.hasNext()) { FLRFinanzBuchung hvBuchung = (FLRFinanzBuchung) iter.next(); @SuppressWarnings("unchecked") List<FLRFinanzBuchungDetail> haben = session.createCriteria(FLRFinanzBuchungDetail.class) .createAlias("flrbuchung", "b").add(Restrictions.eq("buchung_i_id", hvBuchung.getI_id())) .add(Restrictions.or( Restrictions.and(Restrictions.like("buchungdetailart_c_nr", BuchenFac.HabenBuchung), Restrictions.gt("n_betrag", BigDecimal.ZERO)), Restrictions.and(Restrictions.like("buchungdetailart_c_nr", BuchenFac.SollBuchung), Restrictions.lt("n_betrag", BigDecimal.ZERO)))) .add(Restrictions.or(Restrictions.eq("b.buchungsart_c_nr", FinanzFac.BUCHUNGSART_EROEFFNUNG), Restrictions.not(Restrictions.in("konto_i_id", mitlaufendeKonten)))) .addOrder(Order.asc("i_id")).list(); @SuppressWarnings("unchecked") List<FLRFinanzBuchungDetail> soll = session.createCriteria(FLRFinanzBuchungDetail.class) .createAlias("flrbuchung", "b").add(Restrictions.eq("buchung_i_id", hvBuchung.getI_id())) .add(Restrictions.or( Restrictions.and(Restrictions.like("buchungdetailart_c_nr", BuchenFac.SollBuchung), Restrictions.gt("n_betrag", BigDecimal.ZERO)), Restrictions.and(Restrictions.like("buchungdetailart_c_nr", BuchenFac.HabenBuchung), Restrictions.lt("n_betrag", BigDecimal.ZERO)))) .add(Restrictions.or(Restrictions.eq("b.buchungsart_c_nr", FinanzFac.BUCHUNGSART_EROEFFNUNG), Restrictions.not(Restrictions.in("konto_i_id", mitlaufendeKonten)))) .addOrder(Order.asc("i_id")).list(); String gegenkontoCNr; FLRFinanzKonto flrGegenkonto = null; List<FLRFinanzBuchungDetail> zuBuchen; String uid = null; boolean buSchluesselErlaubt = true; boolean buSchluesselGanzeBuchung = true; if (soll.size() == 1) { flrGegenkonto = soll.get(0).getFlrkonto(); gegenkontoCNr = flrGegenkonto.getC_nr(); uid = getUIDZuKonto(flrGegenkonto, theClientDto); zuBuchen = haben; } else if (haben.size() == 1) { gegenkontoCNr = haben.get(0).getFlrkonto().getC_nr(); flrGegenkonto = soll.get(0).getFlrkonto(); uid = getUIDZuKonto(flrGegenkonto, theClientDto); zuBuchen = soll; } else { zuBuchen = soll; zuBuchen.addAll(haben); gegenkontoCNr = durchlaufKonto; } if (flrGegenkonto != null && flrGegenkonto.getKontotyp_c_nr().equals(FinanzServiceFac.KONTOTYP_SACHKONTO)) { for (String klassen : kontoklassenOhneUst) { if (!klassen.isEmpty() && flrGegenkonto.getC_nr().startsWith(klassen)) { buSchluesselGanzeBuchung = false; break; } } } // zuBuchen = getBuchungenKorrekteUst(zuBuchen, mwstKonten); for (int i = 0; i < zuBuchen.size(); i++) { FLRFinanzBuchungDetail b = zuBuchen.get(i); FLRFinanzKonto konto = b.getFlrkonto(); buSchluesselErlaubt = true; if (konto.getKontotyp_c_nr().equals(FinanzServiceFac.KONTOTYP_SACHKONTO)) { for (String klassen : kontoklassenOhneUst) { if (!klassen.isEmpty() && konto.getC_nr().startsWith(klassen)) { buSchluesselErlaubt = false; break; } } } Integer fibuCode = 0; BigDecimal umsatz = null; if (mwstKonten.containsKey(b.getKonto_i_id())) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_KONTIERUNG_ZUGEORDNET, "Fehler! keine Mwst-Buchung erwartet!", (hvBuchung.getFlrfbbelegart() == null ? hvBuchung.getC_text() : hvBuchung.getFlrfbbelegart().getC_nr()) + " " + hvBuchung.getC_belegnummer()); // System.out.println("Fehler! keine Mwst-Buchung erwartet! " + hvBuchung.getC_belegnummer() + ", id = " + hvBuchung.getI_id()); // break; } else { if (zuBuchen.size() > i + 1) { FLRFinanzBuchungDetail mwstBuchung = zuBuchen.get(i + 1); if (mwstKonten.containsKey(mwstBuchung.getKonto_i_id())) { Integer mwstIId = mwstKonten.get(mwstBuchung.getKonto_i_id()); MwstsatzDto mwstDto; if (mwstIId != null) { mwstDto = getMandantFac().mwstsatzFindZuDatum(mwstIId, new Timestamp(hvBuchung.getD_buchungsdatum().getTime())); } else { mwstDto = getMandantFac().getMwstSatzVonBruttoBetragUndUst(mandant, new Timestamp(hvBuchung.getD_buchungsdatum().getTime()), b.getN_betrag(), mwstBuchung.getN_betrag()); } fibuCode = mwstDto.getIFibumwstcode(); if (fibuCode == null) { throw new EJBExceptionLP(EJBExceptionLP.FEHLER_FINANZ_EXPORT_KEIN_MWSTCODE, "", mwstDto.getMwstsatzbezDto().getCBezeichnung()); } umsatz = b.getN_betrag().add(mwstBuchung.getN_betrag()).abs(); i++; } } } BuchungsjournalExportDatevBuchung datevBuchung = new BuchungsjournalExportDatevBuchung(); datevBuchung.setUmsatz(umsatz == null ? b.getN_betrag().abs() : umsatz); boolean negativ = b.getN_betrag().signum() < 0; datevBuchung.setSoll(negativ != b.getBuchungdetailart_c_nr().equals(BuchenFac.SollBuchung)); //XOR datevBuchung.setKonto(b.getFlrkonto().getC_nr()); datevBuchung.setGegenkonto(gegenkontoCNr); if (hvBuchung.getT_storniert() != null) { fibuCode += 20; } if (buSchluesselErlaubt && buSchluesselGanzeBuchung) datevBuchung.setBuSchluessel(fibuCode == 0 ? "" : fibuCode.toString()); datevBuchung.setBelegdatum(hvBuchung.getD_buchungsdatum()); datevBuchung.setBeleg(hvBuchung.getC_belegnummer()); datevBuchung.setBuchungstext(hvBuchung.getC_text()); datevBuchung.setUid(uid == null ? getUIDZuKonto(b.getFlrkonto(), theClientDto) : uid); buchungen.add(datevBuchung); } } return buchungen; }