コード例 #1
0
 /**
  * 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;
 }
コード例 #2
0
$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('*****************************************************************************');
コード例 #3
0
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();