Hola compañeros
Tengo el siguiente escenario:
Se desea generar una entrega de mercancía de unos artículos, dichos artículos se manejan por lotes, al generar el documento con la ayuda del SDK, se muestra el siguiente mensaje de error:
“No es posible añadir una línea sin la selección completa de los números de serie/lote”
Dentro del código de la aplicación que genera la entrega, se saca por medio de una consulta el lote del articulo, con la cantidad que cuenta el lote de dicho articulo, para validar que la cantidad que se coloca sea suficiente, anexo fragmento de código donde se asigna el lote y la cantidad:
If oArticulo.GetByKey(oRecord.Fields.Item("U_SYS_CODA").Value.ToString) Then
If oArticulo.ManageBatchNumbers Then
sQueryLotes = DesglosarLotesParaTransaccion(oLineas.ItemCode, oLineas.WarehouseCode, True)
oRLotes.DoQuery(sQueryLotes)
If oRLotes Is Nothing Then
Throw New Exception("Error al obtener los lotes para la transaccion")
End If
If oRLotes.RecordCount = 0 Then
Throw New Exception("No hay lote asignado para el articulo: " & oLineas.ItemCode & " en el almacen: " & oLineas.WarehouseCode)
End If
iCantidadNecesaria = oRecord.Fields.Item("U_SYS_CANT").Value
For iL As Integer = 0 To oRLotes.RecordCount - 1
If oRLotes.Fields.Item("MnfSerial").Value = "" Then
Throw New Exception("No hay aduana definida para el lote '" & oRLotes.Fields.Item("Codigo_Lote").Value & "' del articulo '" & oRecord.Fields.Item("U_SYS_CODA").Value & "'")
End If
If iL > 0 Then
oLineas.BatchNumbers.Add()
Else
oLineas.BatchNumbers.SetCurrentLine(0)
End If
Dim sCod As String = oRLotes.Fields.Item("Codigo_Lote").Value
oLineas.BatchNumbers.BatchNumber = oRLotes.Fields.Item("Codigo_Lote").Value
If oRLotes.Fields.Item("Stock").Value <= iCantidadNecesaria Then
oLineas.BatchNumbers.Quantity = oRLotes.Fields.Item("Stock").Value
iCantidadNecesaria = iCantidadNecesaria - oRLotes.Fields.Item("Stock").Value
Else
oLineas.BatchNumbers.Quantity = iCantidadNecesaria
iCantidadNecesaria = 0
End If
If iCantidadNecesaria = 0 Then
Exit For
End If
oRLotes.MoveNext()
Next
If iCantidadNecesaria > 0 Then
Throw New Exception("La cantidad de articulos : " & oLineas.ItemCode & " del almacen: " & oLineas.WarehouseCode & " disponibles en los lotes no completan el total de la partida")
End If
End If
End If
Se genero un archivo de texto (LOG), para ver si de verdad estaba metiendo los lotes y las cantidades necesarias, lo cual se comprobó, hasta el momento no hemos encontrado el tema por el cual se sigue mostrando el error, debido a que los artículos ya fueron generados en una entrega de mercancía anteriormente en la cual, no hubo problema.
Espero me puedan ayudar a saber si en algún punto hace falta algún parámetro adicional u otro aspecto que no se este valorando.