Skip to content

Commit e235b25

Browse files
committed
Demark later changes in values by StuRa financers in generated PDF files
1 parent 9e51128 commit e235b25

File tree

4 files changed

+53
-16
lines changed

4 files changed

+53
-16
lines changed

src/Entity/FieldChanges.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,16 @@ public function getMostRecentChangedField(): ?string
5959
return $this->lastChangedField;
6060
}
6161

62+
/**
63+
* Check if the given field was ever changed
64+
* @param string $field
65+
* @return bool
66+
*/
67+
public function wasChanged(string $field): bool
68+
{
69+
return isset($this->changedFields[$field]);
70+
}
71+
6272
/**
6373
* Returns the date of the most recent change, or null if no field was ever changed
6474
* @return \DateTimeImmutable|null

src/Entity/PaymentOrder.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -348,6 +348,17 @@ public function setSupportingFundingId(?string $supporting_funding_id): PaymentO
348348
return $this;
349349
}
350350

351+
public function getSupportingFundingDate(): ?DateTime
352+
{
353+
return $this->supporting_funding_date;
354+
}
355+
356+
public function setSupportingFundingDate(?DateTime $supporting_funding_date): PaymentOrder
357+
{
358+
$this->supporting_funding_date = $supporting_funding_date;
359+
return $this;
360+
}
361+
351362
public function getSupportingAmount(): ?int
352363
{
353364
return $this->supporting_amount;
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{% macro field(field_changes, field, symbol = "") %}
2+
{# @var \App\Entity\FieldChanges field_changes #}
3+
{% if field_changes.wasChanged(field) %}
4+
<b>{{ symbol }}</b>
5+
{% endif %}
6+
{% endmacro %}

templates/pdf/payment_order/payment_order.html.twig

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
{% extends "pdf/form.html.twig" %}
22
{% import "pdf/payment_order/confirmations.macro.twig" as confirmations %}
33

4+
{% import "macros/field_changes.macro.twig" as fc %}
5+
{% set changes = paymentOrder.fieldChanges %}
6+
47
{# @var paymentOrder \App\Entity\PaymentOrder #}
58

69
{% macro valOrNull(value) %}
@@ -34,63 +37,68 @@
3437
<table class="table-form">
3538
<tr>
3639
<td>Name Auftraggeber:</td>
37-
<td>{{ paymentOrder.submitterName }}</td>
40+
<td>{{ fc.field(changes, "submitter_name") }}{{ paymentOrder.submitterName }}</td>
3841
</tr>
3942
<tr>
4043
<td>Struktur:</td>
41-
<td>{{ paymentOrder.department.name }}</td>
44+
<td>{{ fc.field(changes, "department") }}{{ paymentOrder.department.name }}</td>
4245
</tr>
4346

4447
<tr class="spacer"><td></td><td></td></tr>
4548

4649
<tr>
4750
<td>Projektbezeichnung:</td>
48-
<td>{{ paymentOrder.projectName }}</td>
51+
<td>{{ fc.field(changes, "project_name") }}{{ paymentOrder.projectName }}</td>
4952
</tr>
5053

5154
<tr class="spacer"><td></td><td></td></tr>
5255

5356
<tr>
5457
<td>Mittelfreigabe / Finanzantrag:</td>
55-
<td>{{ _self.valOrNull(paymentOrder.fundingId) }} {% if paymentOrder.resolutionDate %}({{ paymentOrder.resolutionDate | format_date }}){% endif %}</td>
58+
<td>{{ fc.field(changes, "funding_id") }}{{ _self.valOrNull(paymentOrder.fundingId) }}
59+
{% if paymentOrder.resolutionDate %}({{ fc.field(changes, "resolution_date") }}{{ paymentOrder.resolutionDate | format_date }}){% endif %}
60+
</td>
5661
</tr>
5762
<tr>
5863
<td>Gesamtbetrag:</td>
59-
<td>{{ (paymentOrder.amount/100) | format_currency("EUR") }}</td>
64+
<td>{{ fc.field(changes, "amount") }}{{ (paymentOrder.amount/100) | format_currency("EUR") }}</td>
6065
</tr>
6166
<tr>
6267
<td>Unterstützende Mittelfreigabe:</td>
63-
<td>{{ _self.valOrNull(paymentOrder.supportingFundingId) }} (TODO Beschlussdatum)</td>
68+
<td>{{ fc.field(changes, "supporting_funding_id") }}{{ _self.valOrNull(paymentOrder.supportingFundingId) }}
69+
{% if paymentOrder.supportingFundingDate %}({{ fc.field(changes,"supporting_funding_date") }}{{ paymentOrder.supportingFundingDate }}){% endif %}
70+
</td>
6471
</tr>
6572
<tr>
6673
<td>Unterstützter Betrag:</td>
67-
<td>{% if paymentOrder.supportingAmount %}{{ (paymentOrder.supportingAmount / 100) | format_currency("EUR") }}{% else %}-{% endif %}</td>
74+
<td>{{ fc.field(changes, "supporting_amount") }}{% if paymentOrder.supportingAmount %}{{ (paymentOrder.supportingAmount / 100) | format_currency("EUR") }}{% else %}-{% endif %}</td>
6875
</tr>
6976

7077
<tr class="spacer"><td></td><td></td></tr>
7178

7279
<tr>
7380
<td>Zahlungsempfänger*in:</td>
74-
<td>{{ paymentOrder.bankInfo.accountOwner }}</td>
81+
<td>{{ fc.field(changes, "bank_info.account_owner") }}{{ paymentOrder.bankInfo.accountOwner }}</td>
7582
</tr>
7683
<tr>
7784
<td>Anschrift:</td>
78-
<td>{{ paymentOrder.bankInfo.address }}</td>
85+
<td>{{ fc.field(changes, "bank_info.street") }}{{ fc.field(changes, "bank_info.zip_code") }}{{ fc.field(changes, "bank_info.city") }}
86+
{{ paymentOrder.bankInfo.address }}</td>
7987
</tr>
8088

8189
<tr class="spacer"><td></td><td></td></tr>
8290

8391
<tr>
8492
<td>IBAN:</td>
85-
<td>{{ paymentOrder.bankInfo.ibanFormatted }}
93+
<td>{{ fc.field(changes, "bank_info.iban") }}{{ paymentOrder.bankInfo.ibanFormatted }}
8694
{% if paymentOrder.bankInfo.bic is not empty %}
87-
(BIC: {{ paymentOrder.bankInfo.bic }})
95+
(BIC: {{ fc.field(changes, "bank_info.bic") }}{{ paymentOrder.bankInfo.bic }})
8896
{% endif %}
8997
</td>
9098
</tr>
9199
<tr>
92100
<td>Verwendungszweck:</td>
93-
<td>{{ paymentOrder.bankInfo.reference }}</td>
101+
<td>{{ fc.field(changes, "bank_info.reference") }}{{ paymentOrder.bankInfo.reference }}</td>
94102
</tr>
95103
</table>
96104

@@ -112,8 +120,10 @@
112120
{% endblock %}
113121

114122
{% block footer %}
115-
<p style="margin: 0;">
116-
Fettgedruckte Werte weisen darauf hin, dass dieses Feld von den StuRa-Finanzer*innen bearbeitet wurde.<br>
117-
Die letzte Änderung erfolgte <i>TODO Datum</i> durch <i>TOOD Finanzername</i>.
118-
</p>
123+
{% if paymentOrder.fieldChanges.mostRecentChangedField is not null %}
124+
<p style="margin: 0;">
125+
Werte mit einem <b>‡</b> am Anfang weisen darauf hin, dass dieses Feld von den StuRa-Finanzer*innen bearbeitet wurde.<br>
126+
Die letzte Änderung erfolgte <i>{{ paymentOrder.fieldChanges.mostRecentChangeDate | format_datetime("short") }}</i> durch <i>{{ paymentOrder.fieldChanges.mostRecentChangeUser }}</i>.
127+
</p>
128+
{% endif %}
119129
{% endblock %}

0 commit comments

Comments
 (0)