/**
  * 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();
     }
 }