update achievement gain date to submission date(not grading date)

1. It makes the leaderboard more fair.
2. Tested properly, it works.
Metrics/PerceivedComplexity: Perceived complexity for update_date is too high. [8/7]