<?php defined('SYSPATH') or die('No direct access allowed.');

/**
 * This class provides PAYPAL CART support
 *
 * @package    Checkout
 * @category   Plugins
 * @author     Deon George
 * @copyright  (c) 2009-2013 Open Source Billing
 * @license    http://dev.osbill.net/license.html
 */
class Checkout_Plugin_Paypal_Cart extends Checkout_Plugin_Paypal {
	private $test_mode = FALSE;

	/**
	 * Set payment via Paypal
	 */
	public function before(Cart $co) {
		$output = '';

		$output .= View::factory('checkout/plugin/paypal/before')
			->set('checkout',$this->co)
			->set('cart',$co);

		$output .= Form::open(sprintf('https://%s/cgi-bin/webscr',$this->test_mode ? $this->url_test : $this->url_prod),array('method'=>'POST'));
		$output .= Form::hidden('cmd','_cart');
		$output .= Form::hidden('business',$this->test_mode ? 'deon_1260578114_biz@graytech.net.au' : 'deon@graytech.net.au');
		$output .= Form::hidden('bn','Graytech_BuyNow_WPS_AU');
		$output .= Form::hidden('cancel_return',URL::site('checkout/cancel/'.$this->co->id,TRUE));
		$output .= Form::hidden('custom',$co->id());
		// @todo This should be dynamic
		$output .= Form::hidden('currency_code','AUD');
		$output .= Form::hidden('notify_url',URL::site('checkout/notify/'.$this->co->id,TRUE));
		$output .= Form::hidden('return',URL::site('checkout/after/'.$this->co->id,TRUE));
		$output .= Form::hidden('upload','1');

		$c = 1;
		foreach ($co->contents() as $cio) {
			$output .= Form::hidden('item_number_'.$c,$cio->id);
			$output .= Form::hidden('item_name_'.$c,$cio->item()->i);
			$output .= Form::hidden('amount_'.$c,$cio->item()->t);
			$c++;
		}

		$output .= Form::hidden('item_number_'.$c,'0:PAYFEE');
		$output .= Form::hidden('item_name_'.$c,'Paypal Fee');
		$output .= Form::hidden('amount_'.$c,$this->co->fee($co->total()));

		$output .= Form::submit('submit','Pay Now');
		$output .= Form::close();

		return $output;
	}
}
?>