/** * Sets for other status SetForNegativeStock and SetForPositiveStock to * false when set to $this. * * @return void * * @author Sebastian Diel <*****@*****.**> * @since 03.07.2014 */ protected function onBeforeWrite() { parent::onBeforeWrite(); if ($this->SetForNegativeStock) { $statusList = SilvercartAvailabilityStatus::get()->filter(array('SetForNegativeStock' => 1))->exclude(array('SilvercartAvailabilityStatus.ID' => $this->ID)); if ($statusList) { foreach ($statusList as $status) { $status->SetForNegativeStock = false; $status->write(); } } } if ($this->SetForPositiveStock) { $statusList = SilvercartAvailabilityStatus::get()->filter(array('SetForPositiveStock' => 1))->exclude(array('SilvercartAvailabilityStatus.ID' => $this->ID)); if ($statusList) { foreach ($statusList as $status) { $status->SetForPositiveStock = false; $status->write(); } } } $defaultStatus = self::getDefault(); if (!$defaultStatus) { $defaultStatus = $this; $this->IsDefault = true; } elseif ($this->IsDefault && $defaultStatus->ID != $this->ID) { $defaultStatus->IsDefault = false; $defaultStatus->write(); } }