cancel
Showing results for 
Search instead for 
Did you mean: 

Error -4014 Transferencia de Stock - DI API

Former Member
0 Kudos

Buen día expertos, estoy haciendo unas pruebas en .net con un código que genera una transferencia de stock usando DI API, toma la información de un GridView cargado con un DataTable como el siguiente:

Aquí especifico el código del artículo, la cantidad total de la línea, lotes, etc. En la mayoría de los casos funciona correctamente y genera el documento sin problema, pero hay ciertos artículos que me generan un error en la selección de lotes por manejar una unidad de medida alternativa.
Me explico, el problema en concreto lo tengo con unas cajas de tubería, en donde el código del artículo representa un tramo de tubería, pero al activar la unidad alternativa, por cada “caja” se toman “x” cantidad de tramos, como en el siguiente ejemplo:

Al querer generar una transferencia de stock con esa información me aparece el siguiente error:
Error: Cannot add row without complete selection of batch/serial numbers | Código de error: -4014

Estuve buscando en las propiedades que tiene el grupo “Lines” y “BatchNumbers” pero no encuentro la solución. Agrego también el fragmento del código en C# que construye las líneas por si puede aportar algo al caso:

foreach(DataRow dr in Shared.lotesTransferencia.Rows)
{
    if(i != 0)
        nuevaTransferencia.Lines.Add();

    nuevaTransferencia.Lines.SetCurrentLine( Int32.Parse( dr["NumLineaArticulo"].ToString() ) );
    nuevaTransferencia.Lines.ItemCode = dr["Articulo"].ToString();
    nuevaTransferencia.Lines.Quantity = double.Parse(dr["Total"].ToString());
    nuevaTransferencia.Lines.WarehouseCode = ddlAlmacenDestino.SelectedItem.Text;

    // Prueba para unidad de medida
    nuevaTransferencia.Lines.UseBaseUnits = BoYesNoEnum.tNO;
    nuevaTransferencia.Lines.MeasureUnit = dr["UnidadMedida2"].ToString();

    nuevaTransferencia.Lines.BatchNumbers.SetCurrentLine( Int32.Parse( dr["NumLineaLote"].ToString() ) );
    nuevaTransferencia.Lines.BatchNumbers.BatchNumber = dr["Lote"].ToString();
    nuevaTransferencia.Lines.BatchNumbers.Quantity = double.Parse( dr["Cantidad"].ToString() );
    nuevaTransferencia.Lines.BatchNumbers.Add();

    i++;
}

¿Alguien ha tenido algún problema similar? Agradezco de antemano cualquier comentario u orientación que puedan brindarme.

Saludos cordiales.

Accepted Solutions (0)

Answers (0)