Example usage for java.math BigDecimal add

List of usage examples for java.math BigDecimal add

Introduction

In this page you can find the example usage for java.math BigDecimal add.

Prototype

public BigDecimal add(BigDecimal augend) 

Source Link

Document

Returns a BigDecimal whose value is (this + augend) , and whose scale is max(this.scale(), augend.scale()) .

Usage

From source file:com.lp.server.lieferschein.ejbfac.LieferscheinFacBean.java

/**
 * Berechnung des Gestehungswerts eines Lieferscheins. <br>
 * Der Gestehungswert ist die Summe ueber die Gestehungswerte der
 * enthaltenen Artikelpositionen. <br>
 * Der Gestehungswert einer Artikelposition errechnet sich aus Menge x
 * positionsbezogenem Gestehungspreis des enthaltenen Artikels.
 * /*ww w .  jav  a2  s.c om*/
 * @param iIdLieferscheinI
 *            PK des Lieferscheins
 * @param theClientDto
 *            der aktuelle Benutzer
 * @throws EJBExceptionLP
 *             Ausnahme
 * @return BigDecimal der Gestehungswert in der gewuenschten Waehrung
 */
public BigDecimal berechneGestehungswert(Integer iIdLieferscheinI, TheClientDto theClientDto)
        throws EJBExceptionLP {
    final String METHOD_NAME = "berechneGestehungswert";
    myLogger.entry();
    if (iIdLieferscheinI == null) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_PARAMETER_IS_NULL,
                new Exception("iIdLieferscheinI == null"));
    }

    BigDecimal bdGestehungswert = Helper.getBigDecimalNull();

    // alle Positionen dieses Lieferscheins
    Query query = em.createNamedQuery("LieferscheinpositionfindByLieferschein");
    query.setParameter(1, iIdLieferscheinI);
    Collection<?> c = query.getResultList();
    for (Iterator<?> iter = c.iterator(); iter.hasNext();) {
        Lieferscheinposition oPosition = ((Lieferscheinposition) iter.next());

        // alle positiven mengenbehafteten Positionen beruecksichtigen
        if (oPosition.getNMenge() != null && oPosition.getNMenge().doubleValue() > 0) {

            // Grundlage ist der positionsbezogene Gestehungspreis des
            // Artikels.

            if (oPosition.getLieferscheinpositionartCNr()
                    .equals(LieferscheinpositionFac.LIEFERSCHEINPOSITIONSART_IDENT)) {

                bdGestehungswert = bdGestehungswert.add(berechneGestehungswertEinerLieferscheinposition(
                        assembleLieferscheinpositionDto(oPosition), theClientDto));
            }
        }
    }

    bdGestehungswert = Helper.rundeKaufmaennisch(bdGestehungswert, 4);
    checkNumberFormat(bdGestehungswert);
    return bdGestehungswert;
}

From source file:com.lp.server.auftrag.ejbfac.AuftragFacBean.java

/**
 * Aktualisieren der Kopfdaten eines Auftrags.
 * //from  w ww .j av a2 s.c  om
 * @param auftragDtoI
 *            die Daten des Auftrags
 * @param waehrungOriCNrI
 *            die urspruengliche Belegwaehrung aenderewaehrung: 0
 * @param theClientDto
 *            der aktuelle Benutzer
 * @throws EJBExceptionLP
 *             Ausnahme
 */
// TODO Grosser Auftrag bei Kunden. Funktion sollte jedoch
// optimiert werden
@TransactionTimeout(60000)
public boolean updateAuftrag(AuftragDto auftragDtoI, String waehrungOriCNrI, TheClientDto theClientDto)
        throws EJBExceptionLP {
    checkAuftragDto(auftragDtoI);
    boolean bMwstSatzWurdeVonNullGeaendertUndEsGibtHandeingaben = false;
    AuftragDto auftragOldDto = auftragFindByPrimaryKey(auftragDtoI.getIId());
    try {
        AuftragpositionDto[] aAuftragpositionDto = getAuftragpositionFac()
                .auftragpositionFindByAuftrag(auftragDtoI.getIId());

        if (auftragOldDto.getAuftragartCNr().equals(AuftragServiceFac.AUFTRAGART_ABRUF)
                && aAuftragpositionDto.length > 0) {

            if (auftragOldDto.getAuftragartCNr().equals(AuftragServiceFac.AUFTRAGART_ABRUF)
                    && !auftragDtoI.getAuftragartCNr().equals(AuftragServiceFac.AUFTRAGART_ABRUF)) {
                throw new EJBExceptionLP(EJBExceptionLP.FEHLER_ABRUFAUFTRAG_KANN_NICHT_MEHR_VERAENDERT_WERDEN,
                        "FEHLER_ABRUFAUFTRAG_KANN_NICHT_MEHR_VERAENDERT_WERDEN");
            }

            if (!auftragOldDto.getAuftragIIdRahmenauftrag().equals(auftragDtoI.getAuftragIIdRahmenauftrag())) {
                throw new EJBExceptionLP(EJBExceptionLP.FEHLER_ABRUFAUFTRAG_KANN_NICHT_MEHR_VERAENDERT_WERDEN,
                        "FEHLER_ABRUFAUFTRAG_KANN_NICHT_MEHR_VERAENDERT_WERDEN");
            }
        }

        // SK: Fuer Voest eingebaut am 27.1.2009
        if (auftragOldDto.getDFinaltermin() != null && auftragDtoI.getDFinaltermin() != null) {
            if (!auftragOldDto.getDFinaltermin().equals(auftragDtoI.getDFinaltermin())) {
                // Finaltermin hat sich geaendert... Negative Positionen
                // bekommen neuen Positionstermin
                for (int i = 0; i < aAuftragpositionDto.length; i++) {
                    if (aAuftragpositionDto[i].getNMenge() != null) {
                        if (aAuftragpositionDto[i].getNMenge().compareTo(new BigDecimal(0)) < 0
                                && aAuftragpositionDto[i].getTUebersteuerbarerLiefertermin()
                                        .equals(auftragOldDto.getDFinaltermin())) {
                            aAuftragpositionDto[i]
                                    .setTUebersteuerbarerLiefertermin(auftragDtoI.getDFinaltermin());
                            getAuftragpositionFac().updateAuftragpositionOhneWeitereAktion(
                                    aAuftragpositionDto[i], theClientDto);
                            // Artikelreservierung Liefertermin aendern
                            if (aAuftragpositionDto[i].isIdent()) {
                                ArtikelreservierungDto artikelreservierungDto = getReservierungFac()
                                        .artikelreservierungFindByBelegartCNrBelegartPositionIIdOhneExc(
                                                LocaleFac.BELEGART_AUFTRAG, aAuftragpositionDto[i].getIId());
                                if (artikelreservierungDto != null) {
                                    artikelreservierungDto.setTLiefertermin(
                                            aAuftragpositionDto[i].getTUebersteuerbarerLiefertermin());
                                    getReservierungFac().updateArtikelreservierung(artikelreservierungDto);
                                }
                            }
                        }
                    }
                }
            }
        }
        // aenderewaehrung: 1 wenn die Waehrung geaendert wurde, muessen die
        // Belegwerte neu berechnet werden
        if (waehrungOriCNrI != null && !waehrungOriCNrI.equals(auftragDtoI.getCAuftragswaehrung())) {

            // aenderewaehrung: 2 die Positionswerte neu berechnen und
            // abspeichern
            BigDecimal ffWechselkurs = getLocaleFac().getWechselkurs2(waehrungOriCNrI,
                    auftragDtoI.getCAuftragswaehrung(), theClientDto);

            for (int i = 0; i < aAuftragpositionDto.length; i++) {
                if (aAuftragpositionDto[i].getNMenge() != null
                        && aAuftragpositionDto[i].getNEinzelpreis() != null) {
                    BigDecimal nNettoeinzelpreisInNeuerWaehrung = aAuftragpositionDto[i].getNEinzelpreis()
                            .multiply(ffWechselkurs);

                    VerkaufspreisDto verkaufspreisDto = getVkPreisfindungFac().berechnePreisfelder(
                            nNettoeinzelpreisInNeuerWaehrung, aAuftragpositionDto[i].getFRabattsatz(),
                            aAuftragpositionDto[i].getFZusatzrabattsatz(),
                            aAuftragpositionDto[i].getMwstsatzIId(), 4, // @todo Konstante PJ 3778
                            theClientDto);

                    aAuftragpositionDto[i].setNEinzelpreis(verkaufspreisDto.einzelpreis);
                    aAuftragpositionDto[i].setNRabattbetrag(verkaufspreisDto.rabattsumme);
                    aAuftragpositionDto[i].setNNettoeinzelpreis(verkaufspreisDto.nettopreis);
                    aAuftragpositionDto[i].setNMwstbetrag(verkaufspreisDto.mwstsumme);
                    aAuftragpositionDto[i].setNBruttoeinzelpreis(verkaufspreisDto.bruttopreis);
                    // alle Preisfelder incl. der zusaetzlichen Preisfelder
                    // befuellen
                    getAuftragpositionFac().updateAuftragpositionOhneWeitereAktion(aAuftragpositionDto[i],
                            theClientDto);
                }
            }
        }
        Timestamp auftragOldLT = Helper.cutTimestamp(auftragOldDto.getDLiefertermin());
        if (!auftragOldDto.getDLiefertermin().equals(auftragDtoI.getDLiefertermin())) {
            for (int i = 0; i < aAuftragpositionDto.length; i++) {
                Timestamp posLT = Helper
                        .cutTimestamp(aAuftragpositionDto[i].getTUebersteuerbarerLiefertermin());
                if (posLT.equals(auftragOldLT)) {
                    aAuftragpositionDto[i].setTUebersteuerbarerLiefertermin(
                            new Timestamp(auftragDtoI.getDLiefertermin().getTime()));
                    getAuftragpositionFac().updateAuftragpositionOhneWeitereAktion(aAuftragpositionDto[i],
                            theClientDto);
                    // Artikelreservierung Liefertermin aendern
                    if (aAuftragpositionDto[i].isIdent()) {
                        ArtikelreservierungDto artikelreservierungDto = getReservierungFac()
                                .artikelreservierungFindByBelegartCNrBelegartPositionIIdOhneExc(
                                        LocaleFac.BELEGART_AUFTRAG, aAuftragpositionDto[i].getIId());
                        if (artikelreservierungDto != null) {
                            artikelreservierungDto
                                    .setTLiefertermin(new Timestamp(auftragDtoI.getDLiefertermin().getTime()));
                            getReservierungFac().updateArtikelreservierung(artikelreservierungDto);
                        }
                    }
                }
            }
        }
        // Auftrag Kunde wurde geaendert ?
        if (!auftragOldDto.getKundeIIdAuftragsadresse().equals(auftragDtoI.getKundeIIdAuftragsadresse())) {
            // mwstsatz
            KundeDto kundeDto = getKundeFac().kundeFindByPrimaryKey(auftragDtoI.getKundeIIdAuftragsadresse(),
                    theClientDto);
            KundeDto kundeDtoVorher = getKundeFac()
                    .kundeFindByPrimaryKey(auftragOldDto.getKundeIIdAuftragsadresse(), theClientDto);
            ParametermandantDto parameterPositionskontierung = getParameterFac().getMandantparameter(
                    theClientDto.getMandant(), ParameterFac.KATEGORIE_KUNDEN,
                    ParameterFac.PARAMETER_KUNDEN_POSITIONSKONTIERUNG);

            boolean bDefaultMwstsatzAusArtikel = (Boolean) parameterPositionskontierung.getCWertAsObject();

            for (int i = 0; i < aAuftragpositionDto.length; i++) {
                if (aAuftragpositionDto[i].isIdent() || aAuftragpositionDto[i].isHandeingabe()) {

                    MwstsatzDto mwstsatzDto = getMandantFac().mwstsatzFindByMwstsatzbezIIdAktuellster(
                            kundeDto.getMwstsatzbezIId(), theClientDto);
                    if (bDefaultMwstsatzAusArtikel && aAuftragpositionDto[i].isIdent()) {
                        ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKeySmall(
                                aAuftragpositionDto[i].getArtikelIId(), theClientDto);
                        if (artikelDto.getMwstsatzbezIId() != null) {
                            mwstsatzDto = getMandantFac().mwstsatzFindByMwstsatzbezIIdAktuellster(
                                    artikelDto.getMwstsatzbezIId(), theClientDto);
                        }

                    }
                    // SP503
                    if (bDefaultMwstsatzAusArtikel && aAuftragpositionDto[i].isHandeingabe()) {

                        // Wenn alter und neuer Kunde den gleichen MWST-Satz
                        // haben, dann nichts tun
                        MwstsatzDto mwstsatzDtoKundeNeu = getMandantFac()
                                .mwstsatzFindByMwstsatzbezIIdAktuellster(kundeDto.getMwstsatzbezIId(),
                                        theClientDto);

                        MwstsatzDto mwstsatzDtoKundeVorher = getMandantFac()
                                .mwstsatzFindByMwstsatzbezIIdAktuellster(kundeDtoVorher.getMwstsatzbezIId(),
                                        theClientDto);

                        if (mwstsatzDtoKundeVorher.getFMwstsatz() == 0
                                && mwstsatzDtoKundeNeu.getFMwstsatz() > 0) {

                            bMwstSatzWurdeVonNullGeaendertUndEsGibtHandeingaben = true;
                        }

                        if (mwstsatzDtoKundeNeu.getIId().equals(mwstsatzDtoKundeVorher.getIId())) {
                            continue;
                        }
                    }
                    if (!aAuftragpositionDto[i].getMwstsatzIId().equals(mwstsatzDto.getIId())) {
                        aAuftragpositionDto[i].setMwstsatzIId(mwstsatzDto.getIId());

                        BigDecimal mwstBetrag = aAuftragpositionDto[i]
                                .getNNettoeinzelpreisplusversteckteraufschlagminusrabatte()
                                .multiply(new BigDecimal(mwstsatzDto.getFMwstsatz().doubleValue())
                                        .movePointLeft(2));
                        aAuftragpositionDto[i].setNMwstbetrag(mwstBetrag);
                        aAuftragpositionDto[i].setNBruttoeinzelpreis(mwstBetrag.add(aAuftragpositionDto[i]
                                .getNNettoeinzelpreisplusversteckteraufschlagminusrabatte()));
                        getAuftragpositionFac().updateAuftragpositionOhneWeitereAktion(aAuftragpositionDto[i],
                                theClientDto);
                    }
                }
            }
            // Kopftext und Fusstext zuruecksetzen
            auftragDtoI.setCFusstextUebersteuert(null);
            auftragDtoI.setCKopftextUebersteuert(null);
        }
        auftragDtoI.setPersonalIIdAendern(theClientDto.getIDPersonal());
        auftragDtoI.setTAendern(getTimestamp());

        Auftrag auftrag = em.find(Auftrag.class, auftragDtoI.getIId());

        if (auftrag == null) {
            throw new EJBExceptionLP(EJBExceptionLP.FEHLER_BEI_FINDBYPRIMARYKEY, "");
        }
        if (auftrag.getAuftragartCNr().equals(AuftragServiceFac.AUFTRAGART_ABRUF)) {
            if (!auftragDtoI.getAuftragartCNr().equals(AuftragServiceFac.AUFTRAGART_ABRUF))
                auftragDtoI.setAuftragIIdRahmenauftrag(null);

        }

        if (!auftragDtoI.getKundeIIdAuftragsadresse().equals(auftrag.getKundeIIdAuftragsadresse())) {
            KundeDto kundeDto = getKundeFac().kundeFindByPrimaryKey(auftragDtoI.getKundeIIdAuftragsadresse(),
                    theClientDto);

            Integer iGarantie = new Integer(0);
            if (kundeDto.getIGarantieinmonaten() != null) {
                iGarantie = kundeDto.getIGarantieinmonaten();
            }
            auftragDtoI.setIGarantie(iGarantie);
        }

        setAuftragFromAuftragDto(auftrag, auftragDtoI);
        // aenderewaehrung: 3 der Status des Auftrags wechselt auf Angelegt
        pruefeUndSetzeAuftragstatusBeiAenderung(auftragDtoI.getIId(), theClientDto);
    } catch (RemoteException ex) {
        throwEJBExceptionLPRespectOld(ex);
    }
    return bMwstSatzWurdeVonNullGeaendertUndEsGibtHandeingaben;
}

From source file:com.turborep.turbotracker.banking.service.BankingServiceImpl.java

@Override
public BigDecimal getpageinitialamount(int from, int to, int moaccountid) throws BankingException {

    String aTransactionCountStr = "SELECT (SELECT IFNULL(SUM(amount) ,0.00) FROM (SELECT amount FROM moTransaction WHERE moTransactionTypeID=0 AND moAccountID="
            + moaccountid + " ORDER BY moTransactionID DESC LIMIT " + from + "," + to
            + ") price) AS depositamount,"
            + "(SELECT IFNULL(SUM(amount),0.00) FROM (SELECT amount FROM moTransaction WHERE moTransactionTypeID>0 AND moAccountID=4 ORDER BY moTransactionID DESC LIMIT "
            + from + "," + to + ") price) AS withdrawelamount FROM DUAL";
    Session aSession = null;// ww w .ja v a  2s.co  m
    BigDecimal depositamount = new BigDecimal(0);
    BigDecimal withdrawelamount = new BigDecimal(0);
    BigDecimal returnvalue = new BigDecimal(0);
    itsLogger.info("getpageinitialamount==" + aTransactionCountStr);
    try {
        // Retrieve session from Hibernate
        aSession = itsSessionFactory.openSession();
        Query aQuery = aSession.createSQLQuery(aTransactionCountStr);
        Iterator<?> aIterator = aQuery.list().iterator();
        if (aIterator.hasNext()) {
            Object[] aObj = (Object[]) aIterator.next();
            depositamount = (BigDecimal) aObj[0];
            withdrawelamount = (BigDecimal) aObj[1];
        }
        returnvalue = depositamount.add(withdrawelamount);
    } catch (Exception e) {
        e.printStackTrace();
        BankingException aBankingException = new BankingException(e.getMessage(), e);
        throw aBankingException;
    } finally {
        aSession.flush();
        aSession.close();
        aTransactionCountStr = null;
    }
    return returnvalue;
}

From source file:com.turborep.turbotracker.banking.service.BankingServiceImpl.java

@Override
public boolean updateReconcileDetails(MoAccount theMoAccount) throws BankingException {
    Session aSession = itsSessionFactory.openSession();
    MoAccount aMoAccount = null;// www .  j  ava 2s.c  o m
    Transaction aTransaction;
    String updateMoTransaction = null;
    String getMoTransaction = null;
    Motransaction aMotransaction = null;
    BigDecimal sumDep = BigDecimal.ZERO;
    BigDecimal sumWidh = BigDecimal.ZERO;
    try {
        aTransaction = aSession.beginTransaction();
        aTransaction.begin();

        getMoTransaction = "Select moTransactionTypeID,Amount from moTransaction where moAccountID = "
                + theMoAccount.getMoAccountId() + " AND tempRec = 1 AND Void<>1";
        Query aQuery = aSession.createSQLQuery(getMoTransaction);
        Iterator<?> aIterator = aQuery.list().iterator();
        while (aIterator.hasNext()) {
            Object[] aObj = (Object[]) aIterator.next();

            if (aObj[0] != null) {
                if ((Short) aObj[0] == 0) {
                    sumDep = sumDep.add((BigDecimal) aObj[1]);
                } else {
                    sumWidh = sumWidh.add((BigDecimal) aObj[1]);
                }
            }

        }

        aMoAccount = (MoAccount) aSession.get(MoAccount.class, theMoAccount.getMoAccountId());
        aMoAccount.setOpenBalance(theMoAccount.getOpenBalance());
        aMoAccount.setEndingBalance(theMoAccount.getEndingBalance());
        aMoAccount.setAdditions(aMoAccount.getAdditions().subtract(sumDep));
        aMoAccount.setSubtractions(aMoAccount.getSubtractions().add(sumWidh));
        aSession.update(aMoAccount);

        updateMoTransaction = "UPDATE Motransaction set reconciled = 1,tempRec=0 WHERE tempRec = 1";
        Query query = aSession.createQuery(updateMoTransaction);
        int result = query.executeUpdate();
        itsLogger.info("Rows affected: " + result);
        aTransaction.commit();
    } catch (Exception e) {
        itsLogger.error(e.getMessage(), e);
        BankingException aBankingException = new BankingException(e.getMessage(), e);
        throw aBankingException;
    } finally {
        aSession.flush();
        aSession.close();
        updateMoTransaction = null;
    }
    return true;
}

From source file:com.lp.server.lieferschein.ejbfac.LieferscheinFacBean.java

/**
 * Berechnung des Gestehungswerts eines Lieferscheins. <br>
 * Der Gestehungswert ist die Summe ueber die Gestehungswerte der
 * enthaltenen Artikelpositionen. <br>
 * Der Gestehungswert einer Artikelposition errechnet sich aus Menge x
 * positionsbezogenem Gestehungspreis des enthaltenen Artikels.
 * /*from   w w w.ja  v a2 s  .co  m*/
 * @param iIdLieferscheinI
 *            PK des Lieferscheins
 * @param theClientDto
 *            der aktuelle Benutzer
 * @throws EJBExceptionLP
 *             Ausnahme
 * @return BigDecimal der Gestehungswert in der gewuenschten Waehrung
 */
public BigDecimal berechneGestehungswertZielLager(Integer iIdLieferscheinI, TheClientDto theClientDto)
        throws EJBExceptionLP {
    final String METHOD_NAME = "berechneGestehungswert";
    myLogger.entry();
    if (iIdLieferscheinI == null) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_PARAMETER_IS_NULL,
                new Exception("iIdLieferscheinI == null"));
    }
    BigDecimal bdGestehungswert = Helper.getBigDecimalNull();
    // alle Positionen dieses Lieferscheins
    Query query = em.createNamedQuery("LieferscheinpositionfindByLieferschein");
    query.setParameter(1, iIdLieferscheinI);
    Collection<?> c = query.getResultList();
    for (Iterator<?> iter = c.iterator(); iter.hasNext();) {
        Lieferscheinposition oPosition = ((Lieferscheinposition) iter.next());
        // alle positiven mengenbehafteten Positionen beruecksichtigen
        if (oPosition.getNMenge() != null && oPosition.getNMenge().doubleValue() > 0) {
            // Grundlage ist der positionsbezogene Gestehungspreis des
            // Artikels.
            BigDecimal bdGestehungspreis = Helper.getBigDecimalNull();
            BigDecimal bdWertderposition = Helper.getBigDecimalNull();
            if (oPosition.getLieferscheinpositionartCNr()
                    .equals(LieferscheinpositionFac.LIEFERSCHEINPOSITIONSART_IDENT)) {
                bdWertderposition = oPosition.getNMenge().multiply(oPosition.getNNettoeinzelpreis());
                bdGestehungswert = bdGestehungswert.add(bdWertderposition);
            }
        }
    }
    bdGestehungswert = Helper.rundeKaufmaennisch(bdGestehungswert, 4);
    checkNumberFormat(bdGestehungswert);
    return bdGestehungswert;
}

From source file:com.lp.server.auftrag.ejbfac.AuftragFacBean.java

/**
 * Berechnet den Nettoauftragswert fuer einen Kunden in einem bestimmten
 * Zeitintervall.//from   w  w  w.j ava2s .c o  m
 * 
 * @param iIdKundeI
 *            pk des Kunden
 * @param datVonI
 *            von diesem Datum weg inclusive diesem Datum
 * @param datBisI
 *            bis zu diesem Datum inclusive diesem Datum
 * @param cCurrencyI
 *            die Zielwaehrung
 * @throws EJBExceptionLP
 * @return BigDecimal der Nettoauftragswert ohne Mwst
 */
public BigDecimal berechneGesamtwertAuftragProKundeProZeitintervall(Integer iIdKundeI, Date datVonI,
        Date datBisI, String cCurrencyI) throws EJBExceptionLP {
    final String METHOD_NAME = "berechneGesamtwertAuftragProKundeProZeitintervall";

    if (iIdKundeI == null) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_PARAMETER_IS_NULL, new Exception("iiKundeI == null"));
    }
    if (datVonI == null) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_PARAMETER_IS_NULL, new Exception("datVonI == null"));
    }
    if (datVonI == null) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_PARAMETER_IS_NULL, new Exception("datBisI == null"));
    }
    if (cCurrencyI == null) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_PARAMETER_IS_NULL, new Exception("cCurrencyI == null"));
    }

    BigDecimal bdAuftragswertSumme = Helper.getBigDecimalNull();
    Query query = em.createNamedQuery("AuftragfindByKundeBelegdatumVonBis");
    query.setParameter(1, iIdKundeI);
    query.setParameter(2, datVonI);
    query.setParameter(3, datBisI);
    Collection<?> c = query.getResultList();
    for (Iterator<?> iter = c.iterator(); iter.hasNext();) {
        Auftrag auftrag = ((Auftrag) iter.next());

        // der gesamtwert des auftrags ist in der db hinterlegt
        BigDecimal bdAuftragswert = auftrag.getNGesamtauftragswertinauftragswaehrung();

        // der auftragswert muss in die zielwaehrung umgerechnet werden
        // bdAuftragswert = getLocaleFac().
        // rechneUmInAndereWaehrung(bdAuftragswert,
        // auftrag.getCAuftragswaehrung(), cCurrencyI);

        bdAuftragswertSumme = bdAuftragswertSumme.add(bdAuftragswert);
    }
    return bdAuftragswertSumme;
}

From source file:com.lp.server.auftrag.ejbfac.AuftragFacBean.java

/**
 * Berechnet den Nettoauftragswert fuer alle Auftraege eines Kunden
 * innerhalb eines bestimmten Zeitintervalls, die sich in einem bestimmten
 * Status befinden./*  www . j  av a 2 s.c  o  m*/
 * 
 * @param sStatusI
 *            der gewuenschte Status
 * @param iIdKundeI
 *            pk des Kunden
 * @param datVonI
 *            alle Auftraege ab diesem Datum inclusive
 * @param datBisI
 *            alle Auftraege bis zu diesem Datum inclusive
 * @param cCurrencyI
 *            die Zielwaehrung
 * @throws EJBExceptionLP
 * @return BigDecimal der Gesamtwert in Zielwaehrung
 */
public BigDecimal berechneGesamtwertAuftragProStatusProKundeProZeitintervall(String sStatusI, Integer iIdKundeI,
        Date datVonI, Date datBisI, String cCurrencyI) throws EJBExceptionLP {
    final String METHOD_NAME = "berechneGesamtwertAuftragProStatusProKundeProZeitintervall";

    if (sStatusI == null) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_PARAMETER_IS_NULL, new Exception("sStatusI == null"));
    }
    if (iIdKundeI == null) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_PARAMETER_IS_NULL, new Exception("iiKundeI == null"));
    }
    if (datVonI == null) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_PARAMETER_IS_NULL, new Exception("datVonI == null"));
    }
    if (datVonI == null) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_PARAMETER_IS_NULL, new Exception("datBisI == null"));
    }
    if (cCurrencyI == null) {
        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_PARAMETER_IS_NULL, new Exception("cCurrencyI == null"));
    }

    BigDecimal bdAuftragswertSumme = Helper.getBigDecimalNull();
    Query query = em.createNamedQuery("AuftragfindByStatusKundeBelegdatumVonBis");
    query.setParameter(1, sStatusI);
    query.setParameter(2, iIdKundeI);
    query.setParameter(3, datVonI);
    query.setParameter(4, datBisI);
    Collection<?> c = query.getResultList();
    for (Iterator<?> iter = c.iterator(); iter.hasNext();) {
        Auftrag auftrag = ((Auftrag) iter.next());

        // der gesamtwert des auftrags ist in der db hinterlegt
        BigDecimal bdAuftragswert = auftrag.getNGesamtauftragswertinauftragswaehrung();

        // der auftragswert muss in die zielwaehrung umgerechnet werden
        // bdAuftragswert = getLocaleFac().
        // rechneUmInAndereWaehrung(bdAuftragswert,
        // auftrag.getCAuftragswaehrung(), cCurrencyI);

        bdAuftragswertSumme = bdAuftragswertSumme.add(bdAuftragswert);
    }
    return bdAuftragswertSumme;
}

From source file:com.selfsoft.business.service.impl.TbFixEntrustServiceImpl.java

public BigDecimal getTotalSellPriceByEntrustList(List<TbFixEntrust> tbfixEntrustList) {
    if (tbfixEntrustList == null || tbfixEntrustList.size() == 0)
        return new BigDecimal("0.00");

    String entrustIds = "";
    for (TbFixEntrust tbFixEntrust : tbfixEntrustList) {
        entrustIds += tbFixEntrust.getId() + ",";
    }/*  ww  w . j  av a 2  s  .co m*/
    entrustIds = tbfixEntrustList.size() > 0 ? entrustIds.substring(0, entrustIds.length() - 1) : null;

    if (entrustIds != null) {

        StringBuilder sql = new StringBuilder();
        sql.append("select sum(m.price*m.part_quantity) from tb_fix_entrust fe , tb_maintain_part_content m ");
        sql.append(" where fe.id = m.entrust_id and m.is_free = 1 and m.is_confirm not in (8000)");
        sql.append(" and fe.id in ( " + entrustIds + ")");
        sql.append(" union all");
        sql.append(
                " select sum(sod.price*sod.quantity) from tb_fix_entrust fe , tm_stock_out so  , tm_stockout_detail sod");
        sql.append(
                " where fe.entrust_code = so.trust_bill  and sod.is_free = 1 and so.id = sod.stockout_id and so.is_confirm not in (8000)");
        sql.append(" and fe.id in ( " + entrustIds + ")");

        List<BigDecimal> objList = tbFixEntrustDao.findByOriginSql(sql.toString(), null);

        BigDecimal wxSellPrice = objList.get(0) != null ? new BigDecimal(objList.get(0).toString())
                : new BigDecimal("0.00");

        BigDecimal xsSellPrice = objList.get(1) != null ? new BigDecimal(objList.get(1).toString())
                : new BigDecimal("0.00");

        BigDecimal result = wxSellPrice.add(xsSellPrice).divide(new BigDecimal("1.00"), 2,
                BigDecimal.ROUND_HALF_UP);

        return result;
    }
    return new BigDecimal("0.00");
}

From source file:com.selfsoft.business.service.impl.TbFixEntrustServiceImpl.java

public BigDecimal getTotalCostPriceByEntrustList(List<TbFixEntrust> tbfixEntrustList) {
    if (tbfixEntrustList == null || tbfixEntrustList.size() == 0)
        return new BigDecimal("0.00");

    String entrustIds = "";
    for (TbFixEntrust tbFixEntrust : tbfixEntrustList) {
        entrustIds += tbFixEntrust.getId() + ",";
    }/*from w w w.j  av  a  2  s .com*/
    entrustIds = tbfixEntrustList.size() > 0 ? entrustIds.substring(0, entrustIds.length() - 1) : null;

    if (entrustIds != null) {

        StringBuilder sql = new StringBuilder();
        sql.append(
                "select sum(pi.cost_price*m.part_quantity) from tb_fix_entrust fe , tb_maintain_part_content m  , tb_part_info pi");
        sql.append(
                " where fe.id = m.entrust_id and pi.id = m.part_id and m.is_free = 1 and m.is_confirm not in (8000) ");
        sql.append(" and fe.id in ( " + entrustIds + ")");
        sql.append(" union all");
        sql.append(
                " select sum(pi.cost_price*sod.quantity) from tb_fix_entrust fe , tm_stock_out so  , tm_stockout_detail sod , tb_part_info pi");
        sql.append(
                " where fe.entrust_code = so.trust_bill and pi.id = sod.partinfo_id and sod.is_free = 1 and so.id = sod.stockout_id and so.is_confirm not in (8000)");
        sql.append(" and fe.id in ( " + entrustIds + ")");

        List<BigDecimal> objList = tbFixEntrustDao.findByOriginSql(sql.toString(), null);

        BigDecimal wxCostPrice = objList.get(0) != null ? new BigDecimal(objList.get(0).toString())
                : new BigDecimal("0.00");

        BigDecimal xsCostPrice = objList.get(1) != null ? new BigDecimal(objList.get(1).toString())
                : new BigDecimal("0.00");

        BigDecimal result = wxCostPrice.add(xsCostPrice).divide(new BigDecimal("1.00"), 2,
                BigDecimal.ROUND_HALF_UP);

        return result;
    }
    return new BigDecimal("0.00");
}