{% macro collectionRow(form, disposition, refreshPath) %} {% set inputAttr = { 'hx-post': refreshPath, 'hx-target': '#invoice-editor-form', 'hx-swap': 'outerHTML', 'hx-sync': 'closest form:replace', 'hx-trigger': 'focusout, change', } %}
{{ form_row(form.feeId, { attr: inputAttr }) }}
{{ form_row(form.label, { attr: inputAttr }) }}
{{ form_row(form.unitPriceCents, { attr: inputAttr }) }}
{{ form_row(form.quantity, { attr: inputAttr }) }}
{% endmacro %} {% set savePath = path('app_teamer_disposition_invoice_save', { uuid: disposition.uuid }) %} {% set submitPath = path('app_teamer_disposition_invoice_submit', { uuid: disposition.uuid }) %} {% set refreshPath = path('app_teamer_disposition_invoice_refresh', { uuid: disposition.uuid }) %}
{{ form_start(form, { attr: { 'hx-post': savePath, 'hx-target': '#invoice-editor-form', 'hx-swap': 'outerHTML' } }) }}
{% if disposition.invoiceDraft and disposition.invoiceDraft.status == constant('App\\Entity\\DispositionInvoice::STATUS_REJECTED') %}
{% if disposition.invoiceDraft.rejectionComment %}
Begründung: {{ disposition.invoiceDraft.rejectionComment|nl2br }}
{% endif %}
{% endif %}
{% do form.items.setRendered %} {%- for item in form.items -%} {{- _self.collectionRow(item, disposition, refreshPath) -}} {%- endfor -%}
{{ form_errors(form.items) }}
Gesamt: {{ dto.totalCents|format_money }}
{{ form_row(form.confirmFinal) }}
{{ form_rest(form) }} {{ form_end(form) }}