diff --git a/roles/timetracking/files/invoice-potaris.html.twig b/roles/timetracking/files/invoice-potaris.html.twig
new file mode 100644
index 0000000..893c04d
--- /dev/null
+++ b/roles/timetracking/files/invoice-potaris.html.twig
@@ -0,0 +1,170 @@
+
+
+
+
+ {% block title %}{{ invoice['invoice.number'] }}-{{ invoice['customer.company']|default(invoice['customer.name'])|u.snake }}{% endblock %}
+
+
+
+
+
+
+{% set isDecimal = model.template.decimalDuration|default(false) %}
+{% set currency = model.currency %}
+
+
+
+
+ {{ 'invoice.to'|trans }}
+
+ {{ model.customer.company|default(model.customer.name) }}
+ {{ model.customer.address|nl2br }}
+ {% if model.customer.vatId is not empty %}
+
+ {{ 'vat_id'|trans }}: {{ model.customer.vatId }}
+ {% endif %}
+ {% if model.customer.number is not empty %}
+
+ {{ 'label.number'|trans }}: {{ model.customer.number }}
+ {% endif %}
+ {% if model.query.project is not empty and model.query.project.orderNumber is not empty %}
+
+ {{ 'label.orderNumber'|trans }}: {{ model.query.project.orderNumber }}
+ {% endif %}
+
+
+
+
+ {{ 'invoice.from'|trans }}
+
+ {{ model.template.company }}
+ {{ model.template.address|trim|nl2br }}
+ {% if model.template.vatId is not empty %}
+
+ {{ 'vat_id'|trans }}:
+ {{ model.template.vatId }}
+ {% endif %}
+
+ Steuernummer: 218/135/30020
+
+
+
+
+
+
+
+ {{ 'invoice.number'|trans }}:
+ {{ model.invoiceNumber }}
+
+
+ Leistungszeitraum:
+ {{ invoice['query.begin'] }} - {{ invoice['query.end'] }}
+
+
+ {{ 'invoice.due_days'|trans }}:
+ {{ model.dueDate|date_short }}
+
+
+
+
+
+
+
+
+
+
+ | {{ 'description'|trans }} |
+ |
+ Stundensatz |
+ Stunden |
+ {{ 'total_rate'|trans }} |
+
+
+
+ {% for entry in model.calculator.entries %}
+ {% set duration = entry.duration|duration(isDecimal) %}
+ {% if entry.fixedRate %}
+ {% set rate = entry.fixedRate %}
+ {% set duration = entry.amount|amount %}
+ {% else %}
+ {% set rate = entry.hourlyRate %}
+ {% endif %}
+
+
+ |
+ {% if entry.description is not empty %}
+ {{ entry.description|nl2br }}
+ {% else %}
+ {% if entry.activity is not null %}{{ entry.activity.name }} / {% endif %}{{ entry.project.name }}
+ {% endif %}
+ |
+ |
+ {{ rate|money(currency) }} |
+ {{ duration }} |
+ {{ entry.rate|money(currency) }} |
+
+ {% endfor %}
+
+
+ {% if model.calculator.tax > 0 or not model.isHideZeroTax() %}
+
+ |
+ {{ 'invoice.subtotal'|trans }}
+ |
+ {{ model.calculator.subtotal|money(currency) }} |
+
+
+ |
+ {{ 'invoice.tax'|trans }} ({{ model.calculator.vat }}%)
+ |
+ {{ model.calculator.tax|money(currency) }} |
+
+ {% endif %}
+
+ |
+ {{ 'invoice.total'|trans }}
+ |
+
+ {{ model.calculator.total|money(currency) }}
+ |
+
+
+
+
+
+
+
+
+ {% if model.template.paymentTerms is not empty %}
+
+ {{ model.template.paymentTerms|md2html }}
+
+ {% endif %}
+
+
+
+
+
+
+
+
+
diff --git a/roles/timetracking/tasks/main.yaml b/roles/timetracking/tasks/main.yaml
index f1e8cb5..219bdcc 100644
--- a/roles/timetracking/tasks/main.yaml
+++ b/roles/timetracking/tasks/main.yaml
@@ -1,9 +1,31 @@
+- name: Create Kimai compose directories
+ file:
+ state: directory
+ path: "{{ item }}"
+ owner: www-data
+ with_items:
+ - /data/kimai-invoice-templates/
+
+- name: Copy Potaris twig Invoice Template
+ copy:
+ src: invoice-potaris.html.twig
+ dest: /data/kimai-invoice-templates/
+ owner: www-data
+
+- name: Create Kimai mysql-directory
+ file:
+ state: directory
+ path: "{{ item }}"
+ owner: 999
+ group: root
+ with_items:
+ - /data/timetracking-mysql/
+
- name: Create Kimai compose directories
file:
state: directory
path: "{{ item }}"
with_items:
- - /opt/timetracking-mysql/
- /opt/kimai/
- name: Deploy Kimai Compose file
diff --git a/roles/timetracking/templates/docker-compose-kimai.yaml b/roles/timetracking/templates/docker-compose-kimai.yaml
index 45896aa..50c3f3b 100644
--- a/roles/timetracking/templates/docker-compose-kimai.yaml
+++ b/roles/timetracking/templates/docker-compose-kimai.yaml
@@ -11,7 +11,7 @@ services:
ports:
- 3306:3306
volumes:
- - /opt/timetracking-mysql/:/var/lib/mysql
+ - /data/timetracking-mysql/:/var/lib/mysql
kimai:
image: kimai/kimai2:apache
restart: always
@@ -19,5 +19,7 @@ services:
DATABASE_URL: "mysql://kimai:kimai@mysql:3306/kimai"
TRUSTED_HOSTS: timetracking.atlantishq.de,localhost,127.0.0.1
APP_ENV: prod
+ volumes:
+ - /data/kimai-invoice-templates/:/opt/kimai/var/invoices/
ports:
- 8080:8001