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