Observer.php 3.77 KB
<?php
/**
 * @package  anc_playlist 
 * @category magento
 * @mailto	code [at] netz.coop
 * @author	netz.coop eG* 
 * @copyright (c) 2014, netz.coop eG
 * 
 *   This program is free software: you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *   This program is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 * 
 */ 

class Anc_Playlist_Model_Observer {
	/**
	 * 
	 * observer: anclib_quoteitem_cloneproductitem
	 * 
	 * @param array $param_values
	 */
	public function makeNewNcplaylistItemAfterClone(array $param_values) {
		$CloneItemData = $param_values->getCloneItemData();
		
		if(Mage::helper('anc_playlist/ncconstant')->isSkuAncPlaylist($CloneItemData['sku'])) {
			
			$ncplaylist_id = Mage::helper('anc_lib/quoteitem')->getItemProductOptionByOptionSku($CloneItemData['item_id'], Mage::helper('anc_playlist/ncconstant')->AncPlaylistOptionSku);

			if($ncplaylist_id) {
				$ncplaylist = Mage::helper('anc_playlist/ncmodel')->getNcPlaylist($ncplaylist_id);
				if($ncplaylist->getQuoteItemId() !== $CloneItemData['item_id']) {
//					D::compareFe($ncplaylist, $param_values,'makeNewNcplaylistItemAfterClone');
					$ncplaylist->setQuoteItemId($CloneItemData['item_id']);
//					$ncplaylist->setEntityId();
					$ncplaylist->setId();
					Mage::helper('anc_playlist/ncmodel')->setNewUrlauth($ncplaylist);
					$ncplaylist_new = Mage::helper('anc_playlist/ncmodel')->saveNcPlaylist($ncplaylist);
//					D::compareFe($ncplaylist, $ncplaylist_new,'$ncplaylist, $ncplaylist_new');
					Mage::helper('anc_lib/quoteitem')->setItemProductOptionByOptionSku($CloneItemData['item_id'], Mage::helper('anc_playlist/ncconstant')->AncPlaylistOptionSku, $ncplaylist->getId());
					$quoteitem = Mage::helper('anc_lib/quoteitem')->getItem($CloneItemData['item_id']);
//					D::fe($quoteitem->getData(), '$quoteitem');
				}			
			}			
		}
	}
	
	
	public function savePlaylistOrderLink(array $param_values) {
		$order = $param_values->getOrder();
		
		$ListQuoteItemsByQuoteId = Mage::helper('anc_lib/quoteitem')->getListQuoteItemsByQuoteId($order->getQuoteId());
		foreach($ListQuoteItemsByQuoteId as $ListQuoteItem) {
			if(Mage::helper('anc_playlist/ncconstant')->isSkuAncPlaylist($ListQuoteItem['sku']) && $ListQuoteItem['parent_item_id']) {
				
				$ncplaylist_id = Mage::helper('anc_lib/quoteitem')->getItemProductOptionByOptionSku($ListQuoteItem['item_id'], Mage::helper('anc_playlist/ncconstant')->AncPlaylistOptionSku);

				if($ncplaylist_id) {
					$NcPlaylist = Mage::helper('anc_playlist/ncmodel')->getNcPlaylist($ncplaylist_id);		
					if(!$NcPlaylist->getOrderId()) {
						$NcPlaylist->setQuoteItemId($ListQuoteItem['item_id']);
						$NcPlaylist->setOrderId($order->getId());
						$NcPlaylist->setOrdertime($order->getCreatedAt());
						$customer = Mage::getSingleton('customer/session')->getCustomer();
						if(is_object($customer) && $customer->getId()) {
							$NcPlaylist->setData('customer_id',$customer->getId());
							$NcPlaylist->setData('customer_name',$customer->getFirstname().' '.$customer->getLastname());													
						} else {
							$NcPlaylist->setData('customer_id',$order->getCustomerId());
							$NcPlaylist->setData('customer_name',$order->getCustomerName());																				
						}

						
						Mage::helper('anc_playlist/ncmodel')->saveNcPlaylist($NcPlaylist);						
					}
				}
			}
		}
	}	
}