Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Warning:message in checkout_shipping.php


yogidegr8

Recommended Posts

I am getting this warning on checkout_shipping.php page when we proceed for checkout. This appears at the top of the page and other working is proper.

 

Warning: Division by zero in /home/shauryai/public_html/silvershop/includes/classes/shipping.php on line 61

 

Warning: Division by zero in /home/shauryai/public_html/silvershop/includes/classes/shipping.php on line 62

 

What am I doing wrong???

 

 

My checkout_shipping.php is mentioned here: Also mentioned is /includes/classes/shipping.php below that. Can one help.

 

<?php

/*

  $Id: checkout_shipping.php,v 1.16 2003/07/24 23:03:53 Strider Exp $

  $Id: checkout_shipping.php,v 1.16 2003/06/09 23:03:53 hpdl Exp $

  $Id: checkout_shipping.php,v 1.9.2.2 2003/05/13 22:27:48 wilt Exp $

 

  osCommerce, Open Source E-Commerce Solutions

  http://www.oscommerce.com

 

  Copyright © 2003 osCommerce

 

  Released under the GNU General Public License

*/

 

  require('includes/application_top.php');

  require('includes/classes/http_client.php');

 

// if the customer is not logged on, redirect them to the login page

  if (!tep_session_is_registered('customer_id')) {

    $navigation->set_snapshot();

    tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL'));

  }

 

// if there is nothing in the customers cart, redirect them to the shopping cart page

  if ($cart->count_contents() < 1) {

    tep_redirect(tep_href_link(FILENAME_SHOPPING_CART));

  }

 

// if no shipping destination address was selected, use the customers own address as default

  if (!tep_session_is_registered('sendto')) {

    tep_session_register('sendto');

    $sendto = $customer_default_address_id;

  } else {

// verify the selected shipping address

    $check_address_query = tep_db_query("select count(*) as total from " . TABLE_ADDRESS_BOOK . " where customers_id = '" . (int)$customer_id . "' and address_book_id = '" . (int)$sendto . "'");

    $check_address = tep_db_fetch_array($check_address_query);

 

    if ($check_address['total'] != '1') {

      $sendto = $customer_default_address_id;

      if (tep_session_is_registered('shipping')) tep_session_unregister('shipping');

    }

  }

 

  require(DIR_WS_CLASSES . 'order.php');

  $order = new order;

 

// register a random ID in the session to check throughout the checkout procedure

// against alterations in the shopping cart contents

  if (!tep_session_is_registered('cartID')) tep_session_register('cartID');

  $cartID = $cart->cartID;

 

// if the order contains only virtual products, forward the customer to the billing page as

// a shipping address is not needed

// ICW CREDIT CLASS GV AMENDE LINE BELOW

//  if ($order->content_type == 'virtual') {

  if (($order->content_type == 'virtual') || ($order->content_type == 'virtual_weight') ) {

    if (!tep_session_is_registered('shipping')) tep_session_register('shipping');

    $shipping = false;

    $sendto = false;

    tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));

  }

 

  $total_weight = $cart->show_weight();

  $total_count = $cart->count_contents();

 

// load all enabled shipping modules

  require(DIR_WS_CLASSES . 'shipping.php');

  $shipping_modules = new shipping;

 

  if ( defined('MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING') && (MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING == 'true') ) {

    $pass = false;

 

    switch (MODULE_ORDER_TOTAL_SHIPPING_DESTINATION) {

      case 'national':

        if ($order->delivery['country_id'] == STORE_COUNTRY) {

          $pass = true;

        }

        break;

      case 'international':

        if ($order->delivery['country_id'] != STORE_COUNTRY) {

          $pass = true;

        }

        break;

      case 'both':

        $pass = true;

        break;

    }

 

    $free_shipping = false;

    if ( ($pass == true) && ($order->info['total'] >= MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER) ) {

      $free_shipping = true;

 

      include(DIR_WS_LANGUAGES . $language . '/modules/order_total/ot_shipping.php');

    }

  } else {

    $free_shipping = false;

  }

 

// process the selected shipping method

  if ( isset($HTTP_POST_VARS['action']) && ($HTTP_POST_VARS['action'] == 'process') ) {

    if (!tep_session_is_registered('comments')) tep_session_register('comments');

    if (tep_not_null($HTTP_POST_VARS['comments'])) {

      $comments = tep_db_prepare_input($HTTP_POST_VARS['comments']);

    }

 

    if (!tep_session_is_registered('shipping')) tep_session_register('shipping');

 

    if ( (tep_count_shipping_modules() > 0) || ($free_shipping == true) ) {

      if ( (isset($HTTP_POST_VARS['shipping'])) && (strpos($HTTP_POST_VARS['shipping'], '_')) ) {

        $shipping = $HTTP_POST_VARS['shipping'];

 

        list($module, $method) = explode('_', $shipping);

        if ( is_object($$module) || ($shipping == 'free_free') ) {

          if ($shipping == 'free_free') {

            $quote[0]['methods'][0]['title'] = FREE_SHIPPING_TITLE;

            $quote[0]['methods'][0]['cost'] = '0';

          } else {

            $quote = $shipping_modules->quote($method, $module);

          }

          if (isset($quote['error'])) {

            tep_session_unregister('shipping');

          } else {

            if ( (isset($quote[0]['methods'][0]['title'])) && (isset($quote[0]['methods'][0]['cost'])) ) {

              $shipping = array('id' => $shipping,

                                'title' => (($free_shipping == true) ?  $quote[0]['methods'][0]['title'] : $quote[0]['module'] . ' (' . $quote[0]['methods'][0]['title'] . ')'),

                                'cost' => $quote[0]['methods'][0]['cost']);

 

              tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));

            }

          }

        } else {

          tep_session_unregister('shipping');

        }

      }

    } else {

      $shipping = false;

 

      tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));

    }

  }

 

// get all available shipping quotes

  $quotes = $shipping_modules->quote();

 

// if no shipping method has been selected, automatically select the cheapest method.

// if the modules status was changed when none were available, to save on implementing

// a javascript force-selection method, also automatically select the cheapest shipping

// method if more than one module is now enabled

  if ( !tep_session_is_registered('shipping') || ( tep_session_is_registered('shipping') && ($shipping == false) && (tep_count_shipping_modules() > 1) ) ) $shipping = $shipping_modules->cheapest();

 

  require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_CHECKOUT_SHIPPING);

 

  $breadcrumb->add(NAVBAR_TITLE_1, tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));

  $breadcrumb->add(NAVBAR_TITLE_2, tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));

?>

<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">

<html <?php echo HTML_PARAMS; ?>>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">

<title><?php echo TITLE; ?></title>

<base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>">

<link rel="stylesheet" type="text/css" href="stylesheet.css">

<script language="javascript"><!--

var selected;

 

function selectRowEffect(object, buttonSelect) {

  if (!selected) {

    if (document.getElementById) {

      selected = document.getElementById('defaultSelected');

    } else {

      selected = document.all['defaultSelected'];

    }

  }

 

  if (selected) selected.className = 'moduleRow';

  object.className = 'moduleRowSelected';

  selected = object;

 

// one button is not an array

  if (document.checkout_address.shipping[0]) {

    document.checkout_address.shipping[buttonSelect].checked=true;

  } else {

    document.checkout_address.shipping.checked=true;

  }

}

 

function rowOverEffect(object) {

  if (object.className == 'moduleRow') object.className = 'moduleRowOver';

}

 

function rowOutEffect(object) {

  if (object.className == 'moduleRowOver') object.className = 'moduleRow';

}

//--></script>

</head>

<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0">

<!-- header //-->

<?php require(DIR_WS_INCLUDES . 'header.php'); ?>

<!-- header_eof //-->

 

<!-- body //-->

<table border="0" width="100%" cellspacing="3" cellpadding="3">

  <tr>

    <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">

<!-- left_navigation //-->

<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>

<!-- left_navigation_eof //-->

    </table></td>

<!-- body_text //-->

    <td width="100%" valign="top"><?php echo tep_draw_form('checkout_address', tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL')) . tep_draw_hidden_field('action', 'process'); ?><table border="0" width="100%" cellspacing="0" cellpadding="0">

      <tr>

        <td><table border="0" width="100%" cellspacing="0" cellpadding="0">

          <tr>

            <td class="pageHeading"><?php echo HEADING_TITLE; ?></td>

            <td class="pageHeading" align="right"><?php echo tep_image(DIR_WS_IMAGES . 'table_background_delivery.gif', HEADING_TITLE, HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>

          </tr>

        </table></td>

      </tr>

      <tr>

        <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>

      </tr>

      <tr>

        <td><table border="0" width="100%" cellspacing="0" cellpadding="2">

          <tr>

            <td class="main"><b><?php echo TABLE_HEADING_SHIPPING_ADDRESS; ?></b></td>

          </tr>

        </table></td>

      </tr>

      <tr>

        <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">

          <tr class="infoBoxContents">

            <td><table border="0" width="100%" cellspacing="0" cellpadding="2">

              <tr>

                <td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>

                <td class="main" width="50%" valign="top"><?php echo TEXT_CHOOSE_SHIPPING_DESTINATION . '<br><br><a href="' . tep_href_link(FILENAME_CHECKOUT_SHIPPING_ADDRESS, '', 'SSL') . '">' . tep_image_button('button_change_address.gif', IMAGE_BUTTON_CHANGE_ADDRESS) . '</a>'; ?></td>

                <td align="right" width="50%" valign="top"><table border="0" cellspacing="0" cellpadding="2">

                  <tr>

                    <td class="main" align="center" valign="top"><?php echo '<b>' . TITLE_SHIPPING_ADDRESS . '</b><br>' . tep_image(DIR_WS_IMAGES . 'arrow_south_east.gif'); ?></td>

                    <td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>

                    <td class="main" valign="top"><?php echo tep_address_label($customer_id, $sendto, true, ' ', '<br>'); ?></td>

                    <td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>

                  </tr>

                </table></td>

              </tr>

            </table></td>

          </tr>

        </table></td>

      </tr>

      <tr>

        <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>

      </tr>

<?php

  if (tep_count_shipping_modules() > 0) {

?>

      <tr>

        <td><table border="0" width="100%" cellspacing="0" cellpadding="2">

          <tr>

            <td class="main"><b><?php echo TABLE_HEADING_SHIPPING_METHOD; ?></b></td>

          </tr>

        </table></td>

      </tr>

      <tr>

        <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">

          <tr class="infoBoxContents">

            <td><table border="0" width="100%" cellspacing="0" cellpadding="2">

<?php

    if (sizeof($quotes) > 1 && sizeof($quotes[0]) > 1) {

?>

              <tr>

                <td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>

                <td class="main" width="50%" valign="top"><?php echo TEXT_CHOOSE_SHIPPING_METHOD; ?></td>

                <td class="main" width="50%" valign="top" align="right"><?php echo '<b>' . TITLE_PLEASE_SELECT . '</b><br>' . tep_image(DIR_WS_IMAGES . 'arrow_east_south.gif'); ?></td>

                <td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>

              </tr>

<?php

    } elseif ($free_shipping == false) {

?>

              <tr>

                <td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>

                <td class="main" width="100%" colspan="2"><?php echo TEXT_ENTER_SHIPPING_INFORMATION; ?></td>

                <td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>

              </tr>

<?php

    }

 

    if ($free_shipping == true) {

?>

              <tr>

                <td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>

                <td colspan="2" width="100%"><table border="0" width="100%" cellspacing="0" cellpadding="2">

                  <tr>

                    <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>

                    <td class="main" colspan="3"><b><?php echo FREE_SHIPPING_TITLE; ?></b> <?php echo $quotes[$i]['icon']; ?></td>

                    <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>

                  </tr>

                  <tr id="defaultSelected" class="moduleRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="selectRowEffect(this, 0)">

                    <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>

                    <td class="main" width="100%"><?php echo sprintf(FREE_SHIPPING_DESCRIPTION, $currencies->format(MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER)) . tep_draw_hidden_field('shipping', 'free_free'); ?></td>

                    <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>

                  </tr>

                </table></td>

                <td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>

              </tr>

<?php

    } else {

      $radio_buttons = 0;

      for ($i=0, $n=sizeof($quotes); $i<$n; $i++) {

?>

              <tr>

                <td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>

                <td colspan="2"><table border="0" width="100%" cellspacing="0" cellpadding="2">

                  <tr>

                    <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>

                    <td class="main" colspan="3"><b><?php echo $quotes[$i]['module']; ?></b> <?php if (isset($quotes[$i]['icon']) && tep_not_null($quotes[$i]['icon'])) { echo $quotes[$i]['icon']; } ?></td>

                    <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>

                  </tr>

<?php

        if (isset($quotes[$i]['error'])) {

?>

                  <tr>

                    <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>

                    <td class="main" colspan="3"><?php echo $quotes[$i]['error']; ?></td>

                    <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>

                  </tr>

<?php

        } else {

          for ($j=0, $n2=sizeof($quotes[$i]['methods']); $j<$n2; $j++) {

// set the radio button to be checked if it is the method chosen

            $checked = (($quotes[$i]['id'] . '_' . $quotes[$i]['methods'][$j]['id'] == $shipping['id']) ? true : false);

 

            if ( ($checked == true) || ($n == 1 && $n2 == 1) ) {

              echo '                  <tr id="defaultSelected" class="moduleRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="selectRowEffect(this, ' . $radio_buttons . ')">' . "\n";

            } else {

              echo '                  <tr class="moduleRow" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="selectRowEffect(this, ' . $radio_buttons . ')">' . "\n";

            }

?>

                    <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>

                    <td class="main" width="75%"><?php echo $quotes[$i]['methods'][$j]['title']; ?></td>

<?php

            if ( ($n > 1) || ($n2 > 1) ) {

?>

                    <td class="main"><?php echo $currencies->format(tep_add_tax($quotes[$i]['methods'][$j]['cost'], (isset($quotes[$i]['tax']) ? $quotes[$i]['tax'] : 0))); ?></td>

                    <td class="main" align="right"><?php echo tep_draw_radio_field('shipping', $quotes[$i]['id'] . '_' . $quotes[$i]['methods'][$j]['id'], $checked); ?></td>

<?php

            } else {

?>

                    <td class="main" align="right" colspan="2"><?php echo $currencies->format(tep_add_tax($quotes[$i]['methods'][$j]['cost'], $quotes[$i]['tax'])) . tep_draw_hidden_field('shipping', $quotes[$i]['id'] . '_' . $quotes[$i]['methods'][$j]['id']); ?></td>

<?php

            }

?>

                    <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>

                  </tr>

<?php

            $radio_buttons++;

          }

        }

?>

                </table></td>

                <td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>

              </tr>

<?php

      }

    }

?>

            </table></td>

          </tr>

        </table></td>

      </tr>

      <tr>

        <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>

      </tr>

<?php

  }

?>

      <tr>

        <td><table border="0" width="100%" cellspacing="0" cellpadding="2">

          <tr>

            <td class="main"><b><?php echo TABLE_HEADING_COMMENTS; ?></b></td>

          </tr>

        </table></td>

      </tr>

      <tr>

        <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">

          <tr class="infoBoxContents">

            <td><table border="0" width="100%" cellspacing="0" cellpadding="2">

              <tr>

                <td><?php echo tep_draw_textarea_field('comments', 'soft', '60', '5'); ?></td>

              </tr>

            </table></td>

          </tr>

        </table></td>

      </tr>

      <tr>

        <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>

      </tr>

      <tr>

        <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">

          <tr class="infoBoxContents">

            <td><table border="0" width="100%" cellspacing="0" cellpadding="2">

              <tr>

                <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>

                <td class="main"><?php echo '<b>' . TITLE_CONTINUE_CHECKOUT_PROCEDURE . '</b><br>' . TEXT_CONTINUE_CHECKOUT_PROCEDURE; ?></td>

                <td class="main" align="right"><?php echo tep_image_submit('button_continue.gif', IMAGE_BUTTON_CONTINUE); ?></td>

                <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>

              </tr>

            </table></td>

          </tr>

        </table></td>

      </tr>

      <tr>

        <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>

      </tr>

      <tr>

        <td><table border="0" width="100%" cellspacing="0" cellpadding="0">

          <tr>

            <td width="25%"><table border="0" width="100%" cellspacing="0" cellpadding="0">

              <tr>

                <td width="50%" align="right"><?php echo tep_image(DIR_WS_IMAGES . 'checkout_bullet.gif'); ?></td>

                <td width="50%"><?php echo tep_draw_separator('pixel_silver.gif', '100%', '1'); ?></td>

              </tr>

            </table></td>

            <td width="25%"><?php echo tep_draw_separator('pixel_silver.gif', '100%', '1'); ?></td>

            <td width="25%"><?php echo tep_draw_separator('pixel_silver.gif', '100%', '1'); ?></td>

            <td width="25%"><table border="0" width="100%" cellspacing="0" cellpadding="0">

              <tr>

                <td width="50%"><?php echo tep_draw_separator('pixel_silver.gif', '100%', '1'); ?></td>

                <td width="50%"><?php echo tep_draw_separator('pixel_silver.gif', '1', '5'); ?></td>

              </tr>

            </table></td>

          </tr>

          <tr>

            <td align="center" width="25%" class="checkoutBarCurrent"><?php echo CHECKOUT_BAR_DELIVERY; ?></td>

            <td align="center" width="25%" class="checkoutBarTo"><?php echo CHECKOUT_BAR_PAYMENT; ?></td>

            <td align="center" width="25%" class="checkoutBarTo"><?php echo CHECKOUT_BAR_CONFIRMATION; ?></td>

            <td align="center" width="25%" class="checkoutBarTo"><?php echo CHECKOUT_BAR_FINISHED; ?></td>

          </tr>

        </table></td>

      </tr>

    </table></form></td>

<!-- body_text_eof //-->

    <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">

<!-- right_navigation //-->

<?php require(DIR_WS_INCLUDES . 'column_right.php'); ?>

<!-- right_navigation_eof //-->

    </table></td>

  </tr>

</table>

<!-- body_eof //-->

 

<!-- footer //-->

<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>

<!-- footer_eof //-->

<br>

</body>

</html>

<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>

 

/includes/classes/shipping.php

 

<?php

/*

  $Id: shipping.php,v 1.23 2003/06/29 11:22:05 hpdl Exp $

 

  osCommerce, Open Source E-Commerce Solutions

  http://www.oscommerce.com

 

  Copyright © 2003 osCommerce

 

  Released under the GNU General Public License

*/

 

  class shipping {

    var $modules;

 

// class constructor

    function shipping($module = '') {

      global $language, $PHP_SELF;

 

      if (defined('MODULE_SHIPPING_INSTALLED') && tep_not_null(MODULE_SHIPPING_INSTALLED)) {

        $this->modules = explode(';', MODULE_SHIPPING_INSTALLED);

 

        $include_modules = array();

 

        if ( (tep_not_null($module)) && (in_array(substr($module['id'], 0, strpos($module['id'], '_')) . '.' . substr($PHP_SELF, (strrpos($PHP_SELF, '.')+1)), $this->modules)) ) {

          $include_modules[] = array('class' => substr($module['id'], 0, strpos($module['id'], '_')), 'file' => substr($module['id'], 0, strpos($module['id'], '_')) . '.' . substr($PHP_SELF, (strrpos($PHP_SELF, '.')+1)));

        } else {

          reset($this->modules);

          while (list(, $value) = each($this->modules)) {

            $class = substr($value, 0, strrpos($value, '.'));

            $include_modules[] = array('class' => $class, 'file' => $value);

          }

        }

 

        for ($i=0, $n=sizeof($include_modules); $i<$n; $i++) {

          include(DIR_WS_LANGUAGES . $language . '/modules/shipping/' . $include_modules[$i]['file']);

          include(DIR_WS_MODULES . 'shipping/' . $include_modules[$i]['file']);

 

          $GLOBALS[$include_modules[$i]['class']] = new $include_modules[$i]['class'];

        }

      }

    }

 

    function quote($method = '', $module = '') {

      global $total_weight, $shipping_weight, $shipping_quoted, $shipping_num_boxes;

 

      $quotes_array = array();

 

      if (is_array($this->modules)) {

        $shipping_quoted = '';

        $shipping_num_boxes = 1;

        $shipping_weight = $total_weight;

 

        if (SHIPPING_BOX_WEIGHT >= $shipping_weight*SHIPPING_BOX_PADDING/100) {

          $shipping_weight = $shipping_weight+SHIPPING_BOX_WEIGHT;

        } else {

          $shipping_weight = $shipping_weight + ($shipping_weight*SHIPPING_BOX_PADDING/100);

        }

 

        if ($shipping_weight > SHIPPING_MAX_WEIGHT) { // Split into many boxes

          $shipping_num_boxes = ceil($shipping_weight/SHIPPING_MAX_WEIGHT);

          $shipping_weight = $shipping_weight/$shipping_num_boxes;

        }

 

        $include_quotes = array();

 

        reset($this->modules);

        while (list(, $value) = each($this->modules)) {

          $class = substr($value, 0, strrpos($value, '.'));

          if (tep_not_null($module)) {

            if ( ($module == $class) && ($GLOBALS[$class]->enabled) ) {

              $include_quotes[] = $class;

            }

          } elseif ($GLOBALS[$class]->enabled) {

            $include_quotes[] = $class;

          }

        }

 

        $size = sizeof($include_quotes);

        for ($i=0; $i<$size; $i++) {

          $quotes = $GLOBALS[$include_quotes[$i]]->quote($method);

          if (is_array($quotes)) $quotes_array[] = $quotes;

        }

      }

 

      return $quotes_array;

    }

 

    function cheapest() {

      if (is_array($this->modules)) {

        $rates = array();

 

        reset($this->modules);

        while (list(, $value) = each($this->modules)) {

          $class = substr($value, 0, strrpos($value, '.'));

          if ($GLOBALS[$class]->enabled) {

            $quotes = $GLOBALS[$class]->quotes;

            for ($i=0, $n=sizeof($quotes['methods']); $i<$n; $i++) {

              if (isset($quotes['methods'][$i]['cost']) && tep_not_null($quotes['methods'][$i]['cost'])) {

                $rates[] = array('id' => $quotes['id'] . '_' . $quotes['methods'][$i]['id'],

                                'title' => $quotes['module'] . ' (' . $quotes['methods'][$i]['title'] . ')',

                                'cost' => $quotes['methods'][$i]['cost']);

              }

            }

          }

        }

        $cheapest = false;

        for ($i=0, $n=sizeof($rates); $i<$n; $i++) {

          if (is_array($cheapest)) {

            if ($rates[$i]['cost'] < $cheapest['cost']) {

              $cheapest = $rates[$i];

            }

          } else {

            $cheapest = $rates[$i];

          }

        }

        return $cheapest;

      }

    }

  }

?>

 

Thanks in advance

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...