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 variablenResult”, 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.