Changes between Version 5 and Version 6 of SpecsFormulasCanon


Ignore:
Timestamp:
04/02/12 13:42:49 (13 years ago)
Author:
David
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SpecsFormulasCanon

    v5 v6  
    11[[TOC(Specs,SpecsModLiq,SpecsFórmulasCanon)]]
    22= Fórmulas de cálculo de Canon =
     3
     4== Contexto ==
    35
    46El cálculo de las fórmulas de [wiki:Canon_Superficiario canon] para cada anualidad se hace de forma diferente dependiendo principalmente de:
     
    1416
    1517Así que para hacer una formulación efectiva para cada etapa, es necesario contar con fórmulas que puedan ser procesadas y ejecutadas de forma automática. Estas fórmulas deben contar con una cadena de condiciones que determinen el valor del canon para cada una de estas condiciones.
     18
     19== Problemática ==
     20
     21El problema a solucionar es el siguiente:
     22
     23* El usuario debe poder manejar las fórmulas de cálculo de canon desde el [wiki:mod_liq módulo de liquidaciones]
     24* Las fórmulas se utilizan en el momento de generación de las liquidaciones
     25  * De forma periódica
     26  * Por demanda
    1627
    1728== Conceptos ==
     
    4051=== Lenguaje ===
    4152
    42 Desmenuzando este cálculo en diferentes elementos, podemos ver lo siguiente:
     53Descomponiendo este cálculo en diferentes elementos, podemos ver lo siguiente:
    4354
    44551. Ley 685
     
    7586
    7687* Evaluación
    77 * Variable
     88* Variable (o parámetro)
    7889* Constante
    7990* Operador
     
    8192...Para cada ''Elemento'', y que cada ''Elemento'' se comporta de forma diferente, es decir, tiene una ''semántica'' inherente.
    8293
    83 Por otro lado, tenemos que cada variable debe ser ''buscada'' pues su valor también depende de los parámetros de la fórmula, que en este caso son:
    84 * Título
    85 * Etapa
    86 * Norma
     94También se puede ver que cada ''Condición'' viene acompañada de una ''Expresión'', van por pares de esta forma:
    8795
    88 === Persistencia y Obtención de información ===
     96* Condición '''1'''
     97  * Expresión '''1'''
     98* Condición '''2'''
     99  * Expresión '''2'''
     100* ...
     101  * ...
     102* Condición '''n'''
     103  * Expresión '''n'''
    89104
    90 Es importante tener en cuenta que la información que estas variables usan, se obtiene a partir de una búsqueda o es seleccionada, ya sea por el usuario o por un proceso automático.
     105Con estos elementos, podemos definir un léxico formal.
    91106
    92 ==== Liquidaciones automáticas ====
     107==== Léxico ====
     108
     109El siguiente léxico toma elementos de [http://en.wikipedia.org/wiki/Backus%E2%80%93Naur_Form BNF]:
     110
     111* <if> ::= [ if ]
     112* <then> ::= [ then ]
     113* <sep> ::= <espacio>
     114* <brk> ::= <retorno>
     115* <constante> ::= [ float ]
     116* <variable> ::= [ param ]
     117* <valor> ::= <constante> | <variable>
     118* <ope. cond.>::= [ > | < | >= | <= | == | != ]
     119* <evaluación condicional> ::= <valor> <sep> <ope. cond.> <sep> <valor> | <valor> <sep> <between> <valor> <and> <valor>
     120* <ope. mat> ::= [ + | - | * | / ]
     121* <evaluación matemática>:= <valor> <sep> <ope. mat> <sep> <valor> [ <sep> <ope. mat> <sep> <valor> ] * | (<evaluación matemática>) [<sep> <ope. mat> <evaluación matemática> ] *
     122* <condición> ::= <if> <sep> <evaluación condicional>
     123* <expresión> ::= <then> <sep> <evaluación matemática>
     124* <fórmula> ::= <condición> <brk> <expresión> [<brk> <condición> <brk> <expresión> ] *
     125
     126== Implementación ==
     127
     128=== Liquidaciones automáticas ===
    93129
    94130Las liquidaciones automáticas se hacen para aquellos títulos que estén próximos a cumplir su siguiente anualidad, es decir, aquellos que la fecha de hoy más un lapso establecido, sea mayor o igual al cumpleaños. En pseudo código:
    95131
    96132
    97   '''Si''' título'''.'''anualidad actual'''.'''fecha '''>=''' hoy '''+''' lapso establecido
     133  '''Si''' título'''.'''anualidad actual'''.'''fecha '''<=''' hoy '''+''' lapso establecido
    98134    '''entonces''' ''ejecutar liquidación en título''
    99135
     
    108144    ''ejecutar fórmula'' para
    109145      ''norma'' '''=''' título'''.'''norma actual,
    110       ''etapa'' '''=''' título'''.'''etapa actual
     146      ''etapa'' '''=''' título'''.'''etapa actual, ''anualidad'' '''=''' título'''.'''anualidad_actual,
    111147  )
    112148
     
    117153* Ejecutar fórmula
    118154
    119 ==== Liquidaciones por demanda ====
     155=== Liquidaciones por demanda ===
    120156
    121157
    122158
    123 == Problemática ==
    124159
    125 El problema a solucionar es el siguiente:
    126 
    127 * El usuario debe poder manejar las fórmulas de cálculo de canon desde el [wiki:mod_liq módulo de liquidaciones]
    128 * Las fórmulas se utilizan en el momento generación de las liquidaciones automáticas
    129