Estimados,
encontré un detalle en VOrdenPagoModel que me tenía a mal traer desde hace un tiempo. El tema está con los cheques de terceros recibidos y entregados como pago a un proveedor, particularmente en la contabilidad.
Cuando entrego un cheque de tercero que aún está en cartera, la contabilidad debe descontar de la cuenta específica el monto del cheque, ya que no está más en cartera, similar a lo que se hace cuando se depositan.
Sin embargo, esto no es lo que ocurre todas las veces, ya que los medios de pago creados a partir de los cheques aparecen como Aplicados, pero el asiento está vacío. No sucede lo mismo con los otros medios de pago involucrados en la misma OP.
Encontré que el problema está al momento de crear el MPayment: cuando se copian los valores registrados para los cheques en cartera entregados, si el cheque en cuestión ya está contabilizado esta marca también se copia y el nuevo payment nunca será tenido en cuenta por el procesador de contabilidad.
En particular, en VOrdenPagoModel, en este bloque:
Code:
/* Línea 1860 */
if (mp.getTipoMP()
.equals(MedioPago.TIPOMEDIOPAGO_CHEQUETERCERO)) {
MedioPagoChequeTercero mpct = (MedioPagoChequeTercero) mp;
MPayment.copyValues(mpct.getChequeTerceroPayment(), pay);
pay.setDocStatus(DocAction.STATUS_Drafted);
pay.setDocAction(DocAction.ACTION_Complete);
}
Lo solucioné agregado:
Code:
pay.setPosted(false);
antes de cerrarlo.
Espero haberme explicado bien.
Saludos,
Juan Manuel.