¡Esta es una revisión vieja del documento!
Es la clase que instancia los objetos que aplican los convenios. El convenio se persiste como un json que define bloques de reglas para aplicar. Cada bloque tiene una condición de agregación y dos listas de de reglas. Si la condicón de agregación es verdadera, entonces se incorporan las reglas de la lista then. Si la condición es falsa, entonces se agregan las reglas de la lista else.
El json tiene la siguiente estructura:
{
“A Todos - Inicio”: {
“op”: {
“TRUE”: []
},
“then”: [],
“else”: []
},
“SOLO TEST”: {
“op”: {
“IN”: {
“left”: “idLaboratorio”,
“right”: []
}
},
“then”: [],
“else”: []
}
}
En el ejemplo se ven dos bloques con sus respectivas operaciones de agregación. El primero es “A Todos - Inicio” y su condición de agregación es TRUE, siempre se incorporan las reglas de la lista “then”. En el segundo bloque tenemos una operación de agregación diferente que puede ocaciones un resultado true o false, es decir puede que se incorporen las reglas de la lista “then” o de la lista “else” respectivamente.
EL ORDEN DE LOS BLOQUES Y DE LAS REGLAS ES MUY IMPORTANTE. ESO DEFINE EL ORDEN DE EJECUCION DE LA LISTA DE REGLAS FINAL.
El objeto de clase sfConvenioAdmBase tiene un arreglo interno de bloques ya parseados. Los mismos son de clase ctBlockBase.
Método estático que crea un objeto convenio a partir de sus parámetros. Es la forma de obtener un convenio para una entidad dada en un ámbito determinado.
Método estático que trae un convenio desde la base de datos y lo instancia a pesar de no tener la entidad base. Sirve para poder manipular los bloques de reglas por ejemplo.
Devuelve la cantidad de bloques.
Devuelve el arrglo/lista de objetos de tipo ctBlockBase. Es decir, es un arreglo con indices 0, 1, 2… n segun la cantidad de bloques del json persistido en la DB.