There are few contrary statements here.
Your statement "Basically JobB_P should wait until JobA_C gets complete. JobB_P should start only if JobA_C has not started." is full of contrast.
If the requirement is that only 1 out of these 4 jobs should be running at a time, then the Control Resource can be used in all these 4 jobs and your problem is solved.
If the requirement is that JobA_C should be complete before JobB_P start, then give an IN-COND from JobA_C to JobB_P.
Sorry for not being clear.
Only one of the jobs JobA_P and JobB_P should be running at a time. So we can implement Control Resources for this. Another requirement is that JobA_P
should not start if Jobb_C is already running or JobB_P should not start if JobA_C is already running.
Depenedency is like as mentioned below-
Just like you created resource to share among JobA_P and JobB_P, why don't share a resource between the other set. Like below -
"Resource1" to be shared among JobA_P and JobB_C
"Resource2" to be shared among JobB_P and JobA_C
I will put it like this-
JobA_P should not be starting if JobB_C is running. If we user control resources then any of those can start in that time so if JobA_P starts, it would check that JobB_C should not be running.