<?php
namespace App\Controller\GestionComerciale;
use App\Entity\FO\Societe;
use App\Entity\GestionComerciale\ArticleCommande;
use App\Entity\GestionComerciale\Avoir;
use App\Entity\GestionComerciale\Commande;
use App\Entity\GestionComerciale\CommandeFournisseur;
use App\Entity\GestionComerciale\Facture;
use App\Form\GestionComerciale\AvoirFactureType;
use App\Form\GestionComerciale\AvoirType;
use App\Form\GestionComerciale\CommandeType;
use App\Library\Datatable\Util\Datatable;
use App\Model\GestionCommerciale\TypeDocumentCommercial;
use App\Security\Voter\EntityVoter;
use App\Service\GestionComerciale\AvoirService;
use App\Service\Utilisateur\ColonneTableauService;
use Doctrine\ORM\EntityManagerInterface;
use Knp\Snappy\Pdf;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Validator\Validator\ValidatorInterface;
use Symfony\Contracts\Translation\TranslatorInterface;
class AvoirController extends AbstractController
{
/**
* @Route("/vente/avoir/nouveau/modal/{id}/{type}", name="dtc_avoir_ajouter_modal")
*/
public function ajouterModalAction(Request $request, $id, $type = "", EntityManagerInterface $em, TranslatorInterface $translator, ValidatorInterface $validator)
{
$titre_modal = $translator->trans("Nouvelle reprise sur facture");
if ($type == "commandeFournisseur") {
$repo_objet = $em->getRepository(CommandeFournisseur::class);
} else {
$repo_objet = $em->getRepository(Commande::class);
}
$objet = $repo_objet->find($id);
$avoir = clone $objet;
$user = $this->getUser();
//$avoir->setUtilisateur($user);
if (is_object($avoir->getUtilisateur()) && ! empty($this->getParameter('utilisateur_site_internet')) && $avoir->getUtilisateur()->getId(
) == $this->getParameter('utilisateur_site_internet')) {
} else {
// $avoir->setUtilisateur($user);
}
$form = $this->createForm(AvoirFactureType::class, $avoir);
$errors = "";
$form->handleRequest($request);
$idsArticleCommande = $request->query->get('choixArticles');
$repo_objet = $em->getRepository(Commande::class);
$objet = $repo_objet->find($id);
$avoir->setFacture($objet);
$link = $this->generateUrl('dtc_avoir_ajouter_modal', ['id' => $objet->getId(), 'type' => 'avoir']);
$articleCommande = $em->getRepository(ArticleCommande::class)->listeArticleCommandeSelectionne($idsArticleCommande);
if ($form->isSubmitted()) {
if ($form->isValid()) {
$link = $this->generateUrl('dtc_facture_afficher', ['id' => $objet->getId()]);
$articles = [
'choixArticlesAvoir' => $request->request->get('choixArticlesAvoir'),
'idArticle' => $request->request->get('idArticle'),
'idArticleCommande' => $request->request->get('idArticleCommande'),
'quantiteInit' => $request->request->get('quantiteInit'),
'quantite' => $request->request->get('quantite'),
'quantiteRepris' => $request->request->get('quantiteRepris'),
];
$valeurs = ["commande" => $objet->getId(), "articles" => $articles];
$url = $this->generateUrl('dtc_comptoir_ajouter', ['valeurs' => $valeurs]);
return new JsonResponse(['rendu' => '', 'valide' => '1', 'url' => $url]);
} else {
$errors = $validator->validate($avoir);
$rendu = $this->renderView(
'GestionComerciale/Avoir/ajouter_modal.html.twig',
[
'form' => $form->createView(),
'errors' => $errors,
'id' => $id,
'type' => $type,
'articleCommande' => $articleCommande,
'commande' => $objet,
]
);
return new JsonResponse(['rendu' => $rendu, 'valide' => '0', 'url' => '', 'titre' => $titre_modal]);
}
}
$rendu = $this->renderView(
'GestionComerciale/Avoir/ajouter_modal.html.twig',
['form' => $form->createView(), 'errors' => $errors, 'id' => $id, 'type' => $type, 'articleCommande' => $articleCommande, 'commande' => $objet]
);
return new JsonResponse(['rendu' => $rendu, 'valide' => '0', 'url' => '', 'link' => $link, 'titre' => $titre_modal]);
}
/**
* @Route("/vente/avoir/modifier/modal/{objet}/{id}/{type}", name="dtc_avoir_modifier_modal")
*/
public function modifierModalAction(Request $request, Commande $objet, $id, $type, EntityManagerInterface $em, AvoirService $avoirService, TranslatorInterface $translator,
ValidatorInterface $validator
) {
$avoir = $objet;
$titre_modal = $translator->trans("Modifier avoir sur facture");
$user = $this->getUser();
//$avoir->setUtilisateur($user);
if (is_object($avoir->getUtilisateur()) && ! empty($this->getParameter('utilisateur_site_internet')) && $avoir->getUtilisateur()->getId(
) == $this->getParameter('utilisateur_site_internet')) {
} else {
$avoir->setUtilisateur($user);
}
$form = $this->createForm(AvoirFactureType::class, $avoir);
$errors = "";
$form->handleRequest($request);
$idsArticleCommande = $request->query->get('choixArticles');
$link = "";
//$link = $this->generateUrl('dtc_avoir_modifier_modal', array('id' => $objet->getId(),'type'=>'avoir'));
$articleCommande = $em->getRepository(ArticleCommande::class)->listeArticleCommandeSelectionne($idsArticleCommande);
$articleCommande = $objet->getArticleCommande();
if ($form->isSubmitted()) {
if ($form->isValid()) {
$link = $this->generateUrl('dtc_facture_afficher', ['id' => $objet->getId()]);
$articles = [
'idArticleCommande' => $request->request->get('idArticleCommande'),
'quantiteInit' => $request->request->get('quantiteInit'),
'quantite' => $request->request->get('quantite'),
'quantiteRepris' => $request->request->get('quantiteRepris'),
];
$valeurs = ["articles" => $articles];
$avoirService->sauvegarderAvoirFacture($avoir, $valeurs);
$this->addFlash(
'notice',
$translator->trans('Avoir modifié avec succès !')
);
$url = $this->generateUrl('dtc_facture_afficher', ['id' => $objet->getFacture()->getId(), 'tab' => 'avoirs']);
return new JsonResponse(['rendu' => '', 'valide' => '1', 'url' => $url], 200, ['Content-Type' => 'application/json']);
} else {
$errors = $validator->validate($avoir);
$rendu = $this->renderView(
'GestionComerciale/Avoir/ajouter_modal.html.twig',
[
'form' => $form->createView(),
'errors' => $errors,
'id' => $id,
'type' => $type,
'articleCommande' => $articleCommande,
'commande' => $objet,
]
);
return new JsonResponse(['rendu' => $rendu, 'valide' => '0', 'url' => '', 'titre' => $titre_modal]);
}
}
$rendu = $this->renderView(
'GestionComerciale/Avoir/ajouter_modal.html.twig',
['form' => $form->createView(), 'errors' => $errors, 'id' => $id, 'type' => $type, 'articleCommande' => $articleCommande, 'commande' => $objet]
);
return new JsonResponse(['rendu' => $rendu, 'valide' => '0', 'url' => '', 'link' => $link, 'titre' => $titre_modal]);
}
/**
* @Route("/vente/avoir/nouveau", name="dtc_avoir_ajouter")
*/
public function ajouterAction(Request $request, EntityManagerInterface $em, AvoirService $avoirService, TranslatorInterface $translator, ValidatorInterface $validator)
{
$avoir = new Commande;
$user = $this->getUser();
//$avoir->setUtilisateur($user);
if (is_object($avoir->getUtilisateur()) && ! empty($this->getParameter('utilisateur_site_internet')) && $avoir->getUtilisateur()->getId(
) == $this->getParameter('utilisateur_site_internet')) {
} else {
$avoir->setUtilisateur($user);
}
$form = $this->createForm(AvoirType::class, $avoir);
$errors = "";
$form->handleRequest($request);
if ($form->isSubmitted()) {
if ($form->isValid()) {
$em->persist($avoir);
$em->flush();
//$articles = array('ids'=>$request->request->get('ids'),'commentaire'=>$request->request->get('commentaire'),'libelles'=>$request->request->get('libelles'),'tva'=>$request->request->get('tva'),'remiseSuppl'=>$request->request->get('remiseSuppl'),'prix'=>$request->request->get('prix'),'qte'=>$request->request->get('qte'));
$articles = [
'ids' => $request->request->get('ids'),
'remise' => $request->request->get('remise'),
'montantRemise' => $request->request->get('montantRemise'),
'commentaire' => $request->request->get('commentaire'),
'libelles' => $request->request->get('libelles'),
'tva' => $request->request->get('tva'),
'remiseSuppl' => $request->request->get('remiseSuppl'),
'ecocontribution' => $request->request->get('ecocontribution'),
'prix' => $request->request->get('prix'),
'qte' => $request->request->get('qte'),
];
$valeurs = ["articles" => $articles, 'typeDocument' => 'commande'];
$avoirService->sauvegarder($avoir, $valeurs);
$this->addFlash(
'notice',
$translator->trans('Avoir ajouté avec succès !')
);
return $this->redirectToRoute('dtc_avoir_modifier', ["id" => $avoir->getId()]);
} else {
$errors = $validator->validate($avoir);
}
}
return $this->render('GestionComerciale/Avoir/ajouter.html.twig', ['form' => $form->createView(), 'errors' => $errors]);
}
/**
* @Route("/vente/avoir/modifier/{id}", name="dtc_avoir_modifier")
*/
public function modifierAction(Request $request, Commande $avoir, EntityManagerInterface $em, AvoirService $avoirService,
TranslatorInterface $translator, ValidatorInterface $validator
) {
$user = $this->getUser();
//$avoir->setUtilisateur($user);
if (is_object($avoir->getUtilisateur()) && ! empty($this->getParameter('utilisateur_site_internet')) && $avoir->getUtilisateur()->getId(
) == $this->getParameter('utilisateur_site_internet')) {
} else {
$avoir->setUtilisateur($user);
}
$form = $this->createForm(CommandeType::class, $avoir);
$articles = ['ids' => $request->request->get('ids'), 'prix' => $request->request->get('prix'), 'qte' => $request->request->get('qte')];
$valeurs = ["articles" => $articles];
$errors = "";
$form->handleRequest($request);
if ($form->isSubmitted()) {
if ($avoirService->estEditable($avoir)) {
// TODO CHANGE
$droit = $this->isGranted(EntityVoter::UPDATE, Avoir::class);
if ( ! $droit) {
return $this->redirectToRoute('dtc_avoir_modifier', ["id" => $avoir->getId()]);
}
if ($form->isValid()) {
if ($request->request->get('annuler') != '') {
$avoirService->annulerAvoir($avoir, $request->request->get('annuler'));
$this->addFlash(
'notice',
$translator->trans('Avoir annulé avec succès !')
);
return $this->redirectToRoute('dtc_avoir_liste', []);
}
$em->persist($avoir);
$em->flush();
//$articles = array('valider'=>$request->request->get('valider'),'ids'=>$request->request->get('ids'),'commentaire'=>$request->request->get('commentaire'),'remiseSuppl'=>$request->request->get('remiseSuppl'),'prix'=>$request->request->get('prix'),'libelles'=>$request->request->get('libelles'),'tva'=>$request->request->get('tva'),'qte'=>$request->request->get('qte'));
$articles = [
'ids' => $request->request->get('ids'),
'remise' => $request->request->get('remise'),
'montantRemise' => $request->request->get('montantRemise'),
'commentairePrive' => $request->request->get('commentairePrive'),
'commentaire' => $request->request->get('commentaire'),
'libelles' => $request->request->get('libelles'),
'tva' => $request->request->get('tva'),
'remiseSuppl' => $request->request->get('remiseSuppl'),
'ecocontribution' => $request->request->get('ecocontribution'),
'prix' => $request->request->get('prix'),
'fraisPortLigne' => $request->request->get('fraisPortLigne'),
'qte' => $request->request->get('qte'),
'articlesCommandeRepris' => $request->request->get('articlesCommandeRepris'),
];
$valeurs = ["articles" => $articles, 'typeDocument' => 'commande'];
$avoirService->sauvegarder($avoir, $valeurs);
$this->addFlash(
'notice',
$translator->trans('Avoir sauvegardé avec succès !')
);
return $this->redirectToRoute('dtc_avoir_modifier', ["id" => $avoir->getId()]);
} else {
$errors = $validator->validate($avoir);
//\Doctrine\Common\Util\Debug::dump($errors);
}
} else {
return $this->redirectToRoute('dtc_avoir_modifier', ["id" => $avoir->getId()]);
}
}
$modal = $request->query->get('modal');
if ($modal == 1) {
$titre_modal = $avoir->getReference();
$rendu = $this->renderView('GestionComerciale/Avoir/ajouter-modal.html.twig', ['form' => $form->createView(), 'errors' => $errors, 'commande' => $avoir]);
return new Response(json_encode(['rendu' => $rendu, 'valide' => '0', 'url' => '', 'titre' => $titre_modal]), 200, ['Content-Type' => 'application/json']);
} elseif ($avoir->getMultiBL() == true) {
$repo_commande = $em->getRepository(Commande::class);
$bls = $repo_commande->findByFacture($avoir->getId());
return $this->render('GestionComerciale/Avoir/ajouter-multi-bl.html.twig', [
'form' => $form->createView(),
'errors' => $errors,
'commande' => $avoir,
'bls' => $bls,
// TODO CHANGE THIS
'colonneUtilisateur' => 'App\\Entity\\GestionComerciale\\FormFacture',
]);
} else {
return $this->render('GestionComerciale/Avoir/ajouter.html.twig', [
'form' => $form->createView(),
'errors' => $errors,
'commande' => $avoir,
// TODO CHANGE THIS
'colonneUtilisateur' => 'App\\Entity\\GestionComerciale\\FormFacture',
]);
}
}
/**
* @Route("/vente/avoir", name="dtc_avoir_liste")
*/
public function listerAction(Request $request, ColonneTableauService $serviceColonneTableau, TranslatorInterface $translator, Datatable $datatable)
{
$param = $request->query->all();
$tableau_class_cellule[] = ["className" => "visible_export colonne_id", "targets" => [0], "visible" => false, "orderable" => false];
$tableau_class_cellule[] = [
"className" => "visible_export colonne_id",
"targets" => [1],
"visible" => $serviceColonneTableau->getColonneUtilisateur(Avoir::class, "id"),
];
$tableau_class_cellule[] = [
"className" => "visible_export colonne_id",
"targets" => [2],
"visible" => $serviceColonneTableau->getColonneUtilisateur(Avoir::class, "reference"),
];
$tableau_class_cellule[] = [
"className" => "visible_export colonne_id",
"targets" => [3],
"visible" => $serviceColonneTableau->getColonneUtilisateur(Avoir::class, "client"),
];
$tableau_class_cellule[] = [
"className" => "visible_export colonne_id",
"targets" => [4],
"visible" => $serviceColonneTableau->getColonneUtilisateur(Avoir::class, "libelleLivraison"),
];
$tableau_class_cellule[] = [
"className" => "visible_export colonne_id text-right",
"targets" => [5],
"visible" => $serviceColonneTableau->getColonneUtilisateur(Avoir::class, "statut"),
];
$tableau_class_cellule[] = [
"className" => "visible_export _somme colonne_id text-center",
"targets" => [6],
"visible" => $serviceColonneTableau->getColonneUtilisateur(Avoir::class, "totalHT"),
];
$tableau_class_cellule[] = ["orderable" => false, "className" => "colonne_id", "targets" => [7], "visible" => true];
$this->datatable($request, $datatable, $translator);
return $this->render('GestionComerciale/Avoir/lister.html.twig', ['tableauClassColonne' => $tableau_class_cellule, 'parametres' => $param]);
}
/**
* set datatable configs
*
* @return \App\Library\Datatable\Util\Datatable
*/
private function datatable(Request $request, Datatable $datatable, TranslatorInterface $translator)
{
$param = $request->query->all();
$datatable->setDatatableId('dta-avoir')
->setEntity(Commande::class, "x")
->setFields(
[
$translator->trans("ID") => 'x.id',
$translator->trans("Réf") => 'x.reference',
$translator->trans("Client") => 'c.nom',
$translator->trans("Ref client") => 'c.reference',
$translator->trans("Société / Nom") => 'x.libelleLivraison',
$translator->trans("Total HT") => 'x.total',
$translator->trans("Date") => 'x.date',
$translator->trans("Actions") => 'x.id',
"_identifier_" => 'x.id',
]
)
->addJoin('x.client', 'c', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
->addJoin('x.statutCommande', 's', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
/*
->addJoin('x.commande', 'c', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
->addJoin('x.mecanicien', 'e', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
->addJoin('x.vehiculesClient', 'v', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
*/
->setRenderers(
[
0 => [
'view' => 'FO/DataTable/avec_lien_edit_route.html.twig',
'params' => [
'edit_route' => 'dtc_avoir_modifier',
],
],
1 => [
'view' => 'FO/DataTable/avec_lien_edit_route.html.twig',
'params' => [
'edit_route' => 'dtc_avoir_modifier',
],
],
3 => [
'view' => 'FO/DataTable/avec_lien_edit_route.html.twig',
'params' => [
'edit_route' => 'dtc_client_modifier',
'typeDocument' => 'client',
],
],
2 => [
'view' => 'FO/DataTable/client.html.twig',
'params' => [],
],
5 => [
'view' => 'FO/DataTable/prix.html.twig',
'params' => [
'avecPort' => 1
//'edit_route' => 'dtc_avoir_modifier'
],
],
6 => [
'view' => 'FO/DataTable/heure.html.twig',
'params' => [//'edit_route' => 'dtc_avoir_modifier'
],
],
7 => [
'view' => 'FO/DataTable/actions_facture_avoir.html.twig',
'params' => [
'afficher_route_facture' => 'dtc_facture_afficher',
'pdf_route_facture' => 'dtc_facture_pdf',
'edit_route_avoir' => 'dtc_avoir_modifier',
'pdf_route_avoir' => 'dtc_avoir_pdf',
'objet_facture' => Facture::class,
'objet_avoir' => AvoirService::class,
'deplier' => true,
],
],
/*
6 => array(
//'view' => 'FO/DataTable/actions.html.twig',
'view' => 'FO/DataTable/actions.html.twig',
'params' => array(
'edit_route' => 'dtc_avoir_modifier',
//'supprimer_route' => 'dtc_avoir_supprimer',
'pdf_route' => 'dtc_avoir_pdf',
'entite' => 'bonPreparation',
'objet' => "DTCGestionComercialeBundle:Commande",
'deplier' => true,
),
),
*/
]
)
->setMultiple(
[
'print' => [
'title' => 'Imprimer',
'route' => 'dtc_facture_pdf_multiple',
],
]
)
->setOrder("x.id", "desc")
->setSearch(true)
->setSearchFields([1, 2, 3, 4]);
$where = 'x.typeDocumentCommercial = :typeDocumentCommercial and x.visible = :visible';
$parameters = ['typeDocumentCommercial' => TypeDocumentCommercial::AVOIR, 'visible' => '1'];
if (array_key_exists('parametres', $param)) {
if (array_key_exists('client', $param["parametres"]) and $param["parametres"]["client"] > 0) {
//$datatable->addJoin('x.client', 'client', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN);
$parameters["client"] = $param["parametres"]["client"];
if ($where != "") {
$where .= " AND ";
}
$where .= "c.id = :client";
}
if (array_key_exists('client', $param["parametres"]) and $param["parametres"]["date_debut"] != "") {
$param["parametres"]["date_debut"] = \DateTime::createFromFormat('d/m/Y', $param["parametres"]["date_debut"]);
$param["parametres"]["date_debut"]->setTime(00, 00, 00);
$parameters["date_debut"] = $param["parametres"]["date_debut"];
if ($where != "") {
$where .= " AND ";
}
$where .= "x.date >= :date_debut";
}
if (array_key_exists('client', $param["parametres"]) and $param["parametres"]["date_fin"] != "") {
$param["parametres"]["date_fin"] = \DateTime::createFromFormat('d/m/Y', $param["parametres"]["date_fin"]);
$param["parametres"]["date_fin"]->setTime(23, 59, 59);
$parameters["date_fin"] = $param["parametres"]["date_fin"];
if ($where != "") {
$where .= " AND ";
}
$where .= "x.date <= :date_fin";
}
}
if ($where != '') {
$datatable->setWhere($where, $parameters);
}
return $datatable;
}
/**
* @Route("/vente/avoir/grid", name="dtc_avoir_liste_grid")
*/
public function gridAction(Request $request, Datatable $datatable, TranslatorInterface $translator)
{
return $this->datatable($request, $datatable, $translator)->execute();
}
/**
* @Route("/avoir/pdf/{id}", name="dtc_avoir_pdf")
*/
public function pdfAvoirAction(Request $request, Commande $avoir, EntityManagerInterface $em, Pdf $snappy)
{
$societe = $em->getRepository(Societe::class)->find(1);
$date_Y = date("Y");
$date_M = date("m");
$date_D = date("d");
$date = $date_Y.'/'.$date_M.'/'.$date_D;
$chemin_pdf = 'PDF/AVOIR/'.$date.'/AVOIR-'.$avoir->getReference().'.pdf';
if (file_exists($chemin_pdf)) {
unlink($chemin_pdf);
}
//return $this->render('GestionComerciale/Facture/template_pdf.html.twig',array('commande' => $avoir,'societe' => $societe));
$restant = $request->query->get('restant');
$footer = $this->renderView('FO/PDF/footer_avoir_pagination_pdf.html.twig', ['societe' => $societe, 'commande' => $avoir]);
$header = $this->renderView('FO/PDF/header_avoir_pdf.html.twig', ['societe' => $societe, 'commande' => $avoir]);
//$snappy->setOption('page-size', 'A4');
//$snappy->setOption('header-html', $header);
$snappy->setOption('footer-html', $footer);
$snappy->setOption('header-spacing', "4");
$snappy->setOption('footer-spacing', "3");
$snappy->setOption('margin-left',0);
$snappy->setOption('margin-right',0);
$snappy->setOption('disable-smart-shrinking', true);
//$snappy->setOption('print-media-type', false );
$snappy->setOption('page-height', "297");
$snappy->setOption('page-width', "210");
$snappy->setOption('enable-local-file-access', true);
$donnees = [
'commande' => $avoir,
'societe' => $societe,
];
if ($avoir->getMultiBL() == 1) {
$repo_commande = $em->getRepository(Commande::class);
$bls = $repo_commande->findByFacture($avoir->getId());
$donnees['bls'] = $bls;
$template = 'GestionComerciale/Avoir/template_pdf_multi_bl.html.twig';
} else {
$template = 'GestionComerciale/Avoir/template_pdf.html.twig';
}
$donnees['afficher_restant'] = $restant;
$snappy->generateFromHtml(
$this->renderView(
$template,
$donnees
),
$chemin_pdf
);
return $this->render('FO/PDF/conteneur_pdf.html.twig', [
'objet' => $avoir,
'chemin_pdf' => '/'.$chemin_pdf,
'visualiser' => $request->query->get('visualiser'),
]);
}
/**
* @Route("", name="")
*/
public function _pdfAvoirAction(Request $request, Commande $avoir, EntityManagerInterface $em, Pdf $snappy)
{
$societe = $em->getRepository(Societe::class)->find(1);
$date_Y = date("Y");
$date_M = date("m");
$date_D = date("d");
$date = $date_Y.'/'.$date_M.'/'.$date_D;
$chemin_pdf = 'PDF/AVOIR/'.$date.'/AVOIR-'.$avoir->getReference().'.pdf';
if (file_exists($chemin_pdf)) {
unlink($chemin_pdf);
}
//return $this->render('GestionComerciale/Avoir/template_pdf.html.twig',array('commande' => $avoir,'societe' => $societe));
$footer = $this->renderView('FO/PDF/footer_pdf.html.twig', ['societe' => $societe]);
$snappy->setOption('footer-html', $footer);
$snappy->setOption('margin-bottom', "25");
$snappy->setOption('margin-top', "10");
$snappy->generateFromHtml(
$this->renderView(
'GestionComerciale/Avoir/template_pdf.html.twig',
[
'commande' => $avoir,
'societe' => $societe,
]
),
$chemin_pdf
);
return new RedirectResponse("/".$chemin_pdf);
}
}