$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('*****************************************************************************'); // ItemsCharge $t->is($cm->getItemsCharge(), 140, 'ItemsCharge: ' . format_currency($cm->getItemsCharge(), sfConfig::get('app_rt_currency', 'USD'))); // SubTotal $t->is($cm->getSubTotal(), 140, 'SubTotal: ' . format_currency($cm->getSubTotal(), sfConfig::get('app_rt_currency', 'USD'))); $t->comment('-----------------------------------------------------------------------------'); // Tax $t->is($cm->getTaxCharge(), 14.0, 'Tax: ' . format_currency($cm->getTaxCharge(), sfConfig::get('app_rt_currency', 'USD'))); // Shipping $t->is($cm->getShippingCharge(), 10, 'Shipping: ' . format_currency($cm->getShippingCharge(), sfConfig::get('app_rt_currency', 'USD'))); $t->comment('-----------------------------------------------------------------------------'); // Pre total $t->is($cm->getPreTotalCharge(), 164.0, 'PreTotal: ' . format_currency($cm->getPreTotalCharge(), sfConfig::get('app_rt_currency', 'USD'))); $t->comment('============================================================================='); // Total $t->is($cm->getTotalCharge(), 164.0, 'Total: ' . format_currency($cm->getTotalCharge(), sfConfig::get('app_rt_currency', 'USD'))); $t->comment('============================================================================='); $t->comment(''); $t->diag('***************************************'); $t->diag('*** Voucher check'); $t->diag('***************************************'); $t->comment(''); $t->comment('--- BasertShopOrderActions::executeCheckVoucher() // dollarOff ----------------------------------------');
rtShopOrderTestTools::cleanOrder(); // Add promotion price to stock 2 $stock2->setPricePromotion(NULL); $stock2->save(); $cm = new rtShopCartManager(); $t->is($cm->getTaxMode(), sfConfig::get('app_rt_shop_tax_mode'), '::getTaxMode() returns the same tax mode as sfConfig::app_rt_shop_tax_mode'); $t->is($cm->getTaxRate(), sfConfig::get('app_rt_shop_tax_rate'), '::getTaxRate() returns the same tax rate as sfConfig::app_rt_shop_tax_rate'); // Add stocks to cart manager $cm->addToCart($stock1, 1); $cm->addToCart($stock2, 1); // Check items in cart $t->is($cm->getItemsInCart(), 2, '::getItemsInCart() returns the correct number of items in cart'); $t->is($cm->getItemsQuantityInCart(), 2, '::getItemsQuantityInCart() returns the correct items quantity in cart'); $t->isa_ok($cm->getOrder(), 'rtShopOrder', '->class() rtShopOrder was created successfully'); //In inclusive mode, exclusive mode should return 0 $t->is($cm->getTaxCharge(), 0, '::getTaxCharge() returns the correct value'); // Taxes $tax_component = $cm->getTotalCharge() * 10 / ($cm->getTaxRate() + 100); $t->is($cm->getTaxComponent(), $tax_component, '::getTaxComponent() 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(), 300, '::getPreTotalCharge() returns the correct value'); $t->is($cm->getTotalCharge(), 300, '::getTotalCharge() returns the correct value'); $t->diag('-----------------------------------------------------------------------------'); $t->diag('4.4 Two products + taxes + domestic/international shipping'); $t->diag('-----------------------------------------------------------------------------'); $t->diag('4.4.1 Tax mode: Exclusive (international 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, 'AU' => 10));