Ejemplo n.º 1
0
     $c .= '<td class="' . $md5 . '-item-total totals">' . OnlineStore_numToPrice($totalItemCost) . '</td>';
     // }
     $c .= '</tr>';
     if ($item['long_desc']) {
         $c .= '<tr><td colspan="3" class="products-longdescription">' . $item['long_desc'] . '</td><td></td></tr>';
     }
 }
 $c .= '<tr class="os_basket_totals subtotal"><td style="text-align: right;" colspa' . 'n="3">' . __('Subtotal', 'core') . '</td>' . '<td class="totals">' . OnlineStore_numToPrice($grandTotal) . '</td></tr>';
 if (isset($_REQUEST['os_voucher']) && $_REQUEST['os_voucher'] == '') {
     unset($_REQUEST['os_voucher']);
 }
 if (isset($_REQUEST['os_voucher']) && $_REQUEST['os_voucher']) {
     require_once dirname(__FILE__) . '/voucher-libs.php';
     $email = $_REQUEST['Email'];
     $code = $_REQUEST['os_voucher'];
     $voucher_amount = OnlineStore_voucherAmount($code, $email, $grandTotal);
     if ($voucher_amount) {
         $c .= '<tr class="os_basket_totals vouchers">' . '<td class="voucher" style="text-align: right;" colspan="3">' . '<span>' . __('Voucher', 'core') . '</span> (' . htmlspecialchars($code) . '<span style="display:inline-block;"' . ' class="ui-icon ui-icon-circle-close online-store-voucher-remove">' . '</span>' . ')</td><td class="totals">-' . OnlineStore_numToPrice($voucher_amount) . '</td></tr>';
         $grandTotal -= $voucher_amount;
     } else {
         $c .= '<tr class="os_basket_totals vouchers">' . '<td class="voucher" style="text-align: right;" colspan="4">' . '<span>' . __('Voucher has no effect on cart. Removed from cart.', 'core') . '</span></td></tr>';
         unset($_REQUEST['os_voucher']);
     }
 }
 if (!isset($_REQUEST['os_voucher']) || !$_REQUEST['os_voucher']) {
     $siteHasVouchers = Core_cacheLoad('online-store', 'site-has-vouchers', -1);
     if ($siteHasVouchers === -1) {
         $siteHasVouchers = dbOne('select count(id) ids from online_store_vouchers', 'ids');
         Core_cacheSave('online-store', 'site-has-vouchers', $siteHasVouchers);
     }
     if ($siteHasVouchers) {
Ejemplo n.º 2
0
/**
 * return the grand total in the checkout
 *
 * @return float
 */
function OnlineStore_getFinalTotal()
{
    $grandTotal = 0;
    $deliveryTotal = 0;
    $discountableTotal = 0;
    $vattable = 0;
    $has_vatfree = false;
    $user_is_vat_free = 0;
    $group_discount = 0;
    if (@$_SESSION['userdata']['id']) {
        $user = User::getInstance($_SESSION['userdata']['id']);
        if ($user) {
            $user_is_vat_free = $user->isInGroup('_vatfree');
            $group_discount = $user->getGroupHighest('discount');
        }
    }
    if (!isset($_SESSION['online-store']['items'])) {
        $_SESSION['online-store']['items'] = array();
    }
    foreach ($_SESSION['online-store']['items'] as $md5 => $item) {
        $totalItemCost = $item['cost'] * $item['amt'];
        $grandTotal += $totalItemCost;
        if ($item['vat']) {
            $vattable += $totalItemCost;
        }
        if (!isset($item['delivery_free']) || !$item['delivery_free']) {
            $deliveryTotal += $totalItemCost;
        }
        if (!isset($item['not_discountable']) || !$item['not_discountable']) {
            $discountableTotal += $totalItemCost;
        }
    }
    if (@$_REQUEST['os_voucher']) {
        require_once SCRIPTBASE . 'ww.plugins/online-store/frontend/voucher-libs.php';
        $email = @$_REQUEST['Email'];
        $code = $_REQUEST['os_voucher'];
        $voucher_amount = OnlineStore_voucherAmount($code, $email, $grandTotal);
        if ($voucher_amount) {
            $grandTotal -= $voucher_amount;
        }
    }
    if ($group_discount && $discountableTotal) {
        // group discount
        $discount_amount = $discountableTotal * ($group_discount / 100);
        $grandTotal -= $discount_amount;
    }
    // { postage
    $postage = OnlineStore_getPostageAndPackaging($deliveryTotal, '', 0);
    if ($postage['total']) {
        $grandTotal += $postage['total'];
    }
    // }
    if ($vattable && !$user_is_vat_free) {
        $vat = $vattable * ($_SESSION['onlinestore_vat_percent'] / 100);
        $grandTotal += $vat;
    }
    return $grandTotal;
}