/**
  * checks if production is valid, takes in consideration all other moves for this phase/user that are not flagged as deleted
  *
  * @param ModelProductionMove $move
  * @return void
  * @throws ControllerException $ex
  */
 public function validateProductionMove(ModelProductionMove $move)
 {
     // 1. check if zarea belongs to user
     $gameArea = ModelGameArea::getGameArea($move->getIdGame(), $move->getIdZArea());
     if ($move->getIdUser() !== $gameArea->getIdUser()) {
         throw new ControllerException('Area doesn\'t belong to the user.');
     }
     // 2. check if user has enough res left
     // 2.a check cost of previous productions
     $current_costs = $move->getCost();
     $moves = ModelProductionMove::iterator($move->getIdUser(), $move->getIdGame(), $move->getRound());
     while ($moves->hasNext()) {
         /* @var $move ModelProductionMove */
         $move_tmp = $moves->next();
         if ($move_tmp === $move) {
             continue;
         }
         $current_costs += $move_tmp->getCost();
     }
     // 2.b get available res
     $current_production = UserViewHelper::getCurrentProductionForUserInGame($move->getIdUser(), $move->getIdGame());
     if ($current_production['sum'] - $current_costs < 0) {
         throw new ControllerException('Insufficient funds!');
     }
 }