public function create(Societe $societe, $mouvements, $dateFacturation) { $facture = new Facture(); $facture->setSociete($societe); $facture->setDateFacturation($dateFacturation); $facture->setDateEmission(new \DateTime()); $facture->getEmetteur()->setNom($this->parameters['emetteur']['nom']); $facture->getEmetteur()->setAdresse($this->parameters['emetteur']['adresse']); $facture->getEmetteur()->setCodePostal($this->parameters['emetteur']['code_postal']); $facture->getEmetteur()->setCommune($this->parameters['emetteur']['commune']); $facture->getEmetteur()->setTelephone($this->parameters['emetteur']['telephone']); $facture->getEmetteur()->setFax($this->parameters['emetteur']['fax']); $facture->getEmetteur()->setEmail($this->parameters['emetteur']['email']); foreach ($mouvements as $mouvement) { if (!$mouvement->isFacturable() || $mouvement->isFacture()) { continue; } $ligne = new FactureLigne(); $ligne->pullFromMouvement($mouvement); $facture->addLigne($ligne); } $facture->update(); $facture->facturerMouvements(); return $facture; }
/** * @Route("/relance-pdf/{id}/{numeroRelance}", name="facture_relance_pdf") * @ParamConverter("facture", class="AppBundle:Facture") */ public function relancePdfAction(Request $request, Facture $facture, $numeroRelance = 0) { set_time_limit(0); $fm = $this->get('facture.manager'); $lignes = array(); foreach ($facture->getLignes() as $key => $ligneFacture) { $ligne = $this->buildLignePDFFacture($ligneFacture); $lignes[] = $ligne; } $html = $this->renderView('facture/pdfGeneriqueRelance.html.twig', array('facture' => $facture, 'lignes' => $lignes, 'numeroRelance' => $numeroRelance, 'parameters' => $fm->getParameters())); $terme_relance = FactureManager::$types_nb_relance[$numeroRelance]; $filename = sprintf("relance_%s_facture_%s_%s.pdf", $terme_relance, $facture->getNumeroFacture(), (new \DateTime())->format("Y-m-d_His")); if ($request->get('output') == 'html') { return new Response($html, 200); } return new Response($this->get('knp_snappy.pdf')->getOutputFromHtml($html, $this->getPdfGenerationOptions()), 200, array('Content-Type' => 'application/pdf', 'Content-Disposition' => 'attachment; filename="' . $filename . '"')); }