I agree with Tom. I don't understand the context of the test between Dockets and Carrier.
However, assuming it is valid contextually, have you tried swapping....
Dockets.Truck.ID=Carrier.Truck.ID
around to
Carrier.Truck.ID around=Dockets.Truck.ID
I always find it safer to put the object I am looking for to the left of an equality test
Love the test Dockets.Docket_status IN..... How does it do that without brackets around 'Invoiced', 'Exception','Active'
Extraordinary... Learn something every day.