FUNCION PARA EL CÁLCULO DE SALARIOS PROMEDIOS DOCUMENTO: O_PROMSAL001.RTF Creado SIMON MENDEZ 24/01/2006 FUNCION O_PROMSAL DEFINICION GENERAL: Esta función permite calcular los diferentes tipos de Salarios Promedios que se utilizan en cada una de las políticas de calculo. Se encuentra definida dentro del MLLQ.DLL . Existe en el directorio syfdat un modelo el o_pronsal.mdl , que se puede leer para entender todas y cada una de las variantes que se pueden utilizar para el calculo de un salario promedio. El llamado de esta función se hace dentro de cada política normalmente del la forma : Salarios = o_promsal(lista de parámetros) En el debug cuando esta activado en los conceptos se reconoce la aplicación de esta funcion, porque aparece : ----------------Inicio del Salario Promedio O_promsal ------------------- Y sus cálculos se extienden hasta donde dice : ----------- Final del Salario Promedio O_promsal CASOS DE USO : Caso 1-. * Primer componente Se valida el último sueldo, si éste no ha cambiado en los tres últimos meses Ese es el que se toma para la liquidación, si éste ha cambiado se usa el Promedio de los últimos DOCE meses. * El segundo componente es el bono; - valida el último sueldo, si éste no ha cambiado en los tres últimos meses, se toma la proporción mensual del el ultimo bono recibido. (Bono/6 ó Bono/meses trabajado en el semestre). - Si le el sueldo ha variado en los últimos tres meses, entonces se tomara como base el promedio mensual de los bonos pagados en el último año de servicio o en todo el tiempo servido si fuere menor a un año. - Ej: Si un funcionario trabajó todo el año y se liquida el 28 de febrero y su sueldo cambio en los últimos tres meses, sus bonos recibidos fueron los que se le pagaron en la 1ª quincena de diciembre y el recibido en la 1ª quincena de junio del año anterior a su liquidación, se suman los montos y dividen por 12 para obtener el promedio mensual de bonos recibidos. Si su sueldo no cambio, se toma la proporción mensual de último bono recibido. - Ej: si un funcionario que nò trabajó todo el año y se liquida el 28 de febrero y su sueldo cambio en los últimos tres meses, se debe sumar los bonos recibidos durante el tiempo de servicio y dividirlo entre los meses de servicio. Si su sueldo no cambio, se toma la proporción mensual de último bono recibido. * Tercer Componente SI percibe horas extras se promedian la recibidas en el último año, Incluyendo las que se le pagan al momento de liquidación, para el ejemplo Serían las recibidas desde febrero del año anterior hasta las recibidas en la Liquidación divididas por 12 para el promedio mensual. * Cuarto Componente Si percibe subsidio de transporte se usa el último vigente. Si en el momento de liquidar tiene derecho, coja el valor actual por ley. Pero si su sueldo cambio en los últimos tres meses, tome el promedio mensual de lo pagado en el último año de servicio o en todo el tiempo servido si fuere menor a un año. Solución: Primer y Tercer componente: La variables para la solución de este primer y tercer componente son : Si el salario NO ha cambiado en los últimos tres meses, el sistema opera con las variables Agrup_Cpt_Bsv, Agrupación de los conceptos que se incluirán. Alfanumérica Dato = Código de la Agrupación que contenga los conceptos que me suman al promedio, sin incluir el salario pues este lo toma del valor matriculado en el HSL ) DiasBsV , Días por los que se tiene que dividir los valores de la agrupación Numérica Dato = 360 Nota si el salario NO ha cambiado el sistema, promedia los conceptos de la agrupación y el resultado se lo suma al salario matriculado en el HSL. Si el salario HA cambiado en los últimos tres meses, el sistema opera con las variables DiasChgSal, Días para validar el cambio de salario Numérica Dato = 90 Agrup_Cpt_BA Alfanumérica Dato = Código de la Agrupación que contenga los conceptos que me suman al promedio promedio se debe incluir el salario básico y el concepto del bono. DiaCes: Días por los que se tiene que dividir los valores de la agrupación Numérica Dato = 360 Nota. si el salario HA cambiado en lo surtimos tres meses el sistema, promedia los conceptos de la agrupación donde esta incluido el salario y el bono y calcula un salario promedio Variables que se utilizan para que el sistema promedie DiaSlrPrm, Días de salario promedio (Opera para el promedio de las variables Bsv y BA Numérica Dato = 360 Cesantias 180 Prima Dias_Pag, Días a pagar Numérica Dato = 30 Cesantías 15 Prima Ff_Au, Fecha final de Acumulados Alfanumérica Dato = 31 de diciembre del año en curso (Cesantias) La fecha de fin del semestre (Prima) Fi_Au, Fecha inicial de acumulados Alfanumérica Dato = 01 de enero del año en curso TipCld, Tipo de calendario Alfanumérica Dato = C (Comercial ) J (Juliano paga 31 días calendario) Tipo_Prom, Tipo de promedio Alfanumérica Dato = P (Promedio) Tipo_Sal, Tipo de Salario Alfanumérica Dato = B (Básico) Prs:VerAntgTpChgSlr, Valida la antigüedad en el HSL, si el trabajador se retiro y reingreso en una fecha inferior a los 90 días Alfanumerica Dato = S Segundo componente: Las variables para la solución de este segundo componente son : Prs:PagOtraBase , Tomar otra base para incluirla dentro del Salario Promedio Alfanumérica Dato = F Prs:AgrupOtraBase , Agrupación de los conceptos que se incluirán. Alfanumérica Dato = Código de la agrupación que contiene los conceptos (Concepto del Bono) Prs:DiasOtraBase , Días que devolver para buscar los valores de la agrupación Numérica Dato = 180 Prs:DivOtraBase , Días por los que se tiene que dividir los valores de la agrupación Numérica Dato = 180 Prs: FIniOtraBase: Fecha en que se pago el ultimo bono Fecha Dato = Fecha de ultimo pago El usuario en el caso de las liquidaciones definitivas y consolidaciones , debe matricular la fecha en que se pago el ultimo bono, para que el sistema tome la proporción del ultimo BONO PAGADO. Nota: Cuando el empleado no ha trabajado el semestre completo el sistema automáticamente recompone estos días a partir de la fecha de antigüedad del empleado. Si el sueldo ha cambiado, todo se hace al promedio por lo tanto, En el dato de la variable (agrupación) : Agrup_Cpt_AC o Agrup_Cpt_BA, dependiendo del concepto se debe incluir además de todos los conceptos que se van a promediar, Salario.... etc., el concepto del Bono Cuarto Componente: Las variables para la solución de este segundo componente son : Prs: PrommasSub, Tomar al final del promedio el subsidio de transporte Alfanumérica Dato = N, para que no lo tome. MnjSubProm, Compara El tope del subsidio con el promedio Alfanumérica Dato = N, el tope se compara con el Básico Prs:Var_TopSub, Numero de la variable (1 a 10) donde se encuentra el valor del tope , Ver Variables del sistema , tabla VSY Numérica Dato , el numeró del cajón Si el sueldo ha cambiado, todo se hace al promedio por lo tanto, En el dato de la variable (agrupación) : Agrup_Cpt_AC o Agrup_Cpt_BA, dependiendo del concepto se debe incluir además de todos los conceptos que se van a promediar , Salario.... etc , el concepto deL SUBSIDIO DE TRANSPORTE. CASO 2 -. Este caso es el mas tipico, consiste en calcular un salario promedio basado en lo siguiente : El Basico vigente que tenga la persona + la suma de una agrupación de Conceptos que normamente son horas extras y/o recargos de unos dias (360 o 180) que existen en los acumulados) + la suma de unos conceptos que se estan pagando en el proceso (bien sea que se esten pagando en la liquidación periodica o en la liquidación definitiva y que por ende aun no estan en los acumulados) + el ultimo subsidio de transporte si la persona tiene derecho. La parametrizacion para este caso es la siguiente : El Basico vigente que tenga la persona Tipo_Sal, Tipo de Salario Promedio Alfanumerica Dato = B 'TipCld, Tipo de Calendario Alfanumerica Dato = J o C dependiendo si es juliano (J) o comercial (C), sirve para calcular los dias existentes entre dos fechas. + la suma de una agrupación de Conceptos que normamente son horas extras y/o recargos de unos dias (360 o 180) que existen en los acumulados) Para realizar esta suma se utilizan las variables BSV, asi DiasBsV, Dias para Sumar Agrupacion al Basico Numerica Dato = # dias entre los cuales se busca la agrupación de conceptos que se le van a sumar. Agrup_Cpt_BsV , Agrupacion que se suma al basico Alfanumerica Dato, codigo de la agrupación de conceptos , normamente son horas extras y/o recargos FechaBsv, Fecha Final para sumar la agrupación , ejl. Estoy liquidando el 15/12/2007 y se necesita que el sistema se devuelva 360 dias para sumar esta agrupación. Entonces en esta fecha debe ir el 15/12/2007. Para liquidaciones definitivas normamelte no se indica. Y para el caso de primas se indica. Fecha Dato = Indicar la fecha (SI APLICA) + la suma de unos conceptos que se estan pagando en el proceso (bien sea que se esten pagando en la liquidación periodica o en la liquidación definitiva y que por ende aun no estan en los acumulados) Para realizar esta suma se utilizan las variables EXT, asi Ext_dias, ias para Sumar Agrupacion de Extras Numerica Dato = # dias entre los cuales se busca la agrupación de conceptos que se le van a sumar. Ext_Agrup, Agrupación de Extras que se estan pagando Alfanumerica Dato = codigo de la agrupación de conceptos ExtF_fin, Fecha Final para sumar la agrupación. Idem a FechaBsV Fecha Dato = Indicar la fecha si aplica- + el ultimo subsidio de transporte si la persona tiene derecho. VlrSub,'valor subsidio transporte multiplicada por 100 Numerica Dato = Valor del subsidio de transporte vigente Var_TopSub, # de la variable general de nomina donde se indico el tope del subsidio Numérica Dato = # de la variable , (de 1 a 10) NOTA, este caso 2 para : 1-.Las liquidaciones definitivas, basta con anteponerle el prefijo LDF: 2-.Las consolidaciones, basta con anteponerle el prefijo PMC: PRORRATEAR LAS VACACIONES Este caso consiste en que el valor delavacaciones, para efectos del calculo del salario promedio para las primas NO se debe de sumar al 100% sino proporcional asi: Ejemplo :sale de 26 de diciembre de 2007 y regresa el 12 de enero de 2007 total dias de vacaciones: 18 dias Valor de vacaciones: $700.000 Base a sumar en la prima de diciembre: 700000 / 18 * 6 dias = $233.3333 Base a sumar en la prima de Junio de 2008 correspondiente a los dias de enero = 700000 / 18 * 12 = $466.667 Como esta caso tambien se presenta en la primas de Junio es, decir si las vacaciones pasan de Junio a Julio , eN Junio solo debe hacer parte del salario promedio los dias que se dejaron de pagar en Dbre y solo los dias que corresponden a Junio. Y en Dicembre los dias que se dejaron de pagar en Junio mas los dias que corresponden a Diciembre. Para este caso se deben de parametrizar las siguientes variables del concepto Prs:ProrrateaVac, Prroratear o promediar el valor de las vacaciones Alfanumerica Dato = S Prs:TpVac , Tipo de Calculo de Valores de Vacaciones Afanumerica Dato = S Prs:AgrupVac, Agrupación de Conceptos para sumar las vacaciones Alfanumerica Dato = Codigo de l agrupación, en esta agruapacion solo debe estar el concepto de Vacaciones Prs:FuenteVac, Fuente de Donde se toman los valores de las Vacaciones del periodo Actual. Alfanumerica Dato = Si estan liquidadas por la nomina y no acumuladas se debe Indicar L, si ya estan acumuladas se debe hincar A Prs:FuenteBVac Fuente de Donde se toman los valores de las Vacaciones del periodo Anterior Alfanumerica Dato = Si estan liquidadas por la nomina y no acumuladas se debe Indicar L, si ya estan acumuladas se debe hincar A Si se deja en blanco asume A, puesto que se supone que las vacaciones ya estan acumuladas Fechas que Intervienen : Para el caso de Primas en Diciembre Prs:FiniBVac , Fecha Inicial Periodo anterior o sea Junio Fecha Dato = 1 de Junio del Ano de pago de la prima Prs:FfinBVac, Fecha Final Periodo anterior o sea Junio Fecha Dato = 30 de Junio del Ano de pago de la prima Prs:FiniVac, Fecha Inicial periodo de prima Actual o sea Diciembre Fecha Dato = 1 de Diciembre del Ano de pago de la prima Prs:FfinVac, Fecha Final periodo de prima Actual o sea Diciembre Fecha Dato = 30 / 31 de Diciembre del Ano de pago de la prima (Según sea el caso) Para el caso de Primas en Junio Prs:FiniBVac , Fecha Inicial Periodo anterior o sea Diciembre Fecha Dato = 1 de Diciembre del Ano de pago de la prima Prs:FfinBVac, Fecha Final Periodo anterior o sea Diciembre Fecha Dato = 30/31 de Diciembre del Ano de pago de la prima (Según sea el caso) Prs:FiniVac, Fecha Inicial periodo de prima Actual o sea Junio Fecha Dato = 1 de Junio del Ano de pago de la prima Prs:FfinVac, Fecha Final periodo de prima Actual o sea Junio Fecha Dato = 30 de Junio del Ano de pago de la prima Lo que quiere decir que esta fechas hay que moverlas en Cada Semestre. AFECTAR EL SALARIO PROMEDIO POR UN FACTOR Para efectos del que el salario promedio calculado, sea cual fuera su modalidad, es decir con Agrupaciones de conceptos para promedio (Bsv) + Agrupaciones de conceptos en momento de liquidación (EXT) + suma o no del subsidio de transporte y se requiera que este salario promedio sea afectado por un factor, se debe de crear la variable del concepto : ClaseSal , Clase de Salario a devolver Alfanumerica Dato = F Prs:factorDia, Factor por dia Numerica Dato = un factor multiplicado * 100 Por defecto si no se indica el sistema toma 23.83 Este caso , para 1-.Las liquidaciones definitivas, basta con anteponerle el prefijo LDF: 2-.Las consolidaciones, basta con anteponerle el prefijo PMC: Caso: 3 Para el consolidado mensual, se requiere el sistema sólo tenga en cuenta los acumulados de horas extras desde el primero de enero del presente año hasta la fecha del consolidado y no que se devuelva un año completo. Se inserta variable en el concepto de CONSOLIDACIÓN DE CESANTÍAS, la variable: Pmc:DiasbsvIPrm con S, para que haga los días Bsv sean iguales a los días del cálculo normal para el salario promedios.