Afraid I'm a bit lost as to exactly what needs to be recorded and what you want to get out of it, but my first stab to start a discussion would be to log events in something like this:
event_log
-----------------
event_id (int, pk, auto-increment)
event_timestatmp (timestamp, default NOW())
contractor_id (int, foreign key to contractor table)
event_type (either ENUM or foreign key to event_type table)
If you want the last delivery for a given contractor:
SELECT *, WEEKDAY(event_timestamp) AS week_day_num -- 0 = Monday
FROM event_log
WHERE contractor_id=:contractor_id AND event_type='DELIVERY'
ORDER BY event_timestamp DESC LIMIT 1