Special == 'active') { $object =& $event->getObject(); $object->addFilter('active', '%1$s.Enabled = 1'); } } /** * Enter description here... * * @param kEvent $event */ function OnSetPrimary(&$event) { $object =& $event->getObject(); $object->SetDBField('IsPrimary', 1); $object->Update(); } /** * Enter description here... * * @param kEvent $event */ function OnBeforeItemUpdate(&$event) { $object =& $event->getObject(); $live_table = $this->Application->getUnitOption($event->Prefix, 'TableName'); $plans_count = $this->Conn->GetOne('SELECT COUNT(*) FROM '.$live_table); if(!$plans_count) $object->SetDBField('IsPrimary', 1); if( $object->GetDBField('IsPrimary') && $object->Validate() ) { $sql = 'UPDATE '.$this->Application->getUnitOption($event->Prefix, 'TableName').' SET IsPrimary = 0'; $this->Conn->Query($sql); $status_field = array_shift( $this->Application->getUnitOption($event->Prefix,'StatusField') ); $object->SetDBField($status_field, 1); } } function OnBeforeItemCreate(&$event) { $this->OnBeforeItemUpdate($event); } function OnMassDelete($event) { if ($this->Application->CheckPermission('SYSTEM_ACCESS.READONLY', 1)) { $event->status = erFAIL; return; } $ids = $this->StoreSelectedIDs($event); $event->setEventParam('ids', $ids ); $ids = $event->getEventParam('ids'); $temp =& $this->Application->recallObject($event->getPrefixSpecial().'_TempHandler', 'kTempTablesHandler'); $sql = 'SELECT AffiliatePlanId FROM '.$this->Application->getUnitOption('ap', 'TableName').' WHERE IsPrimary = 1'; $primary_id = $this->Conn->GetOne($sql); $ids = array_diff($ids, Array($primary_id)); if($ids) { $temp->DeleteItems($event->Prefix, $event->Special, $ids); } $this->clearSelectedIDs($event); } }