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 } }