/** * Constructor * * @param SteerShopOrder Order object */ public function __construct(rtShopCartManager $cm) { if ($cm->getOrder()->isNew()) { throw new Exception('rtShopOrder object can\'t be new'); } $this->_cart_manager = $cm; }
$t->diag('***************************************'); $t->diag('*** Voucher #4 details'); $t->diag('***************************************'); $t->diag('Code: ' . $voucher4->getCode()); $t->diag(sprintf('Stackable: %s', $voucher4->getStackable() ? 'Yes' : 'No')); $t->diag('Reduction type: ' . $voucher4->getReductionType()); $t->diag('Reduction value: ' . $voucher4->getReductionValue()); $t->diag('Count: ' . $voucher4->getCount()); $t->diag('Total_from: ' . $voucher4->getTotalFrom()); $t->diag('***************************************'); $t->comment(''); $t->diag('***************************************'); $t->diag('*** Order cart'); $t->diag('***************************************'); // Add addresses to order $tools->addAddressForOrder($cm->getOrder()->getId()); $tools->addAddressForOrder($cm->getOrder()->getId(), 'shipping'); // Loop through stocks in order $t->comment(''); $t->comment('*****************************************************************************'); $stock_info = $cm->getOrder()->getStockInfoArray(); $i = 0; $compare_charge = array($stock1->getPriceRetail(), $stock2->getPricePromotion()); foreach ($stock_info as $stock) { $rt_shop_stock = Doctrine::getTable('rtShopStock')->find($stock['id']); $charge = $stock['price_promotion'] > 0 ? $stock['price_promotion'] : $stock['price_retail']; $message = $stock['rtShopProduct']['title'] . " || PR: " . format_currency($stock['price_retail'], sfConfig::get('app_rt_currency', 'USD')) . " || PP: " . format_currency($rt_shop_stock->getPricePromotion(), sfConfig::get('app_rt_currency', 'USD')) . " || QTY: " . $stock['rtShopOrderToStock'][0]['quantity'] . " || Charge: " . format_currency($charge, sfConfig::get('app_rt_currency', 'USD')); $t->is($charge, $compare_charge[$i], $message); $i++; } $t->comment('*****************************************************************************');
sfConfig::set('app_rt_shop_tax_rate', 10); sfConfig::set('app_rt_shop_tax_mode', 'inclusive'); sfConfig::set('app_rt_shop_shipping_charges', array('default' => 20, 'AU' => 10)); $shipping_charges = sfConfig::get('app_rt_shop_shipping_charges'); $t->is($shipping_charges['default'], 20, 'sfConfig::app_rt_shop_shipping_charges returns correct default shipping charge'); $t->is($shipping_charges['AU'], 10, 'sfConfig::app_rt_shop_shipping_charges returns correct AU shipping charge'); // Clean order and reset cart manager unset($cm); rtShopOrderTestTools::cleanOrder(); $cm = new rtShopCartManager(); // Add stocks to cart manager $cm->addToCart($stock1, 1); $cm->addToCart($stock2, 1); // Add addresses to order $tools = new rtShopOrderTestTools(); $tools->addAddressForOrder($cm->getOrder()->getId()); $tools->addAddressForOrder($cm->getOrder()->getId(), 'shipping'); // Shipping charge $t->is($cm->getShippingCharge(), 10, '::getShippingCharge() returns the correct value'); // Totals $t->is($cm->getItemsCharge(), 300, '::getItemsCharge() returns the correct value'); $t->is($cm->getSubTotal(), 300, '::getSubTotal() returns the correct value'); $t->is($cm->getPreTotalCharge(), 310, '::getPreTotalCharge() returns the correct value'); $t->is($cm->getTotalCharge(), 310, '::getTotalCharge() returns the correct value'); $t->diag('4.4.3 Tax mode: Exclusive (default shipping) ********************************'); sfConfig::set('app_rt_shop_tax_rate', 10); sfConfig::set('app_rt_shop_tax_mode', 'exclusive'); sfConfig::set('app_rt_shop_shipping_charges', array('default' => 20, 'NZ' => 10)); // Clean order and reset cart manager unset($cm); rtShopOrderTestTools::cleanOrder();