Packages

Elixir library for Norwegian small business filings — Maskinporten auth, Altinn 3 API client, BRG XML/iXBRL generation, tax calculation (RF-1028/RF-1167), and shareholder register (RF-1086) XML generation. Ported from the Python CLI tool Wenche (https://github.com/olefredrik/Wenche).

Current section

5 Versions

Jump to

Compare versions

8 files changed
+41 additions
-6 deletions
  @@ -37,7 +37,7 @@ Add `wenche` to your list of dependencies in `mix.exs`:
37 37 ```elixir
38 38 def deps do
39 39 [
40 - {:wenche, "~> 0.3.0"}
40 + {:wenche, "~> 0.5.0"}
41 41 ]
42 42 end
43 43 ```
  @@ -2,7 +2,7 @@
2 2 [{<<"GitHub">>,<<"https://github.com/kontira/elixir-wenche">>},
3 3 {<<"Original (Python)">>,<<"https://github.com/olefredrik/Wenche">>}]}.
4 4 {<<"name">>,<<"wenche">>}.
5 - {<<"version">>,<<"0.4.0">>}.
5 + {<<"version">>,<<"0.5.0">>}.
6 6 {<<"description">>,
7 7 <<69,108,105,120,105,114,32,108,105,98,114,97,114,121,32,102,111,114,32,78,
8 8 111,114,119,101,103,105,97,110,32,115,109,97,108,108,32,98,117,115,105,110,
  @@ -141,6 +141,25 @@ defmodule Wenche.BrgXml do
141 141 sum_gjeld = LangsiktigGjeld.sum(lg) + KortsiktigGjeld.sum(kg)
142 142 sum_innskutt_ek = ek.aksjekapital + ek.overkursfond
143 143
144 + # Kortsiktige investeringer (ikke-markedsbaserte aksjer/verdipapir-
145 + # fondsandeler) are reported under <investering> as andreFinansielleInstrumenter.
146 + # The element is optional (minOccurs=0), so omit it entirely when zero.
147 + investering_block =
148 + if om.kortsiktige_investeringer == 0 and fom.kortsiktige_investeringer == 0 do
149 + ""
150 + else
151 + "\n" <>
152 + String.trim_trailing("""
153 + <investering>
154 + #{linje("andreFinansielleInstrumenter", om.kortsiktige_investeringer, "Kortsiktige investeringer", "29030", "6429", "7123", fom.kortsiktige_investeringer)}
155 + <sumInvesteringer>
156 + <aarets orid="6601">#{om.kortsiktige_investeringer}</aarets>
157 + <fjoraarets orid="8018">#{fom.kortsiktige_investeringer}</fjoraarets>
158 + </sumInvesteringer>
159 + </investering>
160 + """)
161 + end
162 +
144 163 xml = """
145 164 <?xml version="1.0" encoding="UTF-8"?>
146 165 <melding xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  @@ -262,7 +281,7 @@ defmodule Wenche.BrgXml do
262 281 </sumFordringer>
263 282 </fordringer>
264 283 </balanseOmloepsmidlerVarerFordringer>
265 - <balanseOmloepsmidlerInvesteringerBankinnskuddKontanter>
284 + <balanseOmloepsmidlerInvesteringerBankinnskuddKontanter>#{investering_block}
266 285 <bankinnskuddKontanter>
267 286 #{linje("bankinnskuddKontanter", om.bankinnskudd, "Bankinnskudd", "29031", "786", "8019", fom.bankinnskudd)}
268 287 <sumBankinnskuddKontanter>
  @@ -166,6 +166,8 @@ defmodule Wenche.Ixbrl do
166 166
167 167 <tr><td>Kortsiktige fordringer</td>
168 168 <td>#{tag("TradeAndOtherCurrentReceivables", om.kortsiktige_fordringer, "c1")}</td></tr>
169 + <tr><td>Kortsiktige investeringer</td>
170 + <td>#{tag("OtherCurrentFinancialAssets", om.kortsiktige_investeringer, "c1")}</td></tr>
169 171 <tr><td>Bankinnskudd</td>
170 172 <td>#{tag("CashAndCashEquivalents", om.bankinnskudd, "c1")}</td></tr>
171 173 <tr><td><strong>Sum omløpsmidler</strong></td>
  @@ -180,16 +180,22 @@ defmodule Wenche.Models do
180 180
181 181 defmodule Omloepmidler do
182 182 @moduledoc "Current assets."
183 - defstruct kortsiktige_fordringer: 0, bankinnskudd: 0, sum_override: nil
183 + defstruct kortsiktige_fordringer: 0,
184 + kortsiktige_investeringer: 0,
185 + bankinnskudd: 0,
186 + sum_override: nil
184 187
185 188 @type t :: %__MODULE__{
186 189 kortsiktige_fordringer: integer(),
190 + kortsiktige_investeringer: integer(),
187 191 bankinnskudd: integer(),
188 192 sum_override: integer() | nil
189 193 }
190 194
191 195 def sum(%__MODULE__{sum_override: o}) when is_integer(o), do: o
192 - def sum(%__MODULE__{} = o), do: o.kortsiktige_fordringer + o.bankinnskudd
196 +
197 + def sum(%__MODULE__{} = o),
198 + do: o.kortsiktige_fordringer + o.kortsiktige_investeringer + o.bankinnskudd
193 199 end
194 200
195 201 defmodule Eiendeler do
Loading more files…