// $RCSfile: BestForCustomerPricingStrategy.cpp,v $

#include "BestForCustomerPricingStrategy.h"

Money *
  BestForCustomerPricingStrategy
  ::getTotal(Reservation *context)
{
  vector<PricingStrategy *>::iterator i;
  i = pricingStrategies->begin();
  Money *lowest = (*i)->getTotal(context);
  i++;
  for (; i != 0; i++) {
    Money *price = (*i)->getTotal(context);
    if (*price < *lowest) {
      lowest = price;
    }
  }
  return lowest;
}

BestForCustomerPricingStrategy::
~BestForCustomerPricingStrategy(){
  this->PricingStrategy::~PricingStrategy();
}

BestForCustomerPricingStrategy::
 BestForCustomerPricingStrategy(
  const BestForCustomerPricingStrategy &p)
{
   pricingStrategies =
       new vector<PricingStrategy *>(
	     *(p.pricingStrategies));
   reservation = 
     new Reservation(*(p.reservation));
}

BestForCustomerPricingStrategy *
BestForCustomerPricingStrategy::clone() {
  return new BestForCustomerPricingStrategy(*this);
}

