In short distance case - I think you should reimburse them later, because once u start giving in advance then they will give excuses later on like - i was not having money or so,
but if someone is travelling at distance than company should provide him money in advance as employee is salary dependent, he may not have extra money to spnd on company.
In local case u can reimburse them daily or every saturday, so employee will feel flexible to spend from their pocket,
And if want to track, u should have or acquire knowledge of distance and money like for example-
if ur sending one employee to ________ place, then find out what are the ways to travel, what are the options in travel, which travel will cost less time and money etc and direct him accordingly.
I use to cross check with my office peons regarding this options coz they were the most to travel by local.