Identificación
- Código: Acepta hasta cuatro (4) caracteres, donde el primero debe ser una letra y los tres restantes números que conforman el código de identificación del concepto “Xnnn”. La interpretación que el sistema le dará al concepto dependerá de esta letra inicial, así para: Asignación (Annn), Deducción (Dnnn), Neutros (Nnnn) o Función (Fnnn). Las demás letras quedan disponibles para la utilización que el usuario requiera, solo que no aparecerán en los informes de prenómina ni recibos de pago. Los conceptos “Dnnn” son los que generan resultados con valor negativo.
- Descripción: Acepta cuarenta (40) caracteres y se refiere a la descripción del concepto que será mostrado en los recibos de pago.
Activa o Inactiva el concepto, si es inactivo será excluido de todos los procesos de cálculo sin necesidad de eliminar el registro; además, el sistema detectará la cantidad de fórmulas que utiliza este concepto para impedir la desactivación en caso que la búsqueda sea exitosa.
Cálculo
Provee un editor de textos de tipo que permite escribir las condiciones y fórmulas que generan el resultado del concepto. Esta fórmula se escribe bajo el léxico Xbase proceduralmente, compuesto por funciones e instrucciones que se ejecutan de manera ascendente. Prácticamente un concepto contiene un programa bajo la siguiente regla:
Se inicia con la declaración de una función, según:
FUNCTION A001 (uPar1, uPar2…uPar4), El sistema sugiere que se denomine igual que el código del concepto, dentro de ella se declaran los posibles parámetros “separados por comas” que pueden recibir en el momento de ser ejecutada. Ver función A001 (uPar1, uPar2…uPar4)
Declaración de variables locales “Sólo tienen ámbito dentro de la función”, ejemplo: LOCAL nValor:=0,dFecha:=CTOD(“”),cChar:=SPACE(10),lLogico:=.T.
Estas variables son declaradas e iniciadas con sus respectivos valores, no existe nomenclatura en la definición de variables según el tipo (nValor:=0,dFecha:=CTOD(“”),cChar:=SPACE(10),lLogico:=.T.), es recomendable colocar como prefijo EN MINÚSCULA el tipo de dato que soporta, así se logra comprender fácilmente el programa.
Importante: Sólo declare las variables que necesite.
Condición para calcular, define una bifurcación en el programa que inicia con la cláusula IF <Condición>, el resultante verdadero concluye en la cláusula ELSE y la bifurcación resultante falsa finaliza con la cláusula ENDIF
Ejemplo:
IF CONDICION=”A” .AND. FECHA_ING>oNm:dDesde
nResult:=SALARIO*DIAS_HAB()
ELSE
nResult:=SALARIO
ENDIF
Cálculos: Se derivan de la conjunción de diversos elementos: Variables, campos, funciones, valores de las tablas, operadores de tipo “lógicos, aritméticos y relacionales”. Ejemplo: nResult:=DIAS_HAB()*SALARIO
Emplea como contenedor del resultado a la variable “nResult”, asigna el valor a través del operador “:=”, utiliza la función DIAS_HAB() para determinar la cantidad de días hábiles en el periodo de pago, lo multiplica “*” por el valor del Campo SALARIO obtenido desde la ficha del trabajador.
Así mismo el cálculo final puede derivarse de la conjunción sistemática de una expresión compuesta por diversos elementos, tales como: Variables, Campos y/o Funciones.
Retorno del resultado, es realizado por la cláusula RETURN nResult, además indica la finalización en la ejecución del programa “Concepto”.
Empleo de funciones definidas por el usuario: Pueden ser consideradas como sub-programas que pueden ser invocados desde el concepto y contribuyen a simplificar el desarrollo de un concepto, el nombre no puede superar diez (10) caracteres y tampoco puede coincidir con el nombre de una función ya existente dentro del sistema de nómina.
Ejemplo:
FUNCTION A001 (nPar1, nPar2)
IF CONDICION=”A”
nResult:=DIALUNES()
ENDIF
RETURN nResult
FUNCTION DIALUNES()
LOCAL nLunes
LOCAL dDesde:=oNm: dDesde
WHILE dDesde<=oNm:dDesde
IF DOW(dDesde)=2 // Lunes
nLunes++
ENDIF
dDesde:=dDesde+1
ENDDO
RETURN nLunes
Utilice en símbolo “;” para continuar en la siguiente línea el contenido de la instrucción o sentencia, ejemplo:
IF CONDICION=”A” .AND.;
FORMA_PAG=”E”.AND.;
SALARIO>=1000
Para que el concepto cumpla las condiciones exigidas por el formulario de Variaciones, debe indicar “lVariac:=.t.” dentro de la fórmula, que le indica al programa de variaciones que el concepto califica o cumple la condición para solicitar variaciones. También debe tomar los requerimientos de su configuración para ser aceptado por el formulario de variaciones, cabe destacar que el concepto debe cumplir dos condiciones, la primera es estática, se define en la sección de configuración que permite al programa de variaciones que pueda operar solo con determinados conceptos, luego debe cumplir una condición lógica que solo puede ser considerada en la misma fórmula a través de la asignación “lVariac:=.t.”, Ejemplo:
IF CONDICION=”A” .AND.;
FORMA_PAG=”E”.AND.;
SALARIO>=1000
lVariac:=.T. // Califica para aceptar variaciones
nResult:=VARIAC*SALARIO
ENDIF
Validación de Sintaxis
Es realizado por el sistema antes de efectuar la grabación del registro. El contenido del programa o fórmula es analizado sintácticamente, en caso de no cumplirlas, el sistema emitirá un mensaje indicando la frase que está incorrecta. No es posible detectar errores lógicos debido a que estos sólo se generan durante la ejecución de la fórmula. Si durante el proceso de cálculo “Nómina o Prenómina” es detectado algún error, será mostrado el concepto que lo genera y automáticamente queda excluido para seguir ejecutándose en los demás trabajadores. Posteriormente debe reversar la nómina, realizar las correcciones y preferiblemente ejecutar prenómina para verificar su correcto funcionamiento.