Manual Configuración Nómina

From ADempiere
Jump to: navigation, search
This Wiki is read-only for reference purposes to avoid broken links.

Este manual ha sido contribuído por Carlos Ruiz.

Patrocinado por:

- Global Quality Systems & Solutions (GlobalQSS)

- DoubleClick Sistemas (Empresa Líder de la Localización Venezuela)


Conceptos

Constantes (por empresa / vigencia)

Conceptos que se definen por empresa durante una vigencia específica (ej: salario mínimo)

Para definir un concepto que sea constante debe definirse en la ventana Catálogo de Conceptos de Nómina:

Tipo: Información

Empleado: No

Registrado: No

El resto de campos se diligencian como se requiera.

El valor correspondiente se configura en la pestaña de Atributos Empleado

Se obtienen en las fórmulas utilizando los métodos getAttribute

Atributos (por empleado / vigencia)

Conceptos que se definen por empleado durante una vigencia específica (ej: salario)

Para definir un concepto que sea atributo debe definirse en la ventana Catálogo de Conceptos de Nómina:

Tipo: Concepto

Empleado: Si

Registrado: No

El resto de campos se diligencian como se requiera.

Se obtienen en las fórmulas utilizando los métodos getAttribute

Novedades (por empleado / proceso nómina / día)

Conceptos que se capturan cada proceso de nómina asociados a novedades de un empleado (ej: número de horas extras trabajadas en un día)

Para definir un concepto que sea novedad debe definirse en la ventana Catálogo de Conceptos de Nómina:

Tipo: Concepto

Empleado: No

Registrado: Si

El resto de campos se diligencian como se requiera.

Y debe definirse un atributo (no importan los valores, pero debe existir un registro asociado en la pestaña Atributos Empleado)

Se obtienen en las fórmulas utilizando los métodos getConcept

Reglas

Conceptos que definen reglas (rutinas de cálculo escritas en un lenguaje como beanshell en la tabla de Reglas - AD_Rule).

Para definir un concepto que sea regla debe definirse en la ventana Catálogo de Conceptos de Nómina:

Tipo: Regla

Tipo de Columna: solo se debe usar Monto o Cantidad

Empleado: No

Registrado: No

El resto de campos se diligencian como se requiera.

Y debe definirse un atributo donde se relaciona con la regla a ejecutar.

Contabilización Conceptos

Los conceptos que se van a contabilizar deben ser marcados para que se ingresen a la tabla de movimientos (pagado, desplegado o impreso).

Se debe ingresar la naturaleza de la cuenta Débito o Cŕedito (Natural no se utiliza). Luego se deben definir las cuentas contables asociadas a este concepto, así:

Si el concepto es naturaleza Débito entonces la cuenta débito a definir es el gasto correspondiente de nómina y la cuenta crédito la CxP, esta cuenta crédito se usará únicamente si el concepto se marca como balanceando.Si el concepto es naturaleza Crédito entonces la cuenta crédito a definir es la que corresponda al descuento realizado y la cuenta débito dependerá del tipo de descuento, esta cuenta débito se usará únicamente si el concepto se marca como balanceando.

Si a uno o más conceptos no se les marca el campo Balanceando, entonces el proceso de contabilización balancea estos conceptos contra la cuenta correspondiente al cargo configurado en la nómina.

Escribir Reglas de Nomina:

Variables disponibles:

No se deben copiar los objetos para modificarlos, sino clonarlos, por ejemplo si para un cálculo se debe modificar _From, se debe copiar la variable así:

Timestamp fromclone = (Timestamp) _From.clone();


Variable Tipo Descripción
process MHRProcess instancia del objeto "Proceso Nomina"
_Process int identificador del proceso -> HR_Process_ID
_Period int identificador del período del proceso -> HR_Period_ID
_Payroll int identificador de la nómina del proceso -> HR_Payroll_ID
_Department int identificador del departamento del proceso -> HR_Department_ID
_From Timestamp fecha inicio del periodo de nomina
_To Timestamp fecha fin del periodo de nomina
_DateStart Timestamp fecha ingreso del contrato del empleado
_DateEnd Timestamp fecha final del contrato del empleado, si nulo 2999-12-31
_Days int número de días entre la fecha inicial y final del período (incluyendo los dos extremos)
_C_BPartner_ID int identificador del tercero del empleado -> C_BPartner_ID

Funciones que puede invocar:

getConcept(String)

   retorna doble el monto del concepto

   parametros codigo del concepto 

getConcept(String, int, int)

   retorna doble el monto del concepto

   parametros codigo del concepto, periodo desde, periodo hasta

getConcept(String, int, int, int)

   retorna doble el monto del concepto

   parametros codigo del concepto, codigo de la nomina, periodo desde, periodo hasta

getConcept(String, Timestamp, Timestamp)

   retorna doble el monto del concepto

   parametros codigo del concepto, fecha desde, fecha hasta

getConceptGroup(String)

   retorna doble la suma de los conceptos en esa categoria

   parametros codigo de la categoria del concepto 

getList(String, double, String)

   retorn doble

   parametros codigo de la lista, monto, nombre de la columna a obtener

getAttribute(String)

   retorna doble el monto del atributo

getAttribute(String,Timestamp)

   retorna doble el monto del atributo en la fecha especificada

   parametros codigo del concepto  y fecha1 

getAttributeDate(String)

   retorna fecha del atributo

   parametros codigo del concepto 

getAttributeString(String)

   retorna texto del atributo

   parametros codigo del concepto 

getDays(Timestamp, Timestamp)

   retorna los dias entre dos fechas

   parametros fecha1 y fecha2

getMonths(Timestamp, Timestamp)

   retorna los meses entre dos fechas

   parametros fecha1 y fecha2

setConcept(String, double)

   parametros codigo del concepto, valor a escribir en doble

setConcept(String, double, boolean)

   parametros codigo del concepto, valor a escribir en doble, flag registrado

Cualquiera de los métodos getters de la clase MHRProcess

   Todos los métodos get.... de la clase MHRProcess pueden ser utilizados directamente, por ejemplo: get_TrxName(), getCtx(), getC_BPartner(), getHR_Payroll(), getValue(columnname), getDocumentNo(), etc.

Cualquiera de las clases disponibles para Java y Adempiere

En caso que la clase no se encuentre en java.math o java.sql se debe importar el package correspondiente.

Valores a retornar:

Para retornar valores se debe usar la variable result de tipo double, este valor será escrito en la tabla de movimientos (HR_Movement) en el campo monto o cantidad dependiendo del tipo de concepto.

También se puede usar la variable description de tipo String, el valor que se asigne a esta variable será escrito en el campo Description de la tabla de movimiento.