示例#1
0
  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)));
  }