Bonjour,
Je suis sur une application de gestion de vente. J'ai fais le CommandeController.php (voir ci-dessous). Je suis bloqué sur la partie LivraisonController.php, je ne sais pas comment faire le lien entre les deux Controller, en gros je ne sais pas comment faire la partie livraison.
Merci d'avance de votre aide
Voic mon code CommandeController.php
public function new(Request $request, Commande $commande = null, LigneCommande $lignecommande = null, ProduitRepository $produitRepository)
{
$repo = $this->getDoctrine()->getRepository(Compteur::class);
$compteur = $repo->find(1);
$numcom = $compteur->getNumCom();
if (!$commande && !$lignecommande) {
$commande = new Commande();
$lignecommande = new LigneCommande();
}
$form = $this->createForm(CommandeType::class, $commande);
$form->handleRequest($request);
$f = $this->createForm(LigneCommandeType::class, $lignecommande);
$f->handleRequest($request);
$tva = 0;
$mht = 0;
$lig = 0;
$ttc = 0;
$tht = 0;
$ttva = 0;
$session = $request->getSession();
if (!$session->has('commande')) {
$session->set('commande', []);
}
$choix = "";
$tabcom = $session->get('commande', []);
if ($form->isSubmitted() || $f->isSubmitted()) {
$choix = $request->get('bt');
if ($choix == "Valider") {
$em = $this->getDoctrine()->getManager();
$lig = sizeof($tabcom);
for ($i = 1; $i <= $lig; $i++) {
$lignecommande = new LigneCommande();
$commande->addNumCom($lignecommande);
$prod = $produitRepository->findOneBy(['id' => $tabcom[$i]->getProduits()]);
$lignecommande->setProduits($prod);
$lignecommande->setCommandes($commande);
$lignecommande->setLigne($i);
$lignecommande->setPu($tabcom[$i]->getPu());
$lignecommande->setQuantite($tabcom[$i]->getQuantite());
$lignecommande->setTva($tabcom[$i]->getTva());
$em->persist($lignecommande);
$mht = $tabcom[$i]->getPu() * $tabcom[$i]->getQuantite();
$tva = $mht * ($tabcom[$i]->getTva()) * 0.01;
$tht = $tht + $mht;
$ttva = $ttva + $tva;
$ttc = $ttc + ($tht + $ttva);
}
$commande->setTht($tht);
$commande->setTtva($ttva);
$commande->setDateCommandeAt(new \DateTime());
$commande->setStatut(true);
$commande->setTttc($ttc);
$em->persist($commande);
$compteur->setNumCom($numcom + 1);
$em->persist($compteur);
$em->flush();
return $this->redirectToRoute('liste.commande');
} elseif ($choix == "Ajouter") {
$mht = $lignecommande->getPu() * $lignecommande->getQuantite();
$lig = sizeof($tabcom) + 1;
$lignecommande->setLigne($lig);
$tabcom[$lig] = $lignecommande;
$session->set('commande', $tabcom);
}
}
return $this->render('commande/new.html.twig', [
'commande' => $commande,
'lcomm' => $tabcom,
'form' => $form->createView(),
'f' => $f->createView(),
'numcom' => $numcom,
'tht' => $tht,
'ttva' => $ttva,
'mht' => $mht,
'lig' => $lig,
'ttc' => $ttc,
'LigneCommande' => $lignecommande,
'prod' => $produitRepository->findAll(),
]);
}