これをGUIでやろうとすると、
■今月診療日に、休みシフトをソフト制約で禁止にする
ことが一般的ですが、予定として入力された休みシフトがソフトエラーとなってしまうのが気に食わない、方もいらっしゃるかもしれません。
その場合は、Pythonで記述します。予定で何か入力された以外は、今月診療日の休みシフトを禁止にします。10行足らずで済みます。
def 土日祝休みは今月診療日予定がなければ不可(): for day in 今月診療日: for person in 全スタッフ: if shift_schedules[person][day][0]=="": v=sc3.GetShiftVar(person,day,'土日祝休み') s="予定なしなら、平日診療日土日休み不可 "+staffdef[person] sc3.AddHard(~v,s) 土日祝休みは今月診療日予定がなければ不可()