public void calculaRateioCustosSetores() {
    Empresa empresa = Util.getEmpresa();
    if (empresa != null && empresa.getSetores() != null && this.getProdutoSetores() != null) {
      for (ProdutoSetor produtoSetor : this.getProdutoSetores()) {
        Setor setor = produtoSetor.getSetor();
        if (setor == null) continue;

        float minutosTrabalhoMensal =
            (setor.getFuncionarios()
                * setor.getHorasSemana() // horas semanais
                * 4 // converte para valor mensal (4 semanas/mês)
                * 60 // converte para minutos
                * setor.getEficienciaProdutiva() // aplica o índice de produtividade/ociosidade
            );

        // Custo médio do salário
        float rateioCustoMinutoSetor =
            (setor.getSalarioMedio() * setor.getFuncionarios() / minutosTrabalhoMensal);
        if (empresa.getCustos() != null) {
          // Faz o rateio dos custos e soma junto
          for (Custo custo : empresa.getCustos()) {
            float valorCusto = custo.getValor();
            if (custo.isMultiplicaFuncionarios()) valorCusto *= setor.getFuncionarios();
            // Calcula o custo/minuto do setor (com ociosidade) (na planilha se chama
            // valor/minuto/homem com ociosidade)
            rateioCustoMinutoSetor += (valorCusto / minutosTrabalhoMensal);
          }
        }
        produtoSetor.setCustoMinuto(rateioCustoMinutoSetor);
      }
    } else {
      this.setProdutoSetores(
          null); // Se não tiver custos gerais nem setores, pode ignorar os setores do produto, pois
      // não sabemos qual é o custo por homem
    }
  }