I don't think you need a scheduled job for this. You can just handle the points whenever users complete the order.
Simply take the completion date (so if you do it during ordering, that's the current date), and compare it to the date the order was started.
EDIT Just noticed the daily alerts in the title. You can run a background job using cron or something like it. Cron just triggers your application, which does all the logic, i.e. it queries for outstanding orders from the last week. In that case, scheduled jobs are the right solution.