new API endpoint to save invoice meta-fields (#5916)

This commit is contained in:
Kevin Papst
2026-04-25 18:14:10 +02:00
committed by GitHub
parent 087350ab72
commit 3eebb02ad3
39 changed files with 1427 additions and 659 deletions

View File

@@ -13,16 +13,18 @@ use App\Entity\Invoice;
use Symfony\Contracts\EventDispatcher\Event;
/**
* This event can be used, to dynamically add meta-fields to invoices
* This event can be used, to dynamically add meta-fields to invoices.
*
* Do not use directly, call InvoiceService::loadMetaFields() instead.
*/
final class InvoiceMetaDefinitionEvent extends Event
{
public function __construct(private Invoice $entity)
public function __construct(private readonly Invoice $invoice)
{
}
public function getEntity(): Invoice
{
return $this->entity;
return $this->invoice;
}
}

View File

@@ -0,0 +1,29 @@
<?php
/*
* This file is part of the Kimai time-tracking app.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace App\Event;
use App\Entity\Invoice;
use Symfony\Contracts\EventDispatcher\Event;
/**
* Triggered right after an invoice was saved.
* This event is triggered for new and updated invoices.
*/
final class InvoiceUpdatePostEvent extends Event
{
public function __construct(private readonly Invoice $invoice)
{
}
public function getInvoice(): Invoice
{
return $this->invoice;
}
}

View File

@@ -0,0 +1,29 @@
<?php
/*
* This file is part of the Kimai time-tracking app.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace App\Event;
use App\Entity\Invoice;
use Symfony\Contracts\EventDispatcher\Event;
/**
* Triggered right before an invoice is saved.
* This event is triggered for new and updated invoices.
*/
final class InvoiceUpdatePreEvent extends Event
{
public function __construct(private readonly Invoice $invoice)
{
}
public function getInvoice(): Invoice
{
return $this->invoice;
}
}