Error al generar una entrega de mercancia con SDK

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.

Buenas, estoy tratando de entender donde hace la validacion para la seleccion de articulos, para el lote completo te permite realizar la operacion ? Por ahora te diria que revises lo siguiente:

                If oRLotes.Fields.Item("Stock").Value **<=** iCantidadNecesaria Then
                    ** Verificar la seleccion**oLineas.BatchNumbers.Quantity = oRLotes.Fields.Item("Stock").Value
                            iCantidadNecesaria = iCantidadNecesaria - oRLotes.Fields.Item("Stock").Value
                        Else
                            oLineas.BatchNumbers.Quantity = iCantidadNecesaria
                            **iCantidadNecesaria = 0**
                        End If

en la parte del código no se ve, pero asumo que se coloca la misma cantidad den la propiedad Quantity de oLineas por que ese es el principal motivo de ese tipo de errores, que no corresponde la cantidad colocada en la linea, y la suma de las cantidades de los lotes seleccionados.

Este tema se cerró automáticamente 30 días después de la última publicación. No se permiten nuevas respuestas.