/** * Teste forskudd budsjett for avdeling * * @throws Exception */ public void testInvoiceForskuddKvaBudget() throws Exception { testAvdeling = utilTest.addAvdeling(9998, "2005.01.01"); BokfSelskap bokfSelskap = utilTest.findBokfSelskap("100"); testAvdeling.setBokfSelskap(bokfSelskap); utilTest.addAvdelingBetingelse( "KVA", "FRA", 0, "2005.12.01", "2010.01.31", "FOR", null, BigDecimal.valueOf(10), null, null, testAvdeling, null, null, null, null, null, null); utilTest.addAvdelingBudget(2006, BigDecimal.valueOf(1000), 1, testAvdeling); utilTest.addAvdelingBudget(2006, BigDecimal.valueOf(1000), 2, testAvdeling); utilTest.addAvdelingBudget(2006, BigDecimal.valueOf(1000), 3, testAvdeling); utilTest.addAvdelingKontrakt( "2005.01.01", "2010.01.31", testAvdeling, "KVA", "FOR", "A", "BUD"); Integer buntId = utilTest.fakturerPeriode( new Integer(2005), 12, 12, "Franchiseavgift", 9998, 9998, "BUD", null, null, 1, null); 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(1, linjer.size()); FakturaLinje fakturaLinje = linjer.get(0); assertEquals(BigDecimal.valueOf(0), fakturaLinje.getAvregningBelop()); assertEquals(BigDecimal.valueOf(300), fakturaLinje.getBelop()); assertNull(fakturaLinje.getFastBelop()); assertEquals(BigDecimal.valueOf(3000), fakturaLinje.getGrunnlagBelop()); assertEquals(BigDecimal.valueOf(75), fakturaLinje.getMvaBelop()); assertEquals(BigDecimal.valueOf(3000), fakturaLinje.getOmsetningBelop()); assertEquals(BigDecimal.valueOf(10), fakturaLinje.getSats()); assertEquals("Franchise-avgift ", fakturaLinje.getLinjeBeskrivelse()); assertEquals(BigDecimal.valueOf(375), fakturaLinje.getTotalBelop()); assertEquals(BigDecimal.valueOf(375), fakturaLinje.getTotalBelop()); }
/** * Tester fakturering av sats med forskudd og avdeling er opprettet i perioden det skal betales * forskudd for. Eks konrrakt begynner 1.jan med forskudd av betingelse kvartalsvis * * @throws Exception */ public void testInvoiceForskudd6maanCreatedInPeriode() throws Exception { testAvdeling = utilTest.addAvdeling(9998, "2006.01.01"); BokfSelskap bokfSelskap = utilTest.findBokfSelskap("100"); testAvdeling.setBokfSelskap(bokfSelskap); utilTest.addAvdelingBetingelse( "HAL", "HUS", 0, "2006.01.01", "2010.01.31", "FOR", BigDecimal.valueOf(1000), null, null, null, testAvdeling, null, null, null, null, null, null); utilTest.addAvdelingKontrakt("2005.10.01", "2010.01.31", testAvdeling); Integer buntId = utilTest.fakturerPeriode( new Integer(2006), 1, 1, "Franchiseavgift", 9998, 9998, "OMS", null, null, 1, null); 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(1, linjer.size()); FakturaLinje fakturaLinje = linjer.get(0); assertEquals(BigDecimal.valueOf(0), fakturaLinje.getSats()); assertEquals("Husleie ", fakturaLinje.getLinjeBeskrivelse()); assertEquals(BigDecimal.valueOf(1000), fakturaLinje.getBelop()); assertEquals(BigDecimal.valueOf(250), fakturaLinje.getMvaBelop()); assertEquals(BigDecimal.valueOf(1250), fakturaLinje.getTotalBelop()); assertEquals(BigDecimal.valueOf(1250), fakturaLinje.getTotalBelop()); assertEquals(BigDecimal.valueOf(0), fakturaLinje.getGrunnlagBelop()); }
/** * Tester at faktura for betingelse som ikke starter i begynnelsen av måneden ikk får full faktura * * @throws Exception */ public void testInvoiceNotFirstInMonth() throws Exception { utilTest.addAvdelingBetingelse( "MND", "KONTREK", 0, "2006.01.08", "2006.01.31", "ETT", new BigDecimal(1000), null, null, null); utilTest.addAvdelingKontrakt("2005.10.01", "2006.01.31"); Integer buntId = utilTest.fakturerPeriode(new Integer(2006), 1, 1, "Diverse", 3); 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(1, linjer.size()); FakturaLinje fakturaLinje = linjer.get(0); BigDecimal belop = BigDecimal.valueOf(1000); BigDecimal days = BigDecimal.valueOf(31); BigDecimal dayBelop = belop.divide(days, new MathContext(100)); BigDecimal belopDays = BigDecimal.valueOf(24); BigDecimal wantedResult = dayBelop.multiply(belopDays, MathContext.DECIMAL32); wantedResult = wantedResult.round(new MathContext(5, RoundingMode.HALF_EVEN)); BigDecimal mva = wantedResult .multiply(BigDecimal.valueOf(0.25)) .round(new MathContext(5, RoundingMode.HALF_EVEN)); BigDecimal total = wantedResult.add(mva).round(new MathContext(6, RoundingMode.HALF_EVEN)); assertEquals(new BigDecimal(0), fakturaLinje.getSats()); assertEquals("Kontorrekvisita ", fakturaLinje.getLinjeBeskrivelse()); assertEquals(wantedResult, fakturaLinje.getBelop()); assertEquals(mva, fakturaLinje.getMvaBelop()); assertEquals(total, fakturaLinje.getTotalBelop()); assertEquals(total, fakturaLinje.getTotalBelop()); }
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))); }