Adiciona tetos maximos por componente
- Componente A: teto 450 pts - Componente B: teto 180 pts - Componente C: teto 230 pts - Componente D: teto 180 pts Adiciona campo teto no ComponentePontuacao que limita o total
This commit is contained in:
@@ -99,7 +99,7 @@ class CalculadorPontuacao:
|
|||||||
bonus = bonus_atual_map.get(coord_escolhida_tipo, 0) if ativo else 0
|
bonus = bonus_atual_map.get(coord_escolhida_tipo, 0) if ativo else 0
|
||||||
retorno = 20 if retornos_encontrados > 0 else 0
|
retorno = 20 if retornos_encontrados > 0 else 0
|
||||||
|
|
||||||
return ComponentePontuacao(base=base, tempo=tempo, extras=extras, bonus=bonus, retorno=retorno)
|
return ComponentePontuacao(base=base, tempo=tempo, extras=extras, bonus=bonus, retorno=retorno, teto=450)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def calcular_componente_b(coordenacoes: List[CoordenacaoPrograma]) -> ComponentePontuacao:
|
def calcular_componente_b(coordenacoes: List[CoordenacaoPrograma]) -> ComponentePontuacao:
|
||||||
@@ -150,7 +150,7 @@ class CalculadorPontuacao:
|
|||||||
mapa_nota = {7: 20, 6: 15, 5: 10, 4: 5, 3: 0}
|
mapa_nota = {7: 20, 6: 15, 5: 10, 4: 5, 3: 0}
|
||||||
bonus = mapa_nota.get(maior_nota, 0)
|
bonus = mapa_nota.get(maior_nota, 0)
|
||||||
|
|
||||||
return ComponentePontuacao(base=base, tempo=tempo, extras=extras, bonus=bonus)
|
return ComponentePontuacao(base=base, tempo=tempo, extras=extras, bonus=bonus, teto=180)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def calcular_componente_c(consultoria: Consultoria) -> ComponentePontuacao:
|
def calcular_componente_c(consultoria: Consultoria) -> ComponentePontuacao:
|
||||||
@@ -182,7 +182,7 @@ class CalculadorPontuacao:
|
|||||||
retorno_bonus = 15 if consultoria.retornos > 0 else 0
|
retorno_bonus = 15 if consultoria.retornos > 0 else 0
|
||||||
bonus = bonus_continuidade + retorno_bonus
|
bonus = bonus_continuidade + retorno_bonus
|
||||||
|
|
||||||
return ComponentePontuacao(base=base, tempo=tempo, extras=extras, bonus=bonus)
|
return ComponentePontuacao(base=base, tempo=tempo, extras=extras, bonus=bonus, teto=230)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def calcular_componente_d(premiacoes: List[Premiacao]) -> ComponentePontuacao:
|
def calcular_componente_d(premiacoes: List[Premiacao]) -> ComponentePontuacao:
|
||||||
@@ -196,7 +196,7 @@ class CalculadorPontuacao:
|
|||||||
total_pontos = pontos_avaliador + sum(p.pontos for p in outros)
|
total_pontos = pontos_avaliador + sum(p.pontos for p in outros)
|
||||||
total_pontos = min(total_pontos, 180)
|
total_pontos = min(total_pontos, 180)
|
||||||
|
|
||||||
return ComponentePontuacao(base=total_pontos, tempo=0, extras=0, bonus=0)
|
return ComponentePontuacao(base=total_pontos, tempo=0, extras=0, bonus=0, teto=180)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def calcular_pontuacao_completa(cls, consultor: Consultor) -> PontuacaoCompleta:
|
def calcular_pontuacao_completa(cls, consultor: Consultor) -> PontuacaoCompleta:
|
||||||
|
|||||||
@@ -9,10 +9,14 @@ class ComponentePontuacao:
|
|||||||
extras: int
|
extras: int
|
||||||
bonus: int
|
bonus: int
|
||||||
retorno: int = 0
|
retorno: int = 0
|
||||||
|
teto: int = 0
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def total(self) -> int:
|
def total(self) -> int:
|
||||||
return self.base + self.tempo + self.extras + self.bonus + self.retorno
|
soma = self.base + self.tempo + self.extras + self.bonus + self.retorno
|
||||||
|
if self.teto > 0:
|
||||||
|
return min(soma, self.teto)
|
||||||
|
return soma
|
||||||
|
|
||||||
|
|
||||||
@dataclass(frozen=True)
|
@dataclass(frozen=True)
|
||||||
|
|||||||
Reference in New Issue
Block a user