code: 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)