/dev/null 2>&1 &'; // stdout > /dev/null et & permettent de rendre la main à PHP // stderr > stdout pour cacher un message inutile return $command; } // appelée par bin/livre_recettes.php function makeRecipeBook(EntityManager $entityManager, array $years): void { foreach($years as $year){ /*$date_debut = $year . '-01-01'; $date_fin = $year . '-12-31'; $debut = new DateTime($date_debut, new DateTimeZone('Europe/Paris')); $fin = new DateTime($date_fin, new DateTimeZone('Europe/Paris'));; $fin->setTime(23, 59, 59);*/ $dql = 'SELECT n FROM Prestation n WHERE n.date >= :debut AND n.date <= :fin'; $bulk_data = $entityManager ->createQuery($dql) ->setParameter('debut', $year . '-01-01') ->setParameter('fin', $year . '-12-31') ->getResult(); // affichage $result = "client|date|type|mode paiement|débours|total HT|salaire CESU|code presta\n"; foreach($bulk_data as $presta){ if($presta->getTypePresta() !== 'devis' && $presta->getTypePresta() !== 'non_vendue'){ $result .= $presta->getClient()->getPrenomNom() . '|' . $presta->getDate() . '|' . $presta->getTypePresta() . '|' . $presta->getModePaiement() . '|'; if($presta->getTypePresta() === 'facture'){ $result .= $presta->getTotalPieces() . '|'; $result .= $presta->getTotalHT() . '||'; } elseif($presta->getTypePresta() === 'cesu'){ $result .= '||' . $presta->getSalaire() . '|'; } elseif($presta->getTypePresta() === 'location'){ $result .= '|' . (string)($presta->getLoyer() * (float)$presta->getLoyersPayes()) . '||'; } $result .= $presta->getCodePresta() . "\n"; } } file_put_contents('data/livre_recettes_' . $year . '.csv', $result); // sortie fichier echo $result . "\n"; // sortie console } }