Would you prepay a bonus for an order relating to a project that would take say 2 years to complete?
It all depends
On what the ? employee's contract says. If they get the bonus for getting the order and have no control over its execution then yes. If they get the bonus for their input to complete the order then no.
The employee has earnt the bonus now. They might leave next week.
I realise now that I completely misunderstood the question! I took it to mean would you pay the bonus before the contract was complete, NOT would you, having paid it, prepay it in the accounts.
You were right the first time - pay the bonus when the order is received and then prepay the Dr in the accounts over the lifetime of the project.
Why would you want to?
Usually a bonus is an incentive - if this is the case why prepay the incentive? If it's not an incentive then it's usually time related, again why prepay?
Great for the proposed recipient though.