Anulación de venta y stock

Inicio Foros Foro principal Desarrolladores Anulación de venta y stock

  • Este debate está vacío.
Viendo 5 entradas - de la 1 a la 5 (de un total de 5)
  • Autor
    Entradas
  • #32051

    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.

    #36552

    Estimado 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.

    #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.

    #36562
    Federico Cristina
    Superadministrador

    Buenas,

    Gracias por el feedback! Vamos a estar revisando este tema a la brevedad.

    Saludos,
    Federico

    #36570
    Matías Nerón Cap
    Superadministrador

    Friss,

    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

Viendo 5 entradas - de la 1 a la 5 (de un total de 5)
  • Debes estar registrado para responder a este debate.