/**
  * Mine or remine the first available operations
  *
  * @param int    $limit
  * @param string $phase
  *
  * @return array Success/failure counts report
  */
 function mineSome($limit = 100, $phase = "mine")
 {
     $report = array("success" => 0, "failure" => 0);
     if (!$limit) {
         return $report;
     }
     $operation = new COperation();
     /** @var COperation[] $operations */
     $operations = array();
     if ($phase == "remine") {
         $date = CMbDT::date(self::$remine_delay);
         $where["date"] = "< '{$date}'";
         $where["remined"] = "= '0'";
         $mined = $this->loadList($where, null, $limit);
         $operation_ids = CMbArray::pluck($mined, "operation_id");
         $operations = $operation->loadAll($operation_ids);
     }
     if ($phase == "postmine") {
         $date = CMbDT::date(self::$postmine_delay);
         $where["date"] = "< '{$date}'";
         $where["postmined"] = "= '0'";
         $mined = $this->loadList($where, null, $limit);
         $operation_ids = CMbArray::pluck($mined, "operation_id");
         $operations = $operation->loadAll($operation_ids);
     }
     if ($phase == "mine") {
         $date = CMbDT::date(self::$mine_delay);
         $table = $this->_spec->table;
         $ljoin[$table] = "{$table}.operation_id = operations.operation_id";
         $where[] = "operations.date < '{$date}'";
         $where["{$table}.operation_id"] = "IS NULL";
         $operations = $operation->loadList($where, null, $limit, null, $ljoin);
     }
     $plages = CStoredObject::massLoadFwdRef($operations, "plageop_id");
     $salles = CStoredObject::massLoadFwdRef($plages, "salle_id");
     CStoredObject::massLoadFwdRef($salles, "bloc_id");
     foreach ($operations as $_operation) {
         $_operation->loadRefPlageOp();
         $this->mine($_operation);
         if ($msg = $this->store()) {
             trigger_error($msg, UI_MSG_ERROR);
             $report["failure"]++;
             continue;
         }
         $report["success"]++;
     }
     return $report;
 }