51 lines
1.7 KiB
PHP
51 lines
1.7 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
declare(strict_types=1);
|
||
|
|
|
||
|
|
namespace App\Infrastructure\Http\Controller\Admin;
|
||
|
|
|
||
|
|
use App\Domain\Order\Invoice;
|
||
|
|
use EasyCorp\Bundle\EasyAdminBundle\Config\Action;
|
||
|
|
use EasyCorp\Bundle\EasyAdminBundle\Config\Actions;
|
||
|
|
use EasyCorp\Bundle\EasyAdminBundle\Config\Crud;
|
||
|
|
use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractCrudController;
|
||
|
|
use EasyCorp\Bundle\EasyAdminBundle\Field\AssociationField;
|
||
|
|
use EasyCorp\Bundle\EasyAdminBundle\Field\DateTimeField;
|
||
|
|
use EasyCorp\Bundle\EasyAdminBundle\Field\IdField;
|
||
|
|
use EasyCorp\Bundle\EasyAdminBundle\Field\TextField;
|
||
|
|
|
||
|
|
/** @extends AbstractCrudController<Invoice> */
|
||
|
|
final class InvoiceCrudController extends AbstractCrudController
|
||
|
|
{
|
||
|
|
public static function getEntityFqcn(): string
|
||
|
|
{
|
||
|
|
return Invoice::class;
|
||
|
|
}
|
||
|
|
|
||
|
|
public function configureCrud(Crud $crud): Crud
|
||
|
|
{
|
||
|
|
return $crud
|
||
|
|
->setEntityLabelInSingular('Rechnung')
|
||
|
|
->setEntityLabelInPlural('Rechnungen')
|
||
|
|
->setDefaultSort(['createdAt' => 'DESC'])
|
||
|
|
->showEntityActionsInlined();
|
||
|
|
}
|
||
|
|
|
||
|
|
public function configureActions(Actions $actions): Actions
|
||
|
|
{
|
||
|
|
return $actions
|
||
|
|
->disable(Action::NEW, Action::EDIT, Action::DELETE)
|
||
|
|
->add(Crud::PAGE_INDEX, Action::DETAIL);
|
||
|
|
}
|
||
|
|
|
||
|
|
public function configureFields(string $pageName): iterable
|
||
|
|
{
|
||
|
|
yield IdField::new('id')->hideOnForm();
|
||
|
|
yield TextField::new('frappeInvoiceId', 'Frappe-Rechnungsnr.');
|
||
|
|
yield AssociationField::new('order', 'Bestellung');
|
||
|
|
yield DateTimeField::new('createdAt', 'Erstellt am');
|
||
|
|
yield DateTimeField::new('emailedAt', 'Per E-Mail versendet');
|
||
|
|
yield TextField::new('filename', 'PDF-Datei')->onlyOnDetail();
|
||
|
|
}
|
||
|
|
}
|