summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrikboy@gmail.com>2025-10-19 16:11:09 +0200
committerAldrik Ramaekers <aldrikboy@gmail.com>2025-10-19 16:11:09 +0200
commit1bfeb2751bf07cdc81ea9344ec941e671cb216a8 (patch)
tree6bc8c691eba2c6c34c3ad0d272aef9029256b616 /tests
parent7dc2a4d511a0f9e30a63be6bc8ecca0bea0b8c3f (diff)
update tests for new tax rates
Diffstat (limited to 'tests')
-rw-r--r--tests/administration_rw_tests.cpp52
-rw-r--r--tests/nl_tax_tests.cpp68
-rw-r--r--tests/peppol_write_tests.cpp10
-rw-r--r--tests/test_helper.cpp78
4 files changed, 94 insertions, 114 deletions
diff --git a/tests/administration_rw_tests.cpp b/tests/administration_rw_tests.cpp
index 36353f7..224a689 100644
--- a/tests/administration_rw_tests.cpp
+++ b/tests/administration_rw_tests.cpp
@@ -26,9 +26,11 @@ TEST _administration_rw_taxrate(void)
administration::create_empty(test_file_path);
{
pw = administration::tax_rate_create_empty();
- strops::copy(pw.country_code, "NL", sizeof(pw.country_code));
pw.rate = 10.0f;
+ pw.type = tax_rate_type::TAX_RATE_OUTGOING_INVOICE;
+ strops::copy(pw.internal_code, "NL/21", sizeof(pw.internal_code));
strops::copy(pw.category_code, "S", sizeof(pw.category_code));
+ strops::copy(pw.tax_sections[pw.tax_section_count++], "NL/1a", MAX_LEN_SHORT_DESC);
count = administration::tax_rate_count();
administration::tax_rate_add(pw);
@@ -39,7 +41,7 @@ TEST _administration_rw_taxrate(void)
administration_reader::open_existing(test_file_path);
{
ASSERT_EQ(count+1, administration::tax_rate_count());
- ASSERT_EQ(A_ERR_SUCCESS, administration::tax_rate_get_by_id(&pr, pw.id));
+ ASSERT_EQ(A_ERR_SUCCESS, administration::tax_rate_get_by_internal_code(&pr, pw.internal_code));
ASSERT_MEM_EQ(&pw, &pr, sizeof(tax_rate));
}
@@ -202,7 +204,7 @@ TEST _assert_invoices_are_equal(invoice inv, invoice invr)
ASSERT_EQ(b1->allowance, b2->allowance);
ASSERT_EQ(b1->net, b2->net);
ASSERT_STR_EQ(b1->currency, b2->currency);
- ASSERT_STR_EQ(b1->tax_rate_id, b2->tax_rate_id);
+ ASSERT_STR_EQ(b1->tax_internal_code, b2->tax_internal_code);
ASSERT_EQ(b1->tax, b2->tax);
ASSERT_EQ(b1->total, b2->total);
}
@@ -236,9 +238,10 @@ TEST _administration_rw_b2b_invoice(void)
invoice invr;
administration_writer::create();
-
+
administration::create_default(test_file_path);
{
+ add_default_nl_tax_rates();
contact pw1 = _create_nl_business();
contact pw2 = _create_nl_business();
@@ -251,10 +254,10 @@ TEST _administration_rw_b2b_invoice(void)
inv.delivered_at = inv.issued_at;
inv.expires_at = inv.issued_at + 1000;
- administration::billing_item_add_to_invoice(&inv, _create_bi3(&inv));
- administration::billing_item_add_to_invoice(&inv, _create_bi4(&inv));
- administration::billing_item_add_to_invoice(&inv, _create_bi5(&inv));
- administration::billing_item_add_to_invoice(&inv, _create_bi6(&inv));
+ administration::billing_item_add_to_invoice(&inv, _create_bi3());
+ administration::billing_item_add_to_invoice(&inv, _create_bi4());
+ administration::billing_item_add_to_invoice(&inv, _create_bi5());
+ administration::billing_item_add_to_invoice(&inv, _create_bi6());
count = administration::invoice_count();
ASSERT_EQ(administration::invoice_add(&inv), A_ERR_SUCCESS);
@@ -279,9 +282,10 @@ TEST _administration_rw_b2c_invoice(void)
invoice invr;
administration_writer::create();
-
+
administration::create_default(test_file_path);
{
+ add_default_nl_tax_rates();
contact pw1 = _create_nl_business();
contact pw2 = _create_nl_consumer();
@@ -294,10 +298,10 @@ TEST _administration_rw_b2c_invoice(void)
inv.delivered_at = inv.issued_at;
inv.expires_at = inv.issued_at + 1000;
- administration::billing_item_add_to_invoice(&inv, _create_bi3(&inv));
- administration::billing_item_add_to_invoice(&inv, _create_bi4(&inv));
- administration::billing_item_add_to_invoice(&inv, _create_bi5(&inv));
- administration::billing_item_add_to_invoice(&inv, _create_bi6(&inv));
+ administration::billing_item_add_to_invoice(&inv, _create_bi3());
+ administration::billing_item_add_to_invoice(&inv, _create_bi4());
+ administration::billing_item_add_to_invoice(&inv, _create_bi5());
+ administration::billing_item_add_to_invoice(&inv, _create_bi6());
count = administration::invoice_count();
ASSERT_EQ(administration::invoice_add(&inv), A_ERR_SUCCESS);
@@ -322,9 +326,10 @@ TEST _administration_rw_b2b2c_invoice(void)
invoice invr;
administration_writer::create();
-
+
administration::create_default(test_file_path);
{
+ add_default_nl_tax_rates();
inv = administration::invoice_create_empty();
inv.supplier = _create_nl_business();
inv.customer = _create_nl_business();
@@ -337,10 +342,10 @@ TEST _administration_rw_b2b2c_invoice(void)
inv.delivered_at = inv.issued_at;
inv.expires_at = inv.issued_at + 1000;
- administration::billing_item_add_to_invoice(&inv, _create_bi3(&inv));
- administration::billing_item_add_to_invoice(&inv, _create_bi4(&inv));
- administration::billing_item_add_to_invoice(&inv, _create_bi5(&inv));
- administration::billing_item_add_to_invoice(&inv, _create_bi6(&inv));
+ administration::billing_item_add_to_invoice(&inv, _create_bi3());
+ administration::billing_item_add_to_invoice(&inv, _create_bi4());
+ administration::billing_item_add_to_invoice(&inv, _create_bi5());
+ administration::billing_item_add_to_invoice(&inv, _create_bi6());
count = administration::invoice_count();
ASSERT_EQ(administration::invoice_add(&inv), A_ERR_SUCCESS);
@@ -365,9 +370,10 @@ TEST _administration_rw_b2c_2currency_invoice(void)
invoice invr;
administration_writer::create();
-
+
administration::create_default(test_file_path);
{
+ add_default_nl_tax_rates();
contact pw1 = _create_nl_business();
contact pw2 = _create_nl_consumer();
@@ -382,10 +388,10 @@ TEST _administration_rw_b2c_2currency_invoice(void)
administration::invoice_set_currency(&inv, "USD");
- administration::billing_item_add_to_invoice(&inv, _create_bi3(&inv));
- administration::billing_item_add_to_invoice(&inv, _create_bi4(&inv));
- administration::billing_item_add_to_invoice(&inv, _create_bi5(&inv));
- administration::billing_item_add_to_invoice(&inv, _create_bi6(&inv));
+ administration::billing_item_add_to_invoice(&inv, _create_bi3());
+ administration::billing_item_add_to_invoice(&inv, _create_bi4());
+ administration::billing_item_add_to_invoice(&inv, _create_bi5());
+ administration::billing_item_add_to_invoice(&inv, _create_bi6());
// Finals are set manually for multi currency invoices.
inv.total = 20.0f;
diff --git a/tests/nl_tax_tests.cpp b/tests/nl_tax_tests.cpp
index 20d70c8..0fce093 100644
--- a/tests/nl_tax_tests.cpp
+++ b/tests/nl_tax_tests.cpp
@@ -4,22 +4,23 @@ TEST _nl_tax_1a(void)
{
administration::create_default(test_file_path);
administration::company_info_set(_create_nl_business());
+ add_default_nl_tax_rates();
invoice inv = _create_nl_b2b_inv_outgoing();
- administration::billing_item_add_to_invoice(&inv, _create_bi(1, 20.0f, "NL/21.00"));
- administration::billing_item_add_to_invoice(&inv, _create_bi(1, 30.0f, "NL/21.00"));
+ administration::billing_item_add_to_invoice(&inv, _create_bi(1, 20.0f, "NL/21"));
+ administration::billing_item_add_to_invoice(&inv, _create_bi(1, 30.0f, "NL/21"));
ASSERT_EQ(administration::invoice_add(&inv), A_ERR_SUCCESS);
tax_statement statement;
administration::create_tax_statement(&statement);
ASSERT_EQ(statement.report_count, 1);
- tax_line* tl = administration::get_tax_line_from_report(&statement.reports[0], "1a");
+ tax_line* tl = administration::get_tax_line_from_report(&statement.reports[0], "NL/1a");
ASSERT_EQ(tl->total_net, 50.0f);
ASSERT_EQ(tl->total_tax, 50.0f * 0.21f);
- tax_line* tl2 = administration::get_tax_line_from_report(&statement.reports[0], "5a");
+ tax_line* tl2 = administration::get_tax_line_from_report(&statement.reports[0], "NL/5a");
ASSERT_EQ(tl2->total_tax, 50.0f * 0.21f);
PASS();
@@ -29,78 +30,49 @@ TEST _nl_tax_1b(void)
{
administration::create_default(test_file_path);
administration::company_info_set(_create_nl_business());
+ add_default_nl_tax_rates();
invoice inv = _create_nl_b2b_inv_outgoing();
- administration::billing_item_add_to_invoice(&inv, _create_bi(1, 10.0f, "NL/9.00"));
- administration::billing_item_add_to_invoice(&inv, _create_bi(1, 15.0f, "NL/9.00"));
+ administration::billing_item_add_to_invoice(&inv, _create_bi(1, 10.0f, "NL/9"));
+ administration::billing_item_add_to_invoice(&inv, _create_bi(1, 15.0f, "NL/9"));
ASSERT_EQ(administration::invoice_add(&inv), A_ERR_SUCCESS);
tax_statement statement;
administration::create_tax_statement(&statement);
ASSERT_EQ(statement.report_count, 1);
- tax_line* tl = administration::get_tax_line_from_report(&statement.reports[0], "1b");
+ tax_line* tl = administration::get_tax_line_from_report(&statement.reports[0], "NL/1b");
ASSERT_EQ(tl->total_net, 25.0f);
ASSERT_EQ(tl->total_tax, 25.0f * 0.09f);
- tax_line* tl2 = administration::get_tax_line_from_report(&statement.reports[0], "5a");
+ tax_line* tl2 = administration::get_tax_line_from_report(&statement.reports[0], "NL/5a");
ASSERT_EQ(tl2->total_tax, 25.0f * 0.09f);
PASS();
}
-TEST _nl_tax_1c(void)
-{
- administration::create_default(test_file_path);
- administration::company_info_set(_create_nl_business());
-
- tax_rate new_tax_rate = administration::tax_rate_create_empty();
- new_tax_rate.rate = 5.0f;
- strops::copy(new_tax_rate.category_code, "S", MAX_LEN_CODE);
- strops::copy(new_tax_rate.country_code, "NL", MAX_LEN_COUNTRY_CODE);
- administration::tax_rate_add(new_tax_rate);
-
- invoice inv = _create_nl_b2b_inv_outgoing();
-
- administration::billing_item_add_to_invoice(&inv, _create_bi(1, 30.0f, "NL/5.00"));
- administration::billing_item_add_to_invoice(&inv, _create_bi(1, 15.0f, "NL/5.00"));
- ASSERT_EQ(administration::invoice_add(&inv), A_ERR_SUCCESS);
-
- tax_statement statement;
- administration::create_tax_statement(&statement);
- ASSERT_EQ(statement.report_count, 1);
-
- tax_line* tl = administration::get_tax_line_from_report(&statement.reports[0], "1c");
- ASSERT_EQ(tl->total_net, 45.0f);
- ASSERT_EQ(tl->total_tax, 45.0f * 0.05f);
-
- tax_line* tl2 = administration::get_tax_line_from_report(&statement.reports[0], "5a");
- ASSERT_EQ(tl2->total_tax, 45.0f * 0.05f);
-
- PASS();
-}
-
TEST _nl_tax_1e(void)
{
administration::create_default(test_file_path);
administration::company_info_set(_create_nl_business());
+ add_default_nl_tax_rates();
invoice inv = _create_nl_b2b_inv_outgoing();
- administration::billing_item_add_to_invoice(&inv, _create_bi(1, 30.0f, "00/E"));
- administration::billing_item_add_to_invoice(&inv, _create_bi(1, 50.0f, "00/E"));
+ administration::billing_item_add_to_invoice(&inv, _create_bi(1, 30.0f, "NL/0"));
+ administration::billing_item_add_to_invoice(&inv, _create_bi(1, 50.0f, "NL/0"));
ASSERT_EQ(administration::invoice_add(&inv), A_ERR_SUCCESS);
tax_statement statement;
administration::create_tax_statement(&statement);
ASSERT_EQ(statement.report_count, 1);
- tax_line* tl = administration::get_tax_line_from_report(&statement.reports[0], "1e");
+ tax_line* tl = administration::get_tax_line_from_report(&statement.reports[0], "NL/1e");
ASSERT_EQ(tl->total_net, 80.0f);
ASSERT_EQ(tl->total_tax, 0.0f);
- tax_line* tl2 = administration::get_tax_line_from_report(&statement.reports[0], "5a");
+ tax_line* tl2 = administration::get_tax_line_from_report(&statement.reports[0], "NL/5a");
ASSERT_EQ(tl2->total_tax, 0.0f);
PASS();
@@ -110,12 +82,13 @@ TEST _nl_tax_2currency(void)
{
administration::create_default(test_file_path);
administration::company_info_set(_create_nl_business());
+ add_default_nl_tax_rates();
invoice inv = _create_nl_b2b_inv_outgoing();
administration::invoice_set_currency(&inv, "USD");
- administration::billing_item_add_to_invoice(&inv, _create_bi(1, 20.0f, "NL/21.00"));
- administration::billing_item_add_to_invoice(&inv, _create_bi(1, 30.0f, "NL/21.00"));
+ administration::billing_item_add_to_invoice(&inv, _create_bi(1, 20.0f, "NL/21"));
+ administration::billing_item_add_to_invoice(&inv, _create_bi(1, 30.0f, "NL/21"));
float eur_usd_exchange_rate = 1.2f;
@@ -130,11 +103,11 @@ TEST _nl_tax_2currency(void)
administration::create_tax_statement(&statement);
ASSERT_EQ(statement.report_count, 1);
- tax_line* tl = administration::get_tax_line_from_report(&statement.reports[0], "1a");
+ tax_line* tl = administration::get_tax_line_from_report(&statement.reports[0], "NL/1a");
GREATEST_ASSERT_FEQ(tl->total_net, inv.net);
GREATEST_ASSERT_FEQ(tl->total_tax, inv.tax);
- tax_line* tl2 = administration::get_tax_line_from_report(&statement.reports[0], "5a");
+ tax_line* tl2 = administration::get_tax_line_from_report(&statement.reports[0], "NL/5a");
GREATEST_ASSERT_FEQ(tl2->total_tax, inv.tax);
PASS();
@@ -143,7 +116,6 @@ TEST _nl_tax_2currency(void)
SUITE(nl_tax_statement) {
RUN_TEST(_nl_tax_1a);
RUN_TEST(_nl_tax_1b);
- RUN_TEST(_nl_tax_1c);
RUN_TEST(_nl_tax_1e);
RUN_TEST(_nl_tax_2currency);
} \ No newline at end of file
diff --git a/tests/peppol_write_tests.cpp b/tests/peppol_write_tests.cpp
index 7caa102..d0bdee5 100644
--- a/tests/peppol_write_tests.cpp
+++ b/tests/peppol_write_tests.cpp
@@ -6,6 +6,7 @@ TEST _peppol_write_nl2nl_b2b(void)
{
administration_writer::create();
administration::create_default(test_file_path);
+ add_default_nl_tax_rates();
invoice inv = administration::invoice_create_empty();
inv.supplier = _create_nl_business();
@@ -16,8 +17,8 @@ TEST _peppol_write_nl2nl_b2b(void)
inv.delivered_at = inv.issued_at;
inv.expires_at = inv.issued_at + 1000;
- administration::billing_item_add_to_invoice(&inv, _create_bi1(&inv));
- administration::billing_item_add_to_invoice(&inv, _create_bi2(&inv));
+ administration::billing_item_add_to_invoice(&inv, _create_bi1());
+ administration::billing_item_add_to_invoice(&inv, _create_bi2());
ASSERT_EQ(administration::invoice_add(&inv), A_ERR_SUCCESS);
if (_test_peppol_file(inv.id)) { PASS(); } else { FAIL(); }
@@ -27,6 +28,7 @@ TEST _peppol_write_nl2nl_b2c(void)
{
administration_writer::create();
administration::create_default(test_file_path);
+ add_default_nl_tax_rates();
invoice inv = administration::invoice_create_empty();
inv.supplier = _create_nl_business();
@@ -37,8 +39,8 @@ TEST _peppol_write_nl2nl_b2c(void)
inv.delivered_at = inv.issued_at;
inv.expires_at = inv.issued_at + 1000;
- administration::billing_item_add_to_invoice(&inv, _create_bi1(&inv));
- administration::billing_item_add_to_invoice(&inv, _create_bi2(&inv));
+ administration::billing_item_add_to_invoice(&inv, _create_bi1());
+ administration::billing_item_add_to_invoice(&inv, _create_bi2());
ASSERT_EQ(administration::invoice_add(&inv), A_ERR_SUCCESS);
if (_test_peppol_file(inv.id)) { PASS(); } else { FAIL(); }
diff --git a/tests/test_helper.cpp b/tests/test_helper.cpp
index 85d228a..fc09fd6 100644
--- a/tests/test_helper.cpp
+++ b/tests/test_helper.cpp
@@ -5,6 +5,7 @@
#include "memops.hpp"
#include "strops.hpp"
+#include "countries.hpp"
#include "administration.hpp"
#include "administration_reader.hpp"
#include "administration_writer.hpp"
@@ -48,7 +49,7 @@ static contact _create_nl_consumer()
}
-static billing_item _create_bi1(invoice *inv)
+static billing_item _create_bi1()
{
billing_item item = administration::billing_item_create_empty();
item.amount = 1;
@@ -58,16 +59,14 @@ static billing_item _create_bi1(invoice *inv)
item.discount = 2.0f;
item.discount_is_percentage = 0;
- tax_rate buffer[20];
- char* _country_codes[2] = {inv->supplier.address.country_code, inv->customer.address.country_code};
- u32 tax_rate_count = administration::tax_rate_get_by_country(buffer, 2, _country_codes);
- tax_rate rand_rate = buffer[tax_rate_count-1];
- strops::copy(item.tax_internal_code, rand_rate.id, MAX_LEN_ID);
+ tax_rate rate;
+ administration::tax_rate_get_by_internal_code(&rate, "NL/21");
+ strops::copy(item.tax_internal_code, rate.internal_code, MAX_LEN_SHORT_DESC);
return item;
}
-static billing_item _create_bi2(invoice *inv)
+static billing_item _create_bi2()
{
billing_item item = administration::billing_item_create_empty();
item.amount = 2;
@@ -77,16 +76,14 @@ static billing_item _create_bi2(invoice *inv)
item.discount = 5.0f;
item.discount_is_percentage = 1;
- tax_rate buffer[20];
- char* _country_codes[2] = {inv->supplier.address.country_code, inv->customer.address.country_code};
- u32 tax_rate_count = administration::tax_rate_get_by_country(buffer, 2, _country_codes);
- tax_rate rand_rate = buffer[tax_rate_count-1];
- strops::copy(item.tax_internal_code, rand_rate.id, MAX_LEN_ID);
+ tax_rate rate;
+ administration::tax_rate_get_by_internal_code(&rate, "NL/21");
+ strops::copy(item.tax_internal_code, rate.internal_code, MAX_LEN_SHORT_DESC);
return item;
}
-static billing_item _create_bi3(invoice *inv)
+static billing_item _create_bi3()
{
billing_item item = administration::billing_item_create_empty();
item.amount = 1;
@@ -96,16 +93,14 @@ static billing_item _create_bi3(invoice *inv)
item.discount = 2.0f;
item.discount_is_percentage = 0;
- tax_rate buffer[20];
- char* _country_codes[2] = {inv->supplier.address.country_code, inv->customer.address.country_code};
- u32 tax_rate_count = administration::tax_rate_get_by_country(buffer, 2, _country_codes);
- tax_rate rand_rate = buffer[tax_rate_count-1];
- strops::copy(item.tax_internal_code, rand_rate.id, MAX_LEN_ID);
+ tax_rate rate;
+ administration::tax_rate_get_by_internal_code(&rate, "NL/21");
+ strops::copy(item.tax_internal_code, rate.internal_code, MAX_LEN_SHORT_DESC);
return item;
}
-static billing_item _create_bi4(invoice *inv)
+static billing_item _create_bi4()
{
billing_item item = administration::billing_item_create_empty();
item.amount = 3;
@@ -115,16 +110,14 @@ static billing_item _create_bi4(invoice *inv)
item.discount = 0.0f;
item.discount_is_percentage = 0;
- tax_rate buffer[20];
- char* _country_codes[2] = {inv->supplier.address.country_code, inv->customer.address.country_code};
- u32 tax_rate_count = administration::tax_rate_get_by_country(buffer, 2, _country_codes);
- tax_rate rand_rate = buffer[tax_rate_count-1];
- strops::copy(item.tax_internal_code, rand_rate.id, MAX_LEN_ID);
+ tax_rate rate;
+ administration::tax_rate_get_by_internal_code(&rate, "NL/21");
+ strops::copy(item.tax_internal_code, rate.internal_code, MAX_LEN_SHORT_DESC);
return item;
}
-static billing_item _create_bi5(invoice *inv)
+static billing_item _create_bi5()
{
billing_item item = administration::billing_item_create_empty();
item.amount = 5;
@@ -134,16 +127,14 @@ static billing_item _create_bi5(invoice *inv)
item.discount = 5.0f;
item.discount_is_percentage = 1;
- tax_rate buffer[20];
- char* _country_codes[2] = {inv->supplier.address.country_code, inv->customer.address.country_code};
- u32 tax_rate_count = administration::tax_rate_get_by_country(buffer, 2, _country_codes);
- tax_rate rand_rate = buffer[tax_rate_count-1];
- strops::copy(item.tax_internal_code, rand_rate.id, MAX_LEN_ID);
+ tax_rate rate;
+ administration::tax_rate_get_by_internal_code(&rate, "NL/21");
+ strops::copy(item.tax_internal_code, rate.internal_code, MAX_LEN_SHORT_DESC);
return item;
}
-static billing_item _create_bi6(invoice *inv)
+static billing_item _create_bi6()
{
billing_item item = administration::billing_item_create_empty();
item.amount = 10;
@@ -153,11 +144,9 @@ static billing_item _create_bi6(invoice *inv)
item.discount = 0.0f;
item.discount_is_percentage = 0;
- tax_rate buffer[20];
- char* _country_codes[2] = {inv->supplier.address.country_code, inv->customer.address.country_code};
- u32 tax_rate_count = administration::tax_rate_get_by_country(buffer, 2, _country_codes);
- tax_rate rand_rate = buffer[tax_rate_count-1];
- strops::copy(item.tax_internal_code, rand_rate.id, MAX_LEN_ID);
+ tax_rate rate;
+ administration::tax_rate_get_by_internal_code(&rate, "NL/21");
+ strops::copy(item.tax_internal_code, rate.internal_code, MAX_LEN_SHORT_DESC);
return item;
}
@@ -172,8 +161,8 @@ static billing_item _create_bi(float amount, float npi, char* taxrate)
item.discount = 0.0f;
item.discount_is_percentage = 0;
tax_rate rate;
- //administration::tax_rate_get_by_shorthandle(&rate, taxrate);
- strops::copy(item.tax_internal_code, rate.id, MAX_LEN_ID);
+ administration::tax_rate_get_by_internal_code(&rate, taxrate);
+ strops::copy(item.tax_internal_code, rate.internal_code, MAX_LEN_SHORT_DESC);
return item;
}
@@ -243,4 +232,15 @@ static bool _test_peppol_file(char* id)
}
return result;
-} \ No newline at end of file
+}
+
+static void add_default_nl_tax_rates()
+{
+ tax_rate* tr_buffer = (tax_rate*)memops::alloc(sizeof(tax_rate) * 500);
+ country::get_available_tax_rates("NL", tr_buffer, 500);
+
+ for (u32 i = 0; i < 10; i++) {
+ administration::tax_rate_add(tr_buffer[i]);
+ }
+ memops::unalloc(tr_buffer);
+}