Esempio n. 1
0
// Calculate price details
$logger->LogInfo("Calculating price ...");
$bookingDetails->calculatePriceDetails($language_selected);
// Get entered promo code and client info
$promoErrorMessage = null;
$clientEmailAddress = null;
$client = new Client();
if (isset($_POST['promo_code'])) {
    $logger->LogInfo("Promo code was entered: " . $_POST['promo_code']);
    $client = Client::fetchFromParameters($_POST);
    $bookingDetails->promoCode = null;
    if (isset($_POST['email'])) {
        $logger->LogInfo("Email was entered: " . $_POST['email']);
        $clientsEmailAddress = $_POST['email'];
    }
    $promoCode = PromoCode::fetchFromDBForCode($_POST['promo_code']);
    if ($promoCode == null) {
        $logger->LogWarn("Promo could not be found in the database!");
        $logger->LogWarn("Errors:");
        $logger->LogWarn(PromoCode::$staticErrors);
        $promoErrorMessage = PromoCode::$staticErrors[0];
    } else {
        if ($promoCode->isApplicable($bookingDetails->priceDetails->grandTotal, $clientsEmailAddress, $bookingDetails->searchCriteria->getNightCount(), $promoErrorMessage)) {
            $logger->LogInfo("Promo is applicable!");
            $bookingDetails->promoCode = $promoCode;
            $logger->LogInfo("Recalculating price ...");
            $bookingDetails->calculatePriceDetails($language_selected);
        } else {
            $logger->LogWarn("Promo is not applicable!");
            $logger->LogWarn($promoErrorMessage);
        }