Feat: Implement workflow for disposition document uploads

This commit is contained in:
Björn Fromme
2023-10-13 11:52:32 +02:00
parent 6df725edc4
commit 8dcfa2f43c
7 changed files with 296 additions and 81 deletions
+95 -52
View File
@@ -2,6 +2,13 @@
{% block title %}Einsatzdetails{% endblock %}
{% macro infobox(message) %}
<div class="flex items-start space-x-4 bg-primary text-white p-4 rounded-md">
{{ icon('info', 'w-6 h-6 shrink-0') }}
<span>{{ message }}</span>
</div>
{% endmacro %}
{% block content %}
<h1 class="text-2xl font-bold pb-8">
Einsatzdetails
@@ -20,71 +27,107 @@
<br>
{{ assignment.contact }}, <a href="mailto:{{ assignment.contact.email }}" class="underline">{{ assignment.contact.email }}</a>
</p>
{% if workflow_can(disposition, 'upload_contract') %}
<h3 class="text-xl font-bold pb-4">
Hier findest du deinen Honorarvertrag
</h3>
<div class="pb-4">
<a href="{{ path('app_teamer_disposition_contractpdf', { 'uuid': disposition.uuid }) }}" target="_blank" class="inline-block">
<img src="{{ asset('build/images/contract_thumb.jpg') }}" alt="Honorarvertrag" class="block w-32 h-auto shadow-md">
</a>
</div>
<p class="pb-4">
Bitte lade ihn unterschrieben hier wieder hoch:
</p>
{{ form_start(form) }}
<div class="pb-4">
{% include '_partials/_upload_collection_form.html.twig' with {
'endpoint_upload': path('_uploader_upload_contract'),
'accepted_files': 'image/jpg,image/jpeg,application/pdf',
} %}
</div>
<button type="submit" class="btn">
Aktualisieren
</button>
{{ form_rest(form) }}
{{ form_end(form) }}
{% elseif workflow_can(disposition, 'upload_invoice') %}
<h3 class="text-xl font-bold pb-4">
Hier findest du deine Honorarnote
</h3>
<div class="pb-4">
<a href="{{ path('app_teamer_disposition_contractpdf', { 'uuid': disposition.uuid }) }}" target="_blank" class="inline-block">
<img src="{{ asset('build/images/contract_thumb.jpg') }}" alt="Honorarvertrag" class="block w-32 h-auto shadow-md">
</a>
</div>
<p class="pb-4">
Bitte lade sie ausgefüllt und unterschrieben hier wieder hoch:
</p>
{{ form_start(form) }}
<div class="pb-4">
{% include '_partials/_upload_collection_form.html.twig' with {
'endpoint_upload': path('_uploader_upload_invoice'),
'accepted_files': 'image/jpg,image/jpeg,application/pdf',
} %}
</div>
<button type="submit" class="btn">
Aktualisieren
</button>
{{ form_rest(form) }}
{{ form_end(form) }}
{% elseif workflow_has_marked_place(disposition, 'checking_contract') %}
{# Upload contract #}
{% if workflow_has_marked_place(disposition, 'new') %}
{% if workflow_can(disposition, 'upload_contract') %}
<h3 class="text-xl font-bold pb-4">
Hier findest du deinen Honorarvertrag
</h3>
<div class="pb-4">
<a href="{{ path('app_teamer_disposition_contractpdf', { 'uuid': disposition.uuid }) }}" target="_blank" class="inline-block">
<img src="{{ asset('build/images/contract_thumb.jpg') }}" alt="Honorarvertrag" class="block w-32 h-auto shadow-md">
</a>
</div>
<p class="pb-4">
Bitte lade ihn unterschrieben hier wieder hoch:
</p>
{{ form_start(form) }}
<div class="pb-4">
{% include '_partials/_upload_collection_form.html.twig' with {
'endpoint_upload': path('_uploader_upload_contract'),
'accepted_files': 'image/jpg,image/jpeg,application/pdf',
} %}
</div>
<button type="submit" class="btn">
Aktualisieren
</button>
{{ form_rest(form) }}
{{ form_end(form) }}
{% else %}
{% for blocker in workflow_transition_blockers(disposition, 'upload_contract') %}
{{ _self.infobox(blocker.message) }}
{% endfor %}
{% endif %}
{% endif %}
{# Upload invoice #}
{% if workflow_has_marked_place(disposition, 'confirmed') %}
{% if workflow_can(disposition, 'upload_invoice') %}
<h3 class="text-xl font-bold pb-4">
Hier findest du deine Honorarnote
</h3>
<div class="pb-4">
<a href="{{ path('app_teamer_disposition_contractpdf', { 'uuid': disposition.uuid }) }}" target="_blank" class="inline-block">
<img src="{{ asset('build/images/contract_thumb.jpg') }}" alt="Honorarvertrag" class="block w-32 h-auto shadow-md">
</a>
</div>
<p class="pb-4">
Bitte lade sie ausgefüllt und unterschrieben hier wieder hoch:
</p>
{{ form_start(form) }}
<div class="pb-4">
{% include '_partials/_upload_collection_form.html.twig' with {
'endpoint_upload': path('_uploader_upload_invoice'),
'accepted_files': 'image/jpg,image/jpeg,application/pdf',
} %}
</div>
<button type="submit" class="btn">
Aktualisieren
</button>
{{ form_rest(form) }}
{{ form_end(form) }}
{% else %}
{% for blocker in workflow_transition_blockers(disposition, 'upload_invoice') %}
{{ _self.infobox(blocker.message) }}
{% endfor %}
{% endif %}
{% endif %}
{# Contract uploaded #}
{% if workflow_has_marked_place(disposition, 'checking_contract') %}
<h3 class="text-xl font-bold pb-4">
Danke für den Upload des Honorarvertrags
</h3>
{% elseif workflow_has_marked_place(disposition, 'checking_invoice') %}
<div class="pb-4">
Wir prüfen das Dokument schnellstmöglich.
</div>
{% endif %}
{# Invoice uploaded #}
{% if workflow_has_marked_place(disposition, 'checking_invoice') %}
<h3 class="text-xl font-bold pb-4">
Danke für den Upload der Honorarnote
</h3>
{% elseif workflow_has_marked_place(disposition, 'paid') %}
<div class="pb-4">
Wir prüfen das Dokument schnellstmöglich.
</div>
{% endif %}
{# Invoice paid #}
{% if workflow_has_marked_place(disposition, 'paid') %}
<h3 class="text-xl font-bold pb-4">
Dein Honorar wurde überwiesen
</h3>
{% else %}
{% endif %}
{# No invoice required #}
{% if workflow_has_marked_place(disposition, 'completed') %}
<h3 class="text-xl font-bold pb-4">
Dein Einsatz ist abgeschlossen
</h3>
{% endif %}
<div class="pt-4">
<a href="{{ returnUrl }}" class="underline">
zurück