Visión General
Paquete Java: com.etendoerp.financial.extensions
Visión general
En esta sección, el usuario puede encontrar información técnica sobre el bundle Financial Extensions.
Pool bancario
Paquete Java: com.etendoerp.bankingpool
Visión general
Este documento cubre cómo crear un proceso que genere automáticamente un nuevo Plan financiero o actualice un Plan financiero desde la ventana Gestión financiera >> Contabilidad >> Transacciones >> Configuración de tipo financiero. También proporciona una estructura que debe considerarse al crear la clase Java responsable de ejecutar estos nuevos procesos.
Creación de la nueva clase Java
La clase Java encargada de crear el plan de financiación debe extender la clase Java FinanceTypeTemplate. Esta proporciona algunos métodos abstractos que deben implementarse y otros métodos útiles al crear el nuevo proceso. La estructura básica que debe seguir la nueva clase Java es la siguiente:
package com.etendoerp.bankingpool.types;
import com.etendoerp.bankingpool.FinancialTypeConfiguration;
import java.math.BigDecimal;
import java.util.Date;
public class NewFinancialType extends FinanceTypeTemplate {
@Override
public void exec(FinancialTypeConfiguration configuration, Date date,
boolean isNewFinancePlan) {
if (isNewFinancePlan) {
for (int paymentNo = 0; paymentNo < configuration.getInstallmentNo(); paymentNo++) {
//Implement the creation of the new Financing Plan
}
} else {
for (int paymentNo = 0; paymentNo < configuration.getInstallmentNo(); paymentNo++) {
//Implement the update of the Financing Plan
}
}
}
@Override
public BigDecimal getInstallment(FinancialTypeConfiguration configuration,
BigDecimal totalAmortization, int totalInstallment) {
//Calculate the value of the Installment
return null;
}
@Override
public BigDecimal getRecalculatedInstallment(FinancialTypeConfiguration configuration,
BigDecimal totalAmortization, BigDecimal residualValue, int totalInstallment) {
//Calculate the value of the installment recalculation
return null;
}
}
El método Exec es el método que se ejecuta cuando se crea un nuevo Plan financiero o cuando se va a modificar el Plan financiero.
El método Exec recibe 3 parámetros:
- configuration: El registro de la ventana Configuración de tipo financiero para el que se crea o modifica el nuevo Plan financiero.
- date: La fecha que se pasa como parámetro al crear un Plan financiero.
- isNewFinancePlan: Indicador que señala si se está creando o actualizando un nuevo plan financiero. Si se llama desde el botón Crear plan financiero, este parámetro será True y si se llama desde el botón Actualizar plan financiero, el parámetro será False.
La clase abstracta FinanceTypeTemplate tiene implementados varios métodos que pueden ser útiles; entre ellos se encuentran:
- newFinancePlan: Crea un nuevo vencimiento del plan financiero
- setDate: Asigna una fecha al campo de fecha en un registro de plan financiero
- setAllDates: Asigna la fecha al nuevo plan de financiación teniendo en cuenta la fecha de pago y la frecuencia definidas en la cabecera
- getLastFinancePlanWithInvoice: Obtiene el último vencimiento del plan de financiación con una factura
- getLastFinancePlanWithPayment: Obtiene el último vencimiento del plan de financiación con un pago
- getMonthlyInterest: Realiza el cálculo (% interés anual/(12/frecuencia))
- getCapitalizedInterest: (1+% interés mensual)^nº de vencimiento^
- getResidualValueDivideCapitalizedInterest: Realiza el cálculo Valor residual/Interés capitalizado.
- setAmortizationRenting: Realiza el cálculo Vencimiento - Interés
- setTotalAmortization: Calcula el importe total pagado hasta ese momento en el plan financiero
- setPendingAmortization: Calcula el importe pendiente de pago en el plan financiero
- setInterest: Realiza el cálculo ((última amortización pendiente*% interés anual)/12)*frecuencia
- setCommission: Asigna la comisión definida en la cabecera
- setBusinessPartner: Asigna el Banco/Entidad financiera definido en la cabecera
- setProject: Asigna el Proyecto definido en la cabecera
- setCostCenter: Asigna el Centro de coste definido en la cabecera
- setFirstPendingAmortization: Método de cálculo de la amortización pendiente para el primer vencimiento
- getFinancePlanToRecalculate: Método que obtiene todos los vencimientos del plan de financiación que deben actualizarse si se desea actualizar un plan financiero
Los métodos abstractos deben implementarse en la nueva clase Java y, si se requiere, se puede sobrescribir cualquiera de los métodos de la clase FinanceTypeTemplate.
Creación del nuevo tipo financiero
En la ventana Tipo financiero se crea un nuevo registro con el nuevo tipo financiero y en el campo Nombre de clase se introduce el paquete de la clase Java implementada seguido del nombre de la clase Java.
Con solo completar el campo Nombre de clase, serán visibles los botones Crear nuevo plan de financiación y Actualizar plan de financiación.
No es necesario modificar ninguno de los 2 botones, ya que ejecutan automáticamente el método Exec de la clase Java especificada en el Tipo financiero.
Procesamiento avanzado de documentos financieros
Paquete Java: com.etendoerp.advanced.financial.docs.processing
Paquete Java: com.etendoerp.advanced.financial.docs.processing.template
Hooks para deshacer pedidos cerrados / rehabilitar facturas anuladas
Se han añadido nuevos hooks a los procesos "Deshacer cierre" y "Rehabilitar", desde los pedidos de venta/compra y las facturas, respectivamente.
Estos hooks permiten al desarrollador añadir nuevas validaciones antes y/o después de que se ejecute la acción y, de este modo, crear nuevas automatizaciones más fácilmente.
Cómo definir una instancia de UnvoidInvoiceHook
- Defina la clase del hook, implementando la interfaz
UnvoidInvoiceHook. Este hook se ejecuta cuando un usuario intenta rehabilitar una factura anulada:
public class UnvoidInvoiceImpl implements UnvoidInvoiceHook {
@Override
public OBError preProcess(Invoice invoice) {
System.out.println("This is an example of pre method hook");
return new OBError();
}
@Override
public OBError postProcess(Invoice invoice) {
System.out.println("This is an example of post method hook");
return new OBError();
}
}
Cómo definir una instancia de UndoCloseOrderHook
- Defina la clase del hook, implementando la interfaz UndoCloseOrderHook. Este hook se ejecuta cuando un usuario intenta deshacer un pedido cerrado:
public class UndoOrderImpl implements UndoCloseOrderHook {
@Override
public OBError preProcess(Order order) {
System.out.println("This is an example of pre method hook");
return new OBError();
}
@Override
public OBError postProcess(Order order) {
System.out.println("This is an example of post method hook");
return new OBError();
}
}
Este trabajo está licenciado bajo CC BY-SA 2.5 ES por Futit Services S.L.


