/**
  * record points in order object
  * or in case this is not selected, it will send a message to the shop admin only
  * The latter is useful in case the payment does not go through (and no receipt is received).
  * @param DataObject $order Order
  * @return Boolean
  **/
 public function doStep($order)
 {
     if (!DataObject::get_one("OrderStep_RecordPoints_Log", "\"OrderID\" = " . $order->ID)) {
         if ($order->PointsTotal == 0) {
             $order->PointsTotal = $order->CalculatePointsTotal();
         }
         if ($order->RewardsTotal == 0) {
             $order->RewardsTotal = $order->CalculateRewardsTotal();
         }
         $order->write();
         $log = new OrderStep_RecordPoints_Log();
         $log->PointsTotal = $order->PointsTotal;
         $log->RewardsTotal = $order->RewardsTotal;
         $log->OrderID = $order->ID;
         $log->MemberID = $order->MemberID;
         $log->write();
     }
     return true;
 }