KalkylMedUtskrift
Denna webservice har alla funktioner som webservicen Kalkyl har men den har även funktioner för att skapa utskrifter.
Om utskrifter inte används så kan man istället anropa /services/Boende/Kalkyl och då behövs inte denna servlet.
Denna webservice har stöd för att skicka med soap-headers.
Denna webservice hanterar egna inställningar via capitex_customer_config.xml och kan därmed hantera tex egna budgetsiffror. Däremot kan denna webservice ej instansiera plugins som är definerade i capitex_customer_config.xml, tex så kan den därmed inte läsa inställningar som tex budget från databas, inte heller fungerar kundspecifika programmatiska anpassningar av utskrifter som sker via plugins. För utskriftsanrop som kan hantera plugins så kan Applikationsservice eller Metaservice användas.
// Skapa funktionsobjektet. utsk.KalkylMedUtskrift kalkyl = new utsk.KalkylMedUtskrift(); kalkyl.Credentials = new System.Net.NetworkCredential( "xxx" , "xxx" ); kalkyl.PreAuthenticate = true ; kalkyl.EnableDecompression = true ; // Skapa indatastruktur för kalylen. utsk.clsIn KalkylIndata = new utsk.clsIn(); // Skapa en person. utsk.clsPersonMedPersonuppgifter person = new utsk.clsPersonMedPersonuppgifter(); person.Personuppgifter = new utsk.clsPersonuppgifter(); person.Personuppgifter.Foernamn = "Sven" ; KalkylIndata.Personer = new utsk.clsPerson[] {person}; // Om vi ska kunna göra en utskrift med start 2008 // för version 2009 och senare av boendekalkylen // så måste vi skicka med 2008 som första beräkningsår. // Sätter man inte denna så kommer den automatiskt att sättas till // 2008 för boendekalkyl version 2008.x // och till 2009 för version 2009.x. KalkylIndata.KalkylInformation = new utsk.clsKalkylInformation(); KalkylIndata.KalkylInformation.FoerstaBeraekningsAAr = 2008 ; // Skapa funktionsobjektet. utsk.KalkylMedUtskrift kalkyl = new utsk.KalkylMedUtskrift(); kalkyl.Credentials = new System.Net.NetworkCredential( "xxx" , "xxx" ); kalkyl.PreAuthenticate = true ; kalkyl.EnableDecompression = true ; // Skapa indatastruktur för kalylen. utsk.clsIn KalkylIndata = new utsk.clsIn(); // Skapa en person. utsk.clsPersonMedPersonuppgifter person = new utsk.clsPersonMedPersonuppgifter(); person.Personuppgifter = new utsk.clsPersonuppgifter(); person.Personuppgifter.Foernamn = "Sven" ; KalkylIndata.Personer = new utsk.clsPerson[] { person }; // Om vi ska kunna göra en utskrift med start 2008 // för version 2009 och senare av boendekalkylen // så måste vi skicka med 2008 som första beräkningsår. // Sätter man inte denna så kommer den automatiskt att sättas till // 2008 för boendekalkyl version 2008.x // och till 2009 för version 2009.x. KalkylIndata.KalkylInformation = new utsk.clsKalkylInformation(); KalkylIndata.KalkylInformation.FoerstaBeraekningsAAr = 2008 ; // Skapa inkomstobjekt för personen. utsk.clsInkomster inkomster = new utsk.clsInkomster(); person.Inkomster = inkomster; // Skapa ett kommunalskatteobjekt där vi kan ange församling som personen tillhör. utsk.clsKomskattFoersamlingsnamn kommskattfranfoersamling = new utsk.clsKomskattFoersamlingsnamn(); person.Kommunalskatt = kommskattfranfoersamling; // Personen är medlem i sv kyrkan. kommskattfranfoersamling.AEr_Medlem_I_Svenska_Kyrkan = true ; // Bor i Solna kommun. kommskattfranfoersamling.Kommunnamn = "Solna" ; // I Solna församling. kommskattfranfoersamling.Foersamlingsnamn = "Solna" ; // Skapa ett förenklat bruttolönsobjekt där vi bara kan ange totala lönen. utsk.clsBruttoloenKrPerAAr bruttoloen = new utsk.clsBruttoloenKrPerAAr(); inkomster.Bruttoloen = bruttoloen; // Sätt bruttolönen. bruttoloen.Bruttoloen_Kr_Per_AAr = 257000 ; // Skapa ett villaobjekt. utsk.clsBostadVillaFritidshus villa1 = new utsk.clsBostadVillaFritidshus(); KalkylIndata.Bostaeder = new utsk.clsBostadBasklass[] { villa1 }; // Ge villan ett namn. villa1.BostadsID = "villa 1" ; // Ange personens ägarandelar för villa 1. utsk.clsAEgarandelar aegarandelarvilla1 = new utsk.clsAEgarandelar(); person.AEgarandelar = new utsk.clsAEgarandelar[] { aegarandelarvilla1 }; // Ange att ägarandelen gäller för villa1. aegarandelarvilla1.BostadsID = villa1.BostadsID; // Ange ägarandel 1/2 med betalningsansvar. aegarandelarvilla1.AEgarandelTaljare = 1 ; aegarandelarvilla1.AEgarandelNaemnare = 2 ; aegarandelarvilla1.HarBetalningsansvar = true ; // Villans värdeår (styr bla fastighetsskatt). villa1.ByggnadsaarVaerdeaar = 2006 ; // Skapa en lista med lån för villan. utsk.clsLaanutgifterLanelista listaMedLaan = new utsk.clsLaanutgifterLanelista(); villa1.Laanutgifter = listaMedLaan; // Skapa ett rakt lån och lägg i lånelistan. utsk.clsLaanRakt raktLaan = new utsk.clsLaanRakt(); listaMedLaan.Laan = new utsk.clsLaanBasklass[] {raktLaan}; // Amortera 1000 kr per år. raktLaan.Amortering_Kr_Per_AAr = 1000 ; // Amortera en gång per månad. raktLaan.Antal_Amorteringar_Per_AAr = 12 ; // Lånets storlek är 3 000 000 kr. raktLaan.Belopp_Kr = 3000000 ; // Sätt lånets ränta till 4,9%. raktLaan.Raenta_Procent = 4.9 ; // Uppgifter för individuell amorteringsnivå. KalkylIndata.UnderlagAmorteringsraadgivning = new utsk.clsUnderlagAmorteringsraadgivning(); // Samma ränta som används i kalkylen användas vid amorteringsrådgivningen. KalkylIndata.UnderlagAmorteringsraadgivning.Raenta = new utsk.clsRaentetypSnitt(); // Löptid för rekommenderad amortering 50 år. utsk.clsAmorteringLoeptidAAr rekommenderadAmortering = new utsk.clsAmorteringLoeptidAAr(); rekommenderadAmortering.LoeptidAAr = 50 ; KalkylIndata.UnderlagAmorteringsraadgivning.RekommenderadAmortering = rekommenderadAmortering; // Löptid för alternativ amortering 40 år. utsk.clsAmorteringLoeptidAAr alternativAmortering = new utsk.clsAmorteringLoeptidAAr(); alternativAmortering.LoeptidAAr = 40 ; KalkylIndata.UnderlagAmorteringsraadgivning.AlternativAmortering = alternativAmortering; // Tidpunkt för jämförelse är när första personen går i pension. KalkylIndata.UnderlagAmorteringsraadgivning.Jaemfoerelsetidpunkt = new utsk.clsJaemfoerelsetidpunktNaagonIPension(); // Utför kalkylen. utsk.SkapaUtskrift skapautskrift = new utsk.SkapaUtskrift(); skapautskrift.clsSkapaUtskrift_1 = new utsk.clsSkapaUtskrift(); // Denna array anger vilka år man vill ha med i utskriften. // Sätter man KalkylIndata.KalkylInformation.FoerstaBeraekningsAAr så måste // man sätta denna också. Sätter man inte FoerstaBeraekningsAAr så bör // man inte sätta denna array alls (dvs låt den vara null). skapautskrift.clsSkapaUtskrift_1.AAr = new int [] { 2008 }; skapautskrift.clsSkapaUtskrift_1.Brevpapper = false ; skapautskrift.clsSkapaUtskrift_1.Dokumentformat = "PDF" ; skapautskrift.clsSkapaUtskrift_1.HandlaeggareNamn = "Ove Karlsson" ; skapautskrift.clsSkapaUtskrift_1.HandlaeggareTelefon = "08 123 456" ; skapautskrift.clsSkapaUtskrift_1.InmatadeUppgifter = KalkylIndata; skapautskrift.clsSkapaUtskrift_1.Textrader = "Eventuellt egen friskrivningstext" ; // Ange att utskriften ska bestå av följande 8 sidor. Vissa av // utskriftsklasserna/sidorna nedan har inställningar och indata // som är specifika för sidan som kan tilldelas om så önskas... // genom att inte sätta dessa så kör vi på default. skapautskrift.clsSkapaUtskrift_1.Utskrifter = new utsk.clsUtskrift[] { new utsk.clsUtskriftLevaPaa(), new utsk.clsUtskriftSkatteberaekning(), new utsk.clsUtskriftDiagramInkomster(), new utsk.clsUtskriftDiagramMaanadsutgift(), new utsk.clsUtskriftDriftkostnader(), new utsk.clsUtskriftKomplUpplysn(), new utsk.clsUtskriftMaanadsutgift(), new utsk.clsUtskriftRaentekaenslighet(), new utsk.clsUtskriftAmorteringsraadgivning()}; byte [] pdfdokument = kalkyl.SkapaUtskrift(skapautskrift).result.PdfDokument; // Spara PDFen på disk. System.IO.FileStream filestr = System.IO.File.OpenWrite( "C:\\tmp.pdf" ); filestr.Write(pdfdokument, 0 , pdfdokument.Length); filestr.Close(); Console.WriteLine( "PDF skapad!" ); |