/** * update order points for member * both they points they earned and the points they spent * @param DataObject $order Order * @return Boolean **/ public function doStep($order) { if (!DataObject::get_one("OrderStep_UpdateMemberPoints_Log", "\"OrderID\" = " . $order->ID)) { $member = $order->Member(); $before = $member->PointsBalance; $member->PointsBalance += $order->PointsTotal; $member->PointsBalance -= $order->RewardsTotal; $member->write(); $log = new OrderStep_UpdateMemberPoints_Log(); $log->Before = $before; $log->PointsTotal = $order->PointsTotal; $log->RewardsTotal = $order->RewardsTotal; $log->After = $member->PointsBalance; $log->OrderID = $order->ID; $log->MemberID = $order->MemberID; $log->write(); } return TRUE; }