From 775d9158a6531301995312d5241a2a092ad3a68e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thomas=20G=C3=BCnther?=
Date: Thu, 14 May 2026 16:16:36 +0200
Subject: [PATCH] Comments for invoices
---
.../Controllers/ParticipantPaymentController.php | 2 --
.../Actions/CreateInvoice/CreateInvoiceCommand.php | 1 +
.../Actions/CreateInvoice/CreateInvoiceRequest.php | 3 +++
.../CreateInvoiceReceiptCommand.php | 7 +++++--
.../Actions/UpdateInvoice/UpdateInvoiceRequest.php | 4 ++--
app/Domains/Invoice/Controllers/EditController.php | 7 +++++--
.../Invoice/Controllers/SaveInvoiceController.php | 4 ++++
.../Views/Partials/invoiceDetails/EditInvoice.vue | 10 +++++++---
.../Invoice/Views/Partials/newInvoice/refund-data.vue | 11 +++++++++++
app/Views/Components/Modal.vue | 2 +-
docker/run-mareike.sh | 4 ++--
11 files changed, 41 insertions(+), 14 deletions(-)
diff --git a/app/Domains/Event/Controllers/ParticipantPaymentController.php b/app/Domains/Event/Controllers/ParticipantPaymentController.php
index 2b42681..9b7b839 100644
--- a/app/Domains/Event/Controllers/ParticipantPaymentController.php
+++ b/app/Domains/Event/Controllers/ParticipantPaymentController.php
@@ -47,7 +47,5 @@ class ParticipantPaymentController extends CommonController
'class' => $amountLeft->getAmount() != 0 ? 'not-paid' : 'paid',
]
]);
-
- dd($participant);
}
}
diff --git a/app/Domains/Invoice/Actions/CreateInvoice/CreateInvoiceCommand.php b/app/Domains/Invoice/Actions/CreateInvoice/CreateInvoiceCommand.php
index df70dd7..8aeac1c 100644
--- a/app/Domains/Invoice/Actions/CreateInvoice/CreateInvoiceCommand.php
+++ b/app/Domains/Invoice/Actions/CreateInvoice/CreateInvoiceCommand.php
@@ -43,6 +43,7 @@ class CreateInvoiceCommand {
'passengers' => $this->request->passengers,
'transportation' => $this->request->transportations,
'payment_purpose' => $this->request->paymentPurpose,
+ 'comment' => $this->request->notices,
'document_filename' => $this->request->receiptFile !== null ? $this->request->receiptFile->fullPath : null,
]);
diff --git a/app/Domains/Invoice/Actions/CreateInvoice/CreateInvoiceRequest.php b/app/Domains/Invoice/Actions/CreateInvoice/CreateInvoiceRequest.php
index 773f843..bbe9593 100644
--- a/app/Domains/Invoice/Actions/CreateInvoice/CreateInvoiceRequest.php
+++ b/app/Domains/Invoice/Actions/CreateInvoice/CreateInvoiceRequest.php
@@ -24,6 +24,7 @@ class CreateInvoiceRequest {
public ?int $userId;
public ?string $travelReason;
public ?string $paymentPurpose;
+ public ?string $notices;
public function __construct(
@@ -45,6 +46,7 @@ class CreateInvoiceRequest {
?int $transportations,
?string $travelReason = null,
?string $paymentPurpose = null,
+ ?string $notices = null,
) {
$this->costUnit = $costUnit;
@@ -65,6 +67,7 @@ class CreateInvoiceRequest {
$this->userId = $userId;
$this->travelReason = $travelReason;
$this->paymentPurpose = $paymentPurpose;
+ $this->notices = $notices;
if ($accountIban === 'undefined') {
$this->accountIban = null;
diff --git a/app/Domains/Invoice/Actions/CreateInvoiceReceipt/CreateInvoiceReceiptCommand.php b/app/Domains/Invoice/Actions/CreateInvoiceReceipt/CreateInvoiceReceiptCommand.php
index 12372e7..ffe696c 100644
--- a/app/Domains/Invoice/Actions/CreateInvoiceReceipt/CreateInvoiceReceiptCommand.php
+++ b/app/Domains/Invoice/Actions/CreateInvoiceReceipt/CreateInvoiceReceiptCommand.php
@@ -60,7 +60,6 @@ class CreateInvoiceReceiptCommand {
storage_path('app/private/' .$filename) . '.zip',
ZipArchive::CREATE | ZipArchive::OVERWRITE
);
-dd($receipt);
$zip->addFile(storage_path('app/private/' . $tmpFileName ), 'antrag.pdf');
$zip->addFile(storage_path('app/private/' . $receipt), 'beleg.pdf');
@@ -114,6 +113,9 @@ HTML;
| Name: | %3\$s |
| E-Mail: | %4\$s |
| Telefon: | %5\$s |
+ | Anmerkungen: | %16\$s |
+
+
| Name der Kostenstelle: | %6\$s |
| Zahlungsgrund: | %7\$s |
| Wird der Betrag gespendet: | %8\$s |
@@ -186,7 +188,8 @@ HTML;
$invoiceReadable['createdAt'],
$invoiceReadable['approvedAt'],
$invoiceReadable['approvedBy'],
- $changes
+ $changes,
+ $invoiceReadable['comment'],
);
}
diff --git a/app/Domains/Invoice/Actions/UpdateInvoice/UpdateInvoiceRequest.php b/app/Domains/Invoice/Actions/UpdateInvoice/UpdateInvoiceRequest.php
index d76e477..571ecfa 100644
--- a/app/Domains/Invoice/Actions/UpdateInvoice/UpdateInvoiceRequest.php
+++ b/app/Domains/Invoice/Actions/UpdateInvoice/UpdateInvoiceRequest.php
@@ -8,13 +8,13 @@ use App\Models\Invoice;
use App\ValueObjects\Amount;
class UpdateInvoiceRequest {
- public string $comment;
+ public ?string $comment;
public InvoiceType $invoiceType;
public CostUnit $costUnit;
public Invoice $invoice;
public Amount $amount;
- public function __construct(Invoice $invoice, string $comment, InvoiceType $invoiceType, CostUnit $costUnit, Amount $amount) {
+ public function __construct(Invoice $invoice, ?string $comment, InvoiceType $invoiceType, CostUnit $costUnit, Amount $amount) {
$this->comment = $comment;
$this->invoiceType = $invoiceType;
$this->costUnit = $costUnit;
diff --git a/app/Domains/Invoice/Controllers/EditController.php b/app/Domains/Invoice/Controllers/EditController.php
index 4fc6ce2..e8e3c28 100644
--- a/app/Domains/Invoice/Controllers/EditController.php
+++ b/app/Domains/Invoice/Controllers/EditController.php
@@ -47,7 +47,10 @@ class EditController extends CommonController{
$invoice->travel_direction,
$invoice->distance,
$invoice->passengers,
- $invoice->transportation
+ $invoice->transportation,
+ $invoice->travel_reason,
+ $invoice->payment_purpose,
+ $invoice->comment,
);
$invoiceCreationCommand = new CreateInvoiceCommand($createInvoiceRequest);
@@ -86,7 +89,7 @@ class EditController extends CommonController{
$updateInvoiceRequest = new UpdateInvoiceRequest(
$invoice,
- $modifyData['reason_of_correction'] ?? 'Abrechnungskorrektur',
+ $modifyData['notices'],
$invoiceType,
$newCostUnit,
$newAmount
diff --git a/app/Domains/Invoice/Controllers/SaveInvoiceController.php b/app/Domains/Invoice/Controllers/SaveInvoiceController.php
index 065d031..0c8f370 100644
--- a/app/Domains/Invoice/Controllers/SaveInvoiceController.php
+++ b/app/Domains/Invoice/Controllers/SaveInvoiceController.php
@@ -18,6 +18,7 @@ class SaveInvoiceController extends CommonController
public function __invoke(Request $request, int $costUnitId, string $invoiceType) : JsonResponse {
$costUnit = $this->costUnits->getById($costUnitId, true);
$paymentPurpose = $request->input('paymentPurpose') ?? null;
+ $notices = $request->input('notices') ?? null;
if (null === $costUnit) {
return response()->json([
'status' => 'error',
@@ -82,6 +83,8 @@ class SaveInvoiceController extends CommonController
$request->input('havePassengers'),
$request->input('materialTransportation'),
$request->input('travelReason'),
+ null,
+ $notices
);
break;
@@ -106,6 +109,7 @@ class SaveInvoiceController extends CommonController
$request->input('materialTransportation'),
null,
$paymentPurpose,
+ $notices
);
break;
diff --git a/app/Domains/Invoice/Views/Partials/invoiceDetails/EditInvoice.vue b/app/Domains/Invoice/Views/Partials/invoiceDetails/EditInvoice.vue
index adba409..693ff09 100644
--- a/app/Domains/Invoice/Views/Partials/invoiceDetails/EditInvoice.vue
+++ b/app/Domains/Invoice/Views/Partials/invoiceDetails/EditInvoice.vue
@@ -20,7 +20,7 @@ const formData = reactive({
type_internal: props.newInvoice.internalType || '',
cost_unit: props.newInvoice.costUnitId || '',
amount: props.newInvoice.amountPlain || '',
- reason_of_correction: '',
+ notices: props.newInvoice.comments || '',
})
const submitForm = () => {
@@ -71,9 +71,13 @@ onMounted(async () => {
- | Grund der Korrektur: |
+ Anmerkungen: |
-
+
|
diff --git a/app/Domains/Invoice/Views/Partials/newInvoice/refund-data.vue b/app/Domains/Invoice/Views/Partials/newInvoice/refund-data.vue
index a9531b9..aed8628 100644
--- a/app/Domains/Invoice/Views/Partials/newInvoice/refund-data.vue
+++ b/app/Domains/Invoice/Views/Partials/newInvoice/refund-data.vue
@@ -41,6 +41,7 @@ const decision = ref('')
const errorMsg = ref('')
const confirmation = ref(null)
const receiptError = ref('')
+const notices = ref('')
async function sendData() {
if (!userName.value) return
@@ -62,6 +63,7 @@ async function sendData() {
formData.append('havePassengers', props.havePassengers ? 1 : 0)
formData.append('materialTransportation', props.materialTransportation ? 1 : 0)
formData.append('travelReason', props.travelReason)
+ formData.append('notices', notices.value)
if (props.receipt) {
formData.append('receipt', props.receipt)
@@ -121,6 +123,15 @@ async function sendData() {
name="contact_telephone" v-model="userTelephone"
style="font-size: 14pt; width: 550px;" />
+
+
+