feat: generate draft assignments from a staffing matrix

This commit is contained in:
fromme committed 2026-10-15 18:11:51 +02:00
1 parent 3116d23199
commit 2fc9806c69
41 files changed
+2618

No files matched your search

+61
View File
@@ -0,0 +1,61 @@
<?php
namespace App\Form;
use App\Entity\StaffingRule;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class StaffingRuleType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
->add('productCode', TextType::class, [
'label' => 'Produktcode',
'help' => 'Der Code der Reise in BusPro, nicht der eines Termins (z. B. DWWMP, nicht DWWMW)',
])
->add('guides', IntegerType::class, [
'label' => 'Anzahl Reiseleitungen',
'attr' => ['min' => 0],
])
->add('skiBeginner', CheckboxType::class, [
'label' => 'Ski Anfänger:innen',
'required' => false,
])
->add('skiAdvanced', CheckboxType::class, [
'label' => 'Ski Fortgeschrittene',
'required' => false,
])
->add('split', CheckboxType::class, [
'label' => 'Split',
'help' => 'Die Reiseleitungen übernehmen die Kurse (Reise- und Kursleitung)',
'required' => false,
])
->add('guiding', CheckboxType::class, [
'label' => 'Guiding',
'required' => false,
])
->add('busEscort', CheckboxType::class, [
'label' => 'Busbegleitung',
'required' => false,
])
->add('enabled', CheckboxType::class, [
'label' => 'aktiv',
'help' => 'Nur aktive Zeilen legen Einsätze an; die Vorschau zeigt alle',
'required' => false,
])
;
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => StaffingRule::class,
]);
}
}