Application->recallObject('di_EventHandler'); $di_handler->OnProcessSelected($event); } /** * Allows to set discount on entire order * * @param kEvent $event * @todo get parent item id through $object->getLinkedInfo()['ParentId'] * @access public */ function OnEntireOrder($event) { $object = $event->getObject(); $sql = 'DELETE FROM '.$object->TableName.' WHERE AffiliatePlanId='.$this->Application->GetVar('ap_id'); $this->Conn->Query($sql); $object->SetDBField('AffiliatePlanId', $this->Application->GetVar('ap_id')); $object->SetDBField('ItemResourceId', -1); $object->SetDBField('ItemType', 0); if ( $object->Create() ) { $this->customProcessing($event, 'after'); $event->status = kEvent::erSUCCESS; $event->SetRedirectParam('opener', 's'); //stay! } else { $event->status = kEvent::erFAIL; $this->Application->SetVar($event->getPrefixSpecial().'_SaveEvent','OnCreate'); $object->setID(0); } } /** * Deletes discount items where hooked item (product) is used * * @param kEvent $event */ function OnDeleteDiscountedItem($event) { $main_object = $event->MasterEvent->getObject(); /* @var $main_object kDBItem */ $sql = 'DELETE FROM ' . $event->getUnitConfig()->getTableName() . ' WHERE ItemResourceId = ' . $main_object->GetDBField('ResourceId'); $this->Conn->Query($sql); } /** * Makes ItemName calculated field from primary language * * @param kEvent $event * @return void * @access protected */ protected function OnAfterConfigRead(kEvent $event) { parent::OnAfterConfigRead($event); $language_id = $this->Application->GetVar('m_lang'); $primary_language_id = $this->Application->GetDefaultLanguageId(); $event->getUnitConfig()->addCalculatedFieldsBySpecial('', Array ( 'ItemName' => 'COALESCE(p.l' . $language_id . '_Name, p.l' . $primary_language_id . '_Name)', )); } }