Best way to convey that one search criterion depends on another (or doesn’t)

I am creating a very basic screen in a desktop app that shows a customer service representative a customer's order history. As of now, there are 4 criteria by which you can search:

  1. By order No.
  2. By product No/product description
  3. By date
  4. By Order type (e.g., cancelled orders, dispatched orders, fully paid orders, etc)

A user can search by any number of these criteria at once.

So far, simple, but there are two things that are causing me a lot of trouble.

  1. If you choose to search by Order type, then, you must also choose a date range, as the system is unable to return all orders of a type, only orders of that type within a date range.

  2. If you choose to search by order no, then all of the other search fields should be ignored (if they have anything in them). I.e., the order no search field is independent of the others.

How can I convey this to the user?

So far, I have come up with this:

----------------------------Search----------------------------------
Order No[       ][Search!]       Product No [          ]
                                 Order type [          ]
                                 Date       [          ]
                                         [Search!]

To solve 2, I placed the order no field far away from the other fields to convey its independence of them. But this looks ugly, and I don't even know if it conveys independence.

To solve 1, I auto-fill the date field if the user selects an option from the order type field. But I have doubts about this, as the user may not understand why the date field has suddenly been populated, and may get frustrated when they try to clear it but can't.

I've been pulling my hair out for 2 days over this. I'm just a programmer who has been given the responsibility of designing and implementing every aspect of this new large application. I have no UX or UI experience or knowledge.