Example usage for java.math BigDecimal divide

List of usage examples for java.math BigDecimal divide

Introduction

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

Prototype

public BigDecimal divide(BigDecimal divisor, MathContext mc) 

Source Link

Document

Returns a BigDecimal whose value is (this / divisor) , with rounding according to the context settings.

Usage

From source file:com.lp.server.fertigung.ejbfac.FertigungFacBean.java

private void erstelleLossollmaterial(Integer losIId, Integer stuecklisteIId, BigDecimal bdPositionsMenge,
        Integer lagerIId_Hauptlager, boolean bFlachdruecken, int iEbene, TheClientDto theClientDto) {
    iEbene++;/*from  w ww.j  a va 2  s .  co m*/
    try {
        StuecklistepositionDto[] stkPos = getStuecklisteFac()
                .stuecklistepositionFindByStuecklisteIId(stuecklisteIId, theClientDto);

        StuecklisteDto stklDto = getStuecklisteFac().stuecklisteFindByPrimaryKey(stuecklisteIId, theClientDto);

        for (int i = 0; i < stkPos.length; i++) {
            // alle stuecklistenpositionen ins los uebernehmen

            LossollmaterialDto losMatDto = new LossollmaterialDto();
            losMatDto.setArtikelIId(stkPos[i].getArtikelIId());
            losMatDto.setBNachtraeglich(Helper.boolean2Short(false));
            losMatDto.setCKommentar(stkPos[i].getCKommentar());
            losMatDto.setCPosition(stkPos[i].getCPosition());
            losMatDto.setFDimension1(stkPos[i].getFDimension1());
            losMatDto.setFDimension2(stkPos[i].getFDimension2());
            losMatDto.setFDimension3(stkPos[i].getFDimension3());
            losMatDto.setILfdnummer(stkPos[i].getILfdnummer());
            losMatDto.setIBeginnterminoffset(stkPos[i].getIBeginnterminoffset());
            losMatDto.setISort(stkPos[i].getISort());
            losMatDto.setLosIId(losIId);
            losMatDto.setMontageartIId(stkPos[i].getMontageartIId());
            // Einheit umrechnen
            ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKey(stkPos[i].getArtikelIId(),
                    theClientDto);
            losMatDto.setEinheitCNr(artikelDto.getEinheitCNr());
            BigDecimal bdFaktor = getSystemFac().rechneUmInAndereEinheit(new BigDecimal(1),
                    artikelDto.getEinheitCNr(), stkPos[i].getEinheitCNr(), stkPos[i].getIId(), theClientDto);

            // nun die Dimensionen
            BigDecimal bdDimProdukt = new BigDecimal(1);
            EinheitDto einheitDto = getSystemFac().einheitFindByPrimaryKey(stkPos[i].getEinheitCNr(),
                    theClientDto);
            if (einheitDto.getIDimension().intValue() >= 1) {
                if (stkPos[i].getFDimension1() != null) {
                    bdDimProdukt = bdDimProdukt
                            .multiply(new BigDecimal(stkPos[i].getFDimension1().floatValue()));
                }
            }
            if (einheitDto.getIDimension().intValue() >= 2) {
                if (stkPos[i].getFDimension2() != null) {
                    bdDimProdukt = bdDimProdukt
                            .multiply(new BigDecimal(stkPos[i].getFDimension2().floatValue()));
                }
            }
            if (einheitDto.getIDimension().intValue() >= 3) {
                if (stkPos[i].getFDimension3() != null) {
                    bdDimProdukt = bdDimProdukt
                            .multiply(new BigDecimal(stkPos[i].getFDimension3().floatValue()));
                }
            }
            // verschnitt
            BigDecimal bdMenge = Helper.berechneMengeInklusiveVerschnitt(stkPos[i].getNMenge(),
                    artikelDto.getFVerschnittfaktor(), artikelDto.getFVerschnittbasis(), bdPositionsMenge);

            // endgueltige Menge berechnen
            if (bdFaktor.doubleValue() != 0) {

                bdMenge = bdMenge.divide(bdFaktor, BigDecimal.ROUND_HALF_EVEN);

                BigDecimal losSollMenge = bdMenge.multiply(bdDimProdukt).multiply(bdPositionsMenge).divide(
                        new BigDecimal(stklDto.getIErfassungsfaktor().doubleValue()),
                        BigDecimal.ROUND_HALF_EVEN);

                if (losSollMenge.doubleValue() < 0.001 && losSollMenge.doubleValue() > 0.000001) {
                    losSollMenge = new BigDecimal("0.001");
                    losSollMenge = losSollMenge.setScale(3, BigDecimal.ROUND_HALF_EVEN);
                } else {
                    losSollMenge = losSollMenge.setScale(3, BigDecimal.ROUND_HALF_EVEN);
                }

                losMatDto.setNMenge(losSollMenge);

            }

            BigDecimal bdSollpreis = getLagerFac().getGemittelterGestehungspreisEinesLagers(
                    stkPos[i].getArtikelIId(), lagerIId_Hauptlager, theClientDto);
            losMatDto.setNSollpreis(bdSollpreis);
            // Datensatz speichern

            // Wenn Unterstueckliste und Hilfsstueckliste:

            StuecklisteDto stuecklisteDto = getStuecklisteFac()
                    .stuecklisteFindByMandantCNrArtikelIIdOhneExc(stkPos[i].getArtikelIId(), theClientDto);

            if (stuecklisteDto != null && stuecklisteDto.getArtikelIId() == 3376) {
                int u = 0;

            }

            if (stuecklisteDto != null && stuecklisteDto.getStuecklisteartCNr()
                    .equals(StuecklisteFac.STUECKLISTEART_HILFSSTUECKLISTE) && bFlachdruecken == true) {
                if (iEbene < 10) {
                    erstelleLossollmaterial(losIId, stuecklisteDto.getIId(), losMatDto.getNMenge(),
                            lagerIId_Hauptlager, true, iEbene, theClientDto);

                }

            } else {

                LossollmaterialDto lossollmaterialDto = createLossollmaterial(losMatDto, theClientDto);

                Integer iOriginal_IId = new Integer(lossollmaterialDto.getIId());

                // Ersatztypen anlegen
                PosersatzDto[] posersatzDtos = getStuecklisteFac()
                        .posersatzFindByStuecklistepositionIId(stkPos[i].getIId());
                if (iEbene < 10) {
                    for (int k = 0; k < posersatzDtos.length; k++) {

                        losMatDto.setArtikelIId(posersatzDtos[k].getArtikelIIdErsatz());
                        losMatDto.setNMenge(new BigDecimal(0));
                        losMatDto.setLossollmaterialIIdOriginal(iOriginal_IId);
                        createLossollmaterial(losMatDto, theClientDto);

                    }
                }
            }
        }
    } catch (RemoteException ex1) {
        throwEJBExceptionLPRespectOld(ex1);
    }
}

From source file:com.lp.server.fertigung.ejbfac.FertigungFacBean.java

@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public BigDecimal getAusgegebeneMengePreis(Integer lossollmaterialIId, java.sql.Timestamp tStichtag,
        TheClientDto theClientDto) throws EJBExceptionLP {
    try {//  w  w w  .  jav a2s  .c om
        BigDecimal bdMenge = new BigDecimal(0);
        BigDecimal bdWert = new BigDecimal(0);
        LosistmaterialDto[] losist = losistmaterialFindByLossollmaterialIId(lossollmaterialIId);
        for (int i = 0; i < losist.length; i++) {

            BigDecimal bdAusgegeben = getLagerFac().getMengeEinerBelegposition(LocaleFac.BELEGART_LOS,
                    losist[i].getIId(), tStichtag);

            if (Helper.short2boolean(losist[i].getBAbgang())) {

                BigDecimal bdPreis = getLagerFac().getGemittelterGestehungspreisEinerAbgangsposition(
                        LocaleFac.BELEGART_LOS, losist[i].getIId());
                bdMenge = bdMenge.add(bdAusgegeben);
                bdWert = bdWert.add(bdPreis.multiply(bdAusgegeben));
            } else {
                BigDecimal bdPreis = getLagerFac().getGemittelterEinstandspreisEinerZugangsposition(
                        LocaleFac.BELEGART_LOS, losist[i].getIId());
                bdMenge = bdMenge.subtract(bdAusgegeben);
                bdWert = bdWert.subtract(bdPreis.multiply(bdAusgegeben));
            }
        }
        if (bdMenge.doubleValue() == 0) {
            return bdMenge;
        } else {
            return bdWert.divide(bdMenge, BigDecimal.ROUND_HALF_EVEN);
        }
    } catch (RemoteException ex) {
        throwEJBExceptionLPRespectOld(ex);
        return null;
    }
}