/** * retourne un tableau assoicatif des comptes de reception d echantillons par mois ( 12 derniers mois) * pour la biobanque fournie en parametre * * @param $var Biobank(id) * @return array[array(string,int)] */ public static function getCountReceptionByMonthAndBiobank($biobank_id) { $result = array(); $format = "Y-m-d 00:00:00"; $dateJour = date($format); /** * filtre des fichiers de reception par date et par biobanque<br> * compte des echantillons par fichier et ajoute à la somme */ for ($i = 0; $i < 13; $i++) { $currentMonth = date("m", strtotime('-' . $i . ' month' . $dateJour)); $currentYear = date("Y", strtotime('-' . $i . ' month' . $dateJour)); $filterDate = $currentYear . "-" . $currentMonth . "%"; $monthCount = 0; $fileCriteria = new EMongoCriteria(); $fileCriteria->biobank_id = $biobank_id; $fileCriteria->date_import = new MongoRegex('/' . $filterDate . '*/i'); $files = FileImported::model()->findAll($fileCriteria); if (count($files) > 0) { $arrayOfFilesId = array(); foreach ($files as $fichier) { $arrayOfFilesId[] = (string) $fichier->_id; } $criteria = new EMongoCriteria(); $criteria->file_imported_id('in', $arrayOfFilesId); $monthCount += Sample::model()->count($criteria); } $result[] = array($currentMonth . "/" . $currentYear, $monthCount); } return $result; }