public QtdaGrupoDTO(QtdaGrupo q) { if (q == null) { return; } CodigoGrupo = q.CodigoGrupo; Efetivo = q.Efetivo; QtdaMin = q.QtdaMin; QtdaMax = q.QtdaMax; Valor = q.Valor; }
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); }