- Este debate está vacío.
-
AutorEntradas
-
25 mayo, 2012 a las 3:38 am #32051Federico RissoneMiembro
Hola a todos,
Quería consultarles sobre la secuencia de anulación de una venta y los valores de stock resultantes; trataré de ser lo más descriptivo posible. Va el ejemplo:
Antes de comenzar con el circuito de venta, quiero mostrar que la información del artículo (Ctrl+I) es el siguiente (cantidad art0001 = 10):
[attachment=252]info_art0001_antes_de_venta.png[/attachment]
Supongan que realizo una venta del articulo ‘art0001’ (cantidad = 1) siguiendo el circuito Pedido – Remito – Factura. Al ir completando cada documento, la ventana de info del artículo va quedando así:
Pedido completo (Fig. 2):
[attachment=253]info_art0001_pedido.png[/attachment]
Remito completo (Fig. 3; la factura generada no modificó ninguna cantidad):
[attachment=254]info_art0001_remito.png[/attachment]
Hasta ahí todo bien. Ahora, por X motivo, realizo la anulación de esa venta. La secuencia que me permite hacerlo es primero anular Remito, luego Factura, por último el Pedido. La ventana de info del artículo va quedando así:
Remito anulado (Fig. 4):
[attachment=255]info_art0001_remito_anulado.png[/attachment]
Factura anulada (Fig. 5):
[attachment=256]info_art0001_factura_anulada.png[/attachment]
Pedido anulado (Fig. 6):
[attachment=257]info_art0001_pedido_anulado.png[/attachment]
Como se puede ver, la última figura muestra que queda una cantidad pendiente negativa en el artículo, lo cuál creo entender que no sería correcto.
Pero me parece que el problema está cuando anulo la factura (figura 5), ya que la Nota de Crédito que se genera está descontando del stock la cantidad Pendiente de Entrega; la anulación del pedido hace lo mismo, y por eso resulta la cantidad negativa. Se está restando ‘Pend. Entrega’ 2 veces.
La pregunta sería, ¿ es correcto que la Nota de Crédito haga el descuento, o el movimiento del stock debería ser manejado solamente por los remitos ? Lo más probable es que sea yo el que está errando el entendimiento del circuito.
Saludos,
friss.27 mayo, 2012 a las 8:44 am #36552Antonio CalviñoMiembroEstimado Friss,
Pareciera que lo que indicas es correcto y de ser así, hay un error en algún momento del circuito.
Por favor, podría indicar cuál es la versión de Libertya que estás usando ?Saludos
Antonio.28 mayo, 2012 a las 1:54 am #36559Federico RissoneMiembroEstimado 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 pendienteorderLine.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.1 junio, 2012 a las 3:49 am #36562Federico CristinaSuperadministradorBuenas,
Gracias por el feedback! Vamos a estar revisando este tema a la brevedad.
Saludos,
Federico13 octubre, 2012 a las 9:00 am #36570Matías Nerón CapSuperadministradorFriss,
Ya se encuentra solucionado el problema, si no recuerdo mal en la 12.04 beta. Actualmente este tema fue de mucha polémica y ya fue resuelto.
Muchas Gracias por el feedback!!
Cacho -
AutorEntradas
- Debes estar registrado para responder a este debate.