Back in 2005 there were very few, if any off the shelf invoicing systems for travel. The only option do it yourself! So we needed to design an invoicing system to account for multiple products per invoice. Showing itinerary information, flights, accomodation, transfer, car hire. Showing all traveller names. Recognise different VAT reporting requirements. Manage bonding reporting requirements for CAA ATOL. Invoice for hotel commissions.
At the time we wer not aware of php frameworks, so we designed our own framework sticking as close as possible to OOP concepts.
Solid system still using it today. However time to move on.....
To do: Rewrite