diff --git a/src/schedule-2.0/config/routes.yaml b/src/schedule-2.0/config/routes.yaml index da7d898..b693d49 100644 --- a/src/schedule-2.0/config/routes.yaml +++ b/src/schedule-2.0/config/routes.yaml @@ -414,7 +414,11 @@ export_project_weekly: export_full_worked_days: path: /export/export_full_worked_days - defaults: { _controller: App\Controller\ExportController:export_full_worked_days } + defaults: { _controller: App\Controller\ExportController:export_full_worked_days } + +export_offers: + path: /export/export_offers + defaults: { _controller: App\Controller\ExportController:export_offers } #== API =========================================================================================================== diff --git a/src/schedule-2.0/src/Controller/ExportController.php b/src/schedule-2.0/src/Controller/ExportController.php index e60ac36..c5958ab 100644 --- a/src/schedule-2.0/src/Controller/ExportController.php +++ b/src/schedule-2.0/src/Controller/ExportController.php @@ -434,6 +434,44 @@ class ExportController extends AbstractController return $response; } + public function export_offers(Request $request,$access=null): Response { + $em = $this->getDoctrine()->getManager(); + $projects=$em->getRepository("App:Project")->findAll(); + //Construction du tableau des projets + $tbprojects=[]; + foreach($projects as $project) { + // Filtre par Customer + if($access=="customer") { + if($project->getCustomer()->getKeypass()!=$key) + continue; + } + + // Filtre par Service + if($this->get('session')->get('idservice')!="all") { + if($project->getService()->getId()!=$this->get('session')->get('idservice')) + continue; + } + + // Filtre par project + if($this->get('session')->get('idproject')!="all") { + if($project->getId()!=$this->get('session')->get('idproject')) + continue; + } + $tbproject["name"] = $project->getname(); + $tbproject["customer"] = $project->getCustomer()->getName(); + $tbproject["offers"] = $project->getOffers(); + + $tbprojects[$project->getId()]=$tbproject; + } + + + $csv = $this->renderView('Export/export_offers.csv.twig', ["projects" => $tbprojects]); + $response = new Response($csv); + $response->headers->set('Content-Type', 'text/csv; charset=utf-8'); + $response->headers->set('Content-Disposition', 'attachment; filename="export_offers.csv"'); + + return $response; + } } diff --git a/src/schedule-2.0/templates/Export/export_offers.csv.twig b/src/schedule-2.0/templates/Export/export_offers.csv.twig new file mode 100644 index 0000000..339cfa5 --- /dev/null +++ b/src/schedule-2.0/templates/Export/export_offers.csv.twig @@ -0,0 +1,8 @@ +{% block body %} +Client;Projet;Proposition;Ref;Qt;PU;Total; +{% for project in projects %} +{% for offer in project.offers %} +{{ project.customer }};{{project.name}};{{offer.name}};{{offer.ref}};{{offer.quantity}};{{offer.pu}};{{offer.total}} +{% endfor %} +{% endfor %} +{% endblock %} \ No newline at end of file diff --git a/src/schedule-2.0/templates/Export/list.html.twig b/src/schedule-2.0/templates/Export/list.html.twig index 51542bf..4887baa 100644 --- a/src/schedule-2.0/templates/Export/list.html.twig +++ b/src/schedule-2.0/templates/Export/list.html.twig @@ -33,4 +33,14 @@ EXPORTS DE DONNEES

+
+
+ Export des commandes +
+
+

Exporter la liste des commandes

+

Filtres utiles : Nombres de mois, Projet, Service

+
+
+

{% endblock %} \ No newline at end of file