src/Controller/GestionComerciale/ColisageController.php line 142

Open in your IDE?
  1. <?php
  2. namespace App\Controller\GestionComerciale;
  3. use App\Entity\Articles\ColisModele;
  4. use App\Entity\FO\Societe;
  5. use App\Entity\GestionComerciale\ArticleCommande;
  6. use App\Entity\GestionComerciale\Colisage;
  7. use App\Entity\GestionComerciale\Commande;
  8. use App\Library\Datatable\Util\Datatable;
  9. use Doctrine\ORM\EntityManagerInterface;
  10. use Knp\Snappy\Pdf;
  11. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  12. use Symfony\Component\HttpFoundation\Request;
  13. use Symfony\Component\HttpFoundation\JsonResponse;
  14. use Symfony\Component\HttpFoundation\Response;
  15. use Symfony\Component\Routing\Annotation\Route;
  16. use Symfony\Component\Validator\Validator\ValidatorInterface;
  17. use Symfony\Contracts\Translation\TranslatorInterface;
  18. class ColisageController extends AbstractController
  19. {
  20.     /**
  21.      * @Route("/vente/colisage/nouveau/{id}/{type}", name="dtc_colisage_ajouter")
  22.      */
  23.     public function ajouterAction(Request $request$id$type ""EntityManagerInterface $emTranslatorInterface $translator)
  24.     {
  25.         $titre_modal        $translator->trans("Bon de colisage");
  26.         $user               $this->getUser();
  27.         $idsArticleCommande $request->request->get('choixArticles');
  28.         $qte                $request->request->get('qteDispo');
  29.         $libelles           $request->request->get('libelles');
  30.         $repo_article_commande $em->getRepository(ArticleCommande::class);
  31.         $tableau_final = [];
  32.         if (count($idsArticleCommande) > 0) {
  33.             for ($i 0$i count($idsArticleCommande); $i++) {
  34.                 $article_temp     null;
  35.                 $article_commande $repo_article_commande->find($idsArticleCommande[$i]);
  36.                 if (is_object($article_commande) && is_object($article_commande->getArticle())) {
  37.                     $article_temp $article_commande->getArticle();
  38.                     if ($article_temp->getProduitInterne()) {
  39.                         if (count($article_temp->getArticlesComposants()) > 0) {
  40.                             foreach ($article_temp->getArticlesComposants() as $composants) {
  41.                                 //echo "<div>REF ".$composants->getArticle()->getReference()."</div>";
  42.                                 $article_temp $composants->getArticle();
  43.                                 if (array_key_exists($article_temp->getId(), $tableau_final)) {
  44.                                     $tableau_final[$article_temp->getId()]["quantiteColis"] = $tableau_final[$article_temp->getId()]["quantiteColis"] + $composants->getQuantite();
  45.                                 } else {
  46.                                     $tableau_final[$article_temp->getId()] = [
  47.                                         "idArticleColis"         => $article_temp->getId(),
  48.                                         "idArticleCommandeColis" => $idsArticleCommande[$i],
  49.                                         "quantiteColis"          => $composants->getQuantite(),
  50.                                         "libelleColis"           => $article_temp->getLibelle(),
  51.                                         "referenceColis"         => $article_temp->getReference(),
  52.                                     ];
  53.                                 }
  54.                             }
  55.                         }
  56.                     } else {
  57.                         if (array_key_exists($article_temp->getId(), $tableau_final)) {
  58.                             $tableau_final[$article_temp->getId()]["quantiteColis"] = $tableau_final[$article_temp->getId()]["quantiteColis"] + $qte[$i];
  59.                         } else {
  60.                             $tableau_final[$article_temp->getId()] = [
  61.                                 "idArticleColis"         => $article_temp->getId(),
  62.                                 "idArticleCommandeColis" => $idsArticleCommande[$i],
  63.                                 "quantiteColis"          => $qte[$i],
  64.                                 "libelleColis"           => $article_temp->getLibelle(),
  65.                                 "referenceColis"         => $article_temp->getReference(),
  66.                             ];
  67.                         }
  68.                     }
  69.                 }
  70.                 //$tableau_final[]=array("idArticleCommandeColis"=>$idsArticleCommande[$i],"quantiteColis"=>$qte[$i],"libelleColis"=>$libelles[$i]);
  71.             }
  72.         }
  73.         $errors = [];
  74.         $rendu $this->renderView('GestionComerciale/Colisage/ajouter.html.twig', ['errors' => $errors'articleCommandeColis' => $tableau_final]);
  75.         return new JsonResponse(['rendu' => $rendu'valide' => '0''url' => '''titre' => $titre_modal]);
  76.     }
  77.     /**
  78.      * @Route("", name="")
  79.      */
  80.     public function ___ajouterAction(Request $request$id$type ""EntityManagerInterface $emTranslatorInterface $translatorValidatorInterface $validator)
  81.     {
  82.         $titre_modal        $translator->trans("Bon de colisage");
  83.         $user               $this->getUser();
  84.         $idsArticleCommande $request->request->get('choixArticles');
  85.         $qte                $request->request->get('qteDispo');
  86.         $libelles           $request->request->get('libelles');
  87.         $tableau_final = [];
  88.         if (count($idsArticleCommande) > 0) {
  89.             for ($i 0$i count($idsArticleCommande); $i++) {
  90.                 $tableau_final[] = ["idArticleCommandeColis" => $idsArticleCommande[$i], "quantiteColis" => $qte[$i], "libelleColis" => $libelles[$i]];
  91.             }
  92.         }
  93.         $errors = [];
  94.         $rendu $this->renderView('GestionComerciale/Colisage/ajouter.html.twig', ['errors' => $errors'articleCommandeColis' => $tableau_final]);
  95.         return new JsonResponse(['rendu' => $rendu'valide' => '0''url' => '''titre' => $titre_modal]);
  96.     }
  97.     /**
  98.      * @Route("/vente/colisage", name="dtc_colisage_liste")
  99.      */
  100.     public function listerAction(Request $request$id "0"$type "a"EntityManagerInterface $emDatatable $datatableTranslatorInterface $translator)
  101.     {
  102.         $repo_objet $em->getRepository(Commande::class);
  103.         $objet      $repo_objet->find($id);
  104.         $param $request->query->all();
  105.         if (is_object($objet)) {
  106.             $tableau_class_cellule   = [];
  107.             $tableau_class_cellule[] = ["className" => "visible_export colonne_id text-center""targets" => [0], "visible" => true"orderable" => true];
  108.             //$tableau_class_cellule[]=array("className"=>"visible_export colonne_id","targets"=>array(1),"visible"=>true,"orderable"=>true);
  109.             $tableau_class_cellule[] = ["orderable" => false"className" => "colonne_id""targets" => [2], "visible" => true];
  110.             $this->datatableCommande($objet$type$datatable$translator);
  111.             return $this->render(
  112.                 'GestionComerciale/Colisage/lister_commande.html.twig',
  113.                 ['tableauClassColonne' => $tableau_class_cellule"id" => $id"type" => $type'parametres' => $param]
  114.             );
  115.         }
  116.     }
  117.     /**
  118.      * set datatable configs
  119.      *
  120.      * @return \App\Library\Datatable\Util\Datatable
  121.      */
  122.     private function datatableCommande($objet$type ""Datatable $datatableTranslatorInterface $translator)
  123.     {
  124.         //$type_jointure = 'x.'.$type;
  125.         $datatable->setDatatableId('dta-colisage')->setEntity(Colisage::class, "x");
  126.         //$repo_statut_document = $em->getRepository('DTCGestionComercialeBundle:StatutCommande');
  127.         //$liste_statut = $repo_statut_document->findBy(array("documentCommercial"=>6,"ordre"=>array(0)));
  128.         $parameters = ['objet' => $objet];
  129.         $datatable->addJoin('x.colisageArticleCommande''cac'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN);
  130.         $datatable->addJoin('cac.articleCommandeBl''ac'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN);
  131.         $datatable->addJoin('ac.commande''bl'\Doctrine\ORM\Query\Expr\Join::LEFT_JOIN);
  132.         $where               "bl.id = :objet";
  133.         $parameters['objet'] = $objet->getId();
  134.         $datatable
  135.             ->setFields(
  136.                 [
  137.                     //$translator->trans("ID") =>  'x.id',
  138.                     $translator->trans("Date")    => 'x.date',
  139.                     $translator->trans("Réf")     => 'x.reference',
  140.                     $translator->trans("Actions") => 'x.id',
  141.                     "_identifier_"                => 'x.id',
  142.                 ]
  143.             )
  144.             ->setWhere(
  145.                 $where,
  146.                 $parameters
  147.             )
  148.             ->setRenderers(
  149.                 [
  150.                     => [
  151.                         'view'   => 'FO/DataTable/heure.html.twig',
  152.                         'params' => [
  153.                             'edit_route' => 'dtc_colisage_afficher',
  154.                         ],
  155.                     ],
  156.                     => [
  157.                         'view'   => 'FO/DataTable/actions.html.twig',
  158.                         'params' => [
  159.                             //'edit_route'  => 'dtc_colisage_modifier',
  160.                             //'supprimer_route'  => 'dtc_colisage_supprimer',
  161.                             'pdf_route' => 'dtc_colisage_2_pdf',
  162.                             'id'        => $objet->getId(),
  163.                             'type'      => $type,
  164.                             'entite'    => 'colisage',
  165.                             'objet'     => Colisage::class,
  166.                             'deplier'   => false,
  167.                         ],
  168.                     ],
  169.                 ]
  170.             )
  171.             ->setOrder("x.id""desc")
  172.             ->setSearch(true)//->setSearchFields(array(1,2))
  173.         ;
  174.         $datatable->setGroupBy('x.id');
  175.         return $datatable;
  176.     }
  177.     /**
  178.      * @Route("/vente/colisage/grid/{id}/{type}", name="dtc_colisage_liste_grid")
  179.      */
  180.     public function gridAction(Request $request$id ""$type ""EntityManagerInterface $emDatatable $datatableTranslatorInterface $translator)
  181.     {
  182.         $repo_objet $em->getRepository(Commande::class);
  183.         $objet      $repo_objet->find($id);
  184.         if (is_object($objet)) {
  185.             return $this->datatableCommande($objet$type$datatable$translator)->execute();
  186.         } else {
  187.             return $this->datatable()->execute();
  188.         }
  189.     }
  190.     /**
  191.      * @Route("", name="")
  192.      */
  193.     public function imprimerMultipleAction(Request $requestEntityManagerInterface $em)
  194.     {
  195.         $data       $request->get('dataTables');
  196.         $ids        $data['actions'];
  197.         $tableauPdf = [];
  198.         $pdfRelier  'PDF/COLISAGE/FAC-'.date('d-m-Y').'.pdf';
  199.         for ($i 0$i count($ids); $i++) {
  200.             $repo $em->getRepository(Commande::class);
  201.             $bon  $repo->find($ids[$i]);
  202.             if (is_object($bon)) {
  203.                 $this->pdfColisageAction($bonfalse);
  204.                 $tableauPdf[] = $chemin_pdf 'PDF/COLISAGE/FAC-'.$bon->getReference().'.pdf';
  205.             }
  206.         }
  207.         $cmd "gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=$pdfRelier ";
  208.         foreach ($tableauPdf as $file) {
  209.             $cmd .= $file." ";
  210.         }
  211.         $result shell_exec($cmd);
  212.         return new JsonResponse(['target' => '_blank''url' => '/'.$pdfRelier'valide' => '1']);
  213.     }
  214.     /**
  215.      * @Route("/colisage/pdf/{id}", name="dtc_colisage_pdf")
  216.      */
  217.     public function pdfColisageAction(Request $requestColisage $colisageEntityManagerInterface $emPdf $snappy)
  218.     {
  219.         $societe    $em->getRepository(Societe::class)->find(1);
  220.         $date_Y     date("Y");
  221.         $date_M     date("m");
  222.         $date_D     date("d");
  223.         $date       $date_Y.'/'.$date_M.'/'.$date_D;
  224.         $chemin_pdf 'PDF/COLISAGE/'.$date.'/COLIS-'.$colisage->getReference().'.pdf';
  225.         if (file_exists($chemin_pdf)) {
  226.             unlink($chemin_pdf);
  227.         }
  228.         //return $this->render('GestionComerciale/Facture/template_pdf.html.twig',array('commande'  => $colisage,'societe'  => $societe));
  229.         $restant $request->query->get('restant');
  230.         //$footer = $this->renderView('FO/PDF/footer_pagination_pdf.html.twig', array('societe'  => $societe));
  231.         $header $this->renderView('FO/PDF/header_colisage_pdf.html.twig', ['societe' => $societe'colisage' => $colisage'dev' =>false]);
  232.         //$snappy->setOption('page-size', 'A4');
  233.        // $snappy->setOption('header-html', $header);
  234.         $snappy->setOption('disable-smart-shrinking'true);
  235.         $donnees  = [
  236.             'colisage' => $colisage,
  237.             'societe'  => $societe,
  238.         ];
  239.         $template 'GestionComerciale/Colisage/template_pdf.html.twig';
  240.         $snappy->generateFromHtml(
  241.             $this->renderView(
  242.                 $template,
  243.                 $donnees
  244.             ),
  245.             $chemin_pdf
  246.         );
  247.         return $this->render('FO/PDF/conteneur_pdf.html.twig', ['objet' => $colisage'chemin_pdf' => '/'.$chemin_pdf]);
  248.         //return new RedirectResponse("/".$chemin_pdf);
  249.     }
  250.     /**
  251.      * @Route("/vente/colisage/{id}/proposition", name="dtc_colisage_proposition_ajax")
  252.      */
  253.     public function propositionAction(Request $requestCommande $bpEntityManagerInterface $em)
  254.     {
  255.         $rendu        '';
  256.         $colis        = [];
  257.         $erreurs      = [];
  258.         $colisModeles $em->getRepository(ColisModele::class)->findBY([], ['poids' => 'ASC']);
  259.         //les articles qui ne passent dans aucun colis de part leur taille.
  260.         $erreursHorsGabarit = [];
  261.         //les articles qui ne passent dans aucun colis de part leur poids.
  262.         $erreursPoids = [];
  263.         //les articles dont les données dimensions/poids ne sont pas renseignées.
  264.         $erreursRenseignement = [];
  265.         $articlesCommandes $em->getRepository(ArticleCommande::class)->getArticlesCommandesByCommande(['commande' => $bp'poidsSort' => 'DESC']);
  266.         //carton tmp
  267.         $cartons   = [];
  268.         $newCarton true;
  269.         foreach ($articlesCommandes as $ac) {
  270.             $article $ac->getArticle();
  271.             if ( ! $article->getPrestation() && ! $article->getMainOeuvre()) {
  272.                 $longueurArticle $article->getProfondeur();
  273.                 $largeurArticle  $article->getLargeur();
  274.                 $hauteurArticle  $article->getHauteur();
  275.                 $poidsArticle    $article->getPoids();
  276.                 if ($longueurArticle == '' || $largeurArticle == '' || $hauteurArticle == '' || $poidsArticle == '') {
  277.                     $erreursRenseignement[$ac->getId()] = $ac;
  278.                 }
  279.                 if ($newCarton) {
  280.                     $cartons   $this->addCarton($cartons$ac$colisModelestrue);
  281.                     $newCarton false;
  282.                 }
  283.                 $quantite $ac->getQuantite();
  284.                 for ($i 1$i <= $quantite$i++) {
  285.                     $addCarton true;
  286.                     foreach ($cartons as $key => $carton) {
  287.                         if ($this->verifierDimensions($carton$article)) {
  288.                             if (empty($cartons[$key]['acs'][$ac->getId()])) {
  289.                                 $cartons[$key]['acs'][$ac->getId()] = ['ac' => $ac'quantite' => 1];
  290.                             } else {
  291.                                 $cartons[$key]['acs'][$ac->getId()]['quantite'] += 1;
  292.                             }
  293.                             $cartons[$key]['poids']      += $poidsArticle;
  294.                             $cartons[$key]['volume']     += $longueurArticle $largeurArticle $hauteurArticle;
  295.                             $cartons[$key]['nbArticles'] += 1;
  296.                             $addCarton                   false;
  297.                             break;
  298.                         }
  299.                     }
  300.                     if ($addCarton) {
  301.                         $cartons $this->addCarton($cartons$ac$colisModeles);
  302.                         foreach ($cartons as $key => $carton) {
  303.                             if ($this->verifierDimensions($carton$article)) {
  304.                                 if (empty($cartons[$key]['acs'][$ac->getId()])) {
  305.                                     $cartons[$key]['acs'][$ac->getId()] = ['ac' => $ac'quantite' => 1];
  306.                                 } else {
  307.                                     $cartons[$key]['acs'][$ac->getId()]['quantite'] += 1;
  308.                                 }
  309.                                 $cartons[$key]['poids']      += $poidsArticle;
  310.                                 $cartons[$key]['volume']     += $longueurArticle $largeurArticle $hauteurArticle;
  311.                                 $cartons[$key]['nbArticles'] += 1;
  312.                                 //$addCarton = false;
  313.                                 break;
  314.                             }
  315.                         }
  316.                     }
  317.                 }
  318.             }
  319.         }
  320.         if (count($erreursRenseignement)) {
  321.             $erreurs['erreursRenseignement'] = $erreursRenseignement;
  322.         }
  323.         if (count($erreursPoids)) {
  324.             $erreurs['erreursPoids'] = $erreursPoids;
  325.         }
  326.         if (count($erreursHorsGabarit)) {
  327.             $erreurs['erreursHorsGabarit'] = $erreursHorsGabarit;
  328.         }
  329.         /*
  330.                 $colisage = array(
  331.                     'nbArticles'=>2,
  332.                     'poids' => 4.1,
  333.                     'articlesCommandes' => $bp->getArticleCommande(),
  334.                     'typeCarton' => 'A',
  335.                 );
  336.                 $colis[] = $colisage;
  337.                 $colisage = array(
  338.                     'nbArticles'=>3,
  339.                     'poids' => 2.7,
  340.                     'articlesCommandes' => $bp->getArticleCommande(),
  341.                     'typeCarton' => 'C',
  342.                 );
  343.                 $colis[] = $colisage;
  344.                 'colis'=>$colis,
  345.         */
  346.         $rendu $this->renderView('GestionComerciale/Colisage/proposition.html.twig', ['cartons' => $cartons'erreurs' => $erreurs]);
  347.         return new JsonResponse(['rendu' => $rendu'valide' => '1']);
  348.     }
  349.     private function verifierDimensions($carton$article$quantite 1)
  350.     {
  351.         $modele          $carton['modele'];
  352.         $volumeCarton    $carton['volume'];
  353.         $poidsCarton     $carton['poids'];
  354.         $longueurCarton  $modele->getProfondeur();
  355.         $largeurCarton   $modele->getLargeur();
  356.         $hauteurCarton   $modele->getHauteur();
  357.         $poidsMaxCarton  $modele->getPoids();
  358.         $volumeMaxCarton $longueurCarton $largeurCarton $hauteurCarton;
  359.         $longueurArticle $article->getProfondeur();
  360.         $largeurArticle  $article->getLargeur();
  361.         $hauteurArticle  $article->getHauteur() * $quantite;
  362.         $poidsArticle    $article->getPoids();
  363.         $volumeArticle   $longueurArticle $largeurArticle $hauteurArticle $quantite;
  364.         if ($volumeMaxCarton < ($volumeCarton $volumeArticle)) {
  365.             return false;
  366.         }
  367.         if (($poidsMaxCarton 0.01) < ($poidsCarton $poidsArticle)) {
  368.             return false;
  369.         }
  370.         if ($longueurCarton != '' && $largeurCarton != '' && $hauteurCarton != '' && $longueurArticle != '' && $largeurArticle != '' && $hauteurArticle != '') {
  371.             //verification dans les 3 axes / 6 possibilités
  372.             if ($longueurCarton $longueurArticle && $largeurCarton $largeurArticle && $hauteurCarton $hauteurArticle) {
  373.                 return true;
  374.             }
  375.             if ($longueurCarton $longueurArticle && $largeurCarton $hauteurArticle && $hauteurCarton $largeurArticle) {
  376.                 return true;
  377.             }
  378.             if ($longueurCarton $largeurArticle && $largeurCarton $longueurArticle && $hauteurCarton $hauteurArticle) {
  379.                 return true;
  380.             }
  381.             if ($longueurCarton $largeurArticle && $largeurCarton $hauteurArticle && $hauteurCarton $longueurArticle) {
  382.                 return true;
  383.             }
  384.             if ($longueurCarton $hauteurArticle && $largeurCarton $longueurArticle && $hauteurCarton $largeurArticle) {
  385.                 return true;
  386.             }
  387.             if ($longueurCarton $hauteurArticle && $largeurCarton $largeurArticle && $hauteurCarton $longueurArticle) {
  388.                 return true;
  389.             }
  390.             return false;
  391.         }
  392.         return false;
  393.     }
  394.     private function addCarton($cartons$articleCommande$colisModeles$premierCarton false)
  395.     {
  396.         $article  $articleCommande->getArticle();
  397.         $quantite $articleCommande->getQuantite();
  398.         if ($premierCarton) {
  399.             $tmp = [];
  400.             foreach ($colisModeles as $colisModele) {
  401.                 $cartonTmp = [
  402.                     'modele'     => $colisModele,
  403.                     'volume'     => 0,
  404.                     'poids'      => 0,
  405.                     'nbArticles' => 0,
  406.                 ];
  407.                 //ajouter le carton acceptant la quantité maximale
  408.                 for ($i $quantite$i 1$i--) {
  409.                     if ($this->verifierDimensions($cartonTmp$article$i)) {
  410.                         //$cartons[] = $cartonTmp;
  411.                         //return $cartons;
  412.                         $tmp[$i] = $cartonTmp;
  413.                     }
  414.                 }
  415.             }
  416.             if (count($tmp)) {
  417.                 $max       max(array_keys($tmp));
  418.                 $cartons[] = $tmp[$max];
  419.                 return $cartons;
  420.             }
  421.         }
  422.         foreach ($colisModeles as $colisModele) {
  423.             $cartonTmp = [
  424.                 'modele'     => $colisModele,
  425.                 'volume'     => 0,
  426.                 'poids'      => 0,
  427.                 'nbArticles' => 0,
  428.             ];
  429.             if ($this->verifierDimensions($cartonTmp$article$quantite)) {
  430.                 $cartons[] = $cartonTmp;
  431.                 return $cartons;
  432.             }
  433.         }
  434.         return $cartons;
  435.     }
  436.     /**
  437.      * @Route("/colisage/pdf-2/{id}", name="dtc_colisage_2_pdf")
  438.      */
  439.     public function pdfColisage2Action(Request $requestColisage $colisageEntityManagerInterface $emPdf $snappy)
  440.     {
  441.         $societe    $em->getRepository(Societe::class)->find(1);
  442.         $date_Y     date("Y");
  443.         $date_M     date("m");
  444.         $date_D     date("d");
  445.         $date       $date_Y.'/'.$date_M.'/'.$date_D;
  446.         $chemin_pdf 'PDF/COLISAGE/'.$date.'/COLIS-'.$colisage->getReference().'.pdf';
  447.         if (file_exists($chemin_pdf)) {
  448.             unlink($chemin_pdf);
  449.         }
  450.         //return $this->render('GestionComerciale/Facture/template_pdf.html.twig',array('commande'  => $colisage,'societe'  => $societe));
  451.         $restant $request->query->get('restant');
  452.         //$footer = $this->renderView('FO/PDF/footer_pagination_pdf.html.twig', array('societe'  => $societe));
  453.         $header $this->renderView('FO/PDF/header_colisage_2_pdf.html.twig', ['societe' => $societe'colisage' => $colisage'dev' =>false]);
  454.         $snappy->setOption('margin-left'0);
  455.         $snappy->setOption('margin-right'0);
  456.         $snappy->setOption('margin-top'0);
  457.         $snappy->setOption('header-spacing'"4");
  458.         $snappy->setOption('footer-spacing'"3");
  459.         $snappy->setOption('disable-smart-shrinking'true);
  460.         //$snappy->setOption('print-media-type', false );
  461.         $snappy->setOption('page-height'"297");
  462.         $snappy->setOption('page-width'"210");
  463.         $donnees  = [
  464.             'colisage' => $colisage,
  465.             'societe'  => $societe,
  466.         ];
  467.         $template 'GestionComerciale/Colisage/template2_pdf.html.twig';
  468.       //  $template = 'GestionComerciale/BonLivraison/template_pdf.html.twig';
  469.         $snappy->generateFromHtml(
  470.             $this->renderView(
  471.                 $template,
  472.                 $donnees
  473.             ),
  474.             $chemin_pdf
  475.         );
  476.         return $this->render('FO/PDF/conteneur_pdf.html.twig', ['objet' => $colisage'chemin_pdf' => '/'.$chemin_pdf]);
  477.         //return new RedirectResponse("/".$chemin_pdf);
  478.     }
  479. }