public void testInvoiceSatsTakAndNoTak() throws Exception { BigDecimal omsetning = new BigDecimal(100000); BigDecimal gulv = BigDecimal.valueOf(0); BigDecimal tak = BigDecimal.valueOf(50000); utilTest.addAvdelingBetingelse( "MND", "FRA", 0, "2006.01.01", "2010.01.31", "ETT", null, BigDecimal.valueOf(3), gulv, tak); utilTest.addAvdelingBetingelse( "MND", "HUS", 0, "2006.01.01", "2010.01.31", "ETT", null, BigDecimal.valueOf(4), null, null); utilTest.addAvdelingOmsetning(new Integer(2006), omsetning, new Integer(1), null); utilTest.addAvdelingKontrakt("2005.10.01", "2010.01.31"); Integer buntId = utilTest.fakturerPeriode(new Integer(2006), 1, 1, "Franchiseavgift", 1); utilTest.addBunt(buntId); List<Faktura> list = utilTest.findFakturaerByBuntId(buntId); assertEquals(1, list.size()); assertNull(list.get(0).getFakturaNr()); List<FakturaLinje> linjer = utilTest.findFakturaLinjerByFakturaId(list.get(0).getFakturaId()); assertEquals(2, linjer.size()); FakturaLinje fakturaLinje = linjer.get(0); BigDecimal forsteBelop = tak.subtract(gulv) .multiply(new BigDecimal(0.03), MathContext.DECIMAL32) .round(new MathContext(4, RoundingMode.HALF_EVEN)); BigDecimal mvaForste = forsteBelop .multiply(BigDecimal.valueOf(0.25)) .round(new MathContext(3, RoundingMode.HALF_EVEN)); BigDecimal totalForste = forsteBelop.add(mvaForste).round(new MathContext(6, RoundingMode.HALF_EVEN)); assertEquals(new BigDecimal(3), fakturaLinje.getSats()); assertEquals("Franchise-avgift ", fakturaLinje.getLinjeBeskrivelse()); assertEquals(forsteBelop, fakturaLinje.getBelop()); assertEquals(mvaForste, fakturaLinje.getMvaBelop()); assertEquals(totalForste, fakturaLinje.getTotalBelop()); assertEquals(totalForste, fakturaLinje.getTotalBelop()); assertEquals( tak.round(new MathContext(6, RoundingMode.HALF_EVEN)), fakturaLinje.getGrunnlagBelop().round(new MathContext(6, RoundingMode.HALF_EVEN))); fakturaLinje = linjer.get(1); forsteBelop = omsetning .multiply(new BigDecimal(0.04), MathContext.DECIMAL32) .round(new MathContext(4, RoundingMode.HALF_EVEN)); mvaForste = forsteBelop .multiply(BigDecimal.valueOf(0.25)) .round(new MathContext(4, RoundingMode.HALF_EVEN)); totalForste = forsteBelop.add(mvaForste).round(new MathContext(6, RoundingMode.HALF_EVEN)); assertEquals(BigDecimal.valueOf(4), fakturaLinje.getSats()); assertEquals("Husleie ", fakturaLinje.getLinjeBeskrivelse()); assertEquals(forsteBelop, fakturaLinje.getBelop()); assertEquals(mvaForste, fakturaLinje.getMvaBelop()); assertEquals(totalForste, fakturaLinje.getTotalBelop()); assertEquals(totalForste, fakturaLinje.getTotalBelop()); assertEquals( omsetning.round(new MathContext(6, RoundingMode.HALF_EVEN)), fakturaLinje.getGrunnlagBelop().round(new MathContext(6, RoundingMode.HALF_EVEN))); }