#36559

Estimado Antonio,

Estoy utilizando la versión 11.10.

Chusmeando un poco el código, precisamente en el método completeIt de la clase MInvoice, el código que realiza la modificación de las cantidades (sólo cuando la operación es de crédito) es el siguiente:

Code:
// Si es crédito verificar issotrx y realizar las
// operaciones necesarias para incrementar la cantidad
// entregada y decrementar la cantidad reservada o pendiente

orderLine.setQtyDelivered(orderLine.getQtyDelivered().add(line.getQtyInvoiced()));
orderLine.setQtyReserved(orderLine.getQtyReserved().subtract(line.getQtyInvoiced()));
if(!orderLine.save()){
m_processMsg = “Could not update Order Line”;
return DocAction.STATUS_Invalid;
}
// Actualizar el stock y el pendiente de entrega para ese producto
if (!MStorage.add(getCtx(), order.getM_Warehouse_ID(),
MStorage.getM_Locator_ID(
order.getM_Warehouse_ID(),
line.getM_Product_ID(),
line.getM_AttributeSetInstance_ID(),
line.getQtyInvoiced(), get_TrxName()),
line.getM_Product_ID(), line
.getM_AttributeSetInstance_ID(), line
.getM_AttributeSetInstance_ID(),
BigDecimal.ZERO,
line.getQtyInvoiced().negate(),
BigDecimal.ZERO, get_TrxName())) {
m_processMsg = “Cannot correct Inventory”;
return DocAction.STATUS_Invalid;
}

Si comento esa porción las cantidades se actualizan bien (precisamente qtyreserved de c_orderline), pero seguramente voy a romperlo por otro lado.

Por favor avisame si necesitás algún otro dato o realizar otras pruebas.

Saludos,
friss.