def business_rule_notification_is_blocked(self, hosts, services):
        acknowledged = 0
        for src_prob_id in self.source_problems:
            if src_prob_id in hosts:
                src_prob = hosts[src_prob_id]
            else:
                src_prob = services[src_prob_id]
            if src_prob.last_hard_state_id != 0:
                if src_prob.problem_has_been_acknowledged:
                    acknowledged += 1
                elif self.business_rule_downtime_as_ack is True:
                    if src_prob.scheduled_downtime_depth > 0:
                        acknowledged += 1
                    elif hasattr(src_prob, "host") and \
                            hosts[src_prob.host].scheduled_downtime_depth > 0:
                        acknowledged += 1
        return acknowledged == len(self.source_problems)