#!/usr/bin/env php format('Y'); } elseif($argc > 1){ for($i = 0; $i < $argc - 1; $i++){ $year = filter_var($argv[$i + 1], FILTER_VALIDATE_INT); if($year === false){ throw new InvalidArgumentException("Année invalide: saisir un ou plusieurs nombres entiers ou aucun\n"); } $years[$i] = (string)$year; } } else{ throw new LogicException('Erreur de logique: $argc ne peut être inférieur à 1' . "\n"); } } catch(Exception $e){ echo $e->getMessage(); die; } // requête 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 }