![](https://www.libertya.org/wp-content/plugins/ultimate-member/assets/img/default_avatar.jpg)
Pienso que si efectivamente es un bug (y para mi sí lo es) hay varias soluciones, tocar el CashBook quizá sería lo mejor pero me pareció un poco mas complicado. La otra opción es modificar el CompleteIt() para que al completar la factura en efectivo, no se genere la cashLine. Yo hice eso, y ahora ya no duplica el efectivo desde el TPV, solo que las facturas en efectivo completas no quedan automáticamente pagas sino que hay que pagarlas desde el recibo.
Para salir del paso creo que puede servir. Lo que habría que comentar del completeIt es la sección identificada como //CASHLINE después del control de aprovación y antes de analizar las líneas:
Código
__________________________________
if (PAYMENTRULE_Cash.equals(getPaymentRule())) {
MCash cash = MCash.get(getCtx(), getAD_Org_ID(), getDateInvoiced(),
getC_Currency_ID(), get_TrxName());
if ((cash == null) || (cash.getID() == 0)) {
m_processMsg = “@NoCashBook@”;
return DocAction.STATUS_Invalid;
}
MCashLine cl = new MCashLine(cash);
cl.setInvoice(this);
if (!cl.save(get_TrxName())) {
m_processMsg = “Could not save Cash Journal Line”;
return DocAction.STATUS_Invalid;
}
info.append(“@C_Cash_ID@: ” + cash.getName() + ” #” + cl.getLine());
setC_CashLine_ID(cl.getC_CashLine_ID());
} // CashBook