<?php namespace App\Controller; use Doctrine\ORM\EntityManagerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Form; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; use Symfony\Component\Translation\TranslatorInterface; /** * * Types de transfert : (Les transferts dans la structure sont les flux de billets détenus par les opérateurs.) * * - SIEGE => GROUPES LOCAUX (Transfert du siège au groupe) * - GROUPE => SIEGE (Transfert du groupe au siège) * - GROUPES LOCAUX => COMPTOIRS (Transfert du groupe au comptoir) * - COMPTOIRS => GROUPES LOCAUX (Transfert du comptoir au groupe) * - COMPTOIRS => ADHERENTS (Diffusion de monnaie papier auprès des adhérents) * - COMPTOIRS => PRESTATAIRES (Diffusion de monnaie papier auprès des prestataires) * - PRESTATAIRES => COMPTOIRS (Reconversion) * * Types de transaction : * * - PRESTATAIRES => ADHERENTS (Virement vers un adherent) * - PRESTATAIRES => PRESTATAIRES (Virement entre prestataires) * - ADHERENTS => PRESTATAIRES (Paiement numérique) * */ class FluxController extends AbstractController { protected $translator; public function __construct(EntityManagerInterface $em, TranslatorInterface $translator) { $this->em = $em; $this->translator = $translator; } protected function manageFluxForm(Request $request, Form $form, $compte, $success, $title) { $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $data = $form->getData(); $this->em->persist($data); $this->em->flush(); $this->addFlash( 'success', $success ); $referer = $request->headers->get('referer'); if ($referer && !$request->isXmlHttpRequest()) { return $this->redirect($referer); } elseif (!$request->isXmlHttpRequest()) { return new Response('', Response::HTTP_BAD_REQUEST); } } return $this->render('flux/transaction.html.twig', [ 'form' => $form->createView(), 'compte' => $compte, 'title' => $title ]); } }