Example #1
0
 /**
  * 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;
 }