Fixed extensions bugs

This commit is contained in:
Emil
2026-02-24 16:06:36 +01:00
parent 0764bc11a6
commit e0b66fe397
26 changed files with 3394 additions and 167 deletions
+56
View File
@@ -0,0 +1,56 @@
{
"period": { "year": 2025, "month": 12 },
"boxes": [
{ "boxNumber": "05", "label": "Momspliktiga intakter", "amount": 1850000, "accounts": ["3001", "3002", "3003"] },
{ "boxNumber": "10", "label": "Utgaende moms 25%", "amount": 375000, "accounts": ["2611"] },
{ "boxNumber": "11", "label": "Utgaende moms 12%", "amount": 18000, "accounts": ["2621"] },
{ "boxNumber": "12", "label": "Utgaende moms 6%", "amount": 4500, "accounts": ["2631"] },
{ "boxNumber": "35", "label": "Varuforsal jning till annat EU-land", "amount": 711500, "accounts": ["3305"] },
{ "boxNumber": "36", "label": "Tjansteforsal jning till annat EU-land", "amount": 405000, "accounts": ["3308"] },
{ "boxNumber": "38", "label": "Exportforsal jning utanfor EU", "amount": 230000, "accounts": ["3305"] },
{ "boxNumber": "39", "label": "Omvand skattskyldighet — inkop", "amount": 60000, "accounts": [] },
{ "boxNumber": "40", "label": "Inkop varor fran EU", "amount": 185000, "accounts": ["4515"] },
{ "boxNumber": "48", "label": "Ingaende moms", "amount": 289000, "accounts": ["2641", "2645"] },
{ "boxNumber": "49", "label": "Moms att betala", "amount": 108500, "accounts": [] }
],
"revenueBreakdown": {
"domestic": { "amount": 1850000, "percentage": 57 },
"euGoods": { "amount": 711500, "percentage": 22 },
"euServices": { "amount": 405000, "percentage": 12 },
"exportGoods": { "amount": 230000, "percentage": 7 },
"exportServices": { "amount": 0, "percentage": 0 },
"triangular": { "amount": 54000, "percentage": 2 },
"totalRevenue": 3250500
},
"vatSummary": {
"outputVat25": 375000,
"outputVat12": 18000,
"outputVat6": 4500,
"totalOutputVat": 397500,
"inputVat": 289000,
"netVat": 108500,
"isRefund": false
},
"warnings": [
{
"type": "box_mismatch",
"severity": "warning",
"message": "Ruta 39 (omvand skattskyldighet) har 60 000 SEK men inga matchande kontoposter hittades. Kontrollera bokforingen."
},
{
"type": "high_input_vat_ratio",
"severity": "warning",
"message": "Ingaende moms (289 000 SEK) utgor 73% av utgaende moms. Kontrollera att alla avdrag ar korrekta."
}
],
"comparison": {
"domestic": { "current": 1850000, "previous": 1620000, "change": 230000, "changePercent": 14 },
"euGoods": { "current": 711500, "previous": 580000, "change": 131500, "changePercent": 23 },
"euServices": { "current": 405000, "previous": 390000, "change": 15000, "changePercent": 4 },
"exportGoods": { "current": 230000, "previous": 310000, "change": -80000, "changePercent": -26 },
"exportServices": { "current": 0, "previous": 0, "change": 0, "changePercent": null },
"triangular": { "current": 54000, "previous": 0, "change": 54000, "changePercent": null },
"totalRevenue": { "current": 3250500, "previous": 2900000, "change": 350500, "changePercent": 12 },
"netVat": { "current": 108500, "previous": 95200, "change": 13300, "changePercent": 14 }
}
}
+116
View File
@@ -0,0 +1,116 @@
{
"period": { "year": 2025, "month": 12 },
"reporterVatNumber": "SE556677889901",
"reporterName": "Testbolaget AB",
"lines": [
{
"cnCode": "72163100",
"partnerCountry": "DE",
"countryOfOrigin": "SE",
"transactionNature": "11",
"deliveryTerms": "DAP",
"invoicedValue": 245000,
"netMass": 4500,
"supplementaryUnit": null,
"supplementaryUnitType": null,
"partnerVatId": "DE123456789"
},
{
"cnCode": "84713000",
"partnerCountry": "FR",
"countryOfOrigin": "CN",
"transactionNature": "11",
"deliveryTerms": "EXW",
"invoicedValue": 128000,
"netMass": 85,
"supplementaryUnit": 40,
"supplementaryUnitType": "st",
"partnerVatId": "FR98765432101"
},
{
"cnCode": "39269090",
"partnerCountry": "NL",
"countryOfOrigin": "SE",
"transactionNature": "11",
"deliveryTerms": "FCA",
"invoicedValue": 78000,
"netMass": 620,
"supplementaryUnit": null,
"supplementaryUnitType": null,
"partnerVatId": "NL456789012B01"
},
{
"cnCode": "85176200",
"partnerCountry": "FI",
"countryOfOrigin": "SE",
"transactionNature": "11",
"deliveryTerms": "DAP",
"invoicedValue": 56000,
"netMass": 12,
"supplementaryUnit": 200,
"supplementaryUnitType": "st",
"partnerVatId": "FI12345678"
},
{
"cnCode": "72163100",
"partnerCountry": "ES",
"countryOfOrigin": "SE",
"transactionNature": "11",
"deliveryTerms": "CIF",
"invoicedValue": 132000,
"netMass": 2800,
"supplementaryUnit": null,
"supplementaryUnitType": null,
"partnerVatId": "ES87654321A"
},
{
"cnCode": "73064090",
"partnerCountry": "IT",
"countryOfOrigin": "SE",
"transactionNature": "11",
"deliveryTerms": "DAP",
"invoicedValue": 67500,
"netMass": 1450,
"supplementaryUnit": null,
"supplementaryUnitType": null,
"partnerVatId": "IT01234567890"
},
{
"cnCode": "44079910",
"partnerCountry": "PL",
"countryOfOrigin": "SE",
"transactionNature": "11",
"deliveryTerms": "FCA",
"invoicedValue": 189000,
"netMass": 18600,
"supplementaryUnit": null,
"supplementaryUnitType": null,
"partnerVatId": "PL5678901234"
},
{
"cnCode": "84713000",
"partnerCountry": "DE",
"countryOfOrigin": "TW",
"transactionNature": "11",
"deliveryTerms": "DAP",
"invoicedValue": 94000,
"netMass": 62,
"supplementaryUnit": 30,
"supplementaryUnitType": "st",
"partnerVatId": "DE123456789"
}
],
"totals": {
"invoicedValue": 989500,
"netMass": 28129,
"lineCount": 8
},
"thresholdStatus": {
"cumulativeValue": 7850000,
"threshold": 9000000,
"isObligated": false,
"percentageUsed": 87
},
"warnings": [],
"invoiceCount": 14
}
+115
View File
@@ -0,0 +1,115 @@
{
"period": { "year": 2025, "quarter": 4 },
"filingType": "quarterly",
"reporterVatNumber": "SE556677889901",
"reporterName": "Testbolaget AB",
"lines": [
{
"customerVatNumber": "DE123456789",
"customerName": "Berliner Maschinenbau GmbH",
"customerCountry": "DE",
"customerId": "cust-001",
"goodsAmount": 245000,
"servicesAmount": 0,
"triangulationAmount": 0,
"invoiceCount": 4
},
{
"customerVatNumber": "FR98765432101",
"customerName": "Lyon Digital SARL",
"customerCountry": "FR",
"customerId": "cust-002",
"goodsAmount": 0,
"servicesAmount": 185000,
"triangulationAmount": 0,
"invoiceCount": 3
},
{
"customerVatNumber": "NL456789012B01",
"customerName": "Amsterdam Trading BV",
"customerCountry": "NL",
"customerId": "cust-003",
"goodsAmount": 78000,
"servicesAmount": 42000,
"triangulationAmount": 0,
"invoiceCount": 2
},
{
"customerVatNumber": "FI12345678",
"customerName": "Helsinki Solutions Oy",
"customerCountry": "FI",
"customerId": "cust-004",
"goodsAmount": 0,
"servicesAmount": 96000,
"triangulationAmount": 0,
"invoiceCount": 1
},
{
"customerVatNumber": "ES87654321A",
"customerName": "Barcelona Componentes SL",
"customerCountry": "ES",
"customerId": "cust-005",
"goodsAmount": 132000,
"servicesAmount": 0,
"triangulationAmount": 54000,
"invoiceCount": 3
},
{
"customerVatNumber": "IT01234567890",
"customerName": "Milano Engineering SpA",
"customerCountry": "IT",
"customerId": "cust-006",
"goodsAmount": 67500,
"servicesAmount": 28000,
"triangulationAmount": 0,
"invoiceCount": 2
},
{
"customerVatNumber": "PL5678901234",
"customerName": "Warszawa Logistik Sp. z o.o.",
"customerCountry": "PL",
"customerId": "cust-007",
"goodsAmount": 189000,
"servicesAmount": 0,
"triangulationAmount": 0,
"invoiceCount": 5
},
{
"customerVatNumber": "DK12345678",
"customerName": "Kobenhavn Konsult ApS",
"customerCountry": "DK",
"customerId": "cust-008",
"goodsAmount": 0,
"servicesAmount": 54000,
"triangulationAmount": 0,
"invoiceCount": 1
}
],
"totals": {
"goods": 711500,
"services": 405000,
"triangulation": 54000,
"total": 1170500
},
"warnings": [
{
"type": "missing_vat_validation",
"severity": "warning",
"customerId": "cust-005",
"customerName": "Barcelona Componentes SL",
"message": "VAT-nummer ES87654321A har inte validerats mot VIES. Verifiera innan inlämning."
}
],
"crossCheck": {
"box35Match": true,
"box35ReportTotal": 711500,
"box35GLTotal": 711500,
"box39Match": false,
"box39ReportTotal": 405000,
"box39GLTotal": 403800
},
"invoiceCount": 21,
"customerCount": 8,
"deadline": "2026-02-20",
"daysUntilDeadline": 14
}
+245
View File
@@ -0,0 +1,245 @@
{
"referenceDate": "2025-12-15",
"exchangeRates": [
{ "currency": "EUR", "rate": 11.4215, "date": "2025-12-15" },
{ "currency": "USD", "rate": 10.3870, "date": "2025-12-15" },
{ "currency": "GBP", "rate": 13.5420, "date": "2025-12-15" },
{ "currency": "NOK", "rate": 0.9845, "date": "2025-12-15" }
],
"exposureByCurrency": [
{
"currency": "EUR",
"totalForeignAmount": 48500,
"bookedSekValue": 541350,
"currentSekValue": 553943,
"unrealizedGainLoss": 12593,
"invoiceCount": 4,
"averageBookedRate": 11.1619,
"currentRate": 11.4215
},
{
"currency": "USD",
"totalForeignAmount": 72000,
"bookedSekValue": 741600,
"currentSekValue": 747864,
"unrealizedGainLoss": 6264,
"invoiceCount": 3,
"averageBookedRate": 10.3000,
"currentRate": 10.3870
},
{
"currency": "GBP",
"totalForeignAmount": 15000,
"bookedSekValue": 199500,
"currentSekValue": 203130,
"unrealizedGainLoss": 3630,
"invoiceCount": 1,
"averageBookedRate": 13.3000,
"currentRate": 13.5420
},
{
"currency": "NOK",
"totalForeignAmount": 320000,
"bookedSekValue": 316800,
"currentSekValue": 315040,
"unrealizedGainLoss": -1760,
"invoiceCount": 2,
"averageBookedRate": 0.9900,
"currentRate": 0.9845
}
],
"receivables": [
{
"invoiceId": "inv-1001",
"invoiceNumber": "1001",
"customerName": "Berliner Maschinenbau GmbH",
"customerCountry": "DE",
"currency": "EUR",
"foreignAmount": 22000,
"bookedSekAmount": 245300,
"bookedRate": 11.15,
"currentSekAmount": 251273,
"currentRate": 11.4215,
"unrealizedGainLoss": 5973,
"invoiceDate": "2025-10-15",
"dueDate": "2025-12-15",
"daysOutstanding": 61
},
{
"invoiceId": "inv-1008",
"invoiceNumber": "1008",
"customerName": "Lyon Digital SARL",
"customerCountry": "FR",
"currency": "EUR",
"foreignAmount": 14500,
"bookedSekAmount": 163050,
"bookedRate": 11.245,
"currentSekAmount": 165612,
"currentRate": 11.4215,
"unrealizedGainLoss": 2562,
"invoiceDate": "2025-11-05",
"dueDate": "2026-01-05",
"daysOutstanding": 40
},
{
"invoiceId": "inv-1012",
"invoiceNumber": "1012",
"customerName": "Amsterdam Trading BV",
"customerCountry": "NL",
"currency": "EUR",
"foreignAmount": 8000,
"bookedSekAmount": 89600,
"bookedRate": 11.20,
"currentSekAmount": 91372,
"currentRate": 11.4215,
"unrealizedGainLoss": 1772,
"invoiceDate": "2025-11-20",
"dueDate": "2025-12-20",
"daysOutstanding": 25
},
{
"invoiceId": "inv-1015",
"invoiceNumber": "1015",
"customerName": "Helsinki Solutions Oy",
"customerCountry": "FI",
"currency": "EUR",
"foreignAmount": 4000,
"bookedSekAmount": 43400,
"bookedRate": 10.85,
"currentSekAmount": 45686,
"currentRate": 11.4215,
"unrealizedGainLoss": 2286,
"invoiceDate": "2025-12-01",
"dueDate": "2026-01-01",
"daysOutstanding": 14
},
{
"invoiceId": "inv-1003",
"invoiceNumber": "1003",
"customerName": "New York Consulting Inc",
"customerCountry": "US",
"currency": "USD",
"foreignAmount": 35000,
"bookedSekAmount": 360500,
"bookedRate": 10.30,
"currentSekAmount": 363545,
"currentRate": 10.3870,
"unrealizedGainLoss": 3045,
"invoiceDate": "2025-09-28",
"dueDate": "2025-11-28",
"daysOutstanding": 78
},
{
"invoiceId": "inv-1009",
"invoiceNumber": "1009",
"customerName": "Chicago Parts LLC",
"customerCountry": "US",
"currency": "USD",
"foreignAmount": 22000,
"bookedSekAmount": 224400,
"bookedRate": 10.20,
"currentSekAmount": 228514,
"currentRate": 10.3870,
"unrealizedGainLoss": 4114,
"invoiceDate": "2025-10-20",
"dueDate": "2025-12-20",
"daysOutstanding": 56
},
{
"invoiceId": "inv-1018",
"invoiceNumber": "1018",
"customerName": "San Francisco Tech Corp",
"customerCountry": "US",
"currency": "USD",
"foreignAmount": 15000,
"bookedSekAmount": 156700,
"bookedRate": 10.4467,
"currentSekAmount": 155805,
"currentRate": 10.3870,
"unrealizedGainLoss": -895,
"invoiceDate": "2025-12-05",
"dueDate": "2026-02-05",
"daysOutstanding": 10
},
{
"invoiceId": "inv-1010",
"invoiceNumber": "1010",
"customerName": "London Engineering Ltd",
"customerCountry": "GB",
"currency": "GBP",
"foreignAmount": 15000,
"bookedSekAmount": 199500,
"bookedRate": 13.30,
"currentSekAmount": 203130,
"currentRate": 13.5420,
"unrealizedGainLoss": 3630,
"invoiceDate": "2025-11-01",
"dueDate": "2026-01-01",
"daysOutstanding": 44
},
{
"invoiceId": "inv-1005",
"invoiceNumber": "1005",
"customerName": "Oslo Shipping AS",
"customerCountry": "NO",
"currency": "NOK",
"foreignAmount": 200000,
"bookedSekAmount": 198000,
"bookedRate": 0.99,
"currentSekAmount": 196900,
"currentRate": 0.9845,
"unrealizedGainLoss": -1100,
"invoiceDate": "2025-10-10",
"dueDate": "2025-12-10",
"daysOutstanding": 66
},
{
"invoiceId": "inv-1016",
"invoiceNumber": "1016",
"customerName": "Bergen Industri AS",
"customerCountry": "NO",
"currency": "NOK",
"foreignAmount": 120000,
"bookedSekAmount": 118800,
"bookedRate": 0.99,
"currentSekAmount": 118140,
"currentRate": 0.9845,
"unrealizedGainLoss": -660,
"invoiceDate": "2025-11-22",
"dueDate": "2026-01-22",
"daysOutstanding": 23
}
],
"realizedGainLoss": {
"year": 2025,
"gains": 28450,
"losses": 7820,
"net": 20630
},
"monthlyTrend": [
{ "month": "2025-01", "realizedGains": 1200, "realizedLosses": 0, "netRealized": 1200 },
{ "month": "2025-02", "realizedGains": 0, "realizedLosses": 890, "netRealized": -890 },
{ "month": "2025-03", "realizedGains": 3400, "realizedLosses": 0, "netRealized": 3400 },
{ "month": "2025-04", "realizedGains": 2100, "realizedLosses": 1250, "netRealized": 850 },
{ "month": "2025-05", "realizedGains": 0, "realizedLosses": 2300, "netRealized": -2300 },
{ "month": "2025-06", "realizedGains": 4500, "realizedLosses": 0, "netRealized": 4500 },
{ "month": "2025-07", "realizedGains": 1850, "realizedLosses": 680, "netRealized": 1170 },
{ "month": "2025-08", "realizedGains": 3200, "realizedLosses": 0, "netRealized": 3200 },
{ "month": "2025-09", "realizedGains": 5600, "realizedLosses": 1400, "netRealized": 4200 },
{ "month": "2025-10", "realizedGains": 2800, "realizedLosses": 0, "netRealized": 2800 },
{ "month": "2025-11", "realizedGains": 1500, "realizedLosses": 1300, "netRealized": 200 },
{ "month": "2025-12", "realizedGains": 2300, "realizedLosses": 0, "netRealized": 2300 }
],
"revalPreview": {
"totalUnrealizedGainLoss": 20727,
"gains": 22487,
"losses": 1760
},
"totals": {
"bookedSekValue": 1799250,
"currentSekValue": 1819977,
"totalUnrealizedGainLoss": 20727,
"receivableCount": 10,
"currencyCount": 4
}
}