From 45ebadead6a6c59db9472d5e8a90c0655e0900bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ses=C3=B3stris=20Vieira?= Date: Wed, 12 Dec 2012 10:31:05 -0200 Subject: [PATCH] =?UTF-8?q?Corre=C3=A7=C3=A3o=20nos=20c=C3=A1lculos=20da?= =?UTF-8?q?=20sa=C3=BAde=20das=20metas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sigi/apps/metas/models.py | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/sigi/apps/metas/models.py b/sigi/apps/metas/models.py index 6086fd1..86bfcad 100644 --- a/sigi/apps/metas/models.py +++ b/sigi/apps/metas/models.py @@ -49,34 +49,29 @@ class Meta(models.Model): @property def valor_desejado(self): - total_meses = (self.data_fim - self.data_inicio).days / 30 - meses_gastos = (date.today() - self.data_inicio).days / 30 - meta_mensal = self.valor_meta / total_meses - return meta_mensal * meses_gastos + total_dias = (self.data_fim - self.data_inicio).days + 1 + dias_gastos = (date.today() - self.data_inicio).days + 1 + meta_dia = self.valor_meta / total_dias + return meta_dia * dias_gastos @property def percentual_desejado_low(self): - return self.valor_desejado * 0.9 / self.valor_meta + return (self.valor_desejado / self.valor_meta) - 0.05 # 5% abaixo do desejado @property def percentual_desejado_high(self): - return self.valor_desejado * 1.1 / self.valor_meta + return (self.valor_desejado / self.valor_meta) + 0.05 # 5% acima do desejado @property def saude(self): - valor_executado = self.valor_executado - if valor_executado >= self.valor_meta: + percentual_concluido = self.percentual_concluido / 100.0 + if percentual_concluido >= 1: return 'A2BBED' # Blue - total_meses = (self.data_fim - self.data_inicio).days / 30 - meses_gastos = (date.today() - self.data_inicio).days / 30 - meta_mensal = self.valor_meta / total_meses - valor_desejado = meta_mensal * meses_gastos - - if valor_executado > (valor_desejado * 1.1): + if percentual_concluido > self.percentual_desejado_high: return '89D7AF' # Green - if valor_executado > (valor_desejado * 0.9): + if percentual_concluido > self.percentual_desejado_low: return 'FFDB6E' # Orange return 'E74A69' # Red