summaryrefslogtreecommitdiff
path: root/src/administration.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/administration.cpp')
-rw-r--r--src/administration.cpp24
1 files changed, 23 insertions, 1 deletions
diff --git a/src/administration.cpp b/src/administration.cpp
index 231953b..3be34da 100644
--- a/src/administration.cpp
+++ b/src/administration.cpp
@@ -49,7 +49,7 @@ static int compare_tax_countries(const void *a, const void *b)
return strcmp(objA->country_code, objB->country_code);
}
-static time_t administration_get_default_invoice_expire_duration()
+time_t administration_get_default_invoice_expire_duration()
{
return (30 * 24 * 60 * 60); // 30 days
}
@@ -1115,6 +1115,28 @@ tax_rate administration_tax_rate_create_empty()
return result;
}
+a_err administration_tax_rate_get_by_shorthandle(tax_rate* buffer, char* handle)
+{
+ assert(buffer);
+
+ list_iterator_start(&g_administration.tax_rates);
+ while (list_iterator_hasnext(&g_administration.tax_rates)) {
+ tax_rate c = *(tax_rate *)list_iterator_next(&g_administration.tax_rates);
+
+ char compare_str[20];
+ snprintf(compare_str, 20, "%s/%.2f", c.country_code, c.rate);
+ if (strcmp(compare_str, handle) == 0)
+ {
+ *buffer = c;
+ list_iterator_stop(&g_administration.tax_rates);
+ return A_ERR_SUCCESS;
+ }
+ }
+ list_iterator_stop(&g_administration.tax_rates);
+
+ return A_ERR_NOT_FOUND;
+}
+
a_err administration_tax_rate_get_by_id(tax_rate* buffer, char* id)
{
assert(buffer);