-
Notifications
You must be signed in to change notification settings - Fork 28
Cálculo de boletines
Borrador para notas del boletin ¶
Los Periodos son las fracciones de tiempo en el cual se divide el ciclo lectivo y donde se asignan las notas al finalizar cada uno. Ej 1er trimestre, 2do trimestre, 3er trimestre, Examen Diciembre, Examen Marzo, etc
Cada uno lleva la nota al boletín, aunque pueden ser calculados dependiendo de las notas anteriores
La idea es poder usarlos para generar un boletín con cierta lógica independiente de la aplicación que pueda ser extensible a través de clases. Implementacion
Cada periodo debe llevar un flag que indique si es "calculable" y un campo mas donde se guarde la formula y parámetros que se necesitan para hacerlo. Esta formula debe implementarse en una clase que herede de albaFormulaBoletin asi podemos generar una interfase comun para poder generar mas Formulas a futuro.
Por ejemplo, tenemos los siguientes periodos
ID | PERIODO | CALCULABLE | FORMULA |
---|---|---|---|
1 | 1er Trimestre | No | |
2 | 2do Trimestre | No | |
3 | 3er Trimestre | No | |
4 | Examen Diciembre | No | |
5 | Nota Final | Si | Promedio|1,2,3 |
6 | Examen Marzo | No | |
7 | Nota Definitiva | Si | FormulaDef|3,4 |
luego generamos classes:
class formula_Promedio() extends albaFormulaBoletin
{
public function init()
{
$this->ayuda = "Esta formula calcula el promedio entre los parametros pasados (P1,P2,Px)\n";
$this->ayuda .= "P1,P2 y Px son los ID's de los Periodos que se quieren sacar el valor"
$this->nombre = 'Promedio';
}
public function calcular($parametros = array())
{
$total = 0;
if (count($parametros)== 0) {
return 0;
}
foreach ($parametros as $parametro) {
$nota = MagicoObtenerNotadeElAlumnodeEsePeriodoPorMateria()
$total += $nota;
}
return ($total / count($parametros));
}
}
class formula_FormulaDef extends albaFormulaBoletin
{
}