All pastes #2133040 Raw Edit

Untitled

public php v1 · immutable
#2133040 ·published 2012-03-28 04:39 UTC
rendered paste body
try{	$customer = new inspired_customer();	$customer->setPk(9);	$customer->read();	// product ids to test	$ids = array(15,20,25);	foreach($ids as $id)	{		$object = new inspired_product();		$object->set('productid', $id);		$object->read();		$objects[] = $object;	}	// Setup the decorators	$decorator = new decorator(		array(			new inspired_product_decorator_discount_group($customer),			new inspired_product_decorator_discount_category(),		)	);	$decorator->setObjects($objects);	$decorator->decorate();	foreach($decorator->getObjects() as $product){		echo '<hr>';		echo $product->getPk().' '.$product->prodname.'<br>';		var_dump($product->discounts);	}}catch(Exception $e){   echo $e->getMessage().'<br>';}class inspired_product_decorator_discount_group extends decorator_base implements decorator_interface{	function __construct(inspired_customer $customer)	{		$this->customer = $customer;	}    function &getData()    {    	/*    	 * Lookup the customer group & assicoated discount rules.    	 */    	/*    	 * Note, can perform IN() queries based on these Ids;    	 */    	echo 'Calculating group discounts for productIds: '.implode(', ', $this->getObjectIds()).'<br>';		foreach($this->objects as $o) {			$data[$o->getPk()] = 5 + $o->getPk();		}        return $data;    }    function addData(&$object, &$data)    {        $object->discounts['group'] = $data;    }}interface decorator_interface{		function decorate();	function &getData();		function addData(&$object, &$data);	}