Index: branches/5.2.x/units/product_option_combinations/product_option_combinations_event_handler.php =================================================================== diff -u -N -r15047 -r15061 --- branches/5.2.x/units/product_option_combinations/product_option_combinations_event_handler.php (.../product_option_combinations_event_handler.php) (revision 15047) +++ branches/5.2.x/units/product_option_combinations/product_option_combinations_event_handler.php (.../product_option_combinations_event_handler.php) (revision 15061) @@ -1,6 +1,6 @@ Name) { @@ -43,10 +43,13 @@ case 'OnMassDelete': // delete only option combinations that has no associated inventory $object =& $event->getObject(); + /* @var $object kDBItem */ + $ids = $event->getEventParam('ids'); - $sql = 'SELECT '.$object->IDField.' - FROM '.$object->TableName.' - WHERE ('.$object->IDField.' IN ('.implode(',', $ids).')) AND + + $sql = 'SELECT ' . $object->IDField . ' + FROM ' . $object->TableName . ' + WHERE (' . $object->IDField . ' IN (' . implode(',', $ids) . ')) AND (QtyInStock = 0) AND (QtyReserved = 0) AND (QtyBackOrdered = 0) AND (QtyOnOrder = 0)'; $event->setEventParam('ids', $this->Conn->GetCol($sql)); break; @@ -155,32 +158,37 @@ } /** - * Enter description here... + * Creates new kDBItem * * @param kEvent $event + * @return void + * @access protected */ - function OnCreate(&$event) + protected function OnCreate(kEvent &$event) { - $object =& $event->getObject( Array('skip_autoload' => true) ); + $object =& $event->getObject(Array ('skip_autoload' => true)); + /* @var $object kDBItem */ - $items_info = $this->Application->GetVar( $event->getPrefixSpecial(true) ); - if($items_info) - { - list($id,$field_values) = each($items_info); - $object->SetFieldsFromHash($field_values, $this->getRequestProtectedFields($field_values)); - if (!$object->Validate()) { - $event->status = kEvent::erFAIL; - $event->redirect = false; - $this->Application->SetVar($event->getPrefixSpecial().'_SaveEvent','OnCreate'); - $object->setID($id); - return; - } + $items_info = $this->Application->GetVar($event->getPrefixSpecial(true)); - $this->CreateCombinations($event, $field_values); + if ( !$items_info ) { + return; } - } + list($id, $field_values) = each($items_info); + $object->SetFieldsFromHash($field_values, $this->getRequestProtectedFields($field_values)); + if ( !$object->Validate() ) { + $event->status = kEvent::erFAIL; + $event->redirect = false; + $this->Application->SetVar($event->getPrefixSpecial() . '_SaveEvent', 'OnCreate'); + $object->setID($id); + return; + } + + $this->CreateCombinations($event, $field_values); + } + /** * Updates kDBItem * @@ -317,7 +325,7 @@ * @return void * @access protected */ - protected function OnBeforeClone(&$event) + protected function OnBeforeClone(kEvent &$event) { parent::OnBeforeClone($event); @@ -355,7 +363,7 @@ * @return void * @access protected */ - protected function OnBeforeDeleteFromLive(&$event) + protected function OnBeforeDeleteFromLive(kEvent &$event) { parent::OnBeforeDeleteFromLive($event); @@ -394,9 +402,10 @@ * Create search filters based on search query * * @param kEvent $event + * @return void * @access protected */ - function OnSearch(&$event) + protected function OnSearch(kEvent &$event) { parent::OnSearch($event); @@ -407,9 +416,10 @@ * Clear search keywords * * @param kEvent $event + * @return void * @access protected */ - function OnSearchReset(&$event) + protected function OnSearchReset(kEvent &$event) { parent::OnSearchReset($event);