Пример #1
0
 public QtdaGrupoDTO(QtdaGrupo q)
 {
     if (q == null)
     {
         return;
     }
     CodigoGrupo = q.CodigoGrupo;
     Efetivo     = q.Efetivo;
     QtdaMin     = q.QtdaMin;
     QtdaMax     = q.QtdaMax;
     Valor       = q.Valor;
 }
Пример #2
0
        public EleicaoQtdaRepresentantesDTO GetQtdaRepresentantes(int codEleicao)
        {
            Eleicao eleicao = GetEleicao(codEleicao);
            float   total   = GetQtdaFuncionarios(eleicao.Codigo);

            EleicaoQtdaRepresentantesDTO retorno = null;

            if (eleicao.CodigoModulo == 1)
            {  //CIPA
                QtdaGrupo qtEfetivos = db.QtdasGrupos
                                       .Where(x => x.CodigoGrupo == eleicao.Unidade.CodigoGrupo &&
                                              x.QtdaMin <= total && x.Efetivo)
                                       .OrderByDescending(x => x.QtdaMin)
                                       .FirstOrDefault();

                QtdaGrupo qtSuplentes = db.QtdasGrupos
                                        .Where(x => x.CodigoGrupo == eleicao.Unidade.CodigoGrupo &&
                                               x.QtdaMin <= total && !x.Efetivo)
                                        .OrderByDescending(x => x.QtdaMin)
                                        .FirstOrDefault();

                if (qtEfetivos == null || qtSuplentes == null)
                {
                    throw new QtdaMinCipeiroGrupoNaoEncontradaException(eleicao.Unidade.CodigoGrupo, GetQtdaFuncionarios(eleicao.Codigo));
                }

                int acrescimo = total > qtEfetivos.AcrescimoLimite.QtdaLimite ?
                                (int)Math.Floor(((total - qtEfetivos.AcrescimoLimite.QtdaLimite) / qtEfetivos.AcrescimoLimite.IntervaloLimite) * qtEfetivos.AcrescimoLimite.QtdaAcrescimo) : 0;

                retorno = new EleicaoQtdaRepresentantesDTO(eleicao, qtEfetivos.Valor + acrescimo, qtSuplentes.Valor + acrescimo);
            }
            else //COMISSÃO
            {
                QtdaComissaoInterna q = db.QtdasComissaoInterna.Where(x => x.QtdaMin >= total).FirstOrDefault();
                retorno = new EleicaoQtdaRepresentantesDTO(eleicao, q.Valor, 0);
            }


            return(retorno);
        }