Estimados,
tengo el siguiente caso:
– Primer pago a Proveedor el 2-9-2014 retencion aplicada 882,88 $. Bien calculada.
– Trato de hacer el Segundo pago el 30-9-2014 (mismo mes) y la retencion calculada no es correcta.
Revise el codigo en debug y encontre esto:
La funcion getAllocatedInvoicesAmts (AbstractRetencionProcessor.java) llama la funcion getRetencionPorcentaje (AbstractRetencionProcessor.java) que ejecuta una query del tipo:
SELECT ((SELECT SUM(amount) FROM C_AllocationLine al …)/(SELECT COUNT(c_allocationlINE_ID) …)
el SUM devuelve el valor correcto de la Retencion anteriormente calculada (882,88) pero el COUNT devuelve un valor de 7 porque el pago anterior se hizo con 7 cheques.
El resultado en lugar de ser la retencion (882,88) es 126,12 !!!!
Ademas tengo duda que en la funcion getTotalPagosAnteriores() hayas que tener en cuenta las Retenciones (punto 3 del codigo).
El calculo basicamente deberia ser:
– Calculo Total Pagos Netos Anteriores
– Calculo Total Retenciones Aplicadas
– Base Imponible = Total Pagos Netos Anteriores + Neto a Pagar
– Se resta a la Base el Importe Exento
– Se calcula la Retencion aplicando el porcentaje
– Se calcula la diferencia entre valor calculado y retenciones aplicadas
Alguien me puede dar una mano ?
Saludos.