src/Form/Mobile/VehiculeMouvementType.php line 55
<?phpnamespace App\Form\Mobile;use App\Entity\AdminFinance\Vehicule\VehiculeMouvement;use App\Entity\AdminFinance\Vehicule\Voiture;use App\Entity\AdminFinance\Bank\BankCompte;use App\Entity\AdminFinance\Bank\BankMouvementCategorie;use App\Repository\AdminFinance\Bank\BankCompteRepository;use App\Repository\AdminFinance\Vehicule\VoitureRepository;use App\Repository\AdminFinance\Bank\BankMouvementCategorieRepository;use Symfony\Component\Form\AbstractType;use Symfony\Component\Form\FormBuilderInterface;use Symfony\Component\OptionsResolver\OptionsResolver;use Symfony\Component\Form\Extension\Core\Type\DateType;use Symfony\Component\Form\Extension\Core\Type\CheckboxType;use Symfony\Component\Form\Extension\Core\Type\ChoiceType;use Symfony\Component\Form\Extension\Core\Type\NumberType;use Symfony\Component\Form\Extension\Core\Type\SubmitType;use Symfony\Component\Form\Extension\Core\Type\TextType;class VehiculeMouvementType extends AbstractType{public function __construct(private VoitureRepository $voitureRepository,private BankCompteRepository $compteRepository,private BankMouvementCategorieRepository $categorieRepository){$this->compteRepository = $compteRepository;$this->voitureRepository = $voitureRepository;$this->categorieRepository = $categorieRepository;}public function buildForm(FormBuilderInterface $builder, array $options){$comptes = $this->fullListeComptes();$voitures = $this->voitureRepository->findAll();$categories = $this->categorieRepository->findBy(['parent' => VehiculeMouvement::CATEGORY_PARENT], ['libelle' => 'ASC']);$builder->add('compteDebit', ChoiceType::class, ['label'=> 'Compte Débit', 'choices'=> $comptes,'choice_label' => function(BankCompte $compte, $key, $value) {return $compte->getNom();}])->add('categorie', ChoiceType::class, ['choices'=> $categories,'choice_label' => function($categorie, $key, $value) {if($categorie instanceof BankMouvementCategorie) {return $categorie->getLibelle();}}])->add('km', NumberType::class, ['html5' => true,'scale' => 2,'attr' => ['min' => 0, 'step' => 'any', 'class' => 'form-control'],'required' => true])->add('litre', NumberType::class, ['html5' => true,'scale' => 2,'attr' => ['min' => 0, 'step' => 'any', 'class' => 'form-control'],'required' => false])->add('prixLitre', NumberType::class, ['html5' => true,'scale' => 3,'attr' => ['min' => 0, 'step' => 'any', 'class' => 'form-control'],'required' => false])->add('montant', NumberType::class, ['html5' => true,'scale' => 2,'attr' => ['min' => 0, 'step' => 'any', 'class' => 'form-control'],'required' => true])->add('commentaire', TextType::class, ['attr' => ['class' => 'form-control'],'required' => false])->add('voiture', ChoiceType::class, ['attr' => ['class' => 'form-control'],'choices' => $voitures,'choice_label' => function(Voiture $voiture, $key, $value) {return $voiture->getLibelle();},'required' => true])->add('save', SubmitType::class, ['attr' => ['class' => 'form-control save'],'label' => 'Enregistrer']);}public function configureOptions(OptionsResolver $resolver){$resolver->setDefaults(['data_class' => VehiculeMouvement::class,]);}private function fullListeComptes() {$comptes = [ '' => new BankCompte()];foreach ($this->compteRepository->findAll() as $key => $value) {$comptes[] = $value;}return $comptes;}}