コード例 #1
0
 public void fill(ProdutoViewModel pvm) {
   pvm.setId(id);
   pvm.setReferencia(referencia);
   pvm.setNome(nome);
   pvm.setCategoria(categoria);
   if (categoria != null) {
     pvm.setCategoriaId(categoria.getId());
   }
   if (produtoComponentes != null) {
     List<ProdutoComponenteViewModel> listPcvm = new ArrayList<>();
     for (ProdutoComponente pc : produtoComponentes) {
       if (pc != null) {
         ProdutoComponenteViewModel pcvm = new ProdutoComponenteViewModel();
         pc.fill(pcvm);
         listPcvm.add(pcvm);
       }
     }
     pvm.setProdutoComponentes(listPcvm);
   } else {
     pvm.setProdutoComponentes(null);
   }
   if (produtoMaquinas != null) {
     List<ProdutoMaquinaViewModel> listVm = new ArrayList<>();
     for (ProdutoMaquina pm : produtoMaquinas) {
       if (pm != null) {
         ProdutoMaquinaViewModel pmvm = new ProdutoMaquinaViewModel();
         pm.fill(pmvm);
         listVm.add(pmvm);
       }
     }
     pvm.setProdutoMaquinas(listVm);
   } else {
     pvm.setProdutoMaquinas(null);
   }
   if (produtoSetores != null) {
     List<ProdutoSetorViewModel> listVm = new ArrayList<>();
     for (ProdutoSetor ps : produtoSetores) {
       if (ps != null) {
         ProdutoSetorViewModel pmvm = new ProdutoSetorViewModel();
         ps.fill(pmvm);
         listVm.add(pmvm);
       }
     }
     pvm.setProdutoSetores(listVm);
   } else {
     pvm.setProdutoSetores(null);
   }
   pvm.setCusto(getCustoTotal(pvm));
 }
コード例 #2
0
  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
    }
  }