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; }