FormFactory.php 11.2 KB
Newer Older
1 2 3 4 5 6
<?php

namespace App\Factory;

use App\Entity\TransactionAdherentAdherent;
use App\Entity\TransactionAdherentPrestataire;
Julien Jorry committed
7 8 9
use App\Entity\TransactionComptoirAdherent;
use App\Entity\TransactionComptoirGroupe;
use App\Entity\TransactionComptoirPrestataire;
10 11
use App\Entity\TransactionPrestataireAdherent;
use App\Entity\TransactionPrestatairePrestataire;
12
use App\Entity\TransfertComptoirGroupe;
13
use App\Entity\TransfertGroupeComptoir;
14
use App\Entity\TransfertGroupeSiege;
Julien Jorry committed
15 16
use App\Entity\TransfertPrestataireComptoir;
use App\Entity\TransfertPrestataireSiege;
17 18
use App\Entity\TransfertSiegeGroupe;
use App\Entity\User;
Julien Jorry committed
19 20 21 22 23 24 25
use App\Enum\MoyenEnum;
use App\Form\Type\AdherentInfosFormType;
use App\Form\Type\ComptoirInfosFormType;
use App\Form\Type\GroupeInfosFormType;
use App\Form\Type\GroupePrestataireInscriptionFormType;
use App\Form\Type\PrestataireInfosFormType;
use App\Form\Type\RegistrationFormType;
26 27 28 29
use App\Form\Type\TransactionAdherentAdherentFormType;
use App\Form\Type\TransactionAdherentPrestataireFormType;
use App\Form\Type\TransactionPrestataireAdherentFormType;
use App\Form\Type\TransactionPrestatairePrestataireFormType;
30
use App\Form\Type\TransfertComptoirGroupeFormType;
31
use App\Form\Type\TransfertGroupeComptoirFormType;
32
use App\Form\Type\TransfertGroupeSiegeFormType;
Julien Jorry committed
33 34
use App\Form\Type\TransfertPrestataireComptoirFormType;
use App\Form\Type\TransfertPrestataireSiegeFormType;
35
use App\Form\Type\TransfertSiegeGroupeFormType;
36 37
use App\Form\Type\UserInfosFormType;
use FOS\UserBundle\Form\Type\ChangePasswordFormType;
38 39 40 41 42 43 44 45 46 47 48 49 50 51
use Symfony\Component\Form\FormFactoryInterface as FormF;
use Symfony\Component\Routing\RouterInterface;

class FormFactory
{
    public $ff;
    public $router;

    public function __construct(FormF $ff, RouterInterface $router)
    {
        $this->ff = $ff;
        $this->router = $router;
    }

Julien Jorry committed
52
    public function getUserInfosForm(User $user)
53 54 55 56 57 58 59 60 61 62
    {
        if (empty($user)) {
            throw new \Exception("[FORM 0] Opération impossible !");
        }
        $form = $this->ff->create(UserInfosFormType::class, $user, array('action' => $this->router->generate('user_infos')));

        return $form->createView();
    }

    public function getUserPasswordForm(User $user)
Julien Jorry committed
63 64
    {
        if (empty($user)) {
65
            throw new \Exception("[FORM 1] Opération impossible !");
Julien Jorry committed
66
        }
67
        $form = $this->ff->create(ChangePasswordFormType::class, $user, array('action' => $this->router->generate('fos_user_change_password')));
Julien Jorry committed
68 69 70 71 72 73 74

        return $form->createView();
    }

    public function getGroupeInfosForm(User $user)
    {
        if (empty($user) || empty($user->getGroupesgere())) {
75
            throw new \Exception("[FORM 2] Opération impossible !");
Julien Jorry committed
76 77 78 79 80 81 82 83 84
        }
        $form = $this->ff->create(GroupeInfosFormType::class, $user->getGroupesgere(), array('action' => $this->router->generate('groupe_infos')));

        return $form->createView();
    }

    public function getComptoirInfosForm(User $user)
    {
        if (empty($user) || empty($user->getComptoirsgere())) {
85
            throw new \Exception("[FORM 3] Opération impossible !");
Julien Jorry committed
86 87 88 89 90 91 92 93 94
        }
        $form = $this->ff->create(ComptoirInfosFormType::class, $user->getComptoirsgere(), array('action' => $this->router->generate('comptoir_infos')));

        return $form->createView();
    }

    public function getPrestataireInfosForm(User $user)
    {
        if (empty($user) || empty($user->getPrestataire())) {
95
            throw new \Exception("[FORM 4] Opération impossible !");
Julien Jorry committed
96 97 98 99 100 101 102 103 104
        }
        $form = $this->ff->create(PrestataireInfosFormType::class, $user->getPrestataire(), array('action' => $this->router->generate('prestataire_infos')));

        return $form->createView();
    }

    public function getAdherentInfosForm(User $user)
    {
        if (empty($user) || empty($user->getAdherent())) {
105
            throw new \Exception("[FORM 5] Opération impossible !");
Julien Jorry committed
106 107 108 109 110 111 112 113 114
        }
        $form = $this->ff->create(AdherentInfosFormType::class, $user->getAdherent(), array('action' => $this->router->generate('adherent_infos')));

        return $form->createView();
    }

    public function getGroupePrestataireInscriptionForm(User $user)
    {
        if (empty($user) || empty($user->getPrestataire())) {
115
            throw new \Exception("[FORM 6] Opération impossible !");
Julien Jorry committed
116 117 118 119 120 121
        }
        $form = $this->ff->create(GroupePrestataireInscriptionFormType::class, $user->getPrestataire(), array('action' => $this->router->generate('groupeprestataire_inscription')));

        return $form->createView();
    }

122 123 124
    public function getTransactionAdherentAdherentForm(User $user)
    {
        if (empty($user) || empty($user->getAdherent())) {
125
            throw new \Exception("[FORM 7] Opération impossible !");
126 127 128 129 130 131 132 133 134 135 136 137
        }
        $entity = new TransactionAdherentAdherent();
        $entity->setOperateur($user);
        $entity->setExpediteur($user->getAdherent());
        $form = $this->ff->create(TransactionAdherentAdherentFormType::class, $entity, array('action' => $this->router->generate('transactionAdherentAdherent')));

        return $form->createView();
    }

    public function getTransactionAdherentPrestataireForm(User $user)
    {
        if (empty($user) || empty($user->getAdherent())) {
138
            throw new \Exception("[FORM 8] Opération impossible !");
139 140 141 142 143 144 145 146 147 148 149 150
        }
        $entity = new TransactionAdherentPrestataire();
        $entity->setOperateur($user);
        $entity->setExpediteur($user->getAdherent());
        $form = $this->ff->create(TransactionAdherentPrestataireFormType::class, $entity, array('action' => $this->router->generate('transactionAdherentPrestataire')));

        return $form->createView();
    }

    public function getTransactionPrestataireAdherentForm(User $user)
    {
        if (empty($user) || empty($user->getPrestataire())) {
151
            throw new \Exception("[FORM] Opération impossible !");
152 153 154 155 156 157 158 159 160 161 162 163
        }
        $entity = new TransactionPrestataireAdherent();
        $entity->setOperateur($user);
        $entity->setExpediteur($user->getPrestataire());
        $form = $this->ff->create(TransactionPrestataireAdherentFormType::class, $entity, array('action' => $this->router->generate('transactionPrestataireAdherent')));

        return $form->createView();
    }

    public function getTransactionPrestatairePrestataireForm(User $user)
    {
        if (empty($user) || empty($user->getPrestataire())) {
164
            throw new \Exception("[FORM 9] Opération impossible !");
165 166 167 168 169 170 171 172 173
        }
        $entity = new TransactionPrestatairePrestataire();
        $entity->setOperateur($user);
        $entity->setExpediteur($user->getPrestataire());
        $form = $this->ff->create(TransactionPrestatairePrestataireFormType::class, $entity, array('action' => $this->router->generate('transactionPrestatairePrestataire')));

        return $form->createView();
    }

Julien Jorry committed
174 175 176
    public function getTransfertPrestataireSiegeForm(User $user)
    {
        if (empty($user) || empty($user->getPrestataire())) {
177
            throw new \Exception("[FORM 10] Opération impossible !");
Julien Jorry committed
178 179 180 181 182 183 184 185 186 187 188
        }
        $entity = new TransfertPrestataireSiege();
        $entity->setExpediteur($user->getPrestataire());
        $form = $this->ff->create(TransfertPrestataireSiegeFormType::class, $entity, array('action' => $this->router->generate('transactionPrestataireSiege')));

        return $form->createView();
    }

    public function getTransfertPrestataireComptoirForm(User $user)
    {
        if (empty($user) || empty($user->getComptoirsgere())) {
189
            throw new \Exception("[FORM 11] Opération impossible !");
Julien Jorry committed
190 191 192 193 194 195 196 197 198 199 200 201
        }
        $entity = new TransfertPrestataireComptoir();
        $entity->setDestinataire($user->getComptoirsgere());
        $form = $this->ff->create(TransfertPrestataireComptoirFormType::class, $entity, array('action' => $this->router->generate('transfertPrestataireComptoir')));

        return $form->createView();
    }

    public function getTransfertComptoirToXForm(User $user, $type)
    {
        $type = strtolower($type);
        if (empty($user) || empty($user->getComptoirsgere()) || !($type == 'adherent' || $type == 'groupe' || $type == 'prestataire')) {
202
            throw new \Exception("[FORM 12] Opération impossible !");
Julien Jorry committed
203 204 205 206 207 208 209 210 211
        }
        $class = "App\Entity\TransfertComptoir".ucwords($type);
        $entity = new $class();
        $entity->setOperateur($user);
        $entity->setExpediteur($user->getComptoirsgere());
        $form = $this->ff->create('App\Form\Type\TransfertComptoir'.ucwords($type).'FormType', $entity, array('action' => $this->router->generate('transfertComptoir'.ucwords($type))));

        return $form->createView();
    }
212

213 214 215 216 217 218 219 220 221 222 223 224 225 226 227
    public function getVenteComptoirToXForm(User $user, $type)
    {
        $type = strtolower($type);
        if (empty($user) || empty($user->getComptoirsgere()) || !($type == 'adherent' || $type == 'groupe' || $type == 'prestataire')) {
            throw new \Exception("[FORM 12] Opération impossible !");
        }
        $class = "App\Entity\VenteComptoir".ucwords($type);
        $entity = new $class();
        $entity->setOperateur($user);
        $entity->setExpediteur($user->getComptoirsgere());
        $form = $this->ff->create('App\Form\Type\VenteComptoir'.ucwords($type).'FormType', $entity, array('action' => $this->router->generate('venteComptoir'.ucwords($type))));

        return $form->createView();
    }

228 229 230 231 232 233 234 235 236 237 238 239 240
    public function getTransfertComptoirGroupeForm(User $user)
    {
        if (empty($user) || empty($user->getGroupesgere())) {
            throw new \Exception("[FORM 12] Opération impossible !");
        }
        $entity = new TransfertComptoirGroupe();
        $entity->setOperateur($user);
        $entity->setDestinataire($user->getGroupesgere());
        $form = $this->ff->create(TransfertComptoirGroupeFormType::class, $entity, array('action' => $this->router->generate('transfertComptoirGroupe')));

        return $form->createView();
    }

241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261
    public function getTransfertGroupeComptoirForm(User $user)
    {
        if (empty($user) || empty($user->getGroupesgere())) {
            throw new \Exception("[FORM 13] Opération impossible !");
        }
        $entity = new TransfertGroupeComptoir();
        $entity->setOperateur($user);
        $entity->setExpediteur($user->getGroupesgere());
        $form = $this->ff->create(TransfertGroupeComptoirFormType::class, $entity, array('action' => $this->router->generate('transfertGroupeComptoir')));

        return $form->createView();
    }

    public function getTransfertSiegeGroupeForm(User $user)
    {
        if (empty($user) || !$user->hasRole('ROLE_ADMIN_SIEGE')) {
            throw new \Exception("[FORM 14] Opération impossible !");
        }
        $entity = new TransfertSiegeGroupe();
        $entity->setOperateur($user);
        $form = $this->ff->create(TransfertSiegeGroupeFormType::class, $entity, array('action' => $this->router->generate('transfertSiegeGroupe')));
262

263 264
        return $form->createView();
    }
265

266 267 268 269 270 271 272 273
    public function getTransfertGroupeSiegeForm(User $user)
    {
        if (empty($user) || !$user->hasRole('ROLE_ADMIN_SIEGE')) {
            throw new \Exception("[FORM 15] Opération impossible !");
        }
        $entity = new TransfertGroupeSiege();
        $entity->setOperateur($user);
        $form = $this->ff->create(TransfertGroupeSiegeFormType::class, $entity, array('action' => $this->router->generate('transfertGroupeSiege')));
274

275 276
        return $form->createView();
    }
277
}