Dependent attributes are inherently difficult, as there are countless mutually exclusive ways they could be dependent, so you are not likely to find an open source solution to your specific case. You will have to pay somebody to do it, in one way or another.