Levnadskostnader-sidan
Anpassning av levnadskostnader/budget
Standardinmatningen "Levnadskostnader" (tidigare Budget) är hårt styrd till konsumentverkets fält och schabloner. Vill du styra levnadskostnadsinmatningens fält och schabloner helt fritt så finns en alternativ sida. För att aktivera den alternativa sidan skriv enligt nedan i konfigurationsfilen (capitex_customer_config.xml).
<AnpassningGrund_Budget>capitex.boendekalkyl.webbgraenssnitt.grund.BudgetGenerell</AnpassningGrund_Budget>
Detaljbeskrivning för att aktivera Generell budget/levnadskostnader
Steg 1 - Fältspecifikation, anpassa inmatnings-gränssnittet för egna budgetfält
Det finns två typer av inmatning av budgetbelopp. Dels belopp som ska vara kopplade till beräknade riktvärden och dels belopp som matas in helt fritt. I detta exempel så har vi tio belopp med riktvärden och ett fritt belopp. I capitex_customer_config.xml lägger vi in en beskrivning av dessa fält:
<
BudgetGenerell
>
<
Riktvaerden
>
<
Vaerde
bernamn
=
"Måltider"
>Måltider (alla mål)</
Vaerde
>
<
Vaerde
bernamn
=
"Kläder"
>Kläder</
Vaerde
>
<
Vaerde
bernamn
=
"Fritid"
>Fritid</
Vaerde
>
<
Vaerde
bernamn
=
"Hygien"
>Hygien</
Vaerde
>
<
Vaerde
bernamn
=
"Barnomsorg"
>Barnomsorg</
Vaerde
>
<
Vaerde
bernamn
=
"Resor - bil"
>Resor - bil</
Vaerde
>
<
Vaerde
bernamn
=
"Resor - lokala"
>Resor - lokala</
Vaerde
>
<
Vaerde
bernamn
=
"Förbrukningsvaror"
>Förbrukningsvaror</
Vaerde
>
<
Vaerde
bernamn
=
"Möbler, TV radio"
>Möbler, TV radio</
Vaerde
>
<
Vaerde
bernamn
=
"Tidningar tv-licens, tel"
>Tidningar tv, tel</
Vaerde
>
</
Riktvaerden
>
<
ExtraInmatning
>
<
Vaerde
bernamn
=
"Underhållsbidrag"
>Underhållsbidrag</
Vaerde
>
</
ExtraInmatning
>
</
BudgetGenerell
>
bernamn är fältnamnet som används internt för att matcha ihop fältspecifikationen med riktvärdesspecifikationen.
Steg 2 - Peka ut var riktvärdesspecifikationen finns
Riktvärdesspecifikationen lägger man in i den egna inställningsfilen som styr beräkningsdelen. För att använda en egen inställningsfil för styrning av beräkningsdelen så kan man skriva så här i capitex_customer_config.xml:
<
boendekalkyl_instaellningar_egna_filnamn
>BoendekalkylInst</
boendekalkyl_instaellningar_egna_filnamn
>
<
boendekalkyl_instaellningar_egna_filtyp
>Resource</
boendekalkyl_instaellningar_egna_filtyp
>
Om man skriver enligt ovan så betyder det att inställningarna för beräkningsdelen finns i följande katalog:
"classpath"/capitex/componentmodel/BoendekalkylInst
I katalogen BoendekalkylInst ska det sedan finnas en mapp för varje årtal som man vill ska hanteras av boendekalkylen, för version 2008.x av boendekalkylen bör man alltså ha med följande tre mappar 2008, 2009 och 2010. För 2009.x så bör man ha med mapparna 2009,2010 och 2011.
I varje årtals-mapp ska sedan filen boende.xml finnas dvs dessa filer ska finnas:
"classpath"/capitex/componentmodel/BoendekalkylInst/2008/boende.xml
"classpath"/capitex/componentmodel/BoendekalkylInst/2009/boende.xml
"classpath"/capitex/componentmodel/BoendekalkylInst/2010/boende.xml
Om en beräkning görs för 2008 så används information från filen 2008/boende.xml osv..
boende.xml kan förutom budget styra alla beräkningsgrundande inställningar som tex basbelopp mm, dessa kommer då att användas istället för de som Capitex skickar med. Detta kan alltså användas tex för att uppdatera ett basbelopp innan Capitex levererat en uppdatering.
Vill man bara ha budgetinställningarna i boende.xml och att alla år ska ha samma riktvärden ja då kan alla boende.xml se precis likadana ut.
Steg 3 - Anpassa utskrifterna för egen budget
Inställningen nedan döljer utskriften för konsumentverkets budget och gör istället utskrift av egen budget tillgänglig
<
capitex_boendekalkyl_valbara_utskrifter
>
<
dokument
exkludera
=
"true"
ID
=
"clsUtskriftBudget"
/>
<
dokument
inkludera
=
"true"
ID
=
"clsUtskriftBudgetGenerell"
foervald
=
"false"
>
<
data
t
=
"capitex.boendekalkyl.datastrukturer.utskrifter.clsUtskriftBudgetGenerell"
>
<
Asterisktext
t
=
"java.lang.String"
>*Riktvärden enligt xxxxx, från feb 2007</
Asterisktext
>
</
data
>
<
printklass
>capitex.boendekalkyl.utskrifter.dok.BudgetGenerell</
printklass
>
</
dokument
>
</
capitex_boendekalkyl_valbara_utskrifter
>
Steg 4 - Anpassa om-dialogen så den presenterar den egna budgeten
Inställningen döljer presentationen av konsumentverkets budget och visar istället den egna budgeten.
<
omflikar
>
<
flik
exkludera
=
"true"
ID
=
"Budget"
/>
<
flik
inkludera
=
"true"
ID
=
"BudgetGenerell"
>
<
klass
>capitex.boendekalkyl.oevrigadialoger.komponenter.BudgetGenerell</
klass
>
<
etikett
>Budget</
etikett
>
</
flik
>
</
omflikar
>
Steg 5 - Skriva riktvärdesspecifikationen i boende.xml
Ett riktvärde kan specificeras med en eller flera av följande grundprinciper:
Belopp som bestäms av antalet personer i hushåll med pensionär
Belopp som bestäms av antalet personer i hushåll utan pensionär
Belopp som bestäms per kön per åldersintervall
I detta exempel tänker oss att riktvärdesspecifikationen ska se ut så här:
Budget för barn per ålder och kön
Ålder | 0-6 | 7-12 | 13-17 |
---|---|---|---|
Måltider (alla mål) | 680 | 1 150 | 1 480 |
Kläder | 380 | 450 | 480 |
Fritid | 140 | 450 | 530 |
Hygien | 490 | 120 | 210 |
Barnomsorg | 1 102 |
Budget för vuxna per ålder och kön
Ålder | 18- |
---|---|
Måltider (alla mål) | 1 770 |
Kläder | 490 |
Fritid | 470 |
Hygien | 240 |
Budget beroende av antal personer i hushållet
Antal personer i hushållet | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
Förbrukningsvaror | 100 | 120 | 200 | 240 | 290 | 340 | 380 | |||
Möbler, TV radio | 520 | 610 | 730 | 800 | 930 | 1 070 | 1 070 | |||
Tidningar tv, tel | 750 | 780 | 820 | 830 | 850 | 870 | 890 |
Budget per hushåll
Kr/mån | |
---|---|
Resor - bil | 2 580 |
Resor - lokala | 500 |
Exempel måltider 7-12 år
Måltiderna enligt ovan för intervallet 7-12 år skriver man då så här i boende.xml:
<
root
t
=
"capitex.boendekalkyl.datastrukturer.installningar.clsInstallningar"
>
<
BudgetGenerell
t
=
"capitex.boendekalkyl.datastrukturer.installningar.clsInstBudgetGenerell"
>
<
BudgetPerKoenPerAAlder
t
=
"[Lcapitex.boendekalkyl.datastrukturer.installningar.clsInstBudgetGenerellPostPerKoenPerAAlder;"
>
<
arrayitem
>
<
Postnamn
t
=
"java.lang.String"
>Måltider</
Postnamn
>
<
Budget
t
=
"[Lcapitex.boendekalkyl.datastrukturer.installningar.clsInstBudgetPerKoenPerAAlder;"
>
<
arrayitem
>
<
AAlderFrom
t
=
"int"
>7</
AAlderFrom
>
<
AAlderTom
t
=
"int"
>12</
AAlderTom
>
<
BudgetenGaellerKvinna
t
=
"boolean"
>true</
BudgetenGaellerKvinna
>
<
Belopp
t
=
"int"
>13800</
Belopp
>
</
arrayitem
>
<
arrayitem
>
<
AAlderFrom
t
=
"int"
>7</
AAlderFrom
>
<
AAlderTom
t
=
"int"
>12</
AAlderTom
>
<
BudgetenGaellerKvinna
t
=
"boolean"
>false</
BudgetenGaellerKvinna
>
<
Belopp
t
=
"int"
>13800</
Belopp
>
</
arrayitem
>
</
Budget
>
</
arrayitem
>
</
BudgetPerKoenPerAAlder
>
</
BudgetGenerell
>
</
root
>
<
Postnamn
t
=
"java.lang.String"
>Måltider</
Postnamn
> är det som knyter ihop denna specifikation med gränssnittets inställning i capitex_customer_config.xml:
<
BudgetGenerell
>
<
Riktvaerden
>
<
Vaerde
bernamn
=
"Måltider"
>Måltider (alla mål)</
Vaerde
>
Beloppen som anges i exemplet ovan är årsbelopp. Specifikationen är uppdelad per kön så vill man ha samma belopp för båda könen så får man som ovan ange samma belopp och intervall två gånger, en gång för varje kön.
Exempel Resor - lokala
För att ange belopp som gäller för hela hushållet så kan fältet "startbelopp" användas. Siffran -1 i AAlderTom ska tolkas som "och äldre".
<
arrayitem
>
<
Postnamn
t
=
"java.lang.String"
>Resor - lokala</
Postnamn
>
<
Budget
t
=
"[Lcapitex.boendekalkyl.datastrukturer.installningar.clsInstBudgetPerKoenPerAAlder;"
>
<
arrayitem
>
<
AAlderFrom
t
=
"int"
>0</
AAlderFrom
>
<
AAlderTom
t
=
"int"
>-1</
AAlderTom
>
<
BudgetenGaellerKvinna
t
=
"boolean"
>true</
BudgetenGaellerKvinna
>
<
Startbelopp
t
=
"int"
>6000</
Startbelopp
>
<
Belopp
t
=
"int"
>0</
Belopp
>
</
arrayitem
>
<
arrayitem
>
<
AAlderFrom
t
=
"int"
>0</
AAlderFrom
>
<
AAlderTom
t
=
"int"
>-1</
AAlderTom
>
<
BudgetenGaellerKvinna
t
=
"boolean"
>false</
BudgetenGaellerKvinna
>
<
Startbelopp
t
=
"int"
>6000</
Startbelopp
>
<
Belopp
t
=
"int"
>0</
Belopp
>
</
arrayitem
>
</
Budget
>
</
arrayitem
>
Exempel Förbrukningsvaror
Dessa belopp ska gälla för familjen oavsett om den består av pensionärer eller ej, i inställningsfilen får man därmed specificera denna dubbelt.
<
root
t
=
"capitex.boendekalkyl.datastrukturer.installningar.clsInstallningar"
>
<
BudgetGenerell
t
=
"capitex.boendekalkyl.datastrukturer.installningar.clsInstBudgetGenerell"
>
<
BudgetPerAntalPersoner_Pensionaerer
t
=
"[Lcapitex.boendekalkyl.datastrukturer.installningar.clsInstBudgetGenerellPostPerAntalPersoner;"
>
<
arrayitem
>
<
Postnamn
t
=
"java.lang.String"
>Förbrukningsvaror</
Postnamn
>
<
Budget
t
=
"[Lcapitex.boendekalkyl.datastrukturer.installningar.clsInstBudgetPerAntalPersoner;"
>
<
arrayitem
>
<
AntalPersoner
t
=
"int"
>1</
AntalPersoner
>
<
Belopp
t
=
"int"
>1200</
Belopp
>
</
arrayitem
>
<
arrayitem
>
<
AntalPersoner
t
=
"int"
>2</
AntalPersoner
>
<
Belopp
t
=
"int"
>1440</
Belopp
>
</
arrayitem
>
<
arrayitem
>
<
AntalPersoner
t
=
"int"
>3</
AntalPersoner
>
<
Belopp
t
=
"int"
>2400</
Belopp
>
</
arrayitem
>
<
arrayitem
>
<
AntalPersoner
t
=
"int"
>4</
AntalPersoner
>
<
Belopp
t
=
"int"
>2880</
Belopp
>
</
arrayitem
>
<
arrayitem
>
<
AntalPersoner
t
=
"int"
>5</
AntalPersoner
>
<
Belopp
t
=
"int"
>3480</
Belopp
>
</
arrayitem
>
<
arrayitem
>
<
AntalPersoner
t
=
"int"
>6</
AntalPersoner
>
<
Belopp
t
=
"int"
>4080</
Belopp
>
</
arrayitem
>
<
arrayitem
>
<
AntalPersoner
t
=
"int"
>7</
AntalPersoner
>
<
Belopp
t
=
"int"
>4560</
Belopp
>
</
arrayitem
>
</
Budget
>
</
arrayitem
>
</
BudgetPerAntalPersoner_Pensionaerer
>
<
BudgetPerAntalPersoner_EjPensionaerer
t
=
"[Lcapitex.boendekalkyl.datastrukturer.installningar.clsInstBudgetGenerellPostPerAntalPersoner;"
>
<
arrayitem
>
<
Postnamn
t
=
"java.lang.String"
>Förbrukningsvaror</
Postnamn
>
<
Budget
t
=
"[Lcapitex.boendekalkyl.datastrukturer.installningar.clsInstBudgetPerAntalPersoner;"
>
<
arrayitem
>
<
AntalPersoner
t
=
"int"
>1</
AntalPersoner
>
<
Belopp
t
=
"int"
>1200</
Belopp
>
</
arrayitem
>
<
arrayitem
>
<
AntalPersoner
t
=
"int"
>2</
AntalPersoner
>
<
Belopp
t
=
"int"
>1440</
Belopp
>
</
arrayitem
>
<
arrayitem
>
<
AntalPersoner
t
=
"int"
>3</
AntalPersoner
>
<
Belopp
t
=
"int"
>2400</
Belopp
>
</
arrayitem
>
<
arrayitem
>
<
AntalPersoner
t
=
"int"
>4</
AntalPersoner
>
<
Belopp
t
=
"int"
>2880</
Belopp
>
</
arrayitem
>
<
arrayitem
>
<
AntalPersoner
t
=
"int"
>5</
AntalPersoner
>
<
Belopp
t
=
"int"
>3480</
Belopp
>
</
arrayitem
>
<
arrayitem
>
<
AntalPersoner
t
=
"int"
>6</
AntalPersoner
>
<
Belopp
t
=
"int"
>4080</
Belopp
>
</
arrayitem
>
<
arrayitem
>
<
AntalPersoner
t
=
"int"
>7</
AntalPersoner
>
<
Belopp
t
=
"int"
>4560</
Belopp
>
</
arrayitem
>
</
Budget
>
</
arrayitem
>
</
BudgetPerAntalPersoner_EjPensionaerer
>
</
BudgetGenerell
>
</
root
>
Exempel med Startbelopp i kombination med Belopp
I riktvärdesspecifikationen ovan finns ingen budgetpost som har en startkostnad för hushållet som sedan ökar beroende på atalet personer i hushållet. Om man önskar skriva en sådan specifikation, dvs i stil med 7080 kr per år + 1560 * antal vuxna + 1080 * antal barn, så kombinerar man startbelopp med belopp enligt nedanstående exempel:
<
arrayitem
>
<
AAlderFrom
t
=
"int"
>18</
AAlderFrom
>
<
AAlderTom
t
=
"int"
>-1</
AAlderTom
>
<
BudgetenGaellerKvinna
t
=
"boolean"
>true</
BudgetenGaellerKvinna
>
<
Startbelopp
t
=
"int"
>7080</
Startbelopp
>
<
Belopp
t
=
"int"
>1560</
Belopp
>
</
arrayitem
>
<
arrayitem
>
<
AAlderFrom
t
=
"int"
>18</
AAlderFrom
>
<
AAlderTom
t
=
"int"
>-1</
AAlderTom
>
<
BudgetenGaellerKvinna
t
=
"boolean"
>false</
BudgetenGaellerKvinna
>
<
Startbelopp
t
=
"int"
>7080</
Startbelopp
>
<
Belopp
t
=
"int"
>1560</
Belopp
>
</
arrayitem
>
<
arrayitem
>
<
AAlderFrom
t
=
"int"
>0</
AAlderFrom
>
<
AAlderTom
t
=
"int"
>17</
AAlderTom
>
<
BudgetenGaellerKvinna
t
=
"boolean"
>true</
BudgetenGaellerKvinna
>
<
Startbelopp
t
=
"int"
>7080</
Startbelopp
>
<
Belopp
t
=
"int"
>1080</
Belopp
>
</
arrayitem
>
<
arrayitem
>
<
AAlderFrom
t
=
"int"
>0</
AAlderFrom
>
<
AAlderTom
t
=
"int"
>17</
AAlderTom
>
<
BudgetenGaellerKvinna
t
=
"boolean"
>false</
BudgetenGaellerKvinna
>
<
Startbelopp
t
=
"int"
>7080</
Startbelopp
>
<
Belopp
t
=
"int"
>1080</
Belopp
>
</
arrayitem
>
Steg 6 - Kontrollera
Starta boendekalkylen och klicka på menyvalet Om, klicka sedan på fliken "Budget" nu ska du se budgetuppställningen i tabeller på ungefär samma sätt som tabellerna ovan. Layouten anpassar sig automatiskt efter inställningarna i boende.xml, är det fel i boende.xml så kommer uppställningen att bli konstig. Är det fel i boende.xml så kan det också hända att boendekalkylen inte går att start alls. Boendekalkylen gör ingen kontroll av rimligheten i inställningarna.
Anrop av egen budget via webservice
För att kunna utföra anrop till webservice som använder de egna budgetsifforna så måste webservicen kunna hantera anpassningar i capitex_customer_config.xml, detta kan inte webservicen som heter Kalkyl, däremot hanteras det av alla större webservicar som KalkylMedUtskrift, Applikationsservice och Metaservice.
Exempel på anrop via webservice
Detta exempel visar ett fristående anrop till budgetfunktionen BeraeknaBudgetGenerell i webservicen KalkylMedUtskrift (Applikationsservice och Metaservice hade gått lika bra). Indata för budgeten fyller man i på samma sätt även vid anrop av KomplettKalkyl.
utsk.BeraeknaBudgetGenerell budgetber =
new
utsk.BeraeknaBudgetGenerell();
utsk.clsBudgetGenerellFoerdjupningRiktvaerden riktvaerdsber =
new
utsk.clsBudgetGenerellFoerdjupningRiktvaerden();
budgetber.clsBudgetGenerellBeraekning_1 =
new
utsk.clsBudgetGenerellBeraekning();
budgetber.clsBudgetGenerellBeraekning_1.BeraekningsAAr =
2008
;
budgetber.clsBudgetGenerellBeraekning_1.BudgetGenerellFoerdjupningRiktvaerden = riktvaerdsber;
//Initiera familjesammansättningen
utsk.clsFamiljemedlemFoerBudgetMan man =
new
utsk.clsFamiljemedlemFoerBudgetMan();
utsk.clsFamiljemedlemFoerBudgetKvinna fru =
new
utsk.clsFamiljemedlemFoerBudgetKvinna();
utsk.clsFamiljemedlemFoerBudgetMan son =
new
utsk.clsFamiljemedlemFoerBudgetMan();
man.AAlder =
30
;
fru.AAlder =
28
;
son.AAlder =
4
;
riktvaerdsber.Familjemedlemmar =
new
utsk.clsFamiljemedlemFoerBudgetBasklass[] {
man,
fru,
son
};
utsk.KalkylMedUtskrift kalkyl =
new
utsk.KalkylMedUtskrift();
kalkyl.Credentials =
new
System.Net.NetworkCredential(
"xxxx"
,
"xxxx"
);
kalkyl.PreAuthenticate =
true
;
kalkyl.EnableDecompression =
true
;
utsk.clsBudgetGenerellPost[] utdata;
utdata = kalkyl.BeraeknaBudgetGenerell(budgetber).result;
for
(
int
i =
0
; i < utdata.Length; i++) {
Console.WriteLine(utdata[i].Postnamn +
" "
+ utdata[i].Belopp_Kr_Per_Ar.ToString());
}
/*
Exempel på utdata (beror på inställningarna förstås):
* Livsmedel 39000
* Sport, lek 5040
* Hygien, hälsovård 12120
* Kläder 18000
* Tvätt, rengöring, papper 2520
* Föreningsavgift 13440
* Bilkostnader 31200
* Tidningar 2520
* Telefon, TV 11280
* Försäkring utom hem 2400
* Hemförsäkring 1560
*/
Verkar det krångligt?
Verkar det krångligt så kan Capitex initialt hjälpa till att skapa filen boende.xml, men sedan kan ni själva ändra beloppen i filen framöver.