function history($request = null)
 {
     $id = intval($request->param("ID"));
     $buyableStockCalculatedQuantity = BuyableStockCalculatedQuantity::get()->byID($id);
     if ($buyableStockCalculatedQuantity) {
         $buyableStockCalculatedQuantity->ManualUpdates = BuyableStockManualUpdate::get()->filter(array('ParentID' => $buyableStockCalculatedQuantity->ID));
         $buyableStockCalculatedQuantity->OrderEntries = BuyableStockOrderEntry::get()->filter(array('ParentID' => $buyableStockCalculatedQuantity->ID));
         $graphArray = array();
         if ($buyableStockCalculatedQuantity->ManualUpdates) {
             foreach ($buyableStockCalculatedQuantity->ManualUpdates as $obj) {
             }
         }
         if ($buyableStockCalculatedQuantity->OrderEntries) {
             foreach ($buyableStockCalculatedQuantity->OrderEntries as $obj) {
             }
         }
         return $this->customise($buyableStockCalculatedQuantity)->renderWith("AjaxStockControlPageHistory");
     } else {
         return " could not find historical data";
     }
 }
 protected function calculatedBaseQuantities($buyables = null)
 {
     if ($buyables) {
         foreach ($buyables as $buyable) {
             $buyableStockCalculatedQuantity = BuyableStockCalculatedQuantity::get_by_buyable($buyable);
             if ($buyableStockCalculatedQuantity) {
                 $buyableStockCalculatedQuantity->calculatedBaseQuantity();
             }
         }
     }
 }
 /**
  * stanard SS metehod
  */
 function onAfterWrite()
 {
     BuyableStockCalculatedQuantity::get_by_buyable($this->owner);
     if (isset($_REQUEST["ActualQuantity"])) {
         $actualQuantity = intval($_REQUEST["ActualQuantity"]);
         if ($actualQuantity != $this->owner->getActualQuantity() && ($actualQuantity === 0 || $actualQuantity)) {
             $this->owner->setActualQuantity($actualQuantity);
         }
     }
 }